Come si può unificante 2 frasi in logica del prim'ordine risultato in una variabile diventando 2 cose diverse?

cs.stackexchange https://cs.stackexchange.com/questions/65827

  •  04-11-2019
  •  | 
  •  

Domanda

Sto lavorando su un programma che deve utilizzare inferenza nella logica del prim'ordine, e tutto funziona alla grande, tranne per 1 cosa che non capisco.

Il libro che sto usando, "Intelligenza Artificiale Un Approccio Moderno" di Russell e Norvig, mostra una prova sulla pagina 349 che mi ha confuso.Essi combinano le due frasi seguenti:~Ama(x,F(x)) v Ama(G(x),x)
~Animale(x) v Ama(Jack,x)
E si combinano in:
~Animale(F(Jack)) v Ama(G(Cuffie),Jack)

Questo rende assolutamente alcun senso per me, perché la variabile "x" diventa "F(Jack)" e "Jack", e che sembra sbagliato per me.

Utilizzando il Unificare la funzione che ho creato seguendo lo pseudocodice fornito nel libro restituisce un fallito sostituzione, ma se la combinazione dei suddetti frasi è corretta, che tipo di sostituzione dovranno essere restituiti?(So che non è il solo {x/Jack}, poiché potrebbe comportare la frase "~Animale(Jack) v Ama(G(Cuffie),Jack)", Animale sarebbe manca la funzione F come mostrato nell'esempio.)

Qualsiasi aiuto sarebbe molto apprezzato!

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange
scroll top