Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Sisteme de operare
  • Dezvoltarea de interfețe în limbaj natural și traducere automată. „Informatică și inginerie informatică”

Dezvoltarea de interfețe în limbaj natural și traducere automată. „Informatică și inginerie informatică”

Institutul Kolomna (filiala)

Instituție de învățământ superior de stat

învăţământul profesional

„UNIVERSITATEA DESCHISĂ DE STAT DE LA MOSCOVA”

Departamentul de Informatică și Tehnologia Informației

"APROBAT"

educativ şi metodic

Consiliul KI (f) MGOU

Președinte al Consiliului

Profesor

A.M. Lipatov

„___” ____________ 2010

P.S. Romanov

BAZELE INTELIGENTEI ARTIFICIALE

Manual despre disciplinele direcției

„Informatica și Inginerie calculator»

Pentru studenții de superioare institutii de invatamant

Kolomna - 2010

La

Tipărită în conformitate cu hotărârea consiliului educațional și metodologic al Institutului Kolomna (filiala) a Instituției de Învățământ de Stat de Învățământ Profesional Superior „MGOU” din data de __________ 2010 Nu. ________

DK 519,6

R69 Romanov P.S.

Bazele inteligență artificială. Tutorial. - Kolomna: KI (f) MGOU, 2010. - 164 p.

Tutorialul acoperă elementele de bază ale inteligenței artificiale. Sunt prezentate conceptele de bază ale inteligenței artificiale. Sunt date prevederile teoriei multimilor fuzzy. Principalul sisteme inteligente, scopul lor, clasificare, caracteristici, probleme de creație, exemple.

Manualul este destinat studenților instituțiilor de învățământ superior care studiază în direcția „Inginerie informatică și informatică”. Poate fi folosit în studiul sistemelor informaționale inteligente de către studenții altor specialități.

Referent: doctor în științe tehnice, profesorul V.G. Novikov

© Romanov P.S.

©KI(f) MGOU, 2010

Introducere…………………………………………………………………………………………...5

Capitolul 1. Concepte de bază ale inteligenței artificiale ................................................ .... 6

§ 1.1. Termeni și definiții de bază .................................................. ............. .....6

§ 1.2. Istoria dezvoltării sistemelor AI ................................................ .......... .............12

§ 1.4. Direcții principale de dezvoltare și aplicare

sisteme inteligente ................................................................ ................. ................25

Capitolul 2 32

§ 2.1. Set neclar. Operații pe mulțimi neclare…..32

§ 2.1.1. Operatii de baza pe multimi fuzzy..................................35

§ 2.2. Crearea unei funcții de membru ................................................. .........38

§ 2.2.1. Câteva metode de construire a unei funcții de apartenență...................39

§ 2.3. Numere neclare ................................................. ................ .................................44

§ 2.4. Operații cu numere fuzzy (LR)-tip.................................................. ........46

§ 2.5. Variabile neclare și lingvistice.................................................. .47

§ 2.6. Relații neclare ............................................................. ................. ........................cincizeci

§ 2.7. Logica neclară ................................................. .................................................. .51

§ 2.8. Concluzii neclare ................................................. ..............................................53

§ 2.9. Utilizarea automatizării prelucrării informaţiei

sisteme neclare ............................................................. ................ .................................59

Capitolul 3. Sisteme inteligente de bază.................................................. ........................64

§ 3.1. Date și cunoștințe ............................................................. .................................................. .64

§ 3.2. Modele de reprezentare a cunoștințelor ............................................................. ............... ........66

§ 3.3.1. Reguli de producție ................................................. ............................. 69

§ 3.3.2. Rame ................................................. .........................................72

§ 3.3.3. Rețele semantice ............................................................. ................. ......................74

§ 3.4. Sistem expert. Domenii tematice.................................................76

§ 3.5. Scopul și sfera de aplicare a sistemelor expert ..............................77

§ 3.6. Metodologia de dezvoltare a sistemelor expert.................................................. .........81

§ 3.7. Sisteme expert de bază .................................................. ................... .........86

§ 3.8. Dificultăți în dezvoltarea sistemelor expert și modalitățile acestora

depășirea ................................................. .................................................90

§ 3.9. Scopul, clasificarea roboților ................................................. .94

§ 3.10. Exemple de roboți și sisteme robotizate.................................................. ...97

§ 3.10.1. Roboți de uz casnic (casnici) ............................................. .....97

§ 3.10.2. Roboți de salvare și roboți de cercetare..................................99

§ 3.10.3. Roboţi pentru industrie şi medicină..................................100

§ 3.10.4. Roboţi militari şi sisteme robotizate..................................101

§ 3.10.5. Creierul ca dispozitiv analog-digital.................................................. ......104

§ 3.10.6. Roboți - jucării ................................................. ..............104

§ 3.11. Probleme de implementare tehnică a roboților ............................................. .. 105

§ 3.12. Roboți industriali adaptivi.................................................. .....................114

§ 3.12.1. Adaptare și formare ............................................................. ............... .............114

§ 3.12.2. Clasificarea sistemelor de control adaptiv

roboți industriali ................................................. .............. ...117

§ 3.12.3. Exemple de sisteme de control adaptiv pentru roboţi..............123

§ 3.12.4. Probleme în crearea roboţilor industriali..............................128

§ 3.13. Tehnologii de rețea neuronală și neurocalculatoare..................................132

§ 3.13.1. Caracteristicile generale ale direcției .................................... 132

§ 3.13.2. Neuropachetele .................................................. .............................................140

§ 3.14. Rețele neuronale............................................................. ...............................147

§ 3.14.1. Perceptronul și dezvoltarea lui ............................................................. ............. .....147

3.14.1.1. Neuronul matematic al lui McCulloch-Pitts .................147

3.14.1.2. Perceptronul lui Rosenblatt și regula lui Hebb..............................148

3.14.1.3. Regulă Delta și recunoașterea literelor..............................................150

3.14.1.4. Adaline, Madaline si regula Delta Generalizata..........152

§ 3.14.2. Perceptron multistrat și algoritm invers

propagarea erorilor ................................................. .............. .....155

§ 3.14.3. Tipuri de funcții de activare.................................................. .160

Introducere

Știința numită „inteligență artificială” este inclusă în complexul informaticii, iar tehnologiile create pe baza acesteia aparțin tehnologiilor informaționale. Sarcina acestei științe este de a oferi raționament și acțiune rezonabile cu ajutorul sistemelor de calcul și a altor dispozitive artificiale. Ca direcție științifică independentă, inteligența artificială (AI) există de puțin peste un sfert de secol. În acest timp, atitudinea societății față de specialiștii implicați în astfel de cercetări a evoluat de la scepticism la respect. În țările avansate, munca în domeniul sistemelor inteligente este susținută la toate nivelurile societății. Există o părere puternică că aceste studii vor determina natura societății informaționale, care înlocuiește deja civilizația industrială care a atins cel mai înalt apogeu în secolul al XX-lea. În ultimii ani de formare a IA ca disciplină științifică specială, s-au format modelele sale conceptuale, s-au acumulat metode și tehnici specifice care îi aparțin doar și s-au stabilit câteva paradigme fundamentale. Inteligența artificială a devenit o știință complet respectabilă, nu mai puțin onorabilă și necesară decât fizica sau biologia.

Inteligența artificială este o știință experimentală. Natura experimentală a IA este că atunci când creează anumite reprezentări și modele pe computer, cercetătorul compară comportamentul acestora între ele și cu exemple de rezolvare a acelorași probleme de către un specialist, le modifică pe baza acestei comparații, încercând să realizeze o potrivire mai bună între rezultate. Pentru modificarea programelor într-un mod „monoton” pentru a îmbunătăți rezultatele, trebuie să aveți idei și modele inițiale rezonabile. Ele sunt furnizate de studii psihologice ale conștiinței, în special psihologia cognitivă.

O caracteristică importantă a metodelor AI este că se ocupă doar de acele mecanisme de competență care sunt de natură verbală (permit reprezentarea simbolică). Nu toate mecanismele pe care le folosește o persoană pentru a rezolva probleme sunt așa.

Cartea prezintă elementele de bază ale AI, care fac posibilă navigarea într-un număr mare de publicații despre problemele inteligenței artificiale și obținerea cunoștințelor necesare în acest domeniu al științei.

Dezvoltarea inteligenței artificiale

Istoria inteligenței artificialeînceput nu cu mult timp în urmă. În a doua jumătate a secolului al XX-lea, conceptul inteligență artificială(inteligenta artificiala) si au fost propuse mai multe definitii. Una dintre primele definiții, care, în ciuda amplorii considerabile a interpretării, încă nu și-a pierdut relevanța, este prezentarea inteligenței artificiale ca: „O modalitate de a face un computer să gândească ca o persoană”.

Relevanța intelectualizării sistemelor de calcul se datorează nevoii umane de a găsi soluții în astfel de realități ale lumii moderne precum inexactitatea, ambiguitatea, incertitudinea, neclaritatea și lipsa de temei a informațiilor. Necesitatea de a crește viteza și adecvarea acestui proces stimulează crearea de sisteme de calcul, prin interacțiunea cu lumea reală prin intermediul roboticii, echipamentelor de producție, instrumentelor și altor hardware-uri, poate contribui la implementarea acestuia.

Sistemele de calcul, care se bazează exclusiv pe logica clasică - adică algoritmi de rezolvare a problemelor cunoscute, se confruntă cu probleme atunci când întâmpină situații incerte. În schimb, ființele vii, deși pierd în viteză, sunt capabile să ia decizii de succes în astfel de situații.

Un exemplu de inteligență artificială

Un exemplu este prăbușirea bursei din 1987, când programele de calculator au vândut acțiuni în valoare de sute de milioane de dolari pentru a obține un profit de câteva sute de dolari, ceea ce a creat de fapt condițiile prealabile pentru prăbușire. Situația a fost corectată după transferul controlului total asupra tranzacționării bursiere către sisteme inteligente protoplasmatice, adică către oameni.

Definind conceptul de inteligență ca categorie științifică, acesta trebuie înțeles ca adecvarea sistemului pentru învățare. Astfel, una dintre cele mai specifice, în opinia noastră, definiții ale inteligenței artificiale este interpretată ca fiind capacitatea sistemelor automate de a dobândi, adapta, modifica și completa cunoștințe pentru a găsi soluții la probleme greu de oficializat.

În această definiție, termenul „cunoaștere” are o diferență calitativă față de conceptul de informație. Această diferență reflectă bine reprezentarea acestor concepte în formă piramida informatieiîn fig. 1.

Figura 1 - Piramida informației

Se bazează pe date, următorul nivel este informația, iar nivelul de cunoștințe completează piramida. Pe măsură ce treci în sus în piramida informației, volumele de date se transformă în valoarea informațiilor și mai departe în valoarea cunoștințelor. Adică, informațiile apar în momentul interacțiunii dintre datele subiective și metodele obiective de prelucrare a acestora. Cunoașterea se formează pe baza formării de relații distribuite între informații eterogene, creând în același timp un sistem formal - o modalitate de a le reflecta în concepte sau enunțuri precise.

Este suportul unui astfel de sistem - un sistem de cunoștințe, într-o stare atât de actualizată, care vă permite să construiți programe de acțiune pentru a găsi soluții la sarcinile care le sunt atribuite, ținând cont de situațiile specifice care se formează la un un anumit moment în timp din mediu, este sarcina inteligenței artificiale. Astfel, inteligența artificială poate fi reprezentată și ca un algoritm universal capabil să creeze algoritmi pentru rezolvarea de noi probleme.

,

Tutorial. Magnitogorsk: MaGU, 2008. 282 p. Manualul prezintă modele de reprezentare a cunoștințelor, teoria sistemelor expert, elementele de bază ale programării logice și funcționale. Se acordă multă atenție istoriei dezvoltării inteligenței artificiale. Prezentarea materialului este însoțită de un număr mare de ilustrații, sunt oferite exerciții și întrebări pentru autocontrol.
Lucrarea se adresează studenților cu normă întreagă și cu frecvență parțială care studiază în domeniile „Informatică”, „Educație fizică și matematică (Profil – Informatică)”.Introducere în Inteligența Artificială.
Istoria dezvoltării inteligenței artificiale ca direcție științifică.
Principalele direcții de cercetare în domeniul inteligenței artificiale.
Aspecte filozofice ale problemei inteligenței artificiale.
Întrebări pentru autocontrol.
Literatură.
Modele de reprezentare a cunoștințelor.
Cunoştinţe.
Model logic de reprezentare a cunoștințelor.
rețele semantice.
Rame.
model de producție.
Alte modele de reprezentare a cunoștințelor.
Exerciții.
Întrebări pentru autocontrol.
Literatură.
Sistem expert.
Conceptul de sistem expert.
Tipuri de sisteme expert și tipuri de sarcini de rezolvat.
Structura și modurile de funcționare ale sistemului expert.
Tehnologia expertă de dezvoltare a sistemelor.
Instrumente de sistem expert.
Sisteme informatice inteligente.
Exerciții.
Întrebări pentru autocontrol.
Literatură.
Prolog ca limbaj de programare logic.
Introducere în programarea logică.
Reprezentarea cunoștințelor despre domeniul subiectului sub formă de fapte și reguli ale bazei de cunoștințe Prolog.
Sensul descriptiv, procedural și automat al unui program Prolog.
Tehnici de bază de programare în Prolog.
Mediul Visual Prolog.
Exerciții.
Literatură.
Introducere în programarea funcțională.
Istoria programării funcționale.
Proprietățile limbajelor funcționale de programare.
Sarcini de programare funcțională.
Exerciții.
Răspunsuri pentru autotest.
Literatură.
sari.
Atasamentul 1.
Anexa 2
Anexa 3

Fișierul va fi trimis la adresa de e-mail selectată. Poate dura până la 1-5 minute înainte de a-l primi.

Fișierul va fi trimis în contul dvs. Kindle. Poate dura până la 1-5 minute înainte de a-l primi.
Vă rugăm să rețineți că trebuie să adăugați e-mailul nostru [email protected] la adresele de e-mail aprobate. Citeste mai mult.

Puteți scrie o recenzie de carte și vă puteți împărtăși experiențele. Ceilalți cititori vor fi întotdeauna interesați de părerea dvs. despre cărțile pe care le-ați „citit. Fie că ați iubit cartea sau nu, dacă vă oferiți gândurile sincere și detaliate, atunci oamenii vor găsi cărți noi care sunt potrivite pentru ei.

