title: Algoritmo Rete
text: # Algoritmo Rete
  
  L'algoritmo Rete è un efficiente algoritmo di pattern matching che serve a implementare i sistemi di produzione a regole. È stato creato da Charles Forgy della Carnegie Mellon University.
  
  Charles Forgypubblicò L'algoritmo per la prima volta nel 1974 e dopodiché fu' rielaborato nel 1979 per la sua tesi di dottorato. L'algoritmo Rete è alla base di alcuni tra i più popolari sistemi esperti come ad esempio:
  
  * Blaze Advisor, su fairisaac.com. URL consultato il 26 febbraio 2007 (archiviato dall'url originale il 16 febbraio 2007).
  * JRules, su ilog.com.
  * OPS5
  * CLIPS
  * Jess
  * LISA, su lisa.sourceforge.net.
  
  Un'implementazione 'naïve' di un sistema esperto deve verificare ogni regola presente nella base di conoscenza attivare una regola necessaria per poi passare a controllare altre regole. Questo approccio 'naïve' valido anche per piccoli sistemi con un numero limitato di regole, si rivela molto inefficiente.
  
  L'algoritmo Rete fornisce un'efficiente base per l'implementazione di un sistema esperto. Un sistema esperto Rete-based costruisce un network di nodi, dove ogni nodo (ad eccezione del nodo radice) corrisponde ad un pattern presente nella parte sinistra di una regola. Il cammino che collega il nodo radice al nodo foglia definisce una completa parte sinistra di una regola. Ogni nodo ha una memoria di fatti che soddisfano quel pattern. Questa struttura è genericamente riconducibile ad un Trie
  
  ## Curiosità
  
  Il nome dell'algoritmo è "Rete", anche in inglese: l'inventore ha voluto usare la parola latina. In inglese viene pronunciata 'Reet', 'Ree-tee' o, in Europa, 're-tay'.
  
  