Documente Academic
Documente Profesional
Documente Cultură
Programare logica
Logica propozițională
Introducere în PROLOG
Machine Translated by Google
Mergeți la C309.
Machine Translated by Google
Programare logica
Inferență
Bază de cunoștințe Reguli de inferență
Motor
Un alt exemplu:
Premisa majoră: Toți bărbații (M) sunt muritori (P).
Pisicile (M) sunt buni vânători (P).
Premisa minoră: Socrate (S) este un om (M). Câinii (S) sunt la fel de buni vânători (P) ca și pisicile (M).
Concluzie: Socrate (S) este muritor (P). Câinii (S) sunt buni vânători (P).
Regula generală: dacă pronunți formula în limbaj natural și are sens, este bine formată.
Acestea sunt WFF?
¬α ¬, α¬α, p p
Machine Translated by Google
Logica propozițională
Sintaxa logicii propoziționale: puteți demonstra o formulă bine formată : (p r) ca o consecință a
unui set de formule F: (p r) (r q) folosind proprietăți/reguli implicite (raționamentul deductiv):
F
Semantica logicii propoziționale: puteți demonstra că o formulă bine formată este ADEVĂRAT dacă un
set de F de formule este ADEVĂRAT: F . Acest lucru ar putea să nu fie echivalent cu F !
Dacă sistemul logic este sănătos , atunci putem spune că dacă F atunci F . Dacă sistemul logic
este complet , atunci putem spune că dacă F atunci F .
Machine Translated by Google
p r valoare de adevăr
Tabelul de adevăr trebuie să aibă 2n linii, unde n este numărul de variabile din formulă.
Prin urmare, complexitatea este exponențială.
Machine Translated by Google
teoremele Gödel
Prima teoremă de completitudine: Dacă o formulă este validă din punct de vedere logic, atunci există o deducție finită (o demonstrație
formală) a formulei. Aceasta înseamnă că putem rezolva orice este în timp exponențial (problema SAT).
Demonstrarea faptului că puteți demonstra validitatea unei formule (verificați valoarea de adevăr a unei formule pentru un model - atribuirea de
valori pentru variabile - în tabelul de adevăr) în timp polinomial v-ar face cel mai faimos student al facultății noastre vreodată. Fiecare problemă
poate fi descrisă ca o formulă, verificarea răspunsului corect se poate face în timp polinomial (probleme P). Dacă acest răspuns poate fi
demonstrat și (dedus din datele disponibile) în timp polinomial, atunci P=NP (vezi cursul de inteligență artificială 2).
Prima teoremă de incompletitudine: Orice sistem formal consistent F în cadrul căruia poate fi efectuată o anumită cantitate de aritmetică elementară
este incomplet; adică, există afirmații ale limbajului lui F care nu pot fi nici dovedite, nici infirmate în F. Astfel, niciun sistem deductiv (util) de
lume deschisă nu este complet. Exemplu: „Această afirmație este falsă”.
Există o modalitate de a folosi logica de ordinul întâi pentru regulile de inferență și motorul de deducție, formule bine formate ca bază de
cunoștințe și să obțineți totuși un sistem complet? Săptămâna viitoare: sisteme deductive, clauze Horn
Machine Translated by Google
PROLOG
PROLOG = programation en logique
Utilizare academică: toată lumea care studiază programarea logică sau bazată pe reguli.
Utilizare în industrie: DeepQA IBM (https://www.ibm.com/watson), UIMA IBM/Apache (https://uima.apache.org),
cele mai importante probleme CSP, prototipare rapidă.
O constantă este o singură valoare de câmp, începe întotdeauna cu litere mici și se termină cu un punct
alb. el
este un elev.
Relații și variabile
Relațiile din PROLOG sunt etichete asociate cu zero sau mai multe câmpuri.
Începe cu o literă mică, se termină cu un punct.
După primul câmp are o pereche de paranteze care conțin toate celelalte câmpuri.
frecventează (Student, clasă). Albă ca
Zăpada).
? denotă o interogare - o afirmație pe care PROLOG trebuie să o verifice (deduce din KB).
Al doilea câmp din interogare este o variabilă care va fi unificată (potrivită) cu al doilea câmp în singura relație din KB. Ieșirea va fi
Ce=șoareci
da
Pentru a șterge o constantă utilizați retract(X). X trebuie să fie unificat anterior cu acea constantă.
Machine Translated by Google
Ce=șoareci
da
Ce=elefanți
da
Dacă doriți doar să verificați dacă valoarea aa poate fi unificată, utilizați _ : ?- mananca(pisica,_).
Machine Translated by Google
Se încarcă mai multe fișiere: ?- consult([„fișier1.pl”, „fișier2’]). Se presupune că extensia este .pl sau .pro,
nu este necesară în mod explicit.
Comenzile din fișier sunt executate la încărcarea fișierului. Dacă fișierul conține interogări, acestea sunt
efectuate după încărcare.
Machine Translated by Google
muritor(X) :- om(X).
Toate valorile X pentru care uman (X) este adevărat vor avea și mortal (X) drept adevărat.
Primul dacă al doilea. Condițiile sunt în partea dreaptă, acțiunile în stânga! Opusul CLIPS.
uman (socrate). ?-
muritor(socrate).
da
Machine Translated by Google
?- muritor(Cine).
Cine=socrate
da
Variabilele la care se face referire în stânga nu trebuie să apară în dreapta. Diferență majoră față de CLIPS!
Machine Translated by Google
Predicate pentru
culori: culoare
(roșu). culoare
(galben). culoare
(albastru). culoare (verde).
Săptămâna viitoare
Sisteme deductive
Clauze de corn