Ministerul Educației și Științei al Federației Ruse Universitatea de Stat Magnitogorsk O.E. Maslennikova, I.V. Popova Fundamentals of Artificial Intelligence Manual Magnitogorsk 2008 UDC 681.142.1.01 LBC Z97 M Revizori: Doctor în științe fizice și matematice, profesor S.I. Kadchenko Doctor în științe tehnice, profesorul A,S. Sarvarov M. Maslennikov O.E., Popova I.V. Fundamentele inteligenței artificiale: manual. indemnizatie / O.E. Maslennikova, I.V. Popov. - Magnitogorsk: MaGU, 2008. - 282 p. ISBN 978-5.86781-609-4 Manualul prezintă modele de reprezentare a cunoștințelor, teoria sistemelor expert, bazele programării logice și funcționale. Se acordă multă atenție istoriei dezvoltării inteligenței artificiale. Prezentarea materialului este însoțită de un număr mare de ilustrații, sunt oferite exerciții și întrebări pentru autocontrol. Lucrarea este axată pe studenții cu normă întreagă și cu fracțiune de normă care studiază în domeniile „Informatică”, „Educație fizică și matematică (Profil – Informatică)”. UDC 681.142.1.01 BBC Z97 ISBN 978-5.86781-609-4  Maslennikova O.E., Popova I.V., 2008  Magnitogorsk State University, 2008 -2- CUPRINS CAPITOLUL 1. INTRODUCERE ARTIFICĂRII...... ........ 5 1.1. ISTORIA DEZVOLTĂRII INTELIGENTEI ARTIFICIALE CA DIRECŢIE ŞTIINŢIFICĂ ....................................... ........................ ................................ ....................... ........... 9 1.2. PRINCIPALE DIRECȚII DE CERCETARE ÎN DOMENIUL INTELIGENTEI ARTIFICIALE........................................... ................................................... ................................... ............. 13 1.3. ASPECTE FILOZOFICE ALE PROBLEMEI INTELIGENTEI ARTIFICIALE....... 16 INTREBARI PENTRU AUTOCONTROL............................. ................ ................................. ........ 21 LITERATURĂ....... ................................. .................................................. ............... 21 CAPITOLUL 2. MODELE DE REPREZENTARE A CUNOAȘTERILOR............................ ............................................. 22 2.1. CUNOŞTINŢE................................................. ................................................. . ...... 22 2.2. MODEL LOGIC DE REPREZENTARE A CUNOAȘTERILOR............................................. ..................... 25 2.3. REȚELE SEMANTICE................................................... ................. ................................ ................. 58 2.4. CADRE ................................................. . ................................................. ...... 59 2.5. MODELUL PRODUSULUI ............................................... ............................................... 62 2.6. ALTE MODELE DE REPREZENTARE A CUNOAȘTERILOR ............................................. ............. .... 64 EXERCIȚII ............................ ................................................... .............. ......... 78 ÎNTREBĂRI DE AUTO-CHECK-IN ................ .............................................. 83 LITERATURĂ ... ....... ................................................. ...................................................... 84 CAPITOLUL 3. SISTEME DE EXPERȚI........................................... ............................. .......... 86 3.1. CONCEPTUL DE SISTEM EXPERT ............................................... ............................................. 86 3.2. TIPURI DE SISTEME EXPERT ȘI TIPURI DE PROBLEME REZOLVATE............................................ ......... 89 3.3. STRUCTURA ȘI MODURI DE OPERARE ALE SISTEMULUI EXPERT ............................................. .... 99 3.4. TEHNOLOGIE PENTRU DEZVOLTAREA SISTEMELOR EXPERT .................................................. ................... 102 3.5. INSTRUMENTELE SISTEMULUI EXPERT ................................................ 113 3.6. SISTEME DE INFORMAȚII INTELIGENTE ................................................ ... 129 EXERCIȚII .............. ............................... ................. ................................ ............... 135 ÎNTREBĂRI DE AUTO-CHECK-IN .............. .............. ................................................... .. 136 LITERATURA .................................. ............ ..................................... ............. ......... 138 CAPITOLUL 4. PROLOGUL CA LIMBAJ DE PROGRAMARE LOGICĂ ............................... ................................................... .. ........... 139 4.1. VEDERE A PROGRAMĂRII LOGICE ................................................ 139 4.2. REPREZENTAREA CUNOAȘTENȚILOR DESPRE DOMENIUL SUBIECTULUI CA FAPTE ȘI REGULI ALE BAZEI DE CUNOAȘTERE PROLOGUL.................................... ............................ ................................ ............................ 140 4.3 . SENSUL DESCRIPȚIONAL, PROCEDURAL ȘI MAȘINĂ AL PROGRAMULUI PRIVIND PROLOGUL...................................... ..................... ................................ ................... ............. 148 4.4. TEHNICI DE BAZĂ DE PROGRAMARE ÎN PROLOG ............................................. 151 4.5. MEDIUL VISUAL PROLOG .................................................. .............................. 154 EXERCIȚII .............. ................ ................................. .................................................. .. 194 LITERATURA .............. ................................ ................ ................................. ........ 197 -3- CAPITOLUL 5. INTRODUCEREA PROGRAMĂRII FUNCȚIONALE. ................................................. . .............................. 199 5.1. ISTORIA PROGRAMĂRII FUNCȚIONALE ............................................. .... 200 5.2. PROPRIETĂȚI ALE LIMBAJURILOR DE PROGRAMARE FUNCȚIONALĂ 203 5.3. SARCINI DE PROGRAMARE FUNCȚIONALĂ.................................................. .............. 207 EXERCIȚII.............................. ............................. ................................. ................................................... ................... 210 RĂSPUNSURI DE AUTOTESTARE....... ................... .............................. ................... 210 LITERATURA .................................................. .............................................. ..... 211 GLOSAR ....................... .................... ............................................................. ......... 213 ANEXA 1 .................. ................... ............................................................. .... 221 ANEXA 2 ..................... ...................... .......................................................... 252 ANEXA 3 ................................ ...................... .............................................. 265 -4 - PREFAȚA B În ultima vreme există o creștere a interesului pentru inteligența artificială, cauzată de cerințele crescute pentru sistemele informaționale. Omenirea se îndreaptă în mod constant către o nouă revoluție a informațiilor, comparabilă ca scară cu dezvoltarea Internetului. Inteligența artificială este o ramură a informaticii, al cărei scop este dezvoltarea de instrumente hardware și software care permit unui utilizator non-programator să își stabilească și să își rezolve propriile sarcini, considerate în mod tradițional intelectual, comunicând cu un computer într-un subset limitat al limbajului natural. . Istoria inteligenței artificiale ca nouă direcție științifică începe la mijlocul secolului al XX-lea. Până în acest moment, multe premise pentru originea sa au fost deja formate: printre filosofi au existat de mult timp dispute cu privire la natura omului și procesul de cunoaștere a lumii, neurofiziologii și psihologii au dezvoltat o serie de teorii cu privire la activitatea creierului uman și gândirea, economiștii și matematicienii au pus întrebări de calcule optime și de reprezentare a cunoștințelor despre lume în formă formalizată; în cele din urmă, s-a născut fundamentul teoriei matematice a calculului - teoria algoritmilor - și au fost create primele calculatoare. Scopul acestui manual este de a prezenta principalele direcții și metode utilizate în inteligența artificială, precum și de a determina posibilitatea utilizării acestora în activitatea pedagogică profesională. Acest tutorial este format din cinci capitole. Primul oferă o scurtă introducere în inteligența artificială: este luată în considerare istoria dezvoltării acesteia ca direcție științifică, sunt evidențiate principalele domenii ale inteligenței artificiale și aspecte filozofice ale problemei precum posibilitatea existenței, siguranța și utilitatea sunt luate în considerare inteligența artificială. Al doilea capitol este dedicat descrierii modelelor clasice de reprezentare a cunoștințelor: logic, semantic, cadru, producție și rețea neuronală. Al treilea capitol tratează aspecte teoretice și practice ale dezvoltării sistemelor expert; descrie învelișul XpertRule. Al patrulea capitol conturează principiile de bază ale programării în limbajul Prolog, descrie mediul Visual Prolog. Al cincilea capitol acoperă elementele de bază ale programării funcționale cu exemple LISP. Manualul contine un numar mare de ilustrații, exerciții și întrebări pentru autocontrol. Pentru confortul studierii materialului, este oferit un glosar. -5- CAPITOLUL 1. INTRODUCERE ÎN INTELIGENTEA ARTIFICIALĂ Inteligența artificială (IA) este un domeniu nou al informaticii, al cărui subiect este orice activitate intelectuală umană care se supune unor legi cunoscute. Figurat, această direcție este numită „fiul cel mare al informaticii”, deoarece multe probleme nerezolvate de ea își găsesc treptat soluția în cadrul inteligenței artificiale. Se știe că subiectul informaticii este prelucrarea informațiilor. Domeniul AI include astfel de cazuri (sarcini) din această prelucrare care nu pot fi efectuate folosind metode algoritmice simple și precise și dintre care există foarte multe. AI se bazează pe cunoștințele despre procesul gândirii umane. În același timp, nu se știe exact cum funcționează creierul uman, totuși, pentru a dezvolta programe eficiente cu elemente AI, cunoștințele despre trăsăturile inteligenței umane pe care le are astăzi știința sunt suficiente. În același timp, AI nu încearcă să copieze exact activitatea creierului uman, ci încearcă să-și simuleze funcțiile folosind tehnologia computerizată. Încă din momentul nașterii sale, IA s-a dezvoltat ca o direcție interdisciplinară care interacționează cu informatica și cibernetica, științele cognitive, logica și matematica, lingvistica și psihologia, biologia și medicina (Fig. 1). Informatica si cibernetica. Mulți specialiști au venit la AI din informatică și cibernetică. De asemenea, multe probleme combinatorii care nu pot fi rezolvate prin metode tradiționale în informatică au migrat în domeniul AI. În plus, rezultatele obținute în IA sunt împrumutate la crearea software-ului și devin parte din Computer Science (informatica). Științe cognitive. Științele cognitive sunt științe despre cunoaștere. AI se ocupă și de cunoaștere. Dar științele cognitive folosesc nu numai abordări informaționale și neurobiologice, ci iau în considerare și aspectele sociale și psiholingvistice ale utilizării cunoștințelor. Logica si matematica. Logica stă la baza tuturor formalismelor de reprezentare a cunoștințelor cunoscute, precum și a limbajelor de programare precum Lisp și Prolog. Pentru a rezolva problemele AI, se folosesc metode de matematică discretă, teoria jocurilor și teoria operațiilor. La rândul său, AI poate fi folosit pentru a demonstra teoreme, pentru a rezolva probleme în domenii diverse matematică: geometrie, calcul integral. Psihologie și lingvistică. Recent, specialiștii AI au devenit interesați de aspectele psihologice ale comportamentului uman pentru a-l modela. Psihologia ajută la construirea modelelor de evaluare a valorii, luând decizii subiective. De interes este psihologia comunicării -6 - „om-calculator”, psiholingvistica. Lingvistica computațională este o parte a inteligenței artificiale care se bazează pe metode matematice pentru procesarea naturală și limbaje artificiale pe de o parte, iar pe fenomenologia limbajului, pe de altă parte. Biologia și medicina vă permit să studiați și să înțelegeți mai bine activitatea creierului, sistemele de vedere, auzul și alți senzori naturali și să dați un nou impuls domeniului modelării muncii lor. Orez. 1. Interacțiunea IA cu alte discipline Nu există o definiție unică a IA, așa cum nu există o definiție unică a inteligenței naturale. Dintre numeroasele puncte de vedere asupra acestui domeniu științific, trei domină acum. 1. Cercetarea în domeniul IA este cercetare fundamentală, în cadrul căreia se dezvoltă modele și metode de rezolvare a problemelor, care erau considerate în mod tradițional intelectuale și nu erau susceptibile până acum de formalizare și automatizare. 2. AI este o nouă direcție în informatică asociată cu noi idei de rezolvare a problemelor pe un computer, cu dezvoltarea unei tehnologii de programare fundamental diferite, cu o tranziție la o arhitectură de computer care respinge arhitectura clasică, care datează din prima calculatoare. 3. Ca urmare a muncii în domeniul AI, iau naștere o mulțime de sisteme aplicate care rezolvă probleme pentru care sistemele create anterior nu erau potrivite. -7- Pentru a ilustra prima abordare, putem da un exemplu cu un calculator. La începutul secolului calcule aritmetice cu cifre cu mai multe cifre erau lotul câtorva indivizi talentați, iar capacitatea de a efectua astfel de operații aritmetice în minte era considerată pe bună dreptate un dar unic al naturii și era un obiect. cercetare științifică. În vremea noastră, invenția calculatorului a făcut această abilitate disponibilă chiar și unui elev de clasa a treia. Același lucru este valabil și în AI: îmbunătățește capacitățile intelectuale ale unei persoane, preluând soluția unor sarcini care nu au fost formalizate anterior. Pentru a ilustra a doua abordare, putem lua în considerare istoria unei încercări de a crea un computer de generația a cincea. La mijlocul anilor '80, Japonia a anunțat începerea unui proiect ambițios de a crea computere de generația a cincea. Proiectul sa bazat pe ideea unei implementări hardware a limbajului PROLOG. Totuși, proiectul s-a încheiat cu eșec, deși a avut o influență puternică asupra dezvoltării și distribuției limbajului PROLOG ca limbaj de programare. Motivul eșecului a fost concluzia grăbită că o singură limbă (deși una destul de universală) poate oferi singura soluție pentru toate problemele. Practica a arătat că până acum nu a fost inventată o paradigmă de programare universală pentru rezolvarea tuturor problemelor și este puțin probabil să apară. Acest lucru se datorează faptului că fiecare sarcină este o parte a domeniului subiectului care necesită un studiu atent și o abordare specifică. Încercările de a crea noi arhitecturi de computer continuă și sunt asociate cu calcule paralele și distribuite, neurocalculatoare, procesoare probabilistice și fuzzy. Munca în domeniul creării de sisteme expert (ES) poate fi atribuită celei de-a treia direcții, cea mai pragmatică, în AI. Sistemele experte sunt sisteme software care înlocuiesc un specialist uman în domenii înguste de activitate intelectuală care necesită utilizarea unor cunoștințe speciale. Crearea ES în domeniul medicinei (cum ar fi MYCIN) permite răspândirea cunoștințelor în zonele cele mai îndepărtate. Astfel, în combinație cu accesul la telecomunicații, orice medic din mediul rural poate obține sfaturi de la un astfel de sistem, înlocuindu-l cu comunicarea cu un specialist pe o problemă restrânsă. În Rusia, AI și-a găsit susținători aproape din momentul apariției sale. Cu toate acestea, această disciplină nu a primit imediat recunoaștere oficială. AI a fost criticată ca o sub-ramură a ciberneticii, considerată „pseudosștiință”. Până la un moment dat, numele șocant „inteligență artificială” a jucat și el un rol negativ. Deci, în Prezidiul Academiei de Științe a existat o glumă că „cei cărora le lipsește inteligența naturală sunt angajați în inteligența artificială”. Cu toate acestea, astăzi AI este o direcție științifică recunoscută oficial în Rusia, revistele „Sisteme de control și mașini” și „AI News” sunt publicate și conferințe științifice si seminarii. Există Asociația Rusă a AI, care are aproximativ 200 de membri, al cărei președinte este doctorul în științe tehnice D.A. Pospelov, iar președintele de onoare este academician al Academiei Ruse de Științe G.S. Pospelov. Există Institutul Rus de Inteligență Artificială sub Consiliul Președintelui Federației Ruse pentru Informatică și Informatică. În cadrul Academiei Ruse de Științe există un Consiliu științific pe problema „Inteligentei artificiale”. Cu participarea acestui Consiliu, au fost publicate multe cărți pe tema IA și traduceri. Lucrările lui D.A. Pospelov, Litvintseva și Kandrashina sunt binecunoscute - în domeniul reprezentării și prelucrării cunoștințelor, E.V. Popov și Khoroshevsky - în domeniul prelucrării limbajului natural și al sistemelor experte, Averkin și Melikhov în domeniul logicii fuzzy și al seturilor fuzzy, Stefanyuk - în domeniul sistemelor de învățare, Kuznetsov, Finn și Vagin - în domeniul logicii și cunoștințelor reprezentare. În Rusia, există o școală lingvistică de computer puternică în mod tradițional, care provine din munca lui Melchuk pe modelul SmyslText. Printre faimoșii lingviști informatici se numără Apresyan, Gorodetsky, Paducheva, Narinyani, Leontiev, Chaliapin, Zaliznyak Sr., Kibrik Sr., Baranov și mulți alții. etc. 1.1. Istoria dezvoltării inteligenței artificiale ca direcție științifică Ideea de a crea o asemănare artificială a minții umane pentru a rezolva probleme complexe și a simula capacitatea de gândire a fost în aer încă din cele mai vechi timpuri. În Egiptul antic, a fost creată o statuie mecanică „reînviitoare” a zeului Amon. În Iliada lui Homer, zeul Hephaestus a falsificat creaturi umanoide. În literatură, această idee a fost jucată de mai multe ori: de la Galatea lui Pigmalion până la Pinocchio a lui Papa Carlo. Cu toate acestea, strămoșul inteligenței artificiale este considerat a fi filozoful, matematicianul și poetul spaniol medieval R. Lull (c.1235-c.1315), care în secolul XIV. a încercat să creeze o mașină pentru rezolvarea diferitelor probleme pe baza unei clasificări generale a conceptelor. În secolul al XVIII-lea. G. Leibniz (1646 - 1716) și R. Descartes (1596 - 1650) au dezvoltat independent această idee, propunând limbaje universale pentru clasificarea tuturor științelor. Aceste idei au stat la baza dezvoltărilor teoretice în domeniul creării inteligenței artificiale (Fig. 2). Dezvoltarea inteligenței artificiale ca direcție științifică a devenit posibilă numai după crearea computerelor. Acest lucru s-a întâmplat în anii 40. Secolului 20 În același timp, N. Wiener (1894 - 1964) și-a creat lucrările fundamentale despre o nouă știință - cibernetica. Termenul de inteligență artificială a fost propus în 1956 la un seminar cu același nume de la Universitatea Stanford (SUA). Seminarul a fost dedicat dezvoltării de probleme logice, nu de calcul. La scurt timp după recunoașterea inteligenței artificiale ca ramură independentă a științei, a existat o divizare în două domenii principale: neurocibernetica și cibernetica „cutie neagră”. Și numai în prezent -9 - tendințele spre unificarea din nou a acestor părți într-un singur întreg au devenit vizibile. În URSS, în 1954, la Universitatea de Stat din Moscova, sub îndrumarea profesorului A.A.Lyapunov (1911 - 1973), și-a început activitatea seminarul „Automate și gândire”. La acest seminar au participat fiziologi, lingviști, psihologi și matematicieni de frunte. Este general acceptat că în acest moment s-a născut inteligența artificială în Rusia. La fel ca și în străinătate, s-au remarcat direcțiile de neurocibernetică și cibernetică ale „cutiei negre”. În 1956 -1963. au fost efectuate căutări intensive de modele și algoritmi ai gândirii umane și dezvoltarea primelor programe. S-a dovedit că niciuna dintre științele existente - filozofie, psihologie, lingvistică - nu poate oferi un astfel de algoritm. Apoi cibernetica s-a oferit să-și creeze propriile modele. Au fost create și testate diverse abordări. Prima cercetare în domeniul AI este asociată cu crearea unui program pentru jocul de șah, deoarece se credea că abilitatea de a juca șah este un indicator al inteligenței ridicate. În 1954, omul de știință american Newell a conceput ideea creării unui astfel de program. Shannon a propus, iar Turing a precizat, o metodă pentru crearea unui astfel de program. Americanii Shaw și Simon, în colaborare cu un grup de psihologi olandezi din Amsterdam, sub îndrumarea lui de Groot, au creat un astfel de program. Pe parcurs, a fost creat un limbaj special IPL1 (1956), conceput pentru a manipula informația în formă simbolică, care a fost predecesorul limbajului Lisp (MacCarthy, 1960). Totuși, primul program de inteligență artificială a fost programul Logic Theorist, conceput pentru a demonstra teoreme în calculul propozițional (9 august 1956). Programul de șah a fost creat în 1957 (NSS - Newell, Shaw, Simon). Structura sa și structura programului Logic Theorist au stat la baza creării programului Universal Problem Solver (GPS-General Problem Solving). Acest program, analizând diferențele dintre situații și construind obiective, este bun la rezolvarea puzzle-urilor turnul din Hanoi sau la calcularea integralelor nedefinite. EPAM (Programul elementar de percepție și memorare) - program elementar pentru percepție și memorare, conceput de Feigenbaum. În 1957, un articol al lui Chomsky, unul dintre fondatorii lingvisticii computaționale, a apărut despre gramatica transformațională. La sfârşitul anilor '50. s-a născut modelul de căutare labirint. Această abordare reprezintă problema ca un anumit grafic care reflectă spațiul de stare1, iar în acest grafic se realizează căutarea căii optime de la datele de intrare la cele rezultate. S-a depus multă muncă pentru dezvoltarea acestui model, dar în rezolvare sarcini practice ideea nu a fost adoptată pe scară largă. 1 Spațiul stărilor este un graf ale cărui vârfuri corespund situațiilor întâlnite în problemă („situații problemă”), iar soluția problemei se reduce la găsirea unui drum în acest graf. - 10 - Începutul anilor 60. - era programării euristice. O euristică este o regulă care nu este justificată teoretic, dar permite reducerea numărului de iterații în spațiul de căutare. Programarea euristică este dezvoltarea unei strategii de acțiune bazată pe euristici cunoscute, predeterminate. În anii 1960, au fost create primele programe care au funcționat cu interogări în limbaj natural. Programul BASEBALL (Green et al., 1961) a răspuns solicitărilor privind rezultatele meciurilor anterioare de baseball, programul STUDENT (Bobrow, 1964) a fost disponibil pentru a rezolva probleme algebrice formulate în limba engleză. Orez. 2. Repere în dezvoltarea IA ca domeniu științific S-au pus mari speranțe în munca în domeniul traducerii automate, al cărui început este asociat cu numele lingvistului rus Belskaya. Cu toate acestea, cercetătorilor au fost nevoie de mulți ani pentru a înțelege că traducerea automată nu este o problemă izolată și necesită prezența unei etape atât de necesare precum înțelegerea pentru a avea succes. Printre cele mai semnificative rezultate obținute de oamenii de știință autohtoni în anii 60, trebuie remarcat algoritmul „Cortex” de M. Bongard, care simulează activitatea creierului uman în recunoașterea modelelor. În 1963 - 1970. metodele logicii matematice au început să fie conectate la rezolvarea problemelor. O nouă abordare a logicii formale, bazată pe reducerea raționamentului la o contradicție, a apărut în 1965 - 11 - (J. Robinson). Pe baza metodei de rezoluție, care a făcut posibilă demonstrarea automată a teoremelor în prezența unui set de axiome inițiale, în 1973 a fost creat limbajul Prolog. În URSS în 1954-1964. se creează programe separate şi se investighează căutarea soluţiilor la probleme logice. La Leningrad (LOMI - Departamentul Leningrad al Institutului de Matematică numit după V.A.Steklov) se creează un program care demonstrează automat teoremele (ALPEV LOMI). Se bazează pe derivarea inversă originală a lui S.Yu.Maslov, similară cu metoda de rezoluție Robinson. În 1965-1980. se dezvoltă noua stiinta- managementul situațional (corespunde reprezentării cunoștințelor în terminologia occidentală). Fondatorul acestei școli științifice este profesorul D.A. Pospelov. Au fost dezvoltate modele speciale de reprezentare a situaţiilor - reprezentări de cunoştinţe. În străinătate, cercetarea în domeniul AI este însoțită de dezvoltarea unor limbaje de programare de nouă generație și de crearea unor sisteme de programare din ce în ce mai sofisticate (Lisp, Prolog, Plannar, QA4, Macsyma, Reduce, Refal, ATNL, TMS). Rezultatele obținute încep să fie folosite în robotică, la controlul roboților, staționari sau mobili, care funcționează într-un spațiu real tridimensional. Acest lucru ridică problema creării de organe artificiale de percepție. Înainte de 1968, cercetătorii lucrau în principal cu „microspații”, au creat sisteme potrivite pentru domenii de aplicare atât de specifice și limitate precum jocurile, geometria euclidiană, calculul integral, „lumea cuburilor”, prelucrarea frazelor simple și scurte cu un mic. vocabular . Aproape toate aceste sisteme au folosit aceeași abordare - o simplificare a combinatoriei bazată pe reducerea necesarului de enumerare a alternativelor bazată pe bunul simț, utilizarea funcțiilor de evaluare numerică și diverse euristici. La începutul anilor 1970, a existat un salt cuantic în cercetarea inteligenței artificiale. Acest lucru se datorează a două motive.  În primul rând. Toți cercetătorii și-au dat seama treptat că tuturor programelor create anterior le lipsește cel mai important lucru - cunoștințe profunde în domeniul relevant. Diferența dintre un expert și o persoană obișnuită este că un expert are experiență într-un anumit domeniu, adică. cunoștințe acumulate de-a lungul anilor.  În al doilea rând. Apare o problemă specifică: cum să transferați aceste cunoștințe într-un program dacă creatorul direct nu are aceste cunoștințe. Răspunsul este clar: programul în sine trebuie să le extragă din datele primite de la expert. Cercetările privind rezolvarea problemelor și înțelegerea limbajului natural sunt unite de unul singur o problemă comună- prezentarea cunoștințelor. Până în 1970, existau - 12 - multe programe bazate pe aceste idei. Primul dintre acestea este programul DENDRAL. Este conceput pentru a genera formule structurale ale compușilor chimici pe baza informațiilor de la un spectrometru de masă. Programul a fost dezvoltat la Stanford cu participarea laureatului Nobel D. Lederberg. Ea a câștigat experiență în procesul de funcționare proprie. Expertul a pus în el multe mii de fapte elementare, prezentate sub forma unor reguli separate. Sistemul luat în considerare a fost unul dintre primele sisteme expert și rezultatele muncii sale sunt uimitoare. În prezent, sistemul este furnizat consumatorilor împreună cu spectrometrul. În 1971, Terry Winograd a dezvoltat sistemul SHRDLU, care simulează un robot care manipulează blocuri. Puteți vorbi engleză cu robotul. Sistemul este interesat nu numai de sintaxa frazelor, ci și înțelege corect sensul acestora datorită cunoștințelor semantice și pragmatice despre „lumea cuburilor” sa. De la mijlocul anilor 1980, inteligența artificială a fost comercializată în străinătate. Investițiile anuale cresc, se creează sisteme expert industriale. Există un interes din ce în ce mai mare pentru sistemele de autoînvățare. La noi, 1980-1990. se desfășoară cercetări active în domeniul reprezentării cunoștințelor, se dezvoltă limbaje de reprezentare a cunoștințelor, sisteme expert (peste 300). Limba REFAL este creată la Universitatea de Stat din Moscova. În 1988, a fost creată IA - Asociația de Inteligență Artificială. Peste 300 de cercetători sunt membri. Președintele Asociației - D.A. Pospelov. Centrele majore - la Moscova, Sankt Petersburg, Pereslavl-Zalessky, Novosibirsk. 1.2. Principalele direcții de cercetare în domeniul inteligenței artificiale În prezent, AI este un domeniu științific în dezvoltare rapidă și extrem de ramificat. Numai în lingvistica computațională din lume se țin anual peste 40 de conferințe. Aproape fiecare țară europeană, precum și SUA, Canada, Japonia, Rusia, Asia de Sud-Est găzduiesc în mod regulat conferințe naționale despre IA. În Rusia, acest eveniment are loc la fiecare doi ani sub auspiciile Asociației Ruse pentru IA (RAAI). În plus, Conferința Internațională Comună privind IA (IJCAI) are loc la fiecare doi ani. Peste 3 mii de publicații periodice publică rezultate științifice în acest domeniu. Nu există o clasificare completă și strictă a tuturor domeniilor AI; o încercare de a clasifica sarcinile pe care AI le rezolvă este prezentată în Fig. 3. Potrivit D.A. Pospelov în AI, există două abordări dominante ale cercetării în domeniul AI: neurobionic și informațional (Fig. 4 și 5). - 13 - Sarcini General Formal Expert Percepție joc (Șah, Go, Puzzle-uri) Inginerie Procesarea limbajului natural Matematică Analiză științifică Raționament de bun simț Geometrie Analiză financiară Control robot Verificare Program Diagnosticare medicală 3. Sarcinile AI Susținătorii primei și-au stabilit scopul de a reproduce artificial procesele care au loc în creierul uman. Această direcție este situată la intersecția dintre medicină, biologie și cibernetică. În același timp, ei studiază creierul uman, identifică modalități de lucru, creează mijloace tehnice pentru repetarea structurilor biologice și a proceselor care au loc în ele. Domeniul IA poate fi împărțit condiționat în cinci secțiuni majore: - structuri asemănătoare neuronilor; − programe de rezolvare a problemelor intelectuale; − sisteme bazate pe cunoştinţe; − programare intelectuală; − sisteme inteligente. Fiecare secțiune poate fi reprezentată după cum urmează (vezi Figura 4-9). - 14 - Fig. 4. Structuri neuronale Fig. 5. Programe pentru rezolvarea problemelor intelectuale 6. Sisteme bazate pe cunoștințe - 15 - Pic. 7. Programare inteligentă 8. Sisteme inteligente 1.3. Aspecte filozofice ale problemei inteligenței artificiale Principala problemă filosofică din domeniul inteligenței artificiale este legată de căutarea unui răspuns la întrebarea: este posibil sau nu simularea gândirii umane. În cazul în care se primește vreodată un răspuns negativ la această întrebare, atunci toate celelalte întrebări din domeniul AI nu vor avea cel mai mic sens. Prin urmare, la începerea studiului inteligenței artificiale, se presupune în prealabil un răspuns pozitiv. Dovezi ale posibilității de modelare a gândirii umane. 1. Scolastica: consistența inteligenței artificiale și a Bibliei. Aparent, chiar și cei care sunt departe de religie cunosc cuvintele Sfintei Scripturi: „Și Domnul a făcut pe om după chipul și asemănarea Lui...”. Pe baza acestor cuvinte, putem concluziona că, din moment ce Domnul, în primul rând, a creat oamenii și, în al doilea rând, ei sunt în esență asemănători cu El, atunci oamenii sunt destul de capabili să creeze pe cineva după chipul și asemănarea unei persoane. 2. Biologic. Crearea unei minți noi într-un mod biologic este un lucru destul de comun pentru o persoană. Observând copiii, vedem că - 16 - aceștia dobândesc cele mai multe cunoștințe prin antrenament, și nu așa cum sunt încorporate în ei în prealabil. Această afirmație nu a fost dovedită la nivelul actual, dar conform semnelor externe, totul arată exact așa. 3. Empiric. Ceea ce anterior părea a fi vârful creativității umane - jocul de șah, dame, recunoașterea imaginilor vizuale și sonore, sinteza de noi solutii tehnice, în practică s-a dovedit că nu este așa sarcina dificila. Acum se lucrează nu la nivelul posibilității sau imposibilității implementării celor de mai sus, ci despre găsirea celui mai optim algoritm - de multe ori aceste probleme nici măcar nu sunt clasificate drept probleme de inteligență artificială. Se speră că este posibilă și o simulare completă a gândirii umane. 4. Posibilitatea de auto-reproducere. Capacitatea de a se reproduce a fost mult timp considerată apanajul organismelor vii. Cu toate acestea, unele fenomene care apar în natura neînsuflețită (de exemplu, creșterea cristalelor, sinteza de molecule complexe prin copiere) sunt foarte asemănătoare cu auto-reproducția. La începutul anilor 1950, J. von Neumann a început un studiu amănunțit al auto-reproducției și a pus bazele teoriei matematice a „automatelor care se reproduc”. De asemenea, a demonstrat teoretic posibilitatea creării lor. Există și diverse dovezi informale ale posibilității de auto-replicare, dar pentru programatori, cea mai frapantă dovadă, poate, va fi existența virușilor informatici. 5. Algoritmic. Posibilitatea fundamentală de automatizare a soluționării problemelor intelectuale cu ajutorul unui computer este oferită de proprietatea universalității algoritmice. Această proprietate a unui computer înseamnă că este posibil să se implementeze programatic (adică să se reprezinte sub forma unui program de calculator) oricăror algoritmi de conversie a informațiilor asupra acestora. Mai mult, procesele generate de acești algoritmi sunt potențial fezabile, adică sunt fezabile ca rezultat al unui număr finit de operații elementare. Fezabilitatea practică a algoritmilor depinde de mijloacele disponibile, care se pot schimba odată cu dezvoltarea tehnologiei. Astfel, în legătură cu apariția computerelor de mare viteză, algoritmi care anterior erau doar potențial fezabil au devenit practic realizabili. În plus, conținutul acestei proprietăți este de natură predictivă: ori de câte ori în viitor orice prescripție este recunoscută de algoritm, atunci indiferent de forma și mijloacele în care este exprimată inițial, aceasta poate fi specificată și sub forma unui computer. program. Totuși, nu ar trebui să se gândească la asta mașini de calcul iar roboții pot, în principiu, să rezolve orice problemă. Analiza diferitelor probleme i-a condus pe matematicieni la o descoperire remarcabilă. Existența unor astfel de tipuri de probleme pentru care un singur algoritm eficient care să rezolve toate problemele este imposibil a fost riguros dovedită. de acest tip; în acest sens, este imposibil să rezolvi probleme de acest tip cu ajutorul mașinilor de calcul. Acest fapt contribuie la o mai bună înțelegere a ceea ce mașinile pot face și ce nu pot face. Într-adevăr, afirmația despre imposibilitatea algoritmică a unei anumite clase de probleme nu este doar o admitere că un astfel de algoritm este necunoscut și nu a fost încă găsit de nimeni. O astfel de afirmație este în același timp o prognoză pentru toate timpurile viitoare că acest gen de algoritm nu ne este cunoscut și nu va fi indicat de nimeni, sau, cu alte cuvinte, că nu există. AI poate fi considerată într-o serie de instrumente (intelectuale și non-intelectuale) care au fost create și stăpânite de omenire pe calea dezvoltării sale istorice. Acestea includ:  unelte de mână;  mașini și mașini;  limba și vorbirea;  dispozitive de numărare;  mijloace de VT şi telecomunicaţii. Filosofii susțin că producția de instrumente (în sensul larg al cuvântului) este cea mai mare vedere importantă activități care îi deosebesc pe strămoșii noștri de alte primate. Ființele umane se remarcă printre animale prin capacitatea lor de a produce cunoștințe și instrumente. Nicio altă invenție tehnologică sau socio-politică nu a provocat o separare atât de mare în dezvoltarea homo sapience de alte specii de animale sălbatice. Dezvoltarea tehnologiei informatice poate fi împărțită în linii mari în două domenii: procesare digitală și procesare simbolică. Prima direcție a făcut informațiile mult mai convenabile pentru stocare, procesare și transmitere decât toate îmbunătățirile anterioare ale tehnologiei hârtiei. Computerul a depășit toate instrumentele de calcul din trecut (abac, abac, mașină de adăugare) ca viteză, varietate de funcții, ușurință în utilizare. Extinderea în mod constant a domeniului de aplicare al automatizării în domeniul muncii mentale monotone, procesarea informațiilor digitale a extins domeniul de aplicare al tiparului și al revoluției industriale la noi frontiere. A doua ramură a tehnologiei informatice, procesarea semnelor (termenul lui Newell și Simon) sau inteligența artificială, a permis computerului să imite percepția și orientarea senzorială, raționamentul și rezolvarea problemelor, procesarea limbajului natural și alte abilități umane. Cu alte cuvinte, AI este un nou tip de set de instrumente, alternativă la cele existente. Această realitate i-a forțat pe filozofii AI să treacă dincolo de întrebarea „Este posibil să se creeze o mașină inteligentă?” la problema influenţei instrumentelor intelectuale asupra societăţii. Printre altele, se are în vedere posibilul efect social al dezvoltării IA și anume: - 18 - o creștere a nivelului de inteligență al întregii societăți, care va da noi descoperiri, invenții și o nouă înțelegere a umanității însăși.  schimbarea situaţiei în care majoritatea oamenilor este mijlocul şi instrumentul de producţie. Următoarea întrebare filozofică a AI este scopul creației. În principiu, tot ceea ce facem în viața practică are de obicei ca scop să nu facem nimic altceva. Totuși, cu suficient nivel inalt viața (o cantitate mare de energie potențială) a unei persoane, nu mai este lenea (în sensul dorinței de a economisi energie), ci instinctele de căutare care joacă primele roluri. Să presupunem că o persoană a reușit să creeze un intelect care îl depășește pe al său (dacă nu în calitate, atunci în cantitate). Ce se va întâmpla cu omenirea acum? Ce rol va juca persoana? De ce este nevoie de el acum? Și, în general, este necesar în principiu să creăm AI? Aparent, cel mai acceptabil răspuns la aceste întrebări este conceptul de „amplificator de inteligență” (IA). Potrivit S.L. Sotnik, o analogie cu președintele statului este potrivită aici - nu i se cere să cunoască valența vanadiului sau limbajul de programare Java pentru a lua o decizie cu privire la dezvoltarea industriei vanadiului. Fiecare își face treaba lui - un chimist descrie un proces tehnologic, un programator scrie un program; economistul îi spune preşedintelui că, investind în spionaj industrial, ţara va primi 20%, iar în industria vanadiului - 30% pe an. Cred că, cu o astfel de formulare a întrebării, oricine poate face alegerea corectă. În acest exemplu, președintele folosește un AI biologic - un grup de specialiști cu creierul lor proteic. Dar sunt deja folosite MI nevii - de exemplu, computere, dispozitive de calcul de bord. În plus, o persoană folosește de multă vreme amplificatoare de putere (SS) - un concept care este în multe privințe similar cu UI. Mașini, macarale, motoare electrice, prese, pistoale, avioane și multe, multe altele servesc drept amplificatoare de putere. Principala diferență dintre UI și CS este prezența voinței: prima poate avea propriile „dorințe” și acționează diferit de ceea ce se așteaptă de la ea. Astfel, apare problema de securitate a sistemelor AI. Cum să eviți acele consecințe negative care însoțesc orice nouă realizare a revoluției științifice și tehnologice? Această problemă bântuie mintea omenirii încă de pe vremea lui Karel Capek, care a folosit pentru prima dată termenul „robot”. Alți scriitori de science fiction au contribuit, de asemenea, foarte mult la discuția sa. Cele mai cunoscute sunt o serie de povestiri ale scriitorului și savantului de science fiction Isaac Asimov, în care se găsește cea mai dezvoltată și acceptată soluție la problema securității. Acestea sunt cele trei legi ale roboticii. 1. Un robot nu poate face rău unei persoane sau, prin inacțiunea sa, nu permite ca o persoană să fie rănită.  - 19 - 2. Un robot trebuie să se supună comenzilor date de un om, cu excepția cazurilor în care aceste comenzi contravin primei legi. 3. Robotul trebuie să aibă grijă de siguranța lui, în măsura în care nu contravine primei și a doua legi. Ulterior, Asimov adaugă „Legea Zero” la această listă: „Un robot nu poate dăuna umanității sau, prin inacțiunea ei, permite ca umanitatea să fie rănită”. La prima vedere, astfel de legi, dacă sunt pe deplin respectate, ar trebui să asigure siguranța omenirii. Cu toate acestea, o privire mai atentă ridică câteva întrebări. În primul rând, legile sunt formulate în limbajul uman, ceea ce nu permite traducerea lor simplă într-o formă algoritmică. Să presupunem că această problemă a fost rezolvată. Acum, ce va însemna sistemul AI prin termenul „rău”? Va decide ea că însăși existența unei persoane este un rău complet? La urma urmei, fumează, bea, îmbătrânește și își pierde sănătatea de-a lungul anilor, suferă. Răul mai mic nu ar pune capăt rapid acestui lanț de suferințe? Desigur, pot fi introduse câteva completări legate de valoarea vieții și libertatea de exprimare. Dar acestea nu vor mai fi cele trei legi simple care erau în original. Mai mult: ce va decide sistemul AI într-o situație în care salvarea unei vieți este posibilă doar în detrimentul alteia? De interes deosebit sunt acele cazuri în care sistemul nu are informatii complete despre cine este cine. Cu toate acestea, în ciuda acestor probleme, aceste legi reprezintă o bază informală destul de bună pentru testarea fiabilității sistemului de securitate pentru sistemele AI. Deci, nu există cu adevărat un sistem de securitate fiabil? Pe baza conceptului de UI, putem oferi următoarea opțiune. Conform numeroaselor experimente, în ciuda lipsei de date fiabile despre ce este responsabil fiecare neuron individual din creierul uman, multe dintre emoții corespund de obicei excitării unui grup de neuroni (ansamblu neuronal) într-o zonă complet previzibilă. Au fost efectuate și experimente inverse, când stimularea unei anumite zone a determinat rezultatul dorit. Acestea ar putea fi emoții de bucurie, opresiune, frică, agresivitate. Astfel, pare posibil să luăm ca funcție obiectivă gradul de satisfacție al creierului gazdei umane. Dacă sunt luate măsuri pentru a exclude activitățile autodistructive într-o stare de depresie, precum și pentru a asigura altele conditii speciale psihic, atunci se va întâmpla următoarele. Deoarece se presupune că o persoană normală nu își va face rău și, fără un motiv special, altora, iar UI face acum parte din acest individ (nu neapărat o comunitate fizică), atunci toate cele trei legi ale roboticii sunt valabile în mod automat. În același timp, problemele de securitate sunt mutate în domeniul psihologiei și al aplicării legii, întrucât - 20 - sistemul (instruit) nu va face nimic pe care proprietarul său nu și-ar dori. Întrebări pentru autocontrol 1. Ce este inteligența artificială? 2. Cu ce ​​domenii științifice interacționează inteligența artificială? 3. Descrieți abordările de înțelegere a subiectului inteligenței artificiale ca disciplină științifică. 4. Descrieți starea actuală a IA în Rusia. 5. Descrieți stadiul „pre-computer” al dezvoltării inteligenței artificiale 6. Descrieți dezvoltarea inteligenței artificiale în anii 40. Secolului 20 7. Descrieți dezvoltarea inteligenței artificiale în anii 50. Secolului 20 8. Descrieți dezvoltarea inteligenței artificiale în anii 60. Secolului 20 9. Descrieți dezvoltarea inteligenței artificiale în anii 70. Secolului 20 10. Descrieți dezvoltarea inteligenței artificiale în anii 80. Secolului 20 11. Descrieți principalele sarcini ale inteligenței artificiale. 12. Ce secțiuni sunt alocate în domeniul inteligenței artificiale? 13. Oferiți dovezi ale posibilității de modelare a gândirii umane. 14. Ce justifică trecerea la problema influenței instrumentelor intelectuale asupra societății? 15. Care sunt cauzele și cum poate fi rezolvată problema de securitate a sistemelor de inteligență artificială? Literatură 1. Luger, J., F. Inteligența artificială: strategii și metode de rezolvare a problemelor complexe: per. din engleză / George F. Luger.- M .: Editura Williams, 2003. - 864 p. 2. Fundamentele inteligenței artificiale / B.V. Kostrov, V.N. Ruchkin, V.A. Fulin. – M.: DESS, Tekhbuk, 2007. – 192 p. 3. Site-ul web al Asociației Ruse de Inteligență Artificială. – Mod de acces: http://www.raai.org/ 4. Sotnik, S.L. Fundamentele proiectării sistemelor de inteligență artificială: prelegeri. – Mod de acces: http://newasp.omskreg.ru/intellect/f25.htm 5. Russell, S. Artificial intelligence: a modern approach / Stuart Russell, Peter Norvig. – M.: Editura„Williams”, 2006. - 1408 p. - 21 - CAPITOLUL 2. MODELE DE REPREZENTARE A CUNOAȘTERII 2.1. Cunoștințe Ce tipuri de cunoștințe sunt necesare pentru a permite un comportament „inteligent”? „Secretul” fenomenologiei modelului de cunoaștere se află în lumea din jurul nostru. ÎN caz general modelul de reprezentare a cunoștințelor ar trebui să ofere o descriere diferită a obiectelor și fenomenelor care alcătuiesc domeniul în care trebuie să lucreze agentul inteligent. Tematica este o parte a realității asociată cu rezolvarea unei probleme. Un agent inteligent este un sistem (uman, program) care are abilități intelectuale. Cunoașterea reprezintă tiparele relevate ale domeniului subiectului (principii, conexiuni, legi). Cunoașterea are o structură mai complexă decât datele (metadatele). În același timp, cunoașterea este specificată atât extensiv (adică printr-un set de fapte specifice corespunzătoare unui concept dat și legate de aria subiectului), cât și intens (adică prin proprietăți corespunzătoare unui concept dat și unei scheme de relații între atribute). ). Tipuri de cunoștințe Obiecte. De obicei, o persoană reprezintă cunoștințele în termeni de fapte despre obiectele din jurul său. Din acest motiv, trebuie să existe modalități de a reprezenta obiecte, clase (categorii, tipuri) de obiecte, de a descrie proprietăți și interacțiuni ale obiectelor. O modalitate de a clasifica obiectele este o ierarhie de clasă. În plus, este necesar să se facă distincția între obiectele abstracte care sunt folosite pentru a desemna grupuri (mulțimi, clase) de indivizi. Exemplu „Păsările au aripi” „Porumbeii sunt păsări” „Zăpada este albă” „Această carte este nouă” – obiect individual Situații – tot felul de interacțiuni între obiecte. Exemplu „Ieri a plouat” „Trenul a întârziat 10 minute” Un exemplu de clasificare a situațiilor propusă de Paducheva este prezentat în Fig. 9. În plus, pentru a putea descrie situațiile în sine, modelul de prezentare trebuie să poată descrie localizarea evenimentelor pe axa timpului, precum și relația lor cauzală. Situații Stări statice Proprietăți și relații constante Procese dinamice Incidente stabile Rezultate temporare Evenimente Fig. 9. Un exemplu de clasificare a situațiilor propusă de Paducheva La prezentarea unei ierarhii a obiectelor și a relațiilor, principala dificultate este alegerea bazei, i.e. proprietate (atribut) conform căreia are loc împărțirea. De obicei, chiar dacă o persoană distinge cu ușurință între diferite tipuri de obiecte și situații din viață, încercarea de clasificare verbală prezintă o mare problemă. Proceduri. Comportamentul (de exemplu: ciclismul) necesită cunoștințe care depășesc cunoștințele declarative despre obiecte și relațiile dintre ele. Aceasta este cunoștințele despre cum să faci aceasta sau acea acțiune, care se numește cunoștințe procedurale sau experiență (abilitate). La fel ca mersul pe bicicletă, majoritatea comportamentelor conștiente (cum ar fi comunicarea, înțelegerea sau demonstrarea teoremei) implică cunoștințe procedurale și este adesea dificil să distingem clar între cunoștințele procedurale și cunoștințele obiectului. Exemplu Termenul „doctrinalism” – descrie situația lipsei de cunoștințe procedurale a unei persoane care se pretinde a fi specialist Meta-cunoașterea include, de asemenea, ceea ce oamenii știu despre propria lor capacitate de procesator de cunoștințe: puncte forte, puncte slabe, niveluri de experiență în diverse domenii și un sentiment de progres în rezolvarea problemelor. Clasificarea cunoștințelor După profunzime:  Cunoștințe superficiale (un set de asociații empirice și relații cauzale între conceptele domeniului de studiu).  Cunoașterea aprofundată (resumări, imagini, analogii, care reflectă înțelegerea structurii disciplinei și relația dintre conceptele individuale). Pe cale de existenţă:  Fapte (împrejurări binecunoscute).  Euristică (cunoștințe din experiența experților). Din punct de vedere al rigidității:  Cunoștințe rigide (vă permite să primiți recomandări clare fără ambiguitate în condiții inițiale date).  Cunoașterea soft (permite soluții multiple, vagi și diverse opțiuni recomandări). Prin forme de prezentare:  Cunoștințe declarative (fapte sub formă de seturi de date structurate).  Cunoștințe procedurale (algoritmi sub formă de proceduri de prelucrare a faptelor). Pe calea dobândirii:  Cunoștințe științifice (obținute în cursul pregătirii și/sau studiului sistematic).  Cunoașterea cotidiană, cotidiană (obținută în cursul vieții). Pentru a plasa baza de cunoștințe în vederea utilizării ei în rezolvarea problemelor aplicate, este necesar să o descriem formal folosind modele matematice. După cum sa menționat deja, reprezentarea cunoștințelor este posibilă cu ajutorul modelelor declarative și procedurale. Modelele declarative tipice includ de obicei modele de rețea și de cadru; la procedural – logic şi de producţie. Din punctul de vedere al abordării reprezentării cunoștințelor într-un calculator, modelele de reprezentare a cunoștințelor pot fi clasificate astfel: Pe baza abordării euristice: „troika”, modele de producție, cadru, rețea Pe baza abordării teoretice: bazate pe logica formală și bazată pe „logica umană” – modală și multivalorică. - 24 - 2.2. Model logic de reprezentare a cunoștințelor Concepte de bază ale logicii Majoritatea oamenilor cred că cuvântul „logic” înseamnă „rezonabil”. Astfel, dacă o persoană raționează logic, atunci raționamentul său este justificat, deci nu permite concluzii pripite. Logica este știința formelor și metodelor gândirii corecte. Aceasta înseamnă că, având în vedere numărul necesar de fapte adevărate, concluzia trebuie să fie întotdeauna adevărată. Pe de altă parte, dacă concluzia logică este invalidă, aceasta înseamnă că s-a tras o concluzie falsă pe baza faptelor adevărate. Este necesar să se separe conceptele de logică formală și informală. O caracteristică distinctivă a logicii informale este că este folosită în viața de zi cu zi. O dovadă logică complexă este un lanț de concluzii logice în care o concluzie duce la alta și așa mai departe. În logica formală, numită și logică simbolică, important este modul în care se realizează concluzia logică, cum sunt luați în considerare alți factori care oferă dovada adevărului sau falsității concluziei finale în mod valid. Logica are nevoie și de semantică pentru a da semnificație simbolurilor. Logica formală folosește o semantică bazată nu pe utilizarea cuvintelor care poartă o încărcătură emoțională, ci pe alegerea unor nume semnificative pentru variabile, cum ar fi programarea. Ca și matematica, logica studiază în mod direct nu obiectele empirice, ci abstracte. Aceasta ridică întrebarea: care este natura sau statutul ontologic al obiectelor abstracte? Despre ce fel de obiecte abstracte vorbim? În logica (clasică) se disting două varietăţi fundamentale de obiecte abstracte: − concepte (proprietăţi); − relaţiile. Conceptele pot fi fie simple, fie complexe. Conceptele complexe sunt un set de concepte relativ mai simple (proprietăți simple) interconectate prin una sau alta relație. Obiectele abstracte mai complexe sunt judecățile, ale căror elemente structurale sunt și concepte și anumite relații. Judecățile, la rândul lor, sunt elemente structurale ale inferențelor (sisteme de judecăți), iar inferențele sunt elemente structurale ale conceptelor și teoriilor (sisteme de inferențe). Pe Fig. 10 prezintă ierarhia tipurilor de obiecte abstracte în logica clasică. Specificul logicii constă în faptul că studiază cele mai generale, universale relații, sau relații, dintre obiectele abstracte. În conformitate cu aceasta, există următorul obiect - 25 - definiție a logicii: „Logica este știința relațiilor universale (în general valabile) între concepte, judecăți, inferențe și alte obiecte abstracte”. Concepte și teorii (sisteme de inferență) Inferențe (sistem de judecăți) Judecăți Concepte (proprietăți) Relații Fig. 10. Ierarhia tipurilor de obiecte abstracte în logica clasică Exemplul „Student” este un concept. „Afilierea” este o proprietate. „Elev sârguincios”, „Elev din anul 4” – relații. „O persoană studiază la o universitate” este o judecată. „Dacă o persoană studiază la un institut, atunci este fie un student, fie un student absolvent” - o concluzie. „Teoria calculului predicatului de ordinul întâi” este un concept. Concept Conceptele sunt obiecte abstracte accesibile înțelegerii umane ca proprietăți (trăsături) simple și complexe ale obiectelor empirice. Conceptul se opune unor entități precum: „cuvânt”, „percepție”, „obiect empiric”. Conceptul este o unitate universală de gândire și baza activității intelectuale. Cele mai importante caracteristici conceptele sunt conţinutul şi volumul. Toate caracteristicile logice și operațiile logice sunt rezultatul cunoașterii inferențiale din legea relației invers proporționale dintre conținutul și volumul conceptului. Orice concept are domeniul de aplicare al conceptului (sfera conceptuală) și adăugarea la domeniul de aplicare al conceptului (Fig. 11, 12). Sfera unui concept este o mulțime (mulțime) de toate acele empirice (obiecte individuale) cărora acest concept este inerent (ca proprietate, semn). - 26 - Supliment la volum - totalitatea tuturor acelor obiecte empirice care nu au acest concept. Concept Х а1 а2 V Volumul а3 Fig. 11. Conceptul X, domeniul de aplicare al conceptului X, elementul de aplicare (a1, a2, a3) Х Nu Х Fig. 12. Domeniul de aplicare și complementul său Exemplu Concept: model de date factuale. Domeniul de aplicare al conceptului: modele de date relaționale, de rețea, ierarhice Suplimentarea domeniului de aplicare: modele de date documentare (descriptor, tezaur, modele de date orientate pe format de document) Conceptele pot fi de următoarele tipuri: 1) după sfera de aplicare: a. uniformă (U =1 element, KAMAZ); b. general (U>1 element, Uzina Auto Moscova); 2) prin existenţa elementelor: a. nevid(elev); b. gol (kolobok); 3) prin structura elementelor: a. necolectiv (Polul Nord); b. colectiv (debitor); 4) după conținut: a. irelevant(audienta); b. corelativ (părinți); 5) prin prezența calităților, proprietăților, relațiilor a. pozitiv (virtute); b. negativ (infracțiune); 6) prin calitatea elementelor: a. înregistrat (revista " sisteme deschise ", 1/ 2008); b. neînregistrat (inteligentsia), abstract; 7) după natura obiectului: a. specific (pen); - 27 - b. abstract (model). Pe baza tipurilor enumerate, este posibil să se ofere o descriere logică a oricărui concept, adică să se arate utilizarea conceptului în toate cele șapte sensuri. De exemplu, conceptul de debitor este general, nevid, colectiv, corelativ, pozitiv, neînregistrabil și specific. Metode de bază de înțelegere a conceptelor Principalele metode de înțelegere a unui concept includ: - abstractizarea; − comparaţie; − generalizare; − analiză; − sinteza. Abstracția este selecția mentală (înțelegerea) unei anumite proprietăți sau relații prin abstracția de la alte proprietăți sau relații ale unui obiect empiric. Comparația este stabilirea unor asemănări sau diferențe între obiecte. Generalizarea este selecția mentală a unui concept prin compararea altor concepte. Abstracția, comparația și generalizarea sunt tehnici strâns legate între ele. Ele pot fi numite „proceduri cognitive”. Comparația este imposibilă fără abstracție. Generalizarea presupune comparație și în același timp nu este altceva decât un fel de abstractizare complexă etc. Analiza este împărțirea mentală a unui obiect empiric sau abstract în componentele sale structurale constitutive (părți, proprietăți, relații). Sinteza este unirea mentală a diferitelor obiecte într-un obiect integral. Exemple 1. Compararea oamenilor după înălțime presupune abstracție pentru a evidenția proprietatea „creștere” a conceptului „persoană”. 2. Generalizare: „scaun” și „masă” – „mobilier”. Corelarea conceptelor Pentru a explica relațiile dintre concepte, puteți folosi diagrame sub formă de cercuri Euler (Fig. 13). Exemple Uniformă (echivalent): Kazan este capitala. Independent (traversare): pasager-student. Depunere: copac - mesteacăn. Opus (contraralitate): alb și negru. - 28 - Conraditory: alb - nu alb. Subordonare (subcontrar): ofițeri (maior-căpitan). Împărțirea logică a conceptului este împărțirea domeniului de aplicare a conceptului în părți care nu se intersectează pe baza unui atribut. Concepte X, Y Incompatibil M(X)M(Y)= Compatibil M(X)M(Y) Independent Contradictoriu Y=Nu-X X Y X M(X)M(Y); M(X)M(Y)M(X); M(X)M(Y)M(Y) M(X)M(Y)=U Identitatea contorului (uniformă) X, YXYM(X)= M(Y) M(X)M(Y) UX subordonat lui YXYM(X)M(Y)=M(X) Fig. 13. Corelarea conceptelor În acest caz, există: − conceptul generic X; − membrii de diviziune (conceptele de specie A şi B); − baza de diviziune (adică semn). - 29 - Trei reguli de împărțire logică. 1. Regula incompatibilității. Volumele conceptelor de specii nu trebuie să se intersecteze (adică, membrii diviziunii nu trebuie să fie incompatibili între ei); 2. Regula succesiunii. Nu puteți împărți simultan din mai multe motive; 3. Regula proporționalității. Suma volumelor conceptelor specifice ar trebui să fie egală cu volumul conceptului generic. Împărțirea dihotomică (forma cea mai riguroasă) este împărțirea conceptelor după principiul contradicției (A, nu-A). Clasificările sunt anumite sisteme (seturi ordonate) de concepte specifice. Clasificările sunt folosite pentru a căuta noi relații între concepte, precum și pentru a sistematiza cunoștințele existente. Exemplul 1. Tabelul periodic este un exemplu de clasificare științifică a elementelor chimice. 2. Un exemplu de clasificare a sistemelor informatice (SI) este prezentat în figura de mai jos. Baze de diviziune: scop funcțional. A, B, C sunt exemple de sisteme informatice conform acestei clasificări. IS Sisteme factografice Sisteme de inteligență artificială Sisteme documentare IS „Universitate” Lingvo „Consultant Plus” A B C Fig. 14. Un exemplu de clasificare Tehnicile de înțelegere a conceptelor (abstracție, comparație, generalizare, analiză, sinteză, divizare) sunt proceduri cognitive universale și fundamentale care nu au fost încă modelate cu succes în cadrul inteligenței artificiale. Aceasta este una dintre secțiunile fundamentale ale logicii clasice, care trebuie integrată în teoria bazelor de cunoaștere. După aceea, sarcinile de modelare a unor astfel de acte mentale ca ipoteze, predarea cunoștințelor declarative vor deveni disponibile, iar procedurile de inferență vor deveni mai încăpătoare. - 30 - Judecata Judecata este un obiect structural complex care reflectă relația obiectivă dintre obiect și proprietatea acestuia. Judecata se opune unor entități precum: „propoziție”, „percepții”, „scene din lumea reală”. Exemplu. Următoarele propoziții exprimă aceeași propoziție: - „Un rechin este un pește răpitor”; - "Toți rechinii sunt pești răpitori." - „Peștii răpitori sunt rechini”. Logica clasică consideră structura unei propoziții simple într-o interpretare ușor diferită de cea obișnuită în studiile logico-lingvistice moderne. Deci, în conformitate cu conceptele logicii clasice despre structura unei judecăţi, o judecată simplă este un obiect abstract, ale cărui elemente structurale principale sunt: ​​− un concept individual (IC); − concept de predicat (PC); − relaţia de predicţie (RP). Exemple Având în vedere propoziţia: „Platon este un filozof”. În această propoziție, care exprimă propoziția S: „Platon” este un subiect logic, i.e. un simbol care denotă conceptul individual de judecată S. „Filosoful” este un predicat logic, adică. un simbol care denotă conceptul de predicat al propoziției S. „A fi” este o legătură subiect-predicat, adică. un simbol care denotă o relație de predicție. Astfel, putem trage următoarea concluzie intermediară: - un concept individual este un sistem de concepte, considerat ca o entitate conceptuală, un obiect empiric; - concept de predicat - un concept considerat ca o proprietate a unui anumit obiect empiric; - relație de predicare - o relație care conectează conceptele individuale și predicate ale unui obiect empiric într-un obiect abstract integral. În plus, se pot distinge mai multe tipuri de judecăți simple (vezi Fig. 15). Există mai multe moduri de a formaliza judecățile elementare. - 31 - 1-a cale. Limbajul natural, care este considerat în mod tradițional greoi și inexact, dar o metodă formală care ar putea fi comparată în universalitatea sa cu limbajul natural nu a fost încă inventată. Judecăți simple Atributiv Despre relațiile de existență Călugării, de regulă, sunt modesti Magnitogorsk la sud de Chelyabinsk Există brazi albaștri Pic. 15. Tipuri de judecati simple Metoda a 2-a. Logica aristotelică tradițională. a 3-a cale. Logica simbolică modernă. Principalele tipuri de judecăți complexe Pe lângă judecățile exprimate în logica aristotelică prin enunțuri de forma A, E, I, O (vezi p. Logica lui Aristotel), există diverse feluri de judecăți complexe. Cu cât judecata este mai complexă, cu atât este mai dificil să o formalizezi cu acuratețe prin logica tradițională aristotelică și, în unele cazuri, o astfel de formalizare este pur și simplu imposibilă. Prin urmare, analiza structurii logice a judecăților complexe este oportună pentru a fi efectuată prin intermediul logicii simbolice moderne, inclusiv a mijloacelor logicii propoziționale și a logicii predicatelor (a se vedea paragrafele relevante ale paragrafului). Principalele tipuri de judecăți complexe sunt − conjunctive; − disjunctive; − implicativ; - modal: o alethic (necesar, poate din întâmplare); o epistemic (stiu, cred, cred, cred); o deontic (hotarat, interzis); o axiologice (bun, rău); o temporal (în trecut, mai devreme, ieri, mâine, în viitor); - întrebări: o dacă - întrebări; o întrebări ceva. Există, de asemenea, o continuitate a claselor de logică și a metodelor de inteligență artificială. - 32 - Inferență Prin deducție (în logica tradițională) se înțelege o formă de gândire prin care se face o tranziție mentală (numită „inferență”) de la una sau mai multe propoziții (numite „premisă”) la o altă propoziție (numită „concluzie” ). Astfel, o concluzie este un obiect abstract complex în care, cu ajutorul anumitor relații, una sau mai multe judecăți sunt combinate într-un singur întreg. Termenul silogism este folosit pentru a desemna o concluzie în logică. Silogismele sunt fie formale, fie informale. Primele silogisme formale au fost folosite de Aristotel. Silogistica dezvoltată de el (teoria silogismelor formale, adică inferențe) a avut un impact semnificativ asupra dezvoltării logicii antice și scolastice, a servit drept bază pentru crearea teoriei logice moderne a inferențelor. Pentru consolidarea conceptelor de logică este necesară finalizarea exercițiilor de la pagina 78. Legile logicii Cele mai importante legi logice includ: - identitățile (orice obiect este identic doar cu el însuși); - non-incoerență (afirmațiile care se contrazic între ele nu pot fi adevărate în același timp); - a treia exclusă (din două afirmații care sunt reciproc contradictorii, una este adevărată, cealaltă este falsă, iar a treia nu este dată); - motiv suficient (orice afirmație adevărată are un motiv suficient, datorită căruia este adevărată, nu falsă). Să aruncăm o privire mai atentă la fiecare dintre aceste poziții. I. Legea identității Legea identității dovedește că fiecare gând este identic cu sine, „A este A” (A → A), unde A este orice gând. De exemplu: „Sarea de masă NaCl constă din Na și Cl”. Dacă această lege este încălcată, sunt posibile erorile enumerate mai jos. Amphibolia (din grecescul amphibolos - ambiguitate, dualitate) este o eroare logică, care se bazează pe ambiguitatea expresiilor lingvistice. Un alt nume pentru această eroare este „înlocuirea tezei”. Exemplu „Se spune pe bună dreptate că limba te va aduce la Kiev. Și am cumpărat ieri o limbă afumată. Acum pot merge în siguranță la Kiev.” - 33 - Echivocarea este o eroare logică, care se bazează pe folosirea aceluiași cuvânt în sensuri diferite. Echivocarea este adesea folosită ca un dispozitiv artistic retoric. În logică, această tehnică este numită și „substituție de concept”. Exemplu „Bătrânul lup de mare este într-adevăr un lup. Toți lupii trăiesc în pădure.” Aici eroarea se datorează faptului că în prima judecată cuvântul „lup” este folosit ca metaforă, iar în a doua premisă - în sensul său direct. Logomakhia este o dispută despre cuvinte, când în timpul discuției participanții nu pot ajunge la un acord. un singur punct vedere datorită faptului că conceptele originale nu au fost clarificate. Astfel, legea identității exprimă una dintre cele mai importante cerințe ale gândirii logice – certitudinea. II. Legea necontradicţiei Această lege exprimă cerinţa necontradicţiei gândirii. Legea necontradicției spune: două judecăți, dintre care una afirmă ceva despre subiectul gândirii („A este B”), iar cealaltă neagă același lucru despre același subiect de gândire („A nu este B” ), nu poate fi concomitent adevărată, dacă în același timp atributul B este afirmat sau negat despre subiectul gândirii A, considerat în același timp și în același sens. De exemplu, hotărârile „Kama este un afluent al Volgăi” și „Kama nu este un afluent al Volgăi” nu pot fi adevărate simultan dacă aceste judecăți se referă la același râu. Nu va exista nicio contradicție dacă afirmăm ceva și negăm același lucru despre aceeași persoană, care, totuși, este considerată în momente diferite. Deci, judecățile „Această persoană este un student al MaSU” și „Această persoană nu este un student al MaSU” pot fi simultan adevărate dacă prima dintre ele înseamnă o singură dată (când această persoană studiază la MaSU) și al doilea - altul (când a absolvit facultatea). Legea necontradicției indică faptul că dintre două propoziții opuse, una este în mod necesar falsă. Dar întrucât se extinde la propoziții opuse și contradictorii, întrebarea celei de-a doua propoziții rămâne deschisă: nu poate fi atât adevărată, cât și falsă: hârtia nu poate fi albă și nealbă. III. Legea mijlocului exclus Legea mijlocului exclus afirmă că două propoziții contradictorii nu pot fi ambele false: una dintre ele este în mod necesar adevărată; celălalt este în mod necesar fals; a treia hotărâre este exclusă, adică fie A este adevărat, fie nu-A. - 34 - Legea mijlocului exclus formulează o cerință importantă pentru gândirea ta: nu poți să te abate de la recunoașterea adevărului uneia dintre cele două afirmații contradictorii și să cauți ceva al treilea între ele. Dacă unul dintre ele este recunoscut ca fiind adevărat, atunci celălalt trebuie să fie recunoscut ca fals și să nu-l caute pe al treilea. Exemplu: animalele pot fi fie vertebrate, fie nevertebrate, nu poate exista nimic al treilea. IV. Legea rațiunii suficiente Conținutul acestei legi poate fi exprimat astfel: pentru a fi considerată complet de încredere, orice propoziție trebuie dovedită, i.e. trebuie cunoscute suficiente temeiuri pe baza cărora este considerat adevărat. Un motiv suficient poate fi altul, deja testat de practică, recunoscut ca gândire adevărată, al cărui rezultat necesar este adevărul poziției care se dovedește. Exemplu. Motivul pentru propunerea „Camera se încălzește” este faptul că mercurul din termometru se extinde. În știință, sunt considerate temeiuri suficiente: a) afirmații despre fapte verificate ale realității, b) definiții științifice, c) afirmații științifice dovedite anterior, d) axiome și, de asemenea, e) experiență personală. Inferența logică Inferența logică este derivarea unei formule dintr-un set de alte formule logice prin aplicarea regulilor de inferență. Interpret expresii booleene, folosind o concluzie logică, construiește lanțul necesar de calcule pe baza descrierii inițiale. Semnificația abordării logice constă în posibilitatea construirii unui interpret, a cărui funcționare nu depinde de formule logice. Reguli în vedere logica au forma: P0←P1, …, Pn. P0 se numește obiectiv, iar P1, P2, ..., Pn - corpul regulii. Predica P1, P2, ..., Pn condiţii care trebuie îndeplinite pentru ca atingerea scopului P0 să fie cu succes. Să analizăm elementele de bază ale inferenței logice folosind exemplul procedurii de determinare a corectitudinii raționamentului. Definiția raționamentului corect logic Când spunem că o propoziție D decurge logic dintr-o altă P, ne referim la următoarele: ori de câte ori propoziția P este adevărată, atunci este și propoziția D. În logica propozițională, avem de-a face cu formulele P și D. , în funcție de unele variabile X1, X2,.., Xn. Definiție. Vom spune că formula D(X1, X2,...,Xn) decurge logic din formula P(X1, X2,...,Xn) și notăm P ├ D dacă pentru - 35 - orice seturi de valori ​​X1, X2 ,...,Xn în condiția P(X1, X2,...,Xn) = I2, este îndeplinită condiția D(X1, X2,...,Xn) = I. Formula P se numește premisă, iar D este concluzia raționamentului logic. De obicei, în raționamentul logic, nu se folosește o premisă P, ci mai multe; în acest caz, raționamentul va fi corect din punct de vedere logic; din conjuncția premiselor rezultă logic concluzia. Verificarea corectitudinii raționamentului logic Prima modalitate este prin definiție: a) notați toate premisele și concluziile sub forma unor formule logice propoziționale; b) face o conjuncție a premiselor formalizate Р1& P2&…& Рn,; c) verificați pe tabelul de adevăr dacă concluzia D rezultă din formula P1&P2&...&Pn. A doua metodă se bazează pe următorul semn de consecință logică: „Formula D rezultă logic din formula P dacă și numai dacă formula P | - D este o tautologie”. Apoi verificarea corectitudinii raționamentului logic se reduce la a răspunde la întrebarea: formula este o tautologie? La această întrebare se poate răspunde prin construirea unui tabel de adevăr pentru formulă sau prin reducerea acestei formule cu ajutorul transformărilor echivalente la o tautologie binecunoscută. A treia metodă de verificare a corectitudinii raționamentului logic se va numi prescurtat, deoarece nu necesită enumerarea exhaustivă a valorilor variabilelor pentru a construi un tabel de adevăr. Pentru a justifica această metodă, formulăm o condiție în care raționamentul logic este incorect. Raționamentul este incorect dacă există un set de valori ale variabilelor X01, X02,.., X0n astfel încât premisa D(X01, X02,.., X0n)=A 3 și concluzia P(X01, X02,..., X0n)= AND. Exemplu. Se dă raționament: „Dacă plouă, atunci pisica se află în cameră sau la subsol. Un șoarece într-o cameră sau într-o nurcă. Dacă pisica este în subsol, atunci șoarecele este în cameră. Dacă pisica este în cameră, atunci șoarecele este în nurcă, iar brânza este în frigider. Acum plouă și brânza e pe masă. Unde este pisica și unde este șoarecele? Să introducem următoarele denumiri: D - „plouă”; K - „pisica în cameră”; P - „pisica la subsol”; M - „șoarece în cameră”; N - „șoarece într-o nurcă”; Х - ""brânză la frigider"; ¬Х - "brânză pe masă". Obținem următoarea schemă de raționament: D→K|RM|NK→H&X 2 3 Adevărat Fals - 36 - R→M D&¬X - -- Să folosim regulile de inferență 1) D&¬X├D; 2) D&¬X├¬X; 3) D→K|R, D├ K|R. În continuare, luăm în considerare două opțiuni. Opțiunea A. Fie Are loc K. Apoi 4a) K, K→H&X, K├ H&X; 5a) H&X ├ X; 6a) ¬X,X├X&¬X - a primit o contradicție, ceea ce înseamnă că presupunerea a fost greșită și această opțiune este imposibilă . Opțiunea B, Să aibă loc R. Atunci 4b) P, P → M├M; 5b) P, M├P&M Concluzie Se obține P&M, adică „pisica este la subsol, iar șoarecele este în cameră” Exemplu Verifică corectitudinea raționamentului într-un mod prescurtat. Se dă raționament: „Dacă azi e frig, atunci mă duc la patinoar. Dacă azi e dezgheț, atunci merg la discotecă. Azi va fi ger. sau dezghețați. Prin urmare, voi merge la discotecă." Decizie. Oficializăm condiția problemei introducând notația: M - „azi va fi geros”; K - „Voi merge la patinoar”; O - „azi va fi dezgheț”; D - „I Mă duc la discotecă. Schema de raționament are forma: M→KO→DM|O ---D Raționamentul este corect din punct de vedere logic dacă, pentru orice set de valori ale variabilelor (M, K, O, D), zilele cărora toate premisele sunt adevărate, concluzia este și adevărată. Să presupunem contrariul: există o mulțime (M0,K0,O0.D0) astfel încât premisele sunt adevărate și concluzia este falsă. Aplicând definițiile operațiilor logice, vom încerca să găsim acest set. Suntem convinși că ipoteza este valabilă pentru valorile variabilelor - 37 - M0 = I, K0 = I, O0 = L, D0 = L (Tabelul 1). Prin urmare, raționamentul nu este corect din punct de vedere logic. Tabelul 1 Schema de rezolvare a unei probleme logice Nr. 1 2 3 4 5 6 7 și definițiile disjuncției de la 1, 6 și definițiile implicației O altă modalitate de a rezolva problema este construirea unui tabel de adevăr pentru formula (M→K)& (O→D)&(M˅O)→D și asigurați-vă că nu este o tautologie. Apoi, pe baza urmăririi logice, raționamentul nu este corect din punct de vedere logic. Deoarece patru variabile propoziționale (M, K, O, D) sunt implicate în raționament, tabelul de adevăr va conține 16 rânduri, iar această metodă necesită timp. Cu ajutorul regulilor de inferență, se poate construi un raționament logic corect, dar nu este întotdeauna posibil să se dovedească incorectitudinea unui raționament logic. Prin urmare, pentru această problemă, cea mai convenabilă modalitate este de a verifica corectitudinea raționamentului logic. Pentru a consolida regulile de inferență logică, trebuie să finalizați exercițiile de la pagina 78. Principalele secțiuni ale logicii simbolice moderne În dezvoltarea logicii clasice se disting trei etape principale: logica antică (aproximativ 500 î.Hr. - începutul d.Hr.), logica scolastică (începutul AD - prima jumătate a secolului al XIX-lea), logica simbolică modernă (mijlocul secolelor XIX-XX) Logica simbolică modernă este împărțită în secțiuni principale, a căror esență este dezvăluită mai jos. Logica propozițională (calcul propozițional). El studiază judecățile simple, considerate indiferent de structura lor internă, precum și concluziile elementare, cele mai accesibile înțelegerii umane. În limbajul natural, astfel de propoziții simple sunt reprezentate de propoziții care sunt considerate numai din punctul de vedere al adevărului sau al falsității lor, iar inferențe sunt reprezentate de sistemele corespunzătoare de enunțuri. - 38 - Logica predicatelor (calcul de predicate). Obiecte de studiu mai complexe sunt judecățile luate în considerare cu privire la structura lor internă. Secțiunea de logică care studiază nu numai conexiunile dintre propoziții, ci și structura conceptuală internă a propozițiilor, a primit denumirea de „logica predicatelor”. Metalogic. Metalogica este o extensie a logicii predicatelor. Subiectul studiului său îl constituie întreaga sferă a relațiilor în ansamblu, toate acele relații universale care pot avea loc între concepte, judecăți, concluzii, precum și simbolurile care le desemnează. Următoarele paragrafe ale paragrafului prezintă pozițiile cheie ale logicii propoziționale și ale predicatelor de ordinul întâi. Pentru a înțelege mai bine logica modernă, este necesar să luăm în considerare principalele prevederi definite de silogismele lui Aristotel. Logica lui Aristotel În logica lui Aristotel, structura judecăţilor elementare este exprimată prin structurile: - S este P (1); − S nu este P (2) , unde S este un subiect logic (din lat. Subjectum); P - vreun predicat logic (din lat. Predicatum). Tipurile de judecăți din logica lui Aristotel sunt enumerate mai jos. 1. Judecăți generale afirmative - A „Totul S este P” - Toți poeții sunt oameni impresionabili. Cuvintele „este”, „nu este” servesc drept legătură subiect-predicat. Din enunţurile (1) şi (2) cu ajutorul cuvintelor „toate” şi „unele” se construiesc enunţuri de formă: - tot S este P: Tipul A (Affirmo); − unele S sunt P: Tip I (AffIrmo); − toate S nu sunt P: Tip N (Nego); − unii S nu sunt P: Tip O (NegO). 2. Judecăți generale negative - E (N) „Nu S este P” - Nicio persoană nu este omniscientă. 3. Judecata afirmativă particulară - I "Unii S sunt P" - Unii oameni au părul creț. 4. Negativ parțial - O „Unii S nu sunt P” - Unii oameni nu pot asculta. Afirmații precum A, E, I, O sunt afirmații categorice simple care formează fundamentul întregii logici aristotelice. Între adevărul și falsitatea afirmațiilor de tip A, E, I, O, există o relație funcțional-holistică, care este de obicei descrisă ca un pătrat logic (Fig. 16, Tabelul 2). - 39 - Când folosiți pătratul logic, este important să luați în considerare următoarea subtilitate: cuvântul „unii” este înțeles în acest caz într-un sens larg - ca „unii, și poate toți”. Tabelul 2 Tabelul de adevăr pentru judecățile logicii lui Aristotel A I L L E L L I I I I L O L I I Fig. 16. Pătrat logic Explicații la pătratul logic al lui Aristotel În stânga colțul de sus afirmațiile de tip A (în general afirmative) sunt situate în pătratul logic. În colțul din dreapta sus sunt enunțuri de tip E (negativ general). În colțul din stânga jos (sub A) sunt enunțuri de tip I (afirmativ parțial). În colțul din dreapta jos (sub E) sunt afirmații de tip O (în special negative). Enunțurile de tipurile A și O, precum și enunțurile de tipurile E și I, sunt reciproc contradictorii sau contradictorii (relații diagonale). Enunțurile de tipurile A și E sunt în relație cu contrarietatea sau opoziția. - 40 - Enunțurile de tip I sunt subordonate (prin urmare implică) enunțuri de tip A. Enunțurile de tip O sunt subordonate afirmațiilor de tip E. În timp ce afirmațiile contradictorii au valori de adevăr opuse (una este adevărată, cealaltă este falsă) , afirmațiile contra nu pot fi ambele adevărate, dar pot fi false în același timp. Cu ajutorul unui pătrat logic se pot deduce judecăți opuse, contradictorii și subordonate datelor, stabilindu-le adevărul sau falsitatea. Exemplul 1. Orice judecată este exprimată în propoziția A → 1. 2. Nici o judecată nu este exprimată în propoziţia E → 0. 3. Unele judecăţi nu sunt exprimate în propoziţia O → 0. 4. Unele judecăţi sunt exprimate în propoziţia I → 1. În plus, folosind pătratul logic al lui Aristotel, puteţi stabiliți tipuri de relații între judecăți: 1) obținerea cunoștințelor de inferență; 2) comparații puncte diferite perspectiva asupra problemelor discutabile; 3) editarea textelor și în alte cazuri. Formalisme de calcul propozițional Multe modele de reprezentare a cunoștințelor se bazează pe formalisme de calcul propozițional și predicat. O expunere riguroasă a acestor teorii din punct de vedere al logicii matematice clasice este cuprinsă în lucrările lui Shenfield și Teise, Pospelov poate găsi o expunere populară a acestor teorii, care poate fi recomandată ca o introducere inițială. După definiția lui Taise, propozițiile logice sunt o clasă de propoziții în limbaj natural care pot fi adevărate sau false, iar calculul propozițional este ramura logicii care studiază astfel de propoziții. Se naște o întrebare firească: Dar propozițiile limbii, despre adevărul despre care nu se poate spune nimic cert? Exemplu. „Dacă mâine plouă, voi sta acasă.” Deocamdată, vom presupune pur și simplu că toate propozițiile cu care avem de-a face aparțin clasei propozițiilor logice. Declarațiile vor fi notate cu majuscule alfabet latinși un index, dacă este cerut de prezentare. Exemple de notație pentru enunțuri: S, S1, S2, H, H1, H2. După cum sa menționat deja, o propoziție logică este fie adevărată, fie falsă. O declarație adevărată i se atribuie o valoare logică - 41 - TRUE (sau ȘI), una falsă - o valoare logică FALSE (sau L). Astfel, valoarea de adevăr formează mulțimea (I, L). În calculul propozițional sunt introduse cinci conjunctive logice (Tabelul 3), cu ajutorul cărora, în conformitate cu regulile de construcție, se întocmesc formule logice. Tabelul 3 Conexiuni logice Nume comun Tip Altă notație Simbol Negație Unar -, ~, NOT, NOT  Conjuncție ^ Binar & , ., AND , AND * Disjuncție  Binar SAU SAU Implicație  Binar => -> Echivalență  Binar<=> <->~ * Notă: a nu se confunda cu valoarea de adevăr I. Setul de reguli de construire a formulelor logice pe bază de propoziţii cuprinde trei componente: − bază: orice propoziţie este o formulă; − pas de inducție: dacă X și Y sunt formule, atunci X, (X ^ Y), (X  Y), X Y și X  Y sunt formule; − constrângere: formula se obține în mod unic folosind regulile descrise în baza și etapa de inducție. Formulele sunt notate cu majuscule ale alfabetului latin cu indici. Exemple de formule logice sunt date în exemplu. Exemple a) T = S1 ^ S2; b) N = H1H2. Expresia a) poate fi citită astfel: „Formula logică T este o conjuncție (conjunctiv logic ȘI) a afirmațiilor logice S1 și S2”. Interpretarea expresiei b) este următoarea: „Formula logică N este o disjuncție (conexiunea SAU logică) a negației (NU) a enunțului logic H1 și a afirmației logice H2”. Valoarea de adevăr a unei formule logice este o funcție a valorilor de adevăr ale afirmațiilor sale constitutive și poate fi determinată în mod unic folosind tabele de adevăr. Mai jos sunt tabelele de adevăr pentru negație și conective binare (Tabelele 4, 5) Astfel, dacă sunt cunoscute valorile de adevăr pentru afirmațiile din exemplul a), de exemplu S1 = I, S2 = L, atunci valoarea de adevăr pentru formula - 42 - T poate fi găsit la intersecția celui de-al doilea rând și a treia coloană din Tabelul 5, adică T = L. Tabelul 4 Tabelul de adevăr pentru negație ¬X ȘI LL ȘI Tabelul 5 Tabelul de adevăr pentru conexiunile binare XYX^YX  YXYXY AND AND AND AND AND I I L I L L I I I L I L L I I I Logica predicatelor de ordinul întâi Relațiile dintre obiecte sunt descrise folosind concepte matematice speciale numite predicate logice, iar calculul predicatului este o ramură a logicii care se ocupă cu studiul lor. Orice logică este un sistem formal, pentru care trebuie definite următoarele: - alfabetul sistemului - un set numărabil de simboluri; - formule ale sistemului - un subset al tuturor cuvintelor care pot fi formate din caracterele incluse în alfabet (de obicei se stabilește o procedură care vă permite să faceți formule din caracterele alfabetului sistemului); − axiomele sistemului - un set selectat de formule ale sistemului; − reguli de inferență de sistem - un set finit de relații între formulele de sistem. Vocabularul calculului de predicate din prezentarea standard cuprinde următoarele concepte: - variabile (le vom nota ultimele litere alfabetul englez u, v, x, y, z); − constante (le vom nota prin primele litere ale alfabetului englez a, b, c, d): o constante individuale; o constante funcționale; o constante de predicat; − declarații; - 43 - - conjunctive logice (¬ (negaţie), conjuncţie, disjuncţie, implicaţie); − cuantificatori: (existenţă, generalitate); − termeni; − forme funcţionale; − forme de predicat; − atomi; − formule. Constante individuale și variabile individuale Acestea sunt similare cu constantele și variabilele calculului, singura diferență fiind că intervalul lor este indivizi, nu numere reale. În teoria inteligenței artificiale, constantele și variabilele numite din memoria agentului care corespund obiectelor și conceptelor din lumea reală sunt numite concepte. În limbile de ordinul întâi, variabilele sunt doar individuale, deci sunt numite simplu variabile. După cum se va arăta mai jos, utilizarea limbilor de ordinul întâi și respingerea utilizării limbilor de ordin înalt impune restricții suplimentare asupra clasei de propoziții în limbaj natural luate în considerare. Constantele individuale vor fi notate cu litere mici a, b, c, u, v, w ale alfabetului latin cu indici sau denumiri mnemonice preluate din text. Caracterele mici vor fi folosite pentru a desemna variabile. literele x,y,z , alfabet latin cu indexuri. Exemplu. Constante individuale: a1, b1, c, u, v1, seller_w, k22, buy_l, m10, book_a1 . Variabile: x, y2, z33. Constantele predicatelor Constantele predicatelor sunt folosite pentru a desemna o relație care descrie un predicat. O constantă de predicat nu își schimbă valoarea de adevăr. Este asociat cu un număr adecvat de argumente sau parametri, numiți termeni, formând o formă de predicat. Denumirea constantei predicatului este nume mnemonice sau litera alfabetului latin Р cu indici. Limbajul predicatelor conține limbajul propozițiilor, deoarece o propoziție nu este altceva decât o constantă de predicat fără argumente sau o formă de predicat de loc nul. Zona semantică a formei de predicat coincide cu zona de schimbare a enunțului, adică. (I, L). Constantele funcției Constanta funcției (f, g, h) precum și constanta predicatului, atunci când sunt combinate cu un număr adecvat de termeni, formează o formă funcțională. Diferența dintre forma funcțională și forma predicat constă în faptul că domeniul său semantic este alcătuit dintr-un set de constante individuale. O constantă de funcție de loc nul este doar o constantă individuală. conectivele logice în calculul predicatelor servesc la formarea formulelor. Cuantificatori. Calculul predicatelor folosește doi cuantificatori: cuantificatorul general () și cuantificatorul existențial (). Expresia xP se citește ca „pentru orice x P este adevărat”. Expresia xP se citește ca „există un x pentru care P este adevărat”. Un termen este o expresie formată din variabile și constante, eventual cu utilizarea funcțiilor. Termenii, formele, atomii și formulele din calculul predicatului se construiesc folosind următoarele reguli: - orice variabilă sau constantă este un termen; − dacă t1,...,tn sunt termeni și f este un simbol al funcției de n locuri, atunci f(t1,...,tn) este un termen; − nu există alți termeni. De fapt, toate obiectele din logica predicatelor de ordinul întâi sunt reprezentate tocmai sub formă de termeni. Dacă termenul nu conține variabile, atunci se numește termen principal sau constant. Un termen (t1,t2 ...tn) este orice variabilă și orice formă funcțională. O formă funcțională este o constantă funcțională asociată cu un număr adecvat de termeni. Dacă f este o constantă locală funcțională și t1 ..., tn sunt termeni, atunci forma corespunzătoare este de obicei notată cu f(t1, ...,tn). Dacă n=0, atunci pur și simplu se scrie f. O formă de predicat este o constantă de predicat concatenată cu un număr adecvat de termeni. Dacă p este constanta de loc m corespunzătoare și t1, . .., tn sunt termeni, atunci forma corespunzătoare se notează cu p(t1,...,tm). Un atom este o formă de predicat sau o egalitate, de exemplu. o expresie ca (s=t), unde s și t sunt termeni. O formulă atomică sau elementară se obține prin aplicarea unui predicat unor termeni, mai precis, este o expresie p(t1,...,tn), unde p este un simbol predicat de n locuri (formulă), iar t1,.. .,tn sunt termeni. Conceptul de formulă este definit recursiv (inductiv) prin următoarele reguli: - un atom este o formulă; - dacă A este o formulă, A este o formulă; - dacă A și B sunt formule, atunci formulele (A ^ B), (A  B), (A  B) și (A  B); - dacă A este o formulă și x este o variabilă, atunci xA și xA sunt formule. Să reprezentăm alfabetul logicii predicatelor în termeni de concepte. constante. Ele servesc ca nume pentru indivizi (spre deosebire de nume pentru colecții): obiecte, oameni sau evenimente. Constantele sunt reprezentate de - 45 - caractere precum Jacque_2 (adăugarea lui 2 la cuvântul Jacque indică o persoană bine definită printre persoanele cu acest nume), Book_22, Package_8. Variabile. Ele denotă numele agregatelor, cum ar fi o persoană, o carte, o parcelă, un eveniment. Simbolul Book_22 reprezintă o instanță bine definită, iar cartea de simboluri indică fie setul „toate cărțile” fie „conceptul de carte”. Simbolurile x, y, z reprezintă denumirile colecțiilor (anumite mulțimi sau concepte). Nume de predicate (constante de predicat). Ei definesc regulile de conectare a constantelor și variabilelor, cum ar fi reguli gramaticale, proceduri, operații matematice. Numele predicative folosesc caractere precum următoarele expresii: Trimite, Scrie, Plus, Separa. Numele de funcții (constantele funcției) reprezintă aceleași reguli ca și predicate. Pentru a evita confuzia cu numele predicatelor, numele funcțiilor sunt scrise cu toate litere mici: frază, trimitere, scriere, plus, împărțire. Simbolurile care sunt folosite pentru a reprezenta constante, variabile, predicate și funcții nu sunt „cuvinte ale limbii ruse”. Sunt simbolurile unor reprezentări – cuvintele „limbajului obiect” (în cazul nostru, limbajul predicatelor). Reprezentarea trebuie să excludă orice ambiguitate a limbajului. Prin urmare, numele indivizilor conțin numerele atribuite numelor populațiilor. Jack_1 și Jack_2 reprezintă două persoane cu același nume. Aceste reprezentări sunt concretizarea denumirii colecției „Jacques”. Un predicat este un nume de predicat împreună cu un număr adecvat de termeni. Un predicat se mai numește și formă de predicat. Exemplu. În rusă: Jacques îi trimite o carte Mariei, logic: Parcel (Jacques_2, Marie_4, Book_22). Logica fuzzy logici neclare, teoria mulțimilor fuzzy și a altor teorii „fuzzy” este asociată cu munca savantului american Zadeh. Ideea principală a lui Zadeh a fost că modul uman de raționament, bazat pe limbajul natural, nu poate fi descris în cadrul formalismelor matematice tradiționale. Aceste formalisme se caracterizează prin strictă lipsă de ambiguitate a interpretării, iar tot ceea ce ține de utilizarea limbajului natural are o interpretare multivalorică. Scopul lui Zadeh a fost de a construi o nouă disciplină matematică, care să se bazeze nu pe teoria mulțimilor clasică, ci pe teoria mulțimilor fuzzy. Realizarea în mod constant a ideii de neclaritate, conform lui Zadeh, este posibil să se construiască analogii neclare ale tuturor conceptelor matematice de bază și să se creeze aparatul formal necesar pentru modelarea raționamentului uman și a modului uman de rezolvare a problemelor (Fig. 17). - 46 - Crearea teoriei mulţimilor fuzzy - Decizie Teoria matematică a mulţimilor fuzzy - Baza mecanismului Formalizarea raţionamentului modului uman - Sarcină Teză - o persoană în viaţa de zi cu zi - Problema gândeşte şi ia decizii pe baza unor concepte fuzzy Pic. 17. Logica aparitiei teoriei multimilor fuzzy In prezent, teoria multimilor fuzzy si logica fuzzy (multimi fuzzy & fuzzy logic) este loc solid printre cele mai importante domenii ale inteligenței artificiale. Conceptul de „fuzziness”, aplicat inițial mulțimilor, apoi logicii, a fost extins cu succes și în alte domenii ale matematicii și informaticii și acum există deja: - teoria relațiilor fuzzy; - teoria multimilor fuzzy; - teoria măsurilor şi integralelor fuzzy; - teoria numerelor și ecuațiilor fuzzy: - teoria logicii fuzzy și raționamentul aproximativ: - teoria limbajelor fuzzy; - teoria algoritmilor fuzzy; - teoria optimizării fuzzy și a modelelor decizionale. Următoarele pachete sunt cele mai populare printre clienții ruși: 1) CubiCalc 2.0 RTC este unul dintre cele mai puternice sisteme expert comerciale bazate pe logica fuzzy, care vă permite să vă creați propriile sisteme expert aplicate; 2) CubiQuick - versiunea academică a pachetului CubiCalc; 3) RuleMaker - program extracție automată reguli neclare din datele de intrare; 4) FuziCalc - foaie de calcul cu câmpuri neclare, permițându-vă să faceți estimări rapide cu date cunoscute incorect, fără acumulare de erori; 5) OWL - un pachet care conține textele sursă ale tuturor tipurilor cunoscute de rețele neuronale, memorie asociativă neclară etc. Principalii „consumatori” ai logicii fuzzy pe piața rusă sunt: ​​bancherii, finanțatorii și specialiștii în domeniul analizei politice și economice. - 47 - Majoritatea sarcinilor umane nu necesită precizie ridicată. Adesea, atunci când comunicați cu lumea reală, trebuie să găsiți un compromis rezonabil între conceptele de „acuratețe” și „importanță”. De exemplu: pentru a lua o decizie privind traversarea unei străzi, o persoană nu estimează viteza unei mașini care se apropie cu o precizie de zecimi de metri pe secundă. El definește singur viteza mașinii ca „foarte rapidă”, „rapidă”, „încetă”, etc., adică. folosește variabile lingvistice pentru a indica viteza. În teoria mulțimilor fuzzy sunt propuse următoarele modalități de formalizare a conceptelor fuzzy. Prima modalitate (pe baza lucrării lui Zadeh) implică respingerea principalei afirmații a teoriei clasice a mulțimilor conform căreia un element poate să aparțină sau să nu aparțină mulțimii. În acest caz, se introduce o funcție caracteristică specială a mulțimii - așa-numita funcție de membru, care ia valori din intervalul . Această metodă duce la logica continuum. În al doilea mod mai general de formalizare a neclarității, se presupune că funcțiile caracteristice ale mulțimii iau valori nu din intervalul , ci într-o rețea distributivă finită sau infinită. Această generalizare se numește mulțimi fuzzy în sensul lui Gauguin. A treia cale este seturile P-fuzzy. Cu această generalizare, fiecare element al mulțimii universale este asociat nu cu un punct din intervalul , ci cu o submulțime sau o parte a acestui interval. Algebra mulțimilor P-fuzzy poate fi redusă la algebra claselor. A patra cale este seturile neclare eterogene. Aici, în cazul general, elementelor mulțimii universale li se atribuie valori în diferite rețele distributive. Fiecare element poate fi asociat cu cel mai potrivit rating pentru acesta. În plus, valorile estimărilor în sine pot fi neclare și date ca funcții. S-a obținut o idee generală a logicii neclare. Acum despre totul în detaliu. Luați în considerare aparatul conceptual, care se bazează pe conceptul de „variabilă lingvistică”. Definiția unei variabile lingvistice (intuitivă)4 Dacă variabila poate prelua semnificațiile cuvintelor în limbaj natural (de exemplu, „mic”, „rapid” etc. ), atunci această variabilă este definită ca o variabilă lingvistică. Cuvintele ale căror valori sunt luate de o variabilă lingvistică denotă de obicei seturi neclare. 4 Sisteme informaționale inteligente: Orientări pentru atelierul de laborator la cursul „Sisteme informaționale inteligente” pentru studenții specialității 071900 - Sisteme informaționale în economie / Ufimsk. stat aviaţie tehnologie. un-t; compilat de G.G. Kulikov, T.V. Breikin, L.Z. Kamalova. - Ufa, 1999. -40 p. - 48 - O variabilă lingvistică poate lua drept valori fie cuvinte, fie numere. Definiția unei variabile lingvistice (formale) O variabilă lingvistică este un cinci (x, T(x), X, G, M), unde x este numele variabilei; T(x) este mulțimea de nume de valori lingvistice ale variabilei x, fiecare dintre acestea fiind o mulțime neclară pe mulțimea X; G este o regulă sintactică pentru formarea numelor de valori x; M este o regulă semantică pentru asocierea fiecărei valori valorice cu conceptul său. Scopul conceptului de variabilă lingvistică este de a spune în mod formal că o variabilă poate lua cuvinte din limbajul natural drept valori. Cu alte cuvinte, fiecare variabilă lingvistică este formată din: - nume; − mulţimea valorilor sale, care se mai numeşte şi mulţimea de termeni de bază T. Elementele mulţimii de termeni de bază sunt denumirile variabilelor fuzzy; − multimea universala X; − o regulă sintactică G, conform căreia se generează termeni noi folosind cuvinte dintr-un limbaj natural sau formal; − regula semantică P, care asociază fiecare valoare a unei variabile lingvistice cu o submulțime fuzzy a mulțimii X. De exemplu, dacă spunem „ viteza rapida”, atunci variabila „viteză” trebuie înțeleasă ca o variabilă lingvistică, dar asta nu înseamnă că variabila „viteză” nu poate lua valori reale. Variabila fuzzy este descrisă de mulțimea (N,X,A), unde N este numele variabilei, X este mulțimea universală (aria raționamentului), A este o mulțime neclară pe X. Valorile unei variabile lingvistice pot fi variabile fuzzy, de exemplu. variabila lingvistică este la un nivel mai înalt decât variabila fuzzy. Abordarea principală a formalizării neclarității este următoarea. Un set fuzzy se formează prin introducerea unui concept generalizat de apartenență, i.e. extinderea setului de valori cu două elemente ale funcției caracteristice (0,1) la un continuum. Aceasta înseamnă că trecerea de la apartenența completă a unui obiect la o clasă la non-aptitudinea sa completă nu are loc brusc, ci lin, treptat, iar apartenența unui element într-o mulțime este exprimată printr-un număr din intervalul . - 49 - Mulțimea neclară (NM) , este definită matematic ca o mulțime de perechi ordonate compuse din elemente x ale mulțimii universale X și gradele corespunzătoare de apartenență μа(x) sau (deoarece funcția de apartenență este o caracteristică exhaustivă a NM) direct sub forma unei funcții de către Mulțimea Universală X a mulțimii fuzzy A este domeniul de definiție al funcției de membru μа. Pe fig. 18 prezintă principalele varietăți de funcții de membru. Orez. 18. Tipul funcţiilor de apartenenţă După tipul de funcţii de membru, acestea se împart în: - submodale (Fig. 1. c); − amodal (Fig. 1. a); − multimodal (Fig. 1. m); − unimodal (Fig. 1. u). − Exemplu. 1) A =((x1,0,2),(x2,0,6),(x3,1),(x4,0,8)); 2) A = 0,2|x1 + 0,6|x2 + 1|x3 + 0,8|x4. 3) Același exemplu poate fi prezentat sub forma unui tabel. Tabelul 6 A= Tabel de descriere a funcției de membru x1 x2 x3 x4 0,2 0,6 1 0,8 Exemplu „Mulți oameni înalți” B viata reala așa ceva ca „creșterea unei persoane înalte” este subiectivă. Unii cred că o persoană înaltă ar trebui să aibă mai mult de 170 cm înălțime, alții - mai mult de 180 cm, alții - mai mult de 190 cm. Seturile neclare fac posibilă luarea în considerare a unei astfel de neclarități a estimărilor. - 50 - Fie x o variabilă lingvistică care denotă „înălțimea unei persoane”, funcția sa de a aparține mulțimii de oameni înalți A:X(0,1), unde X este o mulțime care include toate valorile posibile ale unui înălțimea persoanei, este dată astfel: Apoi mulțimea „oamenilor înalți” este dată de expresia A=(x| A(x)=1), x ϲ X. Grafic, acest lucru este prezentat în fig. 19 (linie continuă), adică depinde de persoana care face evaluarea. Fie ca funcția de membru A:X(0,1) să aibă forma prezentată în figură printr-o linie punctată. Orez. 19. Set neclar de oameni înalți Astfel, o persoană cu înălțimea de 145 cm va aparține setului A cu un grad de apartenență A(145)=0, o persoană cu înălțimea de 165 cm - A(165) = 0,3, o persoană cu o înălțime de 185 cm -A (185) = 0,9, o înălțime de 205 cm - A(205)=1. Exemplu. — Ți-e frig acum? O persoană percepe o temperatură de +60oF (+12oC) ca rece și +80oF (+27oC) ca căldură. O temperatură de +65oF (+15oC) pare scăzută pentru unii, destul de confortabilă pentru alții. Numim acest grup de definiții funcția de apartenență la seturi care descriu percepția subiectivă a temperaturii de către o persoană. Mașinile nu sunt capabile de o gradație atât de fină. Dacă standardul pentru definirea frigului este „temperatura sub +15oC”, atunci +14,99oC ar fi considerat rece, dar +15oC nu. Pe fig. 20. este un grafic care ajută la înțelegerea modului în care o persoană percepe temperatura. Este la fel de ușor să creezi seturi suplimentare care descriu percepția temperaturii de către o persoană. De exemplu, puteți adăuga seturi precum „foarte rece” și „foarte cald”. Este posibil să se descrie funcții similare pentru alte concepte, cum ar fi stările deschise și închise, temperatura mai rece - 51 - sau temperatura turnului de răcire. Orez. 20. Mulțimea fuzzy „Temperatura” Astfel, putem trage următoarele concluzii asupra esenței conceptului de „multime fuzzy”: 1) seturile fuzzy descriu concepte nedefinite (alergator rapid, apă caldă, vreme caldă); 2) seturile neclare permit posibilitatea apartenenței parțiale la ele (vineri este parțial zi liberă (scurtată), vremea este destul de caldă); 3) gradul de apartenență a unui obiect la o mulțime neclară este determinat de valoarea corespunzătoare a funcției de membru pe interval (vineri aparține zilelor libere cu un grad de apartenență de 0,3); 4) functia de apartenenta asociaza un obiect (sau o variabila logica) cu valoarea gradului de apartenenta sa intr-o multime fuzzy. Forme de curbă pentru funcțiile de membru Există peste o duzină de curbe tipice pentru funcțiile de membru. Cele mai răspândite sunt: ​​funcțiile de apartenență triunghiulare, trapezoidale și gaussiene. Funcția de apartenență triunghiulară este definită printr-un triplu de numere (a,b,c), iar valoarea sa în punctul x este calculată conform expresiei (1).  bx 1  b  a , a  x  b;  c  x MF (x)   , b  x  c; c  b  0, în toate celelalte cazuri   - 52 - (1) Cu (ba)=(cb) avem cazul unei funcții de membru triunghiular simetric (Fig. 21), care poate fi specificată unic prin două parametrii din triplu (a,b,c). Orez. 21. Funcția de membru triunghiulară În mod similar, pentru a seta o funcție de apartenență trapezoidală, sunt necesare patru numere (a,b,c,d).  bx 1  b  a , a  x  b;  1, b  x  c; MF (x)   d  x , c  x  d; d c 0, în toate celelalte cazuri  (2) Cu (b-a)=(d-c), funcţia de membru trapezoidală capătă o formă simetrică (Fig. 22). Orez. 22. Funcția de apartenență trapezoidală Setul de funcții de apartenență pentru fiecare termen din setul de termeni de bază T este de obicei prezentat împreună pe un singur grafic. Pe fig. 23 arată formalizarea conceptului inexact de „vârstă umană”. Deci, pentru o persoană de 48 de ani, gradul de apartenență la setul „Tânăr” este 0, „Medie” - 0,47, „Peste medie” - 0,20. - 53 - Fig. 23. Descrierea variabilei lingvistice „Vârsta unei persoane” Operații de bază pe mulțimi fuzzy Operațiile de bază pe NM din clasa tuturor NM-urilor F(X)=( | :X  ) ale mulțimii universale X sunt prezentate mai jos. 1. Adunarea5  2 =   = 1-  1,  x  X 24. Graficul operaţiei „Complement” asupra funcţiei M 2. Intersecţia I (minim: variabile neinteracţionale).  3 = ( 1   2) (x)= min( 1(x),  2(x)) ,  x  X 3. Unirea I (maxim: variabile neinteracționante).  3 = ( 1   2) (x)= max( 1(x),  2(x)) ,  x  X 4. Intersecția II (produs limitat).  3 = ( 1   2) (x)= max(0,  1(x) +  2(x)-1) , x  X 5. Unirea II (maxim: cantitate limitată).  3 = ( 1   2) (x)= min(1,  1(x) +  2(x)) ,  x  X 6. Intersecția III (produs algebric). 5 În continuare, pe fond galben, sunt afișate operațiuni care sunt aceleași pentru toate cele trei baze. - 54 -  3 = ( 1   2) (x)=  1(x) *  2(x) ,  x  X 7. Unirea III (suma algebrică).  3 = ( 1   2) (x)=  1(x) +  2(x)-  1(x)   2(x) ,  x  X A B Fig. 25. Graficul funcționării intersecției I (A) a uniunii I (B) a funcțiilor M și M1 A B Fig. 26. Graficul funcționării intersecției II (A) a unirii II (B) a funcțiilor M și M1 A B Pic. 27. Graficul funcționării intersecției III (A) a unirii III (B) a funcțiilor M și M1 - 55 - 8. Diferența.  3 =  1(x) -  2(x) = max(0,  1(x) -  2(x)) ,  x  X 9. Concentrația.  3 =  2(x) ,  x  X 28. Graficul diferenței dintre funcțiile M și M1 Fig. 29. Graficul concentrației funcției M1 Spre deosebire de algebra booleană, în F(X) legile eliminării celei de-a treia nu sunt îndeplinite. Când construim operațiile de unire sau intersecție în F(X), trebuie să renunțăm fie la legile excluderii celui de-al treilea, fie la proprietatea distributivității și idempotității. Obiectele fuzzy pot fi clasificate în funcție de tipul intervalului de valori al funcției de membru. Și aici se disting variantele X: - zăbrele; - semigrup; - inel; - categorie. Important pentru aplicațiile practice în ceea ce privește exprimarea reprezentărilor și evaluărilor calitative ale unei persoane în procesul de luare a unei decizii a unei probleme este cazul mulțimilor S-fuzzy specificate de o pereche (X, ), unde - 56 - :X S este o mapare de la X la o mulţime ordonată liniar S Este firesc să impunem lui S cerinţele de finitate şi completitudine. Un exemplu de mulțime finită ordonată liniar este un set de valori lingvistice ale variabilei lingvistice „CALITATE” = (slab, mediu, bun, excelent). 1 2 3 4 5 6 7 8 9 SAU variabile care nu interacționează) (FIE, ... , SAU) Intersecția II (produs limitat ȘI) Unirea II (suma limitată) SAU Intersecția III (produs algebric ȘI) Unirea III (suma algebrică) ) SAU Diferența Concentrarea FOARTE După cum se arată, în funcție de modalitățile de introducere a operațiilor de unire și intersecție a NM, există trei teorii principale ale NM. În conformitate cu criterii similare, ele împart: − logica fuzzy cu operaţii maximin (operaţiile 1,2,3,8,9); − logica fuzzy cu operatii limitate (operatiile 1,4,5,8,9); − logica fuzzy probabilistica (operatiile 1,6,7,8,9). Interpretarea adevărului ca variabilă lingvistică duce la o logică neclară cu valorile „adevărat”, „foarte adevărat”, „complet adevărat”, „mai mult sau mai puțin adevărat”, „nu foarte adevărat”, „fals” etc. , adică la logica fuzzy, pe care se bazează teoria raționamentului aproximativ. Domenii de aplicare ale teoriei mulțimilor fuzzy în diverse domenii ale cunoașterii umane Din punct de vedere filozofic, teoria NM este remarcabilă prin faptul că deschide

