Logica predicatelor primei ordini

împreună cu o singură regulă:

(Modus ponens latin)

termenul de logică medievală, care denotă regula deducției și legea logică corespunzătoare.

Teorema de calcul propozițional corectitudinea afirmă că toate axiomele de mai sus sunt tautologii, ci prin modus ponens regulă de afirmații adevărate nu poate fi decât adevărat. Dovada acestei teoreme este trivială și se reduce la o verificare directă. Mult mai interesant este faptul că toate celelalte tautologii pot fi obținute din axiome utilizând regula de inferență - aceasta este așa-numita teoremă de completitudine a logicii propoziționale.







Logica predicatelor primei ordini

Dezavantajul logicii afirmațiilor este verbositatea sa - chiar și pentru descrierea problemelor simple, este necesar un număr considerabil de variabile și formule logice. Reprezentarea fiecărei proprietăți separate pentru fiecare obiect special necesită o variabilă logică separată, ceea ce este foarte incomod. De asemenea, este necesar să se utilizeze variabile separate pentru a descrie toate combinațiile necesare ale relațiilor dintre concepte. Pe de altă parte, în calculul propozițional, fiecare simbol atomic (elementar) denotă o expresie a unei anumite complexități arbitrare. În acest caz, nu există nici o modalitate de a accesa părțile constitutive ale acestei expresii. De exemplu, expresia "rata de schimb a dolarului tinde să crească", denotată de o variabilă logică. El vorbește numai despre creșterea dolarului, și nu pot fi utilizate într-un alt context (fraza este relativitatea reală () entitate închisă sub considerente pragmatice și sintaxa corespunzătoare și acordul semantic.). Logica predicatelor permite rezolvarea acestor probleme de reprezentare a cunoștințelor.

Ideea principală a logicii predicatelor este la-o comparație a fiecărui obiect unic, cu un obiect constantele individuale desemnând numele obiectului, și o clasă de obiecte similare - cu variabila obiect a cărui valoare este obiectul constant. De exemplu, expresia de mai sus poate fi reprezentată în limba logicii predicate după cum urmează:

Evident, o astfel de reprezentare este mult mai clară și mai flexibilă.

Un predicat este o funcție logică (expresivă) definită pe un set de seturi de valori ale variabilelor de obiect. Semantica acestei funcții este determinată de simbolul predicat, urmat de argumente (variabile și constante părinte) în paranteze. Această funcție poate lua doar două valori: Adevăr sau Fals, numite valori de adevăr. Dacă predicatul are un singur argument, simbolul predicat indică o proprietate specifică a obiectului și, dacă există mai multe argumente, relația dintre obiectele reprezentate de argumente. Relațiile între obiecte mijlocii, în logica propozitionala, sunt reprezentate ca propozitii (formule), constând din variabile, constante, logice, capse conectori, precum și funcțiile și cuantificatori predicatelor.

Un obiect constant sau pur și simplu o constantă este unul față de celălalt comparat în procesul de interpretare cu orice obiect al mediului și este marcat de un șir de caractere care încep cu o literă mare.

Variabilele de obiecte sau variabilele simple sunt notate cu un șir care începe cu o literă mică. Gama de valori pentru fiecare variabilă este setul de constante, în general, infinit.

Constantele obiectului și variabilele sunt termeni. Modul de alegere a termenilor pentru reprezentarea cunoștințelor depinde de dezvoltator. În exemplul de mai sus, am folosit constantele Dollar și Growth. Introducem o variabilă. definită pe setul de valute și variabila dinamicii schimbării cursului. Simbolul predicatului schimbă cursul pune o proprietate cu rată variabilă într-o corespondență unu-la-unu cu orice monedă. Funcția stabilește relația dintre moneda obiectului și dinamica schimbării. În cazul în care. apoi, în conformitate cu cunoștințele pe care le avem ("rata dolarului are tendința de a crește") schimbarea cursului (Dolar, Creste) = TRUE.

Cu ajutorul predicatelor, sunt definite relațiile arbitrare dintre obiecte. Predicatele încep cu un simbol predicat și următoarele în paranteze un set ordonat de variabile sau constante corespunzătoare obiectelor care se află într-o relație numită. De exemplu, dacă doi oameni Masha și Sasha sunt frate și soră, această relație poate fi exprimată cu ajutorul unui predicat

frate_sister (Masha, Sasha).

Un predicat poate lua valoarea True sau False. Dacă predicatul este adevărat, atunci relația are loc, altfel - dimpotrivă.

Dacă un obiect corespunde exact altora, atunci sunt folosite funcții. De exemplu, dacă obiectele sunt cifre binare și cifre zecimale, orice zecimal binar poate unic asociat și să-l exprime ca o comparație preobrazovanie_2_ v_10 funcția (x, y, z). unde x, y, z sunt numere binare, iar valoarea funcției este zecimal. Expresia conversion_2_ to_10 se numește simbol funcțional. Funcția în logica predicatelor nu implică existența unui algoritm de calcul al valorii sale prin argumente. Specifică doar cu ajutorul constantelor și variabilelor o anumită relație între obiectele care corespund argumentelor sale și oricărui obiect. Funcțiile, precum și variabilele sau constantele sunt termeni.