Statul Armavir

Universitatea Pedagogică

BAZELE INTELIGENTEI ARTIFICIALE

pentru studenții care studiază la specialitatea „Informatică”

Armavir 2004

Tipărită prin decizia UMC ASPU

Referent: , Candidat la Științe Fizice și Matematice, Profesor asociat, Șeful Centrului de Internet al Academiei Agricole de Stat Kabardino-Balkarian

Inteligența artificială Kozyrev. Ajutor didactic pentru studenții care studiază la specialitatea „informatică”. - Armavir, 2004

Sunt luate în considerare Noțiuni de bază inteligența artificială, direcțiile și perspectivele de dezvoltare a cercetării în domeniul inteligenței artificiale, bazele limbajului de programare logică PROLOG.

Manualul educațional și metodic este destinat studenților care studiază la specialitatea „informatică”, putând fi folosit și de oricine este interesat de inteligența artificială și programarea logică.

Introducere……………………………………………………..…………... 4

1. Inteligența artificială: subiect, istorie
direcții de dezvoltare, cercetare ……..………………….. 5

1.1. Direcții de cercetare în domeniu
inteligența artificială……………………………………………….. 5


inteligența artificială…………………………………………………………… 6

2. Sistemul de cunoștințe………………………………………………………………….. 8

3. Modele de reprezentare a cunoștințelor…………………………………. nouă

3.1. Rețele semantice……………………………………………………..9

3.2. Modelul cadru ………………………………………….…………10

3.3. Model de producție……………………………………………………..11

3.4. Model logic……………………………………………………. .12

4. Sisteme expert………………………………………………...12

4.1. Numirea sistemelor expert………………………………………….12

4.2. Tipuri de sarcini rezolvate cu ajutorul sistemelor expert…………….14

4.3. Structura sistemelor expert…………………………………………...15

4.4. Principalele etape ale dezvoltării sistemelor expert………………………16

4.5. Instrumente pentru dezvoltarea sistemelor expert………18

5. PROLOG - limbaj de programare logic ……….19

5.1. Informații generale despre PROLOG…………………………………………………… 19

5.2. Sugestii: fapte și reguli………………………………………20

5.4. Variabile în PROLOG……………………………………………………….22

5.5. Obiecte și tipuri de date în PROLOG………………………………...23

5.6. Secțiunile principale ale programului PROLOG…………………………….23

5.7. Backtracking……………………………………………………...24

5.8. Controlul backtracking: eșuați și tăiați predicate ……26

5.9. Calcule aritmetice……………………………………………………27

5.10. Recursiune…………………………………………………………… .28

5.11. Liste……………………………………………………………………30

5.12. Sarcini standard de procesare a listei……………………………….31

Literatură………………………………………………............................... .35

Introducere

În ultimele decenii, inteligența artificială a invadat toate domeniile de activitate, devenind un mijloc de integrare a științelor. Instrumentele software bazate pe tehnologia și metodele inteligenței artificiale au devenit larg răspândite în lume. Cercetările intensive privind crearea unui spațiu informațional unic care creează condiții pentru lucrul comun de la distanță, bazate pe baze de cunoștințe, au început acum să fie efectuate de către toate țările dezvoltate economic. Cursul „Fundamentele inteligenței artificiale” în învățământul superior include studiul unor astfel de secțiuni precum reprezentarea cunoștințelor într-un limbaj formal, structura sistemelor expert și principiile de bază ale dezvoltării acestora, diverse strategii pentru găsirea unui scop. Una dintre liniile principale ale cursului este discuția despre implementarea sistemelor de inteligență artificială pentru rezolvarea unor probleme specifice aplicate.

La fel de suport informatic Cursul trateaza mediul de programare Visual Prolog. Limbajul de programare Prolog, bazat pe ideile și metodele logicii matematice, a fost creat inițial pentru dezvoltarea aplicațiilor de inteligență artificială. Aplicații precum baze de cunoștințe, sisteme expert, interfețe în limbaj natural și sisteme inteligente de management al informațiilor sunt programate eficient în mediul Visual Prolog. Un nivel ridicat de abstractizare, capacitatea de a reprezenta structuri complexe de date și de a modela relații logice între obiecte fac posibilă rezolvarea problemelor din diverse domenii.

Suportul didactic „Fundamentals of Artificial Intelligence” va contribui la extinderea ideilor viitorului profesor de informatică despre domeniile de aplicare a teoriei inteligenței artificiale, despre disponibile și limbi promițătoare programare și structuri hardware pentru crearea sistemelor de inteligență artificială.

1. Inteligența artificială: subiect, istoria dezvoltării, domenii de cercetare.

euintelectualus(lat) - minte, rațiune, minte, abilități mentale ale unei persoane. Inteligență artificială(AI) este un domeniu al informaticii, al cărui subiect este dezvoltarea de instrumente hardware și software care permit utilizatorului să rezolve probleme care sunt considerate în mod tradițional intelectuale. Teoria inteligenței artificiale este știința cunoașterii, cum să o extragem, să o reprezentăm în sisteme artificiale, să o procesăm în interiorul sistemului și să o folosești pentru a rezolva probleme practice. Tehnologiile care utilizează inteligența artificială sunt folosite astăzi în multe domenii de aplicare.

Începutul cercetării în domeniul AI (sfârșitul anilor 50 ai secolului XX) este asociat cu lucrările lui Newell, Saiman și Shaw, care au studiat procesele de rezolvare a diferitelor probleme. Rezultatele muncii lor au fost programe precum „LOGIC-TEORETIC”, destinate dovedirii teoremelor în calculul propozițional și „GENERAL PROBLEM SOLVER”. Aceste lucrări au marcat începutul primei etape de cercetare în domeniul AI, asociată cu dezvoltarea de programe care rezolvă probleme pe baza utilizării diferitelor metode euristice.

Metoda euristică de rezolvare a problemei a fost considerată ca inerentă gândirii umane „în general”, care se caracterizează prin apariția unor presupuneri despre modalitatea de rezolvare a problemei cu verificarea lor ulterioară. S-a opus metodei algoritmice utilizate în computer, care a fost interpretată ca implementarea mecanică a unei anumite secvențe de pași, conducând determinist la răspunsul corect. Interpretarea metodelor euristice de rezolvare a problemelor ca activitate pur umană a condus la apariția și răspândirea în continuare a termenului AI.

A. Neurocibernetica.

Neurociberetica se concentrează pe modelarea hardware a structurilor similare cu structura creierului. Fiziologii au stabilit de mult timp că baza creierului uman este un număr mare de celule nervoase interconectate și care interacționează - neuroni. Prin urmare, eforturile neurociberneticii s-au concentrat pe crearea de elemente similare neuronilor și combinarea acestora în sisteme funcționale. Aceste sisteme sunt numite rețele neuronale sau rețele neuronale. Recent, neurocibernetica a început să se dezvolte din nou datorită unui salt în dezvoltarea computerelor. Au apărut neurocalculatoarele și transputerii.

În prezent, există trei abordări pentru crearea rețelelor neuronale:

hardware- creație calculatoare speciale, carduri de expansiune, chipset-uri care implementează toți algoritmii necesari,

program- Crearea de programe și instrumente concepute pentru calculatoare de înaltă performanță. Rețelele sunt create în memoria computerului, toată munca este realizată de propriile procesoare;

hibrid este o combinație a primelor două. O parte din calcule este efectuată de plăci de expansiune speciale (coprocesoare), parțial prin software.

B. Cibernetica cutiei negre.

Cibernetica „cutiei negre” se bazează pe un principiu opus neurociberneticii. Nu contează cum funcționează dispozitivul „gânditor”. Principalul lucru este că reacționează la acțiunile de intrare date în același mod ca creierul uman.

Această zonă a inteligenței artificiale s-a concentrat pe căutarea algoritmilor pentru rezolvarea problemelor intelectuale pe modelele de computer existente.

Cercetările în domeniul inteligenței artificiale au parcurs un drum lung și spinos: primele hobby-uri (1960), pseudoștiința (1960-65), succes în rezolvarea de puzzle-uri și jocuri (), dezamăgire în rezolvarea problemelor practice (), primele succese în rezolvare. o serie de probleme practice ( ), utilizare comercială în masă în rezolvarea problemelor practice (). Dar baza succesului comercial este pe bună dreptate alcătuită din sisteme expert și, în primul rând, sisteme expert în timp real. Ei au fost cei care au permis inteligenței artificiale să treacă de la jocuri și puzzle-uri la utilizarea în masă pentru a rezolva probleme practic semnificative.

1.2. Principalele sarcini rezolvate în regiune
inteligență artificială

Reprezentarea cunoştinţelor şi dezvoltarea sistemelor bazate pe cunoştinţe

Dezvoltarea modelelor de reprezentare a cunoștințelor, crearea de baze de cunoștințe care formează nucleul sistemelor expert (ES). Recent, include modele și metode pentru extragerea și structurarea cunoștințelor și se îmbină cu ingineria cunoașterii. În domeniul inteligenței artificiale, sistemele și instrumentele experte pentru dezvoltarea lor au obținut cel mai mare succes comercial.

Jocuri și creativitate.

Sarcini intelectuale de joc - șah, dame, du-te. Se bazează pe una dintre abordările timpurii - modelul labirint plus euristica.

Dezvoltarea de interfețe în limbaj natural și traducere automată

Control vocal, traducere din limbă în limbă. Primul program din acest domeniu este un traducător din engleză în rusă. Prima idee - traducerea cuvânt cu cuvânt, s-a dovedit a fi inutilă. În prezent, se utilizează un model mai complex, inclusiv analiza și sinteza mesajelor în limbaj natural, care constă din mai multe blocuri. Pentru analiza este:

Limbajul care folosește modelul de producție este PROLOG.

3.4. Model logic

Descrierea lor se bazează pe un sistem formal cu patru elemente:

M=<Т, Р, А, В >, Unde

T este un set de elemente de bază de natură variată cu proceduri corespunzătoare;

R este un set de reguli sintactice. Cu ajutorul lor, se formează seturi corecte din punct de vedere sintactic din elementele lui T. Procedura P(R) determină dacă această colecție este corectă;

A este o submulțime a mulțimii P, numită axiome. Procedura P(A) dă un răspuns la întrebarea de apartenență la mulțimea A;

B este setul de reguli de inferență. Aplicându-le elementelor lui A, se pot obține noi colecții corecte din punct de vedere sintactic la care aceste reguli pot fi aplicate din nou. Procedura P(V) determină, pentru fiecare set corect sintactic, dacă este dedusă.

4. Sisteme experte

4.1. Numirea sistemelor expert

Sistem expert(ES) sunt sisteme software complexe care acumulează cunoștințe ale specialiștilor în domenii specifice și reproduc această experiență empirică pentru consultarea utilizatorilor mai puțin calificați.

Scopul studiului sistemelor expert este dezvoltarea de programe care, la rezolvarea problemelor dintr-un anumit domeniu, obțin rezultate care nu sunt inferioare ca calitate și eficiență rezultatelor obținute de experți.

Sistemele experte sunt concepute pentru a rezolva sarcini neformalizate, practic semnificative. Utilizarea unui sistem expert ar trebui făcută numai atunci când dezvoltarea lor este posibilă și adecvată.

Fapte care indică necesitatea dezvoltării și implementării sistemelor expert:

Lipsa profesioniștilor care petrec mult timp ajutându-i pe alții;

Necesitatea unei echipe mari de specialisti, intrucat niciunul dintre ei nu are suficiente cunostinte;

Productivitate scăzută, deoarece sarcina necesită o analiză completă a unui set complex de condiții, iar specialistul mediu nu este capabil să vizualizeze (în timpul alocat) toate aceste condiții;

Prezența concurenților care au un avantaj prin faptul că sunt mai buni la sarcina în cauză.

De funcţional Scopul sistemelor expert poate fi împărțit în următoarele tipuri:

1. Sisteme expert puternice concepute pentru un cerc restrâns de utilizatori (sisteme de control pentru echipamente tehnologice complexe, sisteme experte de apărare aeriană). Astfel de sisteme funcționează de obicei în timp real și sunt foarte scumpe.

2. Sisteme expert concepute pentru o gamă largă de utilizatori. Acestea includ sisteme de diagnosticare medicală, sisteme complexe de predare. Baza de cunoștințe a acestor sisteme nu este ieftină, deoarece conține cunoștințe unice obținute de la experți. Culegerea de cunoștințe și formarea unei baze de cunoștințe este realizată de un specialist în colectarea de cunoștințe - un inginer cognitiv.

3. Sisteme experte cu putini reguli și relativ ieftine. Aceste sisteme sunt concepute pentru consumatorul de masă (sisteme care facilitează depanarea echipamentelor). Utilizarea unor astfel de sisteme vă permite să faceți fără personal înalt calificat, reduceți timpul de depanare și depanare. Baza de cunoștințe a unui astfel de sistem poate fi completată și modificată fără ajutorul dezvoltatorilor de sistem. Ei folosesc de obicei cunoștințele din diverse manuale de referință și documentație tehnică.

4. Sisteme expert simple pentru uz individual. Deseori făcute pe cont propriu. Sunt folosite în situații pentru a facilita munca de zi cu zi. Utilizatorul, după ce a organizat regulile într-o anumită bază de cunoștințe, își creează propriul sistem expert pe baza acestuia. Astfel de sisteme sunt utilizate în jurisprudență, activități comerciale, reparații de echipamente simple.

Utilizarea sistemelor expert și a rețelelor neuronale aduce beneficii economice semnificative. De exemplu: - American Express și-a redus pierderile cu 27 milioane USD pe an datorită unui sistem expert care determină oportunitatea acordării sau refuzului unui împrumut unei anumite companii; - DEC economisește 70 milioane USD pe an cu sistemul XCON/XSEL, care configurează sistemul de calcul VAX la cererea clientului. Utilizarea sa a redus numărul de erori de la 30% la 1%; - Sira a redus costurile de construcție a conductelor în Australia cu 40 de milioane USD cu un sistem expert de management al conductelor.

4.2. Tipuri de sarcini rezolvate cu
sistem expert

Interpretarea datelor. Interpretarea se referă la determinarea semnificației datelor, ale căror rezultate trebuie să fie consecvente și corecte. Exemple de ES:

Detectare și identificare tipuri variate nave oceanice - SIAP;

Determinarea principalelor trasaturi de personalitate pe baza rezultatelor testelor psihodiagnostice in sistemele AVTANTEST si MICROLUSHER etc.

Diagnosticare. Diagnosticarea se referă la detectarea unei defecțiuni în anumite sisteme. Exemple de ES:

Diagnosticul și terapia îngustării vaselor coronare - ANGY;

Diagnosticarea erorilor hardware și software ale calculatoarelor - sistem CRIB etc.

Monitorizarea. Sarcina principală a monitorizării este interpretarea continuă a datelor în timp real și semnalizarea ieșirii anumitor parametri dincolo de limitele admise. Principalele probleme sunt „saritul” unei situații alarmante și problema inversă a unei operațiuni „false”. Exemple de ES:

Controlul exploatarii centralelor SPRINT, asistenta dispeceratelor reactoarelor nucleare - REACTOR:

Monitorizarea senzorilor de urgență dintr-o uzină chimică - FALCON etc.

Proiecta. Proiectarea constă în pregătirea specificațiilor pentru crearea de „obiecte” cu proprietăți predeterminate. Caietul de sarcini este înțeles ca întregul set de documente necesare, un desen, o notă explicativă etc. Exemple de ES:

Proiectarea configurațiilor computerului VAX - 1/780 în sistemul XCON (sau R1),

Proiectare LSI - CADHELP;

Sinteza circuitelor electrice - SYN și altele.

Prognoza. Sistemele predictive deduc în mod logic consecințele probabile din situații date. Exemple de ES:

Prognoza meteo - sistem WILLARD:

Estimări ale recoltei viitoare - PI. FURNICĂ;

Prognoze în economie - ECON și altele.

Planificare. Planificarea este înțeleasă ca găsirea de planuri de acțiune legate de obiecte capabile să îndeplinească anumite funcții. În astfel de ES se folosesc modele comportamentale ale obiectelor reale pentru a deduce logic consecințele activității planificate. Exemple de ES:

Planificarea comportamentului robotului - STRIPS,

Planificarea comenzilor industriale - 1SIS,

Experiment Design - MOLGEN et al.

Educaţie. Sistemele de antrenament diagnosticează erorile în studiul oricărei discipline cu ajutorul calculatorului și sugerează soluțiile potrivite. Ei acumulează cunoștințe despre un „elev” ipotetic și greșelile sale caracteristice, apoi în muncă sunt capabili să diagnosticheze slăbiciunile cunoștințelor elevilor și să găsească mijloace adecvate pentru a le elimina. Exemple de ES:

Predarea limbajului de programare Lisp în sistemul „Lisp Teacher”;

Sistemul PROUST - învățarea limbii Pascal etc.

Soluțiile de sistem expert sunt transparente, adică pot fi explicate utilizatorului la nivel calitativ.

Sistemele experte sunt capabile să-și completeze cunoștințele în cursul interacțiunii cu un expert.

4.3. Structura sistemelor expert

Structura sistemelor expert include următoarele componente:

Bază de cunoștințe- nucleul ES, corpul de cunoștințe ale domeniului subiectului, înregistrat pe un suport de mașină într-o formă pe înțelesul expertului și utilizatorului (de obicei într-un limbaj apropiat de natural). În paralel cu o astfel de reprezentare „umană”, există o bază de cunoștințe în reprezentarea internă „mașină”. Constă dintr-un set de fapte și reguli.

Fapte - descrie obiectele și relația dintre ele. Reguli - utilizate în baza de cunoștințe pentru a descrie relațiile dintre obiecte. Pe baza relațiilor definite de reguli, se efectuează o inferență logică.

Bază de date- este destinat stocarii temporare a faptelor si ipotezelor, contine date intermediare sau rezultatul comunicarii intre sisteme si utilizator.

Inferență logic-mașină- un mecanism de raționament care operează pe cunoștințe și date pentru a obține date noi; pentru aceasta se folosește de obicei un mecanism de căutare a deciziilor implementat de software.

Subsistemul de comunicare- servește la desfășurarea unui dialog cu utilizatorul, în timpul căruia sistemul expert îi cere utilizatorului faptele necesare procesului de raționament și, de asemenea, permite utilizatorului să controleze cursul raționamentului într-o oarecare măsură.

Subsistem explicație- este necesar pentru a oferi utilizatorului posibilitatea de a controla cursul raționamentului.

Subsistemul de achiziție a cunoștințelor- un program care oferă unui inginer de cunoștințe capacitatea de a crea baze de cunoștințe într-un mod interactiv. Acesta include un sistem de meniuri imbricate, șabloane de limbaj de reprezentare a cunoștințelor, indicii („help” - mod) și alte instrumente de service care facilitează lucrul cu baza de date.

Sistemul expert funcționează în două moduri:

Dobândirea de cunoștințe (definire, modificare, adăugare);

Rezolvarea problemelor.

În acest mod, datele sarcinii sunt procesate și, după o codificare corespunzătoare, transferate în blocurile sistemului expert. Rezultatele prelucrării datelor primite sunt transmise la modulul de sfaturi și explicații și, după recodificare într-un limbaj apropiat de firesc, sunt emise sub formă de sfaturi, explicații și comentarii. Dacă răspunsul nu este clar pentru utilizator, acesta poate solicita sistemului expert să explice cum a fost primit.

4.4. Principalele etape de dezvoltare a sistemelor expert

Procesul tehnologic de dezvoltare a unui sistem expert industrial poate fi împărțit în șase etape principale:

1. Alegerea problemei potrivite

Activitățile care au condus la decizia de a începe dezvoltarea unui anumit SE includ:

Identificarea zonei problematice și a sarcinilor;

Găsirea unui expert care este dispus să coopereze în rezolvarea problemei și numirea unei echipe de dezvoltare;

Determinarea unei abordări preliminare pentru rezolvarea problemei;

Analiza costurilor si profiturilor din dezvoltare;

Întocmirea unui plan detaliat de dezvoltare.

2. Dezvoltarea unui sistem prototip

sistem prototip este o versiune trunchiată a unui sistem expert conceput pentru a verifica corectitudinea faptelor de codificare, a relațiilor și a strategiilor de raționament expert.

Prototipul trebuie să îndeplinească două cerințe:

Sistemul prototip ar trebui să rezolve cele mai tipice probleme, dar nu ar trebui să fie prea mare.

Timpul și efortul de prototipare ar trebui să fie reduse.

Funcționarea programelor prototip este evaluată și testată pentru a le aduce în conformitate cu cerințele reale ale utilizatorilor. Prototipul este verificat pentru:

Comoditatea și adecvarea interfețelor de intrare-ieșire (natura întrebărilor din dialog, coerența textului de ieșire al rezultatului etc.)

Eficiența strategiei de control (ordinea de enumerare, utilizarea inferenței fuzzy etc.);

Calitatea cazurilor de testare;

Corectitudinea bazei de cunoștințe (completitudinea și consistența regulilor).

Un expert lucrează de obicei cu un inginer de cunoștințe care ajută la structurarea cunoștințelor, definirea și formarea conceptelor și regulilor necesare

pentru a rezolva problema. Dacă are succes, expertul, cu ajutorul unui inginer de cunoștințe, extinde baza de cunoștințe a prototipului despre zona problemei.

Dacă eșuează, se poate concluziona că Ce alte metode sunt necesare pentru a rezolva această problemă sau pentru a dezvolta un nou prototip.

3. Dezvoltarea unui prototip la un sistem expert industrial.

În această etapă, baza de cunoștințe este extinsă semnificativ, număr mare euristice suplimentare. Aceste euristici cresc, în general, profunzimea sistemului, oferind mai multe reguli pentru aspectele subtile ale cazurilor individuale. După stabilirea structurii de bază a ES, inginerul de cunoștințe procedează la dezvoltarea și adaptarea interfețelor prin care sistemul va comunica cu utilizatorul și expertul.

De regulă, este implementată o tranziție lină de la prototipuri la sistemele expert industriale. Uneori, la dezvoltarea unui sistem industrial, se disting etape suplimentare pentru tranziție: prototip demonstrativ - prototip de cercetare - prototip viu - sistem industrial.

4. Evaluarea sistemului

Sistemele experte sunt evaluate pentru a verifica acuratețea programului și utilitatea acestuia. Evaluarea poate fi efectuată pe baza diferitelor criterii, pe care le grupăm după cum urmează:

Criteriile utilizatorului (comprehensibilitatea și „transparența” funcționării sistemului, comoditatea interfețelor etc.);

Criteriile experților invitați (evaluarea sfatului-soluții oferite de sistem, compararea acestuia cu soluțiile proprii, evaluarea subsistemului de explicații etc.);

Criteriile echipei de dezvoltare (eficiența implementării, performanța, timpul de răspuns, designul, lărgimea de acoperire a domeniului subiectului, consistența bazei de cunoștințe, numărul de blocaje atunci când sistemul nu poate lua o decizie, analiza sensibilității programului la modificări minore în reprezentarea cunoștințelor, coeficienții de pondere utilizați în mecanismele de ieșire logică, date etc.).

5. Sistem de andocare

În această etapă, sistemul expert este andocat cu alte programe software din mediul în care va funcționa, iar persoanele pe care le va deservi sunt instruite.Andocarea presupune și dezvoltarea de legături între sistemul expert și mediul în care operează.

Interfața include conectarea ES la bazele de date existente și la alte sisteme din întreprindere, precum și îmbunătățirea factorilor de sistem dependenți de timp, astfel încât să poată funcționa mai eficient și să-și îmbunătățească performanța. mijloace tehnice dacă sistemul funcționează într-un mediu neobișnuit (de exemplu, comunicarea cu dispozitivele de măsurare).

6. Suport de sistem

Recodificarea unui sistem într-un limbaj asemănător C îmbunătățește performanța și portabilitatea, dar reduce flexibilitatea. Acest lucru este acceptabil numai dacă sistemul păstrează toate cunoștințele despre zona cu probleme și aceste cunoștințe nu se vor schimba în viitorul apropiat. Cu toate acestea, dacă sistemul expert este creat tocmai pentru că zona cu probleme se modifică, atunci este necesar să se mențină sistemul în mediul instrumentului de dezvoltare.

Limbi de inteligență artificială

Lisp (LISP) și Prolog (Prolog) sunt cele mai comune limbaje pentru rezolvarea problemelor de inteligență artificială. Există, de asemenea, limbaje de inteligență artificială mai puțin obișnuite, cum ar fi REFAL, dezvoltate în Rusia. Universalitatea acestor limbi este mai mică decât cea a limbilor tradiționale, dar limbajele de inteligență artificială compensează pierderea acesteia cu oportunități bogate de lucru cu date simbolice și logice, ceea ce este extrem de important pentru sarcinile de inteligență artificială. Pe baza limbajelor de inteligență artificială, sunt create calculatoare specializate (de exemplu, mașinile Lisp) pentru rezolvarea problemelor de inteligență artificială. Dezavantajul acestor limbi este inaplicabilitatea lor pentru crearea de sisteme experte hibride.

Instrumente software speciale

Biblioteci și suplimente Lisp pentru limbajul de inteligență artificială Lisp: KEE (Knowledge Engineering Environment), FRL (Frame Representation Language), KRL (Knowledge Represantation Language), ARTS, etc., permițând utilizatorilor să lucreze cu spații de sisteme expert la un nivel superior. nivel decât este posibil în limbajele convenționale de inteligență artificială.

"Cochilii"

„Shell-urile” sunt versiuni goale” ale sistemelor expert existente, adică sisteme expert gata făcute fără o bază de cunoștințe. Un exemplu de astfel de shell este EMYCIN (Empty MYCIN - empty MYC1N), care este un sistem expert MYCIN gol. Avantajul shell-uri este că nu necesită deloc munca programatorilor pentru a crea un sistem expert gata făcut. Este nevoie doar de experți în domeniu pentru a popula baza de cunoștințe. Cu toate acestea, dacă un anumit domeniu nu se încadrează bine în model utilizat într-un shell, nu este ușor să populați baza de cunoștințe în acest caz.

5. PROLOG - limbajul logicului
programare

5.1. Informații generale despre PROLOG.

PROLOG (PROGRAMMING IN LOGIC) este un limbaj de programare logica menit sa rezolve probleme din domeniul inteligenței artificiale (crearea ES, programe de traducere, procesarea limbajului natural). Este folosit pentru procesarea limbajului natural și are instrumente puternice pentru extragerea informațiilor din bazele de date, iar metodele de căutare folosite în el sunt fundamental diferite de cele tradiționale.

Construcțiile de bază ale PROLOGului sunt împrumutate din logică. PROLOGUE nu este un limbaj de programare procedural, ci declarativ. Se concentrează nu pe dezvoltarea soluțiilor, ci pe o descriere sistematică și formalizată a problemei astfel încât soluția să decurgă din descriere.

Esența abordării logice este că mașinii i se oferă nu un algoritm ca program, ci o descriere formală a domeniului subiectului și a problemei care se rezolvă sub forma unui sistem axiomatic. Apoi, căutarea unei soluții folosind rezultatul din acest sistem poate fi încredințată computerului însuși. Sarcina principală a unui programator este să reprezinte cu succes domeniul cu un sistem de formule logice și un astfel de set de relații pe acesta care descriu cel mai pe deplin sarcina.

Proprietățile fundamentale ale PROLOG:

1) mecanism de inferență cu căutare și întoarcere

2) mecanism de potrivire a modelului încorporat

3) structură de date simplă și ușor de schimbat

4) lipsa indicatorilor, a operatorilor de atribuire și de tranziție

5) naturalețea recursiunii

Etapele programării în PROLOG:

1) declararea faptelor despre obiecte și relații dintre acestea;

2) definirea regulilor de relaţionare a obiectelor şi a relaţiilor dintre acestea;

3) formularea întrebării despre obiecte și relații dintre acestea.

Baza teoretică a PROLOG este o secțiune a logicii simbolice numită calculul predicatelor.

Predicat este numele unei proprietăți sau al unei relații între obiecte cu o succesiune de argumente.

<имя_предиката>(t1, t2, ..., tn)), t1,t2,...,tn sunt argumente

De exemplu, faptul că black(cat) este scris folosind predicatul negru, care are un singur argument. Fapt a scris (Sholokhov, „QUIET DON”) scris folosind predicatul a scris, care are două argumente.

Numărul de argumente ale predicatului se numește aritatea predicatului și este notat cu negru/1 (predicatul negru are un argument, aritatea lui este unul). Predicatele pot să nu aibă argumente; aritatea unor astfel de predicate este 0.

Limbajul Prolog a apărut din lucrările lui A. Colmerauer privind procesarea limbajului natural și din munca independentă a lui R. Kowalski despre Aplicațiile logicii la programare (1973).

Cel mai faimos sistem de programare din Rusia este Turbo Prolog - o implementare comercială a limbajului pentru computerele compatibile cu IBM. În 1988, a fost lansată o versiune mult mai puternică a Turbo Prolog 2.0, inclusiv un IDE îmbunătățit, un compilator rapid și instrumente de programare de nivel scăzut. Borland a distribuit această versiune până în 1990, iar apoi PDC a dobândit dreptul exclusiv de a utiliza codul sursă al compilatorului și de a comercializa în continuare sistemul de programare sub numele PDC Prolog.

În 1996, Centrul de Dezvoltare Prolog a lansat pe piață Visual Prolog 4.0. Mediul Visual Prolog folosește o abordare numită „programare vizuală”, în care aspectul și comportamentul programelor sunt definite folosind instrumente speciale de proiectare grafică fără programare tradițională într-un limbaj algoritmic.

Visual Prolog include un mediu de dezvoltare vizuală interactiv (VDE - Visual Develop Environment), care include text și diverse editor grafic, instrumente de generare de cod care construiesc logica de control (Experți), precum și o extensie a interfeței interfeței programare vizuală(VPI - Visual Programming Interface), compilator Prolog, un set de diferite fișiere și biblioteci plug-in, un editor de linkuri, fișiere care conțin exemple și ajutor.

5.2. Sugestii: fapte și reguli

Un program PROLOG constă din propoziții, care pot fi fapte, reguli sau interogări.

Fapt este o afirmație că se observă o anumită relație specifică între obiecte. Un fapt este folosit pentru a arăta o relație simplă între date.

Structura faptului:

<имя_отношения>(t1,t2,...,tn)), t1,t2,...,tn sunt obiecte

Exemple de fapte:

studii (Ira, universitate). % Ira studiază la universitate

părinte (ivan, alexey). % Ivan este părintele lui Alexei

limbaj_programare (prolog). % Prolog este un limbaj de programare

Setul de fapte este Bază de date. Sub forma unui fapt, programul înregistrează date care sunt acceptate ca adevărate și nu necesită dovezi.

reguli sunt folosite pentru a stabili relații între obiecte pe baza faptelor existente.

Structura regulilor:

<имя_правила> :- <тело правила>sau

<имя_правила >dacă<тело правила>

Partea stângă a regulii de inferență este numită cap reguli, iar partea dreaptă - corp. Corpul poate consta din mai multe condiții separate prin virgule sau punct și virgulă. Virgula reprezintă operația logică AND, punctul și virgulă reprezintă operația logică SAU. Propozițiile folosesc variabile pentru a generaliza formularea regulilor de inferență. Variabilele funcționează doar într-o singură propoziție. Numele în propoziții diferite se referă la diferite obiecte. Toate propozițiile trebuie să se încheie cu un punct.

Exemple de reguli:

mama (X, Y) :- părinte (X, Y), femeie (X).

student (X) :- studii (X, institut); studiind (X, universitate).

O regulă diferă de un fapt prin faptul că un fapt este întotdeauna adevărat și o regulă este adevărată dacă toate afirmațiile care alcătuiesc corpul regulii sunt valabile. Faptele și regulile formează bază de cunoștințe.

Dacă există o bază de date, atunci puteți scrie Anchetă(țintă) la acesta. O interogare este o declarație a unei probleme pe care programul trebuie să o rezolve. Structura sa este aceeași cu cea a unei reguli sau a unui fapt. Există interogări cu constante și interogări cu variabile.

Interogările cu constante vă permit să obțineți unul dintre cele două răspunsuri: „da” sau „nu”

De exemplu, există fapte:

știe (lena, tanya).

știe (lena, sasha).

știe (Sasha, Tanya).

a) Lena o cunoaște pe Sasha?

Anchetă: știe (lena, sasha).

Rezultat: da

b) O cunoaște Tanya pe Lena?

Anchetă știe (tanya, lena).

Rezultat: Nu

Dacă o variabilă este inclusă în cerere, atunci interpretul încearcă să găsească astfel de valori pentru care cererea va fi adevărată.

a) Pe cine cunoaște Lena?

Anchetă: știe (lena, X).

Rezultat:

X = Tanya

X = sasha

b) Cine o cunoaste pe Sasha?

Anchetă: știe (X, Sasha).

Rezultat: X = Lena

Solicitările pot fi compuse, adică pot consta din mai multe interogări simple. Ele sunt combinate cu semnul „,”, care este înțeles ca un conjunctiv logic „și”.

Sunt apelate interogări simple subscop, cererea compusă acceptă valoare adevarata când fiecare subscop ​​este adevărat.

Pentru a răspunde dacă Lena și Sasha au cunoștințe comune, ar trebui să faceți o solicitare:

știe (lena, X), știe (sasha, X).

Rezultat:

X = Tanya

5.4. Variabile în PROLOG

O variabilă din PROLOG nu este tratată ca o bucată de memorie alocată. Este folosit pentru a desemna un obiect la care nu se poate face referire prin nume. variabila poate fi luata in considerare nume local pentru un obiect.

Numele variabilei trebuie să înceapă cu majusculă sau subliniere și conține numai litere, cifre și caractere de subliniere: X, _y, AB, X1. Se apelează o variabilă care nu are valoare gratuit, o variabilă care are o valoare - specific.

Se apelează o variabilă constând doar dintr-un caracter de subliniere anonimși este utilizat atunci când valoarea sa nu este semnificativă. De exemplu, există fapte:

părinte (Ira, Tanya).

părinte (Misha, Tanya).

părinte (olya, ira).

Toți părinții trebuie identificați

Anchetă: părinte (X, _)

Rezultat:

X = Ira

X = Misha

X = Olya

Sfera variabilei este aserțiunea. În cadrul unei instrucțiuni, același nume aparține aceleiași variabile. Două instrucțiuni pot folosi același nume de variabilă în moduri complet diferite.

Nu există operator de atribuire în PROLOG, rolul său este jucat de operatorul de egalitate =. Ținta X=5 poate fi văzută ca o comparație (dacă X are o valoare) sau o atribuire (dacă X este liber).

În PROLOG nu puteți scrie X=X+5 pentru a crește valoarea unei variabile. Ar trebui folosită o nouă variabilă: Y=X+5.

5.5. Obiecte și tipuri de date în PROLOG

Obiectele de date din PROLOG sunt apelate termeni. Un termen poate fi o constantă, o variabilă sau un termen (structură) compus. Constantele sunt numere întregi și reale (0, - l, 123.4, 0.23E-5), precum și atomii.

Atom– orice succesiune de caractere cuprinsă între ghilimele. Ghilimelele sunt omise dacă șirul începe cu o literă mică și conține doar litere, cifre și liniuțe de subliniere (adică, dacă poate fi distins de o notație variabilă). Exemple de atomi:

abcd, „a+b”, „elev Ivanov”, prolog, „Prolog”.

Structura vă permite să combinați mai multe obiecte într-un singur întreg. Este format dintr-un functor (nume) și o secvență de termeni.

Numărul de componente dintr-o structură se numește aritatea structurii: date/3.

O structură poate conține o altă structură ca unul dintre obiectele sale.

data_zișterii (persoană ("Masha","Ivanova"), date(15 aprilie 1983))

domeniuîn PROLOG este un tip de date. Domeniile standard sunt:

întreg - numere întregi.

reale - numere reale.

șir - șiruri de caractere (orice secvență de caractere cuprinsă între ghilimele).

char este un singur caracter închis în apostrofe.

simbol - o succesiune de litere, numere și liniuțe latine care încep cu o literă mică sau orice succesiune de caractere cuprinse între ghilimele.

5.6. Principalele secțiuni ale programului PROLOG

De regulă, programul de pe PROLOG este format din patru secțiuni.

DOMENIILE– secțiunea de descriere a domeniilor (tipurilor). Secțiunea este utilizată dacă în program sunt utilizate domenii non-standard.

De exemplu:

PREDICATE- secțiunea de descriere a predicatului. Secțiunea este utilizată dacă în program sunt folosite predicate non-standard.

De exemplu:

știe (nume, nume)

numele studentului)

CLAUZE- sectiunea oferte. În această secțiune sunt scrise propoziții: fapte și reguli de inferență.

De exemplu:

știe (Lena, Ivan).

student (ivan).

student_sign(X, Y):- știe (X, Y), student (Y).

POARTĂ- secțiunea țintă. Solicitarea este scrisă în această secțiune.

De exemplu:

semn_student(lena, X).

Cel mai simplu program poate conține doar o secțiune GOAL, de exemplu:

write("Introduceți numele dvs.: "), readln(Nume),

scrie ("Bună ziua, ", Nume, "!").

Top articole similare