Simbolul predicat de expresie (termen, termen, ..., termen) se numește atom. Un atom este un predicat. Distinct deosebit este un atom al cărui simbol predicat este semnul egal, iar argumentele sunt doi termeni. Acest atom ar putea fi reprezentat ca egal (termen, termen) sau = (termen, termen). dar, de regulă, este scrisă în termenul obișnuit infix termen = termen. Acest atom este adevărat când valorile ambilor termeni coincid. Atomii fără un semn de negare sau cu un semn de negare sunt numiți literali.

Atunci când este nevoie să se exprime proprietățile comune unui întreg set de obiecte, se folosesc cuantificatori. În logica predicatelor unor asemenea cuantificatori doi :.







Un cuantificator de generalitate. Semnificația cuantificatorului comunității coincide cu exprimarea limbajului natural "pentru toți". Aceasta înseamnă că, dacă există anumite cunoștințe aplicabile oricărui obiect de un anumit tip, atunci, în loc să enumerați toate aceste obiecte, puteți utiliza cuantificatorul comunității.

Cuantificator de existență. Dacă există nevoia de a exprima cunoașterea unui anumit obiect din orice agregat, se folosește un cuantificator de existență. Cuantificatorul existenței este pronunțat în limbajul natural ca fiind "există".

Se consideră că cuantificatorul conectează variabilele care sunt scrise în spatele cuantificatorului în paranteze. Prin urmare, ele sunt numite legate. Variabilele, care nu se leagă de un cuantificator, se numesc variabile libere.

Relația dintre cuantificatorii existențiale și comunitate pot fi cu ușurință exprimată printr-o negare a ligamentelor și se bazează pe argumentul următor: în cazul în care orice obiect din setul se poate spune că el nu posedă o proprietate dată, atunci nu există nici un obiect cu această proprietate. De exemplu, este evident că "orice pește nu are mâini, deci nu există pește care are mâini".

Indicați orice variabilă prin. dar orice formula care conține această variabilă. atunci sunt valabile următoarele legi:

Egalitatea este un atom de tip special Term = Termen sau = (Termen, Termen). Egalitatea înseamnă că ambii termeni dintr-un atom corespund aceluiași obiect. Nu confunda predicatul de egalitate cu operația de atribuire. Tabelul următor prezintă semnificația predicatului de egalitate pentru diferiți termeni, unde X, Y reprezintă constantele obiectului, x. y sunt variabile obiect, iar F (x) este o funcție:

Logica predicatelor primei ordini

Sintaxa logicii predicatelor vă permite să vă deplasați vizual și pur și simplu de la limba naturală la limba logicii predicate. Este suficient să introduceți corect constantele obiectelor corespunzătoare și simbolurile predicate pentru a putea descrie corect stările și fenomenele domeniului. Să luăm în considerare un exemplu. Să presupunem că cunoștințele noastre despre păsări sunt exprimate sub forma următoarelor propoziții:

· Dacă creatura are aripi, atunci această creatură este o pasăre.

· Dacă o creatură zboară și poartă ouă, atunci această creatură este o pasăre.

Algoritmul pentru reprezentarea cunoașterii în limba logicii predicate:

1. Identificați. că în frază este un obiect care trebuie să fie mapat la o constantă sau variabilă. Dacă este vorba de un obiect specific, atunci se introduce o constantă, dacă se menționează o întreagă clasă de obiecte, atunci se utilizează o variabilă.

2. Definiți proprietățile obiectelor. Se potrivesc simbolurile predicatelor cu proprietățile.

3. Utilizând conectivitate logică, generați constante, variabile și predicate corespunzătoare obiectelor și proprietăților lor.

Astfel, în limbajul logicii predicatelor, această cunoaștere poate fi exprimată sub formă de formule:

· Are_ aripi (creatura) → pasăre (creatură)

· Mustele (creatura) poarta oul (creatura) → o pasare (creatura)

În acest exemplu, folosim predicate cu valoare unică cu câte un argument fiecare. În același timp predicatele pot fi, de asemenea, multi-locale, care au mai multe argumente. În cazul predicatelor multi-loc, așa cum am menționat deja, un simbol predicat poate fi considerat ca o proprietate generală a obiectelor care corespund unor argumente sau ca o relație în care sunt localizate aceste obiecte. Varianta primei expresii cu ajutorul unui predicat multi-loc poate fi, de exemplu, după cum urmează:

posedă (creatură, aripi) → aparține clasei (creatură, pasăre).

Am considerat calculul logicii propoziționale, în special calculul clasic. Să luăm în considerare diferențele dintre calculul predicat de ordinul întâi și calculul propozițional.

Axiomele calculului propozițional sunt transformate în axiomele calculului predicat prin înlocuire. adică o variabilă logică este înlocuită de un predicat. În plus, sunt introduse două noi axiome:

O mulțime de reguli de inferență includ:

· Regula generală a lui Modus Ponens,

și normele de introducere a cuantificatorilor

Există, de asemenea, computere predicate nonclassice de ordinul întâi. Ele pot fi bazate pe adăugarea unui set de axiome care sunt valabile pentru o anumită zonă de subiect cu formule valide.

Următoarele reguli de ieșire pot fi utilizate în plus:

· Excluderea cuantificatorului de frecvență:

· Excepția cuantificatorului de existență :,

Introducerea cuantificatorului existenței :.

Iată o formulă arbitrară a logicii predicatelor, care are o variabilă legată de cuantificator. - Formula. în care toate aparițiile unei variabile sunt înlocuite cu o constantă.

Trebuie remarcat în mod special regula de excludere a cuantificatorului comunității, care este numită și regula de instanțiere universală. Cu alte cuvinte, esența acestei reguli poate fi formulată după cum urmează: dacă orice variabilă în cadrul cuantificatorului comun în propoziția adevărată este înlocuită cu orice termen corespunzător din domeniul definiției, atunci expresia rezultată este adevărată.

Cu toate acestea, spre deosebire de logica afirmațiilor, concluzia logică în spațiul predicatelor nu este atât de evidentă. Pentru a aplica corect regulile de ieșire ale tipului Modus Ponens. Sistemul de ieșire ar trebui să poată determina când două expresii sunt echivalente sau echivalente. În calculul propozițional acest lucru este trivial:

două expresii sunt echivalente dacă și numai dacă sunt sintactic identice.

În calculul predicat, definirea echivalenței a două propoziții este complicată de prezența variabilelor. Deoarece toți termenii din logica predicatelor sunt simbolici, căutarea unor propoziții echivalente se reduce la o procedură de substituire. permițând înlocuirea termenului # 948; pe un alt termen al setului # 952; .

Există trei tipuri de substituție:

1. Redenumirea unei variabile în loc de o variabilă # 948; o variabilă este înlocuită de # 952; .

2. Specificarea unei variabile - în loc de o variabilă # 948; o constantă este substituită # 952;

3. Înlocuirea variabilei - în loc de variabilă # 948; funcția este înlocuită de # 952; .

Următoarea condiție este o condiție obligatorie pentru înlocuire. În scopul substituției, adică în setul tuturor predicatelor la care este aplicată, în locul aceleiași variabile # 948; aceeași variabilă, constantă sau funcțională de la # 952; pentru toate aparițiile sale # 948;. Procesul de căutare a substituției necesare este numit și procedura de unificare. O substituție se numește cea mai generală, dacă, ca urmare a aplicării ei, cel mai mic număr de variabile este înlocuit cu constante. Uneori, în regula Modus Ponens, cuantificatorii comunității sunt implicați, dar nu scrise, adică în schimb ei scriu pur și simplu. și cuantificatorii existenței nu sunt folosiți deloc. În cazul în care cuantificatorii existenței sunt prezenți în formula, atunci ar trebui eliminați, de exemplu, de regula de excludere a cuantificatorului de existență. Pentru a aplica regula generală Modus Ponens. toate formulele în formularea problemei trebuie să fie atomi sau implicații, partea stângă a căreia este o conjuncție de atomi, iar partea dreaptă este un atom sau un simbol gol. Astfel de formule sunt numite fraze Horn. În consecință, pentru a evita în mod eficient predicatele în spațiu, este necesar să se țină seama de limitările și cerințele de mai sus pentru reprezentarea cunoștințelor.

Să ilustrăm lucrarea regulii Modus Ponens în logica predicatelor folosind un exemplu simplu. Luați celebrul silogism: "toți oamenii sunt muritori, iar Socrate este un om, deci Socrate este muritor". În această frază există trei declarații principale - "toți oamenii sunt muritori", "Socrate este un om" și "Socrate este muritor". Evident, este necesar să introducem constanta "Socrate" și simbolurile predicate "om" și "muritor". Atunci expresia "toți oamenii sunt muritori" în limba logicii predicate vor arăta astfel:

Și fraza "Socrate este un om" este așa :.

Deoarece variabila x este conectată printr-un cuantificator universal, ea poate fi înlocuită cu orice valoare din domeniul definiției sale, de exemplu Socrates. Prin urmare, este posibil să se formuleze condiția regulii Modus Ponens:

și ca rezultat al declanșării acestei reguli, ajungem la concluzia morții (Socrate).

În ciuda puterii potențiale de calcul a regulii Modus Ponens, în practică aceasta este rar utilizată. Practic, din cauza incomodității calculelor necesare pentru aplicarea sa. Partea principală a acestor calcule este reducerea condamnărilor la forma implicită necesară pentru formarea condiției de regulă. Mai puternic, ușor de implementat și care necesită mai puțină calcul este regula de rezoluție. Această regulă a constituit baza paradigmei programării logice **. utilizat în multe sisteme inteligente.







Articole similare

Trimiteți-le prietenilor: