Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Windows Phone
  • Principalele etape ale dezvoltării sistemelor expert. Instrumente software speciale

Principalele etape ale dezvoltării sistemelor expert. Instrumente software speciale

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 Tehnologii Informaționale

"APROBAT"

Educativ-metodic

Consiliul KI (f) MGOU

Președinte al Consiliului

Profesor

A.M. Lipatov

„___” ____________ 2010

P.S. Romanov

FUNDAMENTELE INTELIGENTEI ARTIFICIALE

Ghid de studiu după direcția disciplinei

„Inginerie informatică și informatică”

Pentru studenții universitari

Kolomna - 2010

Avea

Publicat în conformitate cu hotărârea consiliului educațional și metodologic al Institutului Kolomna (filiala) GOU VPO „MGOU” din data de __________ 2010 oras nr. ________

DK 519,6

P69 Romanov P.S.

Fundamentele inteligenței artificiale. 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 seturi neclare... Sunt luate în considerare principalele sisteme inteligente, scopul lor, clasificarea, caracteristicile, problemele creației, 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. Prevederi ale teoriei multimilor fuzzy ........................................ ... 32

§ 2.1. Set neclar. Operatii pe multimi fuzzy ... ..32

§ 2.1.1. Operații de bază pe mulțimi fuzzy .................. 35

§ 2.2. Construirea funcției de membru ................................................. 38

§ 2.2.1. Câteva metode pentru construirea unei funcții de membru... 39

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

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

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

§ 2.6. Relație neclară ............................................................. ........................50

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

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

§ 2.9. Automatizarea procesării informațiilor folosind

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 domeniul de aplicare al sistemelor expert .................. 77

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

§ 3.7. Principalele sisteme expert ............................................................. ......... 86

§ 3.8. Dificultăți în dezvoltare sistem expertși căile lor

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 casă (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 al robotului adaptiv ........... 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 McCulloch-Pitts ................ 147

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

3.14.1.3. Regula 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țiuni rezonabile folosind sisteme de calcul și alte dispozitive artificiale. Inteligența artificială (IA) există ca domeniu științific independent 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ă tocmai aceste studii vor determina natura societății informaționale care înlocuiește deja civilizația industrială, care a atins cel mai înalt punct de înflorire î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 aparțin doar acesteia ș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 constă în faptul că, creând 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 o mai bună corespondență a rezultatelor. Pentru a modifica programele într-o manieră „monotonă” pentru a îmbunătăți rezultatele, trebuie să aveți reprezentări ș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ă). În niciun caz, toate mecanismele pe care o persoană le folosește pentru a rezolva problemele sunt următoarele.

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

Maslennikova O.E. , Popova I.V.

Tutorial. Magnitogorsk: MAGU, 2008.282 pp. În tutorial, modele de reprezentare a cunoștințelor, teoria sistemelor expert, bazele logicii și programare functionala... 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 frecvență parțială înscriși în domeniile „Informatică”, „Fizică și educație 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.
Intelectual Sisteme de informare.
Exerciții.
Întrebări pentru autocontrol.
Literatură.
Prolog ca limbaj de programare logic.
Conceptul de programare logica.
Reprezentarea cunoștințelor despre domeniul subiectului sub formă de fapte și reguli ale bazei de cunoștințe Prolog.
Sensul descriptiv, procedural și de mașină al unui program Prolog.
Tehnici de bază de programare în Prolog.
Mediul Visual Prolog.
Exerciții.
Literatură.
Conceptul de programare 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.
Anexa 1.
Anexa 2.
Anexa 3.

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

Fișierul va fi trimis în contul dvs. Kindle. Poate dura până la 1-5 minute până când îl primiți.
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 GOU VPO „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, profesor A, S. Sarvarov M Maslennikov O.E., Popova I.V. Fundamentele inteligenței artificiale: manual. manual / O.E. Maslennikova, I.V. Popov. - Magnitogorsk: MAGU, 2008 .-- 282 p. ISBN 978-5.86781-609-4 Manualul descrie modelele 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 frecvență parțială care studiază în domeniile „Informatică”, „Educație fizică și matematică (Profil - Informatică)”. UDC 681.142.1.01 BBK Z97 ISBN 978-5.86781-609-4  Maslennikova O.E., Popova I.V., 2008  Universitatea de Stat Magnitogorsk, 2008 -2- CUPRINS CAPITOLUL 1. INTRODUCERE ARTIFICĂRII...... ........ 5 1.1. ISTORIA DEZVOLTĂRII INTELIGENTEI ARTIFICIALE CA DIRECȚIE ȘTIINȚIFICA ...................................... ..... ................................................ ..... ........... 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 REFERINȚE . ..... ................................................ ..... ................................................ .... 21 CAPITOLUL 2. MODELE DE REPREZENTARE A CUNOAȘTERII ....................................... .. 22 2.1. CUNOŞTINŢE................................................. .................................................. ....... 22 2.2. MODEL LOGIC DE REPREZENTARE A CUNOAȘTERII ................................................ 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 PENTRU AUTOCONTROL ................................... .. ....................................... 83 REFERINȚE ....... .. ................................................ .. ................................................. 84 CAPITOLUL 3. SISTEME EXPERT ............................................. .. .......... 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. TEHNOLOGIA DEZVOLTĂRII SISTEMELOR EXPERT ...................................... 102 3.5. INSTRUMENTE DE SISTEM EXPERT .......................... 113 3.6. SISTEME DE INFORMAȚII INTELIGENTE ................................ 129 EXERCIȚII ............ .................................................. ....................................... 135 ÎNTREBĂRI PENTRU AUTOCONTROL ..... .. ................................................ .. ................. 136 REFERINȚE ............................. .. ................................................ .. ...................... 138 CAPITOLUL 4. PROLOGUL CA LIMBAJ DE PROGRAMARE LOGICĂ ............... .... ................................................. .... ........... 139 4.1. INTRODUCERE DESPRE PROGRAMARE LOGICĂ ............................ 139 4.2. PREZENTAREA CUNOAȘTILOR DESPRE DOMENII SUBIECTULUI TIP DE FAPTĂ ȘI REGULI ALE BAZEI DE CUNOAȘTERE PROLOG .................................. ..... ................................................ ... 140 4,3 ... SENSUL DESCRIPTIV, 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 REFERINȚE ............ .................................................. ......................................... 197 -3- CAPITOLUL 5. PREZENTAREA A PROGRAMARE FUNCTIONALA. .................................................. ............................. 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 PENTRU AUTOTESTARE .... .. ................................................ .. ..................... 210 REFERINȚE ......................... .. ................................................ .. .......................... 211 GLOSAR .................... .. ................................................ .. ............................. 213 ANEXA 1 ................ .. ................................................ .. .......................... 221 ANEXA 2 ................... .. ................................................ .. .......................... 252 ANEXA 3 ....... .. ................................................ .. .................... 265-4- PREFAȚĂ B timpuri recente 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 direcție a informaticii, al cărei scop este de a dezvolta instrumente hardware și software care să permită unui 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 filozofi au existat o lungă perioadă de 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 munca omului. creierul și gândirea, economiștii și matematicienii au pus întrebări privind calculele optime și reprezentarea 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 contura 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 împărțit în cinci capitole. Primul oferă o scurtă introducere în inteligența artificială: examinează istoria dezvoltării acesteia ca direcție științifică, evidențiază principalele domenii ale inteligenței artificiale, ia în considerare aspectele filosofice ale problemei ca posibilitatea existenței, siguranța și utilitatea artificială. inteligență. 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 se ocupă de teoretice și probleme practice dezvoltarea sistemelor expert; descrie învelișul XpertRule. Al patrulea capitol descrie principiile de bază ale programării în limbajul Prolog, descrie mediul Visual Prolog. Al cincilea capitol descrie elementele de bază ale programării funcționale cu exemple în limbajul 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 o nouă direcție a informaticii, al cărei subiect de studiu este orice activitate intelectuală umană care se supune unor legi binecunoscute. Figurat, această direcție este numită „fiul cel mare al informaticii”, deoarece multe probleme nerezolvate îș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 în mod eficient programe de lucru cu elemente AI, cunoștințele despre caracteristicile inteligenței umane pe care știința le are astăzi sunt deja suficiente. În același timp, AI nu încearcă să copieze exact activitatea creierului uman, ci încearcă să-și simuleze funcțiile folosind tehnologia computerizată. De la începuturile sale, AI 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 în crearea de software și devin parte a Informaticii (informatică). Științe cognitive. Științele cognitive sunt științe ale cunoașterii. AI este, de asemenea, despre cunoaștere. Dar științele cognitive folosesc nu numai informații și abordări 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 cunoscute pentru reprezentarea cunoștințelor, precum și a limbajelor de programare precum Lisp și Prolog. Metode de matematică discretă, teoria jocurilor și teoria operațiilor sunt folosite pentru a rezolva problemele AI. La rândul său, AI poate fi folosit pentru a demonstra teoreme, rezolva probleme din diverse domenii ale matematicii: 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 unor modele de evaluare a valorii, luarea deciziilor subiective. De interes este psihologia comunicării -6- „om-calculator”, psiholingvistica. Lingvistica computațională este o parte a IA care se bazează pe metode matematice de procesare a limbajelor naturale și artificiale, pe de o parte, și pe fenomenologia limbajului, pe de altă parte. Biologia și medicina vă permit să studiați și să înțelegeți mai bine activitatea creierului, a sistemelor de vedere, a auzului și a altor senzori naturali și să dați un nou impuls 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 în mod tradițional erau considerate inteligente și anterior nesupuse formalizării și automatizării. 2. AI este o nouă direcție a informaticii, asociată cu noi idei de rezolvare a problemelor pe calculator, cu dezvoltarea unei tehnologii de programare fundamental diferite, cu trecerea 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 multe sisteme aplicate, rezolvarea problemelor pentru care sistemele create anterior nu erau potrivite. -7- Un exemplu cu un calculator poate fi folosit pentru a ilustra prima abordare. La începutul secolului, calculele aritmetice cu numere din 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 zilele noastre, invenția calculatorului a făcut această abilitate disponibilă chiar și unui elev de clasa a treia. Același lucru este și în AI: îmbunătățește capacitățile intelectuale ale unei persoane, asumând soluționarea 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 1980, Japonia a anunțat începerea unui proiect ambițios de a crea un computer de generația a cincea. Proiectul sa bazat pe ideea implementării hardware a limbajului PROLOGUE. Totuși, proiectul s-a încheiat cu eșec, deși a avut o influență puternică asupra dezvoltării și răspândirii limbajului PROLOG ca limbaj de programare. Motivul eșecului a fost concluzia grăbită că o singură limbă (deși destul de universală) poate oferi o singură 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ă face parte din domeniul de studiu, necesitând 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 pachete software , înlocuind un om-specialist în domenii înguste de activitate intelectuală care necesită utilizarea unor cunoștințe speciale. Crearea unui ES în domeniul medicinei (cum ar fi MYCIN) permite diseminarea cunoștințelor în zonele cele mai îndepărtate. Astfel, în combinație cu accesul la telecomunicații, orice medic rural poate primi sfaturi de la un astfel de sistem, care îi înlocuiește comunicarea cu un specialist pe o problemă restrânsă. În Rusia, AI și-a găsit susținători aproape de la începuturi. Cu toate acestea, această disciplină nu a primit recunoaștere oficială imediat. AI a fost criticată ca o sub-ramură a ciberneticii, considerată „pseudosștiință”. Până la un anumit moment în timp, numele șocant „inteligență artificială” a jucat și el un rol negativ. Așadar, în Prezidiul Academiei de Științe a fost o glumă că „cei cărora le lipsește naturalul 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, au loc conferințe și seminarii științifice. Există Asociația Rusă a AI, care numără aproximativ 200 de membri, al cărei președinte este D.A. Pospelov, doctor în științe tehnice, și președintele de onoare, academician al Academiei Ruse de Științe G.S. Pospelov. Există Institutul Rus de Inteligență Artificială în subordinea Consiliului 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 o mulțime de cărți pe teme AI, traduceri. Lucrările binecunoscute ale lui D.A. Pospelov, Litvintseva și Kandrashina - în domeniul reprezentării și procesă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 lucrarea pe modelul „SmyslText” de Melchuk. Lingvistii renumiți în domeniul computerelor includ Apresyan, Gorodetsky, Paducheva, Narinyani, Leontyeva, Chaliapin, Zaliznyak Sr., Kibrik Sr., Baranov și mulți alții. altele 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 rezolvarea problemelor complexe și modelarea capacității 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 forjat creaturi asemănătoare mașinilor. În literatură, această idee a fost jucată de mai multe ori: de la Galatea Pygmalion până la Pinocchio al Papei Carlo. Cu toate acestea, strămoșul inteligenței artificiale este considerat a fi filozoful, matematicianul și poetul spaniol medieval R. Llull (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 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. secolul XX Î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 cutiei negre. Și numai în momentul de față -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 mari fiziologi, lingvişti, psihologi, matematicieni. Este general acceptat că în acest moment s-a născut inteligența artificială în Rusia. La fel ca și în străinătate, au apărut direcțiile de neurocibernetică și cibernetică ale „cutiei negre”. În 1956 -1963. au fost căutări intensive de modele și algoritmi de gândire umană și dezvoltarea primelor programe. S-a dovedit că niciuna dintre științele existente - filozofie, psihologie, lingvistică - nu poate oferi un astfel de algoritm. Atunci cibernetica și-a propus să-și creeze propriile modele. Au fost dezvoltate și testate diverse abordări. Prima cercetare AI a fost legată de crearea unui program pentru jocul de șah, deoarece capacitatea de a juca șah se credea a fi 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 rafinat, o metodă de creare a unui astfel de program. Americanii Shaw și Simon, în colaborare cu un grup de psihologi olandezi din Amsterdam, condus de 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). Cu toate acestea, primul program de inteligență artificială a fost programul Theoretical Logic, 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 teoreticianului logic au stat la baza creării programului GPS-Rezolvare generală a problemelor. Acest program, analizând diferențele dintre situații și construind obiective, este bun la rezolvarea puzzle-urilor precum Turnul din Hanoi sau la calcularea integralelor nedefinite. Programul EPAM (Elementary Perceiving and Memorizing Program) este un program elementar de 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 prezintă problema ca un grafic care reflectă spațiul de stări1, iar în acest grafic se efectuează căutarea căii optime de la datele de intrare la datele rezultate. A fost realizată mare treabă asupra dezvoltării acestui model, ci în decizie sarcini practice ideea nu a fost răspândită pe scară largă. 1 Spațiul stărilor este un grafic, ale cărui vârfuri corespund unor situații întâlnite în problemă („situații problemă”), iar soluția problemei se reduce la găsirea unei căi în acest grafic. - 10 - Începutul anilor 60. - era programării euristice. Euristica este o regulă teoretic nejustificată, dar vă permite să reduceți numărul de căutări în spațiul de căutare. Programarea euristică este dezvoltarea unei strategii de acțiune bazată pe euristici cunoscute, predefinite. În anii 60, au fost create primele programe care lucrau cu interogări în limbaj natural. Programul BASEBALL (Green et al., 1961) a răspuns întrebărilor despre rezultatele jocurilor de baseball anterioare, programul STUDENT (Bobrow, 1964) a avut acces la rezolvarea problemelor algebrice formulate în limba engleză. Orez. 2. Repere în dezvoltarea IA ca direcție științifică Mari speranțe au fost puse în munca în domeniul traducerii automate, al cărui început este asociat cu numele lingvistului rus Belskaya. Cu toate acestea, cercetătorilor a fost nevoie de mulți ani pentru a înțelege asta traducere automată nu este o problemă izolată și necesită o etapă atât de necesară precum înțelegerea pentru implementarea cu succes. Printre cele mai semnificative rezultate obținute de oamenii de știință autohtoni în anii 60, trebuie remarcat algoritmul „Bark” al lui 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 aducerea raționamentului în contradicție, a apărut în 1965 - 11 - (J. Robinson). Pe baza metodei rezoluțiilor, care a făcut posibilă demonstrarea automată a teoremelor în prezența unui set de axiome inițiale, limbajul Prolog a fost creat în 1973. În URSS în 1954-1964. se creează programe separate şi se investighează căutarea soluţiilor la probleme logice. În Leningrad (LOMI - Filiala Leningrad a Institutului de Matematică Steklov), se creează un program care demonstrează automat teoremele (ALPEV LOMI). Se bazează pe concluzia inversă originală a lui S.Yu.Maslov, similară cu metoda rezoluțiilor lui Robinson. În 1965-1980. se dezvoltă o nouă știință – 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 pentru reprezentarea situațiilor - reprezentarea cunoștințelor. Î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ă în spațiu real tridimensional. Acest lucru ridică problema creării de organe artificiale de percepție. Până în 1968, cercetătorii au lucrat în principal cu „microspații” separate, 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 vocabular mic. ... Aproape toate aceste sisteme au folosit aceeași abordare - simplificarea combinatoriei bazată pe reducerea necesarului de enumerare a alternativelor pe baza bunului simț, folosind funcții de estimare numerică și diverse euristici. La începutul anilor 1970 s-a înregistrat un salt cuantic în cercetarea inteligenței artificiale. Există două motive pentru aceasta.  Î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 aprofundate în domeniul relevant. Diferența dintre un expert și o persoană obișnuită este că expertul are experiență în 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 în program, dacă creatorul său imediat nu deține 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 au un lucru în comun o problemă comună- reprezentarea cunoștințelor. Până în 1970, au fost create - 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 stabilit în el multe mii de fapte elementare, prezentate sub forma unor reguli separate. Sistemul în cauză a fost unul dintre primele sisteme expert și rezultatele muncii sale sunt uimitoare. În prezent, sistemul este furnizat consumatorilor împreună cu un spectrometru. În 1971, Terry Vinograd a dezvoltat sistemul SHRDLU, care simulează un robot care manipulează cuburi. Puteți vorbi engleză cu robotul. Sistemul este interesat nu numai de sintaxa frazelor, ci și înțelege corect sensul acestora datorită cunoașterii semantice și pragmatice a „lumii cuburilor” sale. De la mijlocul anilor 1980, comercializarea inteligenței artificiale are loc în străinătate. Cheltuielile anuale de capital sunt în creștere și se creează sisteme expert industriale. Există un interes tot 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 (mai mult de 300). Limba REFAL este creată la Universitatea de Stat din Moscova. În 1988 a fost creată AII - Asociația pentru Inteligența Artificială. Peste 300 de cercetători sunt membri. Președintele Asociației - D.A. Pospelov. Cele mai mari centre - 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 foarte ramificat. Peste 40 de conferințe sunt organizate anual numai în lingvistică computațională în lume. 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 (RAII). Î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. Conform clasificării 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 - Probleme Generale Formale Percepții ale experților Jocuri (Șah, Go, Puzzle-uri) Inginerie Procesarea limbajului natural Matematică Analiză științifică Bunul simț Raționament Geometrie Analiză financiară Control robot Verificare Program Diagnosticare medicală Fig. 3. Sarcinile AI Susținătorii primei și-au stabilit scopul de a reproduce artificial procesele care au loc în creierul uman. Această zonă se află la intersecția dintre medicină, biologie și cibernetică. În același timp, ei studiază creierul uman, identifică modalitățile de funcționare a acestuia, creează mijloace tehnice pentru repetarea structurilor biologice și a proceselor care au loc în ele. Domeniul AI poate fi împărțit aproximativ în cinci secțiuni mari: - structuri de tip neural; - programe pentru rezolvarea problemelor intelectuale; - sisteme bazate pe cunoștințe; - programare intelectuală; - sisteme inteligente. Fiecare dintre secțiuni poate fi reprezentată după cum urmează (vezi Figura 4-9). - 14 - Fig. 4. Structuri asemănătoare neuro Fig. 5. Programe de rezolvare a problemelor intelectuale Fig. 6. Sisteme bazate pe cunoştinţe - 15 - Fig. 7. Programare inteligentă Fig. 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 modelarea 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 unui studiu de inteligență artificială, se presupune în prealabil un răspuns pozitiv. Dovezi ale posibilității de modelare a gândirii umane. 1. Scolastic: 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 mod inerent asemănători cu El, atunci oamenii sunt destul de capabili să creeze pe cineva după chipul și asemănarea omului. 2. Biologic. Crearea unei minți noi prin mijloace biologice este destul de obișnuită pentru o persoană. Observând copiii, vedem că - 16 - aceștia dobândesc cea mai mare parte a cunoștințelor prin învățare, și nu așa cum le-au stabilit în prealabil. Această afirmație nu a fost dovedită la nivel modern, dar conform semnelor externe, totul arată exact așa. 3. Empiric. Ceea ce anterior părea a fi apogeul creativității umane - jocul de șah, dame, recunoașterea imaginilor vizuale și sonore, sintetizarea de noi soluții tehnice - sa dovedit a nu fi o sarcină atât de dificilă în practică. Acum munca se desfășoară nu la nivelul posibilității sau imposibilității implementării celor de mai sus, ci la găsirea celui mai optim algoritm - adesea aceste probleme nici măcar nu sunt denumite probleme ale inteligenței artificiale. 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ă este poate existența virușilor informatici. 5. Algoritmic. Posibilitatea fundamentală de automatizare a soluționării problemelor intelectuale folosind un 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 despre ele. Mai mult, procesele generate de acești algoritmi sunt potențial fezabile, adică. Adică sunt fezabile ca rezultat al unui număr finit de operații elementare. Fezabilitatea algoritmilor depinde de instrumentele disponibile, care se pot schimba odată cu progresele tehnologice. Deci, în legătură cu apariția computerelor de mare viteză, astfel de algoritmi au devenit practic realizabili, care anterior erau doar potențial realizabili. În plus, conținutul acestei proprietăți are un caracter predictiv: ori de câte ori în viitor orice prescripție este recunoscută de algoritm, atunci indiferent sub ce formă și prin ce mijloace va fi exprimată inițial, aceasta poate fi, de asemenea, setată sub formă de un program de mașină. Totuși, nu trebuie să credem că computerele și roboții pot, în principiu, să rezolve orice problemă. Analiza unei varietăți de probleme i-a condus pe matematicieni la o descoperire remarcabilă. Existența unor astfel de tipuri de probleme a fost riguros dovedită pentru care un algoritm eficient unificat care să rezolve toate problemele este imposibil. de acest tip; in acest sens este imposibil sa rezolvi probleme de acest tip cu ajutorul calculatoarelor. Acest fapt contribuie la o mai bună înțelegere a ceea ce mașinile pot și nu pot face. Într-adevăr, afirmația despre indecizia 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-unelte și mașini;  limbaj şi vorbire;  aparate de calcul;  VT şi facilităţi de telecomunicaţii. Filosofii susțin că fabricarea de instrumente (în cel mai larg sens al cuvântului) este cea mai mare specii importante activitate care îi deosebește pe strămoșii noștri de alte primate. Ființele umane se remarcă printre animale pentru capacitatea lor de a produce cunoștințe și instrumente. Nicio altă invenție tehnologică sau socio-politică nu a provocat un astfel de decalaj gigantic în dezvoltarea speciei homo sapience din alte specii ale naturii vii. 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 ca informațiile să fie mult mai convenabile pentru stocare, procesare și transmitere decât toate îmbunătățirile anterioare ale tehnologiei hârtiei. Calculatorul 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 constantă a domeniului de aplicare a 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 procesele de percepție și orientare senzorială, raționament și rezolvare de probleme, procesare a limbajului natural și alte abilități umane. Cu alte cuvinte, AI este un nou tip de set de instrumente, o alternativă la cele existente. Această realitate i-a forțat pe filozofii AI să se îndepărteze de întrebarea „Este posibil să creăm o mașină inteligentă?” la problema influenţei instrumentelor intelectuale asupra societăţii. Inclusiv posibilul efect social al dezvoltării IA, și anume: - 18 - creșterea nivelului de inteligență al întregii societăți, care va oferi noi descoperiri, invenții și o nouă înțelegere a umanității în sine.  schimbarea situaţiei când majoritatea oamenilor sunt 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. Cu toate acestea, cu un nivel de viață suficient de ridicat (o cantitate mare de energie potențială) al unei persoane, nu lenea (în sensul dorinței de a economisi energie) joacă primul rol, ci instinctele de căutare. Să spunem că o persoană a reușit să creeze un intelect care îl depășește pe al său (dacă nu în calitate, deci în cantitate). Ce se va întâmpla cu omenirea acum? Ce rol va juca persoana? Ce este deocamdată? Și, în general, este necesar în principiu să creăm AI? Poate cel mai acceptabil răspuns la aceste întrebări este conceptul de „amplificator de inteligență” (AI). Potrivit S.L. Sotnik, o analogie cu președintele statului este potrivită aici - el nu este obligat 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 va putea face alegerea corectă. În acest exemplu, președintele folosește un AI biologic - un grup de specialiști cu creierul lor proteic. Dar și acum, sunt folosite și interfețele de utilizator nevii - de exemplu, computere, dispozitive de calcul la bord. În plus, o persoană folosește de multă vreme amplificatoare de putere (SUA) - un concept care este în mare parte analog cu AI. Mașini, macarale, motoare electrice, prese, tunuri, avioane și multe, multe altele servesc drept amplificatoare de putere. Principala diferență dintre UI și CS este prezența voinței: primul poate avea propriile „dorințe” și acționa diferit de ceea ce se așteaptă de la el. Astfel, se pune problema securității sistemelor AI. Cum putem evita consecințele negative care însoțesc orice nouă realizare a revoluției științifice și tehnologice? Această problemă a bântuit mintea omenirii încă de pe vremea lui Karel Čapek, care a folosit pentru prima dată termenul „robot”. Alți scriitori de science fiction au contribuit și ei foarte mult la discuția sa. Cel mai faimos - o serie de povestiri ale scriitorului și omul de știință Isaac Asimov, care poate găsi cea mai elaborată și acceptată de majoritatea oamenilor soluție la problema securității. Vorbim despre trei legi ale roboticii. 1. Un robot nu poate face rău unei persoane sau, prin inacțiunea sa, nu permite să i se facă rău unei persoane.  - 19 - 2. Robotul trebuie să se supună comenzilor date de om, cu excepția cazului în care aceste comenzi sunt contrare 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, Azimov adaugă „Legea Zero” la această listă: „Un robot nu poate dăuna umanității sau, prin inacțiunea ei, nu permite să se facă rău umanității”. La prima vedere, astfel de legi, cu respectarea lor deplină, ar trebui să asigure siguranța omenirii. Cu toate acestea, la o examinare mai atentă, apar câteva întrebări. În primul rând, legile sunt formulate în limbajul uman, ceea ce nu permite traducerea lor simplă în formă algoritmică. Să presupunem că această problemă este rezolvată. Acum, ce înseamnă un sistem AI prin „rău”? Nu va decide ea că însăși existența omului este un rău pur? La urma urmei, fumează, bea, îmbătrânește de-a lungul anilor și își pierde sănătatea, suferă. Nu ar fi un rău mai mic să punem capăt rapid acestui lanț de suferințe? Desigur, puteți introduce câteva completări legate de valoarea vieții, libertatea de exprimare. Dar acestea nu vor mai fi cele trei legi simple care erau în original. În continuare: ce va decide sistemul AI într-o situație în care salvarea unei vieți este posibilă doar în detrimentul alteia? Mai ales interesante sunt acele cazuri când sistemul nu are informatii complete despre cine este cine. Cu toate acestea, în ciuda problemelor enumerate, aceste legi reprezintă o bază informală destul de bună pentru verificarea fiabilității sistemului de securitate pentru sistemele AI. Deci nu există cu adevărat un sistem de securitate fiabil? Pe baza conceptului MI, se poate propune următoarea opțiune. Conform numeroaselor experimente, în ciuda lipsei de date fiabile despre ceea ce este responsabil fiecare neuron 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, în care iritația unei anumite zone a produs rezultatul dorit. Acestea ar putea fi emoții de bucurie, opresiune, frică, agresivitate. Astfel, pare posibil să luăm ca funcție țintă gradul de satisfacție al creierului gazdă uman. Dacă luați măsuri pentru a exclude activitatea autodistructivă într-o stare de depresie, precum și pentru a asigura alte stări speciale ale psihicului, atunci obțineți următoarele. Deoarece se presupune că o persoană normală nu își va face rău și, fără un motiv anume, altora, iar IA face acum parte dintr-un anumit individ (nu neapărat o comunitate fizică), atunci toate cele trei legi ale roboticii sunt îndeplinite automat. În același timp, problemele de securitate sunt mutate în domeniul psihologiei și al aplicării legii, deoarece - 20 - sistemul (instruit) nu va face nimic pe care proprietarul său nu și-ar dori. Întrebări de auto-verificare 1. Ce este inteligența artificială? 2.Ce direcții ș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 de ultimă oră AI în Rusia. 5. Descrieți stadiul „pre-computer” de dezvoltare a inteligenței artificiale 6. Descrieți dezvoltarea inteligenței artificiale în anii 40. secolul XX 7. Descrieți dezvoltarea inteligenței artificiale în anii 50. secolul XX 8. Descrieți dezvoltarea inteligenței artificiale în anii 60. secolul XX 9. Descrieți dezvoltarea inteligenței artificiale în anii 70. secolul XX 10. Descrieți dezvoltarea inteligenței artificiale în anii 80. secolul XX 11. Descrieți principalele sarcini ale inteligenței artificiale. 12. Ce secțiuni se disting în domeniul inteligenței artificiale? 13. Dați dovadă cu privire la posibilitatea modelării gândirii umane. 14. Care este baza trecerii la problema influenței instrumentelor intelectuale asupra societății? 15. Ce a cauzat și cum poate fi rezolvată problema securității sistemelor de inteligență artificială? Literatură 1. Luger, J., F. Inteligența artificială: strategii și metode de rezolvare a problemelor complexe: trad. 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”, „Techbook”, 2007. - 192 p. 3. Site-ul Asociației Ruse pentru 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 fel de cunoștințe sunt necesare pentru a oferi un comportament „inteligent”? „Secretul” fenomenologiei modelului de cunoaștere se află în lumea din jurul nostru. V 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 un agent inteligent. Un domeniu este o parte a realității asociată cu rezolvarea unei probleme. Agent inteligent - un sistem (persoană, program) cu abilități intelectuale. Cunoașterea reprezintă modelele identificate ale domeniului subiectului (principii, conexiuni, legi). Cunoașterea are o structură mai complexă decât datele (metadatele). În acest caz, cunoștințele sunt stabilite atât extensiv (adică printr-un set de fapte specifice corespunzătoare unui concept dat și care se referă la aria subiectului), cât și intens (adică prin proprietăți corespunzătoare unui concept dat și o diagramă a conexiunilor dintre atribute) . Tipuri de cunoștințe Obiecte. De obicei, o persoană prezintă cunoștințele în termeni de fapte despre obiectele din jurul său. Din acest motiv, trebuie să existe modalități de reprezentare a obiectelor, clase (categorii, tipuri) de obiecte, descriind proprietățile și interacțiunea obiectelor. O modalitate de a clasifica obiectele este printr-o ierarhie de clasă. În plus, este necesar să se facă distincția între obiectele abstracte care sunt folosite pentru a desemna grupuri (seturi, clase) de indivizi. Exemplu „Păsările au aripi” „Porumbeii sunt păsări” „Zăpada este albă” „Această carte este nouă” – un obiect individual Situații – tot felul de interacțiuni între obiecte. Exemplu „A plouat ieri” „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 de la sine, modelul de reprezentare ar trebui să permită descrierea locației evenimentelor pe axa timpului, precum și a relației lor cauzale. 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 În prezentarea ierarhiei obiectelor şi a relaţiilor, principala dificultate este alegerea fundamentului, adică. proprietăți (atribut) prin care are loc diviziunea. De obicei, chiar dacă o persoană poate distinge cu ușurință între diferite tipuri de obiecte și situații din viață, încercarea de clasificare verbală este o mare problemă. Proceduri. Comportamentul (ex: ciclism) necesită cunoștințe care depășesc cunoașterea declarativă a obiectelor și a relațiilor dintre ele. Aceasta este cunoștințele despre cum să faci cutare sau cutare acțiune, care se numește cunoștințe procedurale sau experiență (abilitate). Similar cu ciclismul, majoritatea comportamentelor conștiente (de exemplu, comunicarea, înțelegerea sau demonstrarea teoremei) implică cunoștințe procedurale și este adesea dificil să distingem clar între cunoașterea unei proceduri și cunoașterea unui obiect. Exemplu Termenul „pedagogie” – descrie o situație de lipsă de cunoștințe procedurale la o persoană care se pretinde a fi un specialist Meta-cunoștințe – cunoștințe despre cunoștințe: despre volumul și originea cunoștințelor despre un anumit obiect, despre fiabilitatea unor informații specifice , sau despre importanța relativă a anumitor fapte. Meta-cunoașterea include, de asemenea, ceea ce oamenii știu despre propria lor abilitate ca procesator de cunoștințe: puterea, slăbiciunea, nivelul 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 cauză-efect între conceptele domeniului de studiu).  Cunoaștere profundă (abstracte, 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:  Cunoaștere rigidă (vă permite să obțineți recomandări clare fără ambiguitate pentru condițiile inițiale date).  Cunoștințe blânde (permite soluții multiple, vagi și recomandări diferite). După forme de prezentare:  Cunoașterea declarativă (fapte sub formă de seturi de date structurate).  Cunoștințe procedurale (algoritmi sub formă de proceduri de prelucrare a faptelor). Prin metoda de dobândire:  Cunoștințe științifice (obținute în cursul pregătirii și/sau studiului sistematic).  Cunoștințe de zi cu zi, de zi cu zi (dobândite în cursul vieții). Pentru a plasa o bază de cunoștințe pentru a o utiliza pentru rezolvarea problemelor aplicate, este necesar să o descriem în mod formal folosind modele matematice. După cum sa menționat deja, reprezentarea cunoștințelor este posibilă folosind modele 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 computer, modelele de reprezentare a cunoștințelor pot fi clasificate astfel: Pe baza abordării euristice: „troika”, producție, cadru, model de rețea Pe baza abordării teoretice: bazată pe logica formală și bazată pe „logica umană” – modală și ambiguă. - 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ă gândește 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 cantitatea necesară de fapte adevărate, concluzia trebuie să fie întotdeauna adevărată. Pe de altă parte, dacă inferența este invalidă, înseamnă că s-a obținut 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 inferențe, în care o concluzie duce la alta etc. În logica formală, numită și logică simbolică, este important modul în care se realizează inferența, cum sunt luați în considerare alți factori care oferă dovada adevărului sau falsității concluziei finale în mod admisibil. Logica are nevoie și de semantică pentru a da semnificație simbolurilor. Logica formală folosește 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 logică (clasică), se disting două tipuri fundamentale de obiecte abstracte: - concepte (proprietăți); - relatii. Conceptele pot fi simple sau complexe. Conceptele complicate sunt o colecție de concepte relativ mai simple (proprietăți simple) legate de 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 elementele structurale ale raționamentului (sisteme de judecată), iar inferențe sunt elementele structurale ale conceptelor și teoriilor (sisteme de raționament). În 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 interconexiuni, 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. „Diligența” este o proprietate. „Elev harnic”, „elev anul IV” – relații. „O persoană studiază la universitate” - o judecată. „Dacă o persoană studiază la un institut, atunci este fie un student, fie un student absolvent” - concluzia. „Teoria calculului predicatului de ordinul întâi” este un concept. Concept Conceptele sunt esența obiectelor abstracte accesibile înțelegerii umane ca proprietăți (atribute) simple și complexe ale obiectelor empirice. Conceptul este pus în contrast cu 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 ale conceptului sunt conținutul și volumul. Toate caracteristicile logice și operațiile logice sunt rezultatul cunoștințelor derivate din legea relației invers proporționale dintre conținutul și domeniul de aplicare al conceptului. Orice concept are sfera de aplicare a unui concept (sfera conceptuală) și o completare la sfera de aplicare a conceptului (Fig. 11, 12). Sfera unui concept este o mulțime (mulțime) de toate acele empirice (obiecte individuale) care au un concept dat (ca proprietate, caracteristică). - 26 - Adăugarea la volum - totalitatea tuturor acelor obiecte empirice care nu sunt inerente acestui concept. Concept X a1 a2 V Volumul a3 Fig. 11. Conceptul X, volumul conceptului X, elementul de volum (a1, a2, a3) X Nu X Fig. 12. Domeniul de aplicare și adăugarea acestuia Exemplu Concept: model de date factuale. Domeniul de aplicare al conceptului: modele de date relaționale, de rețea, ierarhice Adăugarea domeniului de aplicare: modele de date documentare (descriptor, tezaur, modele de date orientate pe formatul documentului) Conceptele pot fi de următoarele tipuri: 1) după volum: a. singur (U = 1 element, Kamaz); b. general (U> 1 element, Uzina de automobile din Moscova); 2) prin existenţa elementelor: a. negol (student); 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. beton (mâner); - 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, nedeclarat și specific. Metode de bază de înțelegere a conceptelor Principalele metode de înțelegere a unui concept includ: - abstractizarea; - comparatie; - generalizare; - analiza; - sinteza. Abstracția este o separare (înțelegere) mentală a unei anumite proprietăți sau relații prin abstracție de alte proprietăți sau relații ale unui obiect empiric. Comparația este stabilirea unor asemănări sau diferențe între obiecte. Generalizare - izolarea mentală a unui anumit concept prin compararea oricăror alte 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. Analiză - împărțirea mentală a unui obiect empiric sau abstract în părțile sale constitutive componente structurale (părți, proprietăți, relații). Sinteza este unirea mentală a diferitelor obiecte într-un anumit obiect integral. Exemple 1. Compararea oamenilor după înălțime presupune abstracție pentru a evidenția proprietatea de „creștere” a conceptului „persoană”. 2. Generalizare: „scaun” și „masă” – „mobilier”. Relația conceptelor Pentru a explica relația dintre concepte, puteți folosi diagrame sub formă de cercuri Euler (Fig. 13). Exemple Uniformă (volum egal): Kazan este capitala. Independent (intersecție): pasager - student. Depunere: copac - mesteacăn. Opus (contrast): alb și negru. - 28 - Conradicare: alb - nu alb. Subordonare (subcontractare): ofițeri (maior-căpitan). Împărțirea logică a unui concept este împărțirea domeniului de aplicare a unui concept î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 Identitate contrară (uniformă) X, YXYM (X) = M (Y) M (X) M (Y) UX slave la YXYM (X) M (Y) = M (X) Fig. 13. Corelarea conceptelor În acest caz, există: - conceptul generic X; - membrii diviziunii (conceptele de specie A și B); - baza de împărțire (adică semn). - 29 - Trei reguli de împărțire logică. 1. Regula de incompatibilitate. Sfera de aplicare a conceptelor de specie nu trebuie să se suprapună (adică, membrii diviziunii nu ar trebui să fie incompatibili între ei); 2. Regula consecvenței. Nu puteți împărți pe mai multe motive deodată; 3. Regula proporționalității. Suma volumelor conceptelor specifice trebuie să fie egală cu volumul conceptului generic. Împărțirea dihotomică (tipul cel mai strict) - împărțirea conceptelor după principiul contradictorii (A, nu-A). Clasificările sunt anumite sisteme (agregate ordonate) de concepte de specii. Clasificările sunt folosite pentru a găsi 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 de documente IS „Universitate” Lingvo „Consultant Plus” А В С 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 învățat încă să modeleze cu succes în cadrul inteligenței artificiale. Aceasta este una dintre secțiunile fundamentale ale logicii clasice care ar trebui integrată în teoria bazei de cunoștințe. După aceea, sarcinile de modelare a unor astfel de acte mentale ca ipoteze, predarea cunoștințelor declarative vor deveni disponibile, 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. Asemenea entități precum „propunere”, „percepție”, „scene din lumea reală” sunt opuse judecății. Exemplu. Următoarele propoziții exprimă aceeași judecată: - „Rechinul este un pește răpitor”; - "Toți rechinii sunt pești răpitori." „Rechinii sunt pești răpitori.” Logica clasică consideră structura unei judecăți simple într-o interpretare ușor diferită de cea acceptată în studiile logicolingvistice 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); - conceptul de predicat (PC); - relatia de predictie (RP). Exemple Se dă propoziţia: „Platon este un filozof”. În această propoziție, exprimând judecata S: „Platon” este un subiect logic, adică un simbol care denotă un concept individual al unei judecăți S. „Filosoful” este un predicat logic, adică un simbol care denotă un concept de predicat al unei judecăți S. „A fi” este o legătură subiect-predicat, adică. un simbol care denotă o relație de predicție. Astfel, se poate 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ția de predicare - relația care leagă conceptele individuale și predicate ale unui obiect empiric într-un obiect abstract holistic. Î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 - Metoda 1. Limbajul natural, care este în mod tradițional considerat greoi și imprecis, dar nu a fost încă inventată nicio metodă formală care să se compare în versatilitatea sa cu limbajul natural. Judecăți simple Atributiv Despre relații Existență Călugării, de regulă, sunt modesti Magnitogorsk la sud de Chelyabinsk Există molizi albaștri Fig. 15. Tipuri de judecăți simple A 2-a cale. Logica aristotelică tradițională. a 3-a cale. Logica simbolică contemporană. 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ă și 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 aristotelică tradițională și, în unele cazuri, o astfel de formalizare este pur și simplu imposibilă. Prin urmare, este recomandabil să se analizeze structura logică a judecăților complexe prin intermediul logicii simbolice moderne, inclusiv prin intermediul logicii propoziționale și al logicii predicatelor (vezi paragrafele corespunzătoare ale paragrafului). Principalele tipuri de judecăți complexe sunt - conjunctive; - disjunctive; - implicativ; - modal: o aletic (necesar, poate accidental); o epistemic (știu, cred, cred, cred); o deontic (hotarat, interzis); o axiologic (bun, rău); o temporal (în trecut, mai devreme, ieri, mâine, în viitor); - întrebări: o dacă - întrebări; o care sunt întrebările. 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 realizează o tranziție mentală (numită „inferență”) de la una sau mai multe judecăți (numite „premisă”) la o altă judecată (numită „concluzie”). ")... Astfel, o inferență este un obiect abstract complex în care, cu ajutorul anumitor relații, una sau mai multe judecăți sunt combinate într-un singur întreg. Pentru a desemna inferența în logică, se folosește termenul silogism. Silogismele sunt formale și 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 unei teorii logice moderne a inferenței. Pentru consolidarea conceptelor de logică trebuie să finalizați exercițiile de la pagina 78. Legile logicii Cele mai importante legi logice includ: - identitățile (orice obiect este identic doar cu el însuși); - fără contradicții (afirmațiile contradictorii între ele nu pot fi adevărate în același timp); - treimea exclusa (dintre cele doua afirmatii care sunt condradic una fata de alta, una este adevarata, cealalta este falsa, iar a treia nu este data); - motiv suficient (orice afirmație adevărată are un motiv suficient, în virtutea căruia este adevărată, și nu falsă). Să luăm în considerare mai detaliat fiecare dintre pozițiile indicate. I. Legea identității Legea identității demonstrează că fiecare gând este identic cu el însuși, „A este A” (A → A), unde A este orice gând. De exemplu: „Sarea de masă NaCl constă din Na și Cl”. Încălcarea acestei legi poate duce la erorile enumerate mai jos. Amphibole (din grecescul amphibolos - ambiguitate, dualitate) este o eroare logică bazată pe ambiguitatea expresiilor lingvistice. Un alt nume pentru această eroare este „înlocuirea tezei”. Exemplu „Spun corect 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ă bazată pe utilizarea 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.” Eroarea aici se datorează faptului că în prima judecată cuvântul „lup” este folosit ca metaforă, iar în a doua premisă - în sensul său direct. Logomahia este o dispută despre cuvinte, când în timpul discuției participanții nu pot ajunge la un punct de vedere comun din cauza faptului că nu au clarificat conceptele inițiale. 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 de consistență a gândirii. Legea fără contradicție 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 al gândirii ("A nu este B"), nu poate fi simultan 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. Astfel, hotărârile „Această persoană este student al Universității de Stat din Moscova” și „Această persoană nu este student al Universității de Stat din Moscova” pot fi simultan adevărate dacă prima dintre ele înseamnă același timp (când această persoană studii la Universitatea de Stat din Moscova), iar în al doilea - altceva (când a absolvit universitatea). Legea necontradicției indică faptul că dintre două propoziții opuse, una este în mod necesar falsă. Dar, întrucât se aplică atât judecăților contrare, cât și contradictorii, întrebarea celei de-a doua judecăți 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 terţului exclus Legea terţului exclus prevede că două judecăţi contradictorii nu pot fi simultan 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 terțului exclus formulează o cerință importantă pentru gândirea ta: nu te poți abate de la recunoașterea drept adevărată a uneia dintre cele două afirmații conflictuale ș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 motivului suficient Conținutul acestei legi poate fi exprimat astfel: pentru a fi considerată pe deplin de încredere, orice prevedere trebuie să fie dovedită, i.e. trebuie cunoscute suficiente motive pe baza cărora se crede că este adevărat. Un motiv suficient poate fi o altă practică, deja dovedită, recunoscută ca un gând adevărat, al cărui rezultat necesar este adevărul poziției care se dovedește. Exemplu. Motivul din spatele judecății „Camera a devenit mai caldă” este faptul că mercurul termometrului s-a extins. În știință, sunt considerate temeiuri suficiente: a) prevederi privind faptele certificate ale realității, b) definiții științifice, c) prevederi științifice dovedite anterior, d) axiome, precum și e) experiență personală. Inferență Inferența este derivarea unei anumite formule bazată pe multe alte formule logice prin aplicarea regulilor de inferență. Un interpret de expresii logice, folosind inferența logică, construiește el însuși lanțul necesar de calcule pe baza descrierii inițiale. Valoarea abordării logice constă în posibilitatea construirii unui interpret, a cărui activitate nu depinde de formule logice. Regulile în reprezentarea logică sunt următoarele: P0 ← P1,…, Pn. Р0 se numește obiectiv, iar Р1, Р2, ..., Рn - corpul regulii. Predicatele P1, P2, ..., Pn sunt condițiile care trebuie îndeplinite pentru a atinge cu succes obiectivul P0. Să analizăm elementele de bază ale inferenței logice folosind exemplul de realizare a procedurii de determinare a corectitudinii raționamentului. Definiția raționamentului logic corect Când spunem că o propoziție D decurge logic dintr-o altă P, ne referim la următoarele: ori de câte ori o propoziție P este adevărată, atunci propoziția D. În logica propozițională, avem de-a face cu formulele P și D, în funcție de unele variabilele 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 set de valori ​​X1, X2 , ..., Xn în condiția P (X1, X2, ..., Xn) = I2, condiția D (X1, X2, ..., Xn) = I. Formula P se numește premisa, iar D este concluzia raționamentului logic... De obicei, raționamentul logic folosește nu o premisă P, ci mai multe; în acest caz raționamentul va fi corect din punct de vedere logic din conjuncția de premise concluzia care rezultă logic. Verificarea corectitudinii raţionamentului logic Prima modalitate este prin definiţie: a) notaţi toate premisele şi concluziile sub formă de formule ale logicii enunţurilor; b) compun o conjuncție de premise formalizate P1 & P2 & ... & Pn ,; c) se verifică conform tabelului 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: este o formulă o tautologie? La această întrebare se poate răspunde prin construirea unui tabel de adevăr pentru formulă sau prin reducerea acestei formule folosind transformări echivalente la o tautologie binecunoscută. A treia modalitate de a verifica corectitudinea raționamentului logic se va numi prescurtat, deoarece nu necesită o enumerare completă a valorilor variabilelor pentru a construi un tabel de adevăr. Pentru a fundamenta această metodă, să formulăm o condiție în care raționamentul logic este incorect. Raționamentul este incorect dacă există un set de valori pentru variabilele X01, X02, .., X0n astfel încât premisa D (X01, X02, .., X0n) = Л 3 și concluzia P (X01, X02, .., X0n) = ȘI. Exemplu. Raționamentul este dat: „Dacă plouă, atunci pisica este în cameră sau la subsol. Șoarecele este în cameră sau în vizuina. 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 este pe masă. Unde este pisica și unde este șoarecele?” Să introducem următoarele denumiri: D - „plouă”; K - „pisica în cameră”; Р - „pisica la subsol”; M - „șoarece în cameră”; H - „șoarece în nurcă”; X - "" brânză la frigider "; ¬X -" brânză pe masă." Obținem următoarea schemă de raționament: D → K | R M | N K → H & X 2 3 Adevărat Fals - 36 - P → M D & ¬X ----? Vom folosi regulile de inferență 1) Д & ¬Х├Д; 2) D & ¬X├¬X; 3) D → K | R, D├ K | R. În continuare, vom lua în considerare două opțiuni. Varianta A. Fie K. ține. Atunci 4a) K, K → H & X, K├ H & X; 5a) H & X ├ X; 6a) ¬X, X├X & ¬X - au primit o contradicție, ceea ce înseamnă că presupunerea a fost greșită și această opțiune este imposibilă. Varianta B, Fie P. Atunci 4b) P, P → M├M; 5b) Р, М├Р & М Se primește concluzia lui Р & М, i.e. „Pisica este în subsol, iar șoarecele este în cameră” Exemplu Verificați corectitudinea raționamentului într-un mod prescurtat. Ce alte moduri poți rezolva această problemă? Raționamentul este dat: „Dacă azi este ger, atunci voi merge la patinoar. Dacă azi este dezgheț, atunci voi merge la discotecă. Astăzi va fi îngheț sau dezgheț. Prin urmare, voi merge la discotecă.” Soluţie. Să formalizăm condiția problemei introducând notația: M - „azi va fi ger”; K - „Voi merge la patinoar”; O - „va fi dezgheț astăzi”; D - „Voi merge 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 seturi 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 colecție (M0, K0, O0.A0) astfel încât premisele sunt adevărate, dar concluzia este falsă. Folosind definițiile operațiilor logice, vom încerca să găsim acest set. Suntem convinși că ipoteza este valabilă pentru valorile variabilelor - 37 - М0 = И, К0 = И, О0 = Л, Д0 = Л (Tabelul 1). Prin urmare, raționamentul nu este corect din punct de vedere logic. Tabelul 1 Schema de rezolvare a problemei logice Nr. 1 2 3 4 5 6 7 Adevărat M0 → K0 O0 → A0 M0 ˅ O0 M0 K0 Fals Note presupunem că premisele sunt adevărate, A0 O0 și concluzia este falsă din 2.4 și definiția a implicației de la 3, 5 și definirea disjuncției de la 1, 6 și definirea implicației O altă modalitate de a rezolva problema: construiți un 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 unei consecințe logice, raționamentul nu este corect din punct de vedere logic. Deoarece patru variabile de expresie (M, K, O, D) sunt implicate în raționament, tabelul de adevăr va conține 16 rânduri, iar această metodă este laborioasă. Cu ajutorul regulilor de inferență, se poate construi un raționament logic corect, dar nu este întotdeauna posibil să se dovedească incorectitudinea raționamentului logic. Prin urmare, pentru această sarcină, cel mai convenabil este un mod prescurtat de verificare a corectitudinii raționamentului logic. Pentru a consolida regulile de inferență, trebuie să finalizați exercițiile de la p. 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 d.Hr. - prima jumătate a secolului XIX), 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). Studiază judecățile simple, luate în considerare fără a ține cont de structura lor internă, precum și inferențe elementare care sunt cele mai accesibile înțelegerii umane. În limbajul natural, astfel de judecăți simple sunt reprezentate de propoziții care sunt luate în considerare numai din punctul de vedere al adevărului sau al falsității lor și deduceri - de sistemele corespunzătoare de enunțuri. - 38 - Logica predicatelor (calcul de predicate). Obiecte de cercetare mai complexe sunt judecățile luate în considerare ținând cont de structura lor internă. Secțiunea logicii, în care sunt studiate nu numai conexiunile dintre judecăți, ci și structura conceptuală internă a judecăților, se numește „logica predicatelor”. Metalogic. Metalogica este o extensie a logicii predicatelor. Subiectul studiului ei este întreaga sferă a relațiilor în ansamblu, toate acele relații universale care pot avea loc între concepte, judecăți, inferențe, precum și simbolurile care le denotă. 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 prevederile de bază determinate de silogismele lui Aristotel. Logica lui Aristotel În logica lui Aristotel, structura judecăţilor elementare este exprimată prin structuri: - S este P (1); - S nu este P (2), unde S este un subiect logic (din lat. Subjectum); P - vreun predicat logic (din latinescul Predicatum). Tipurile de judecăți ale logicii lui Aristotel sunt enumerate mai jos. 1. Judecăți în general afirmative - A „Totul S este P” - Toți poeții sunt oameni impresionabili. Cuvintele „este”, „nu este” joacă rolul unei legături 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. Parțial afirmativ - I „Unii S sunt P” - Unii oameni au părul creț. 4. Judecata negativă parțială - Despre „Unii S nu sunt P” - Unii oameni nu știu să asculte. 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-integrală, care este de obicei descrisă sub forma unui pătrat logic (Fig. 16, Tabelul 2). - 39 - Când folosiți un pătrat logic, este important să luați în considerare următoarea subtilitate: cuvântul „unii” este înțeles într-un sens larg - ca „unii și poate toți”. Tabelul 2 Tabelul de adevăr pentru judecățile logicii lui Aristotel 16. Pătrat logic Explicații la pătratul logic al lui Aristotel În colțul din stânga sus al pătratului logic sunt afirmații de tip A (în general afirmative). În colțul din dreapta sus - declarații de tip E (în general negative). În colțul din stânga jos (sub A) - afirmații de tip I (parțial afirmative). În colțul din dreapta jos (sub E) - declarații de tip O (negativ parțial). Enunțurile de tipurile A și O, precum și enunțurile de tipurile E și I, sunt în relație cu contradictorietatea sau contradicția (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 enunţurilor de tip E. În timp ce enunţurile contradictorii au semnificaţii de adevăr opuse (unul este adevărat, celălalt este fals), contradictorii. afirmațiile nu pot fi adevărate simultan, dar pot fi false în același timp. Cu ajutorul unui pătrat logic, poți deduce judecăți opuse, contradictorii și subordonate, 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, este posibilă stabilirea tipurilor de relaţii între judecăţi: 1) obţinerea cunoştinţelor de inferenţă; 2) compararea diferitelor puncte de vedere asupra problemelor controversate; 3) editarea textelor și în alte cazuri. Formalisme ale calculului propozițional Multe modele de reprezentare a cunoștințelor se bazează pe formalismele calculului propozițional și predicat. O prezentare riguroasă a acestor teorii din punctul de vedere al logicii matematice clasice este cuprinsă în lucrările lui Schenfield și Tiese; la Pospelov se poate găsi o prezentare populară a acestor teorii, care poate fi recomandată ca o introducere inițială. Potrivit lui Teyse, propozițiile logice sunt o clasă de propoziții în limbaj natural care pot fi adevărate sau false, iar calculul propozițional este o ramură a 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ă plouă mâine, voi sta acasă”. Deocamdată, să presupunem că toate propozițiile cu care avem de-a face aparțin clasei afirmațiilor logice. Declarațiile vor fi notate cu majuscule ale alfabetului latin și cu un index, dacă prezentarea este cerută. Exemple de notare a enunțurilor: S, S1, S2, H, H1, H2. După cum sa menționat, o afirmație logică este fie adevărată, fie falsă. O declarație adevărată i se atribuie o valoare logică - 41 - TRUE (sau ȘI), false - o valoare logică FALSE (sau L). Astfel, valoarea de adevăr formează o mulțime (I, L). În calculul propozițional se introduc 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 de notație 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 a lui I. Setul de reguli de construire a formulelor logice pe baza enunţurilor cuprinde trei componente: - bază: fiecare enunţ este o formulă; - pasul 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 desemnate cu majuscule ale alfabetului latin cu indici. Exemple de formule logice sunt prezentate î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 (SAU conjunctiv logic) a negației (NU) a enunțului logic H1 și a enunțului logic 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ă fără ambiguitate 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 = И, S2 = Л, 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 И Л Л И Tabelul 5 Tabelul de adevăr pentru conexiunile binare XYX ^ YX YXYXY AND AND AND AND I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I?... Orice logică este un sistem formal pentru care trebuie definite: - alfabetul sistemului - un set numărabil de simboluri; - formule de sistem - un subset al tuturor cuvintelor care pot fi formate din simbolurile incluse în alfabet (de obicei este specificată o procedură care vă permite să compuneți formule din simbolurile alfabetului de sistem); - axiome de sistem - un set selectat de formule de sistem; - reguli de inferență de sistem - un set finit de relații între formulele de sistem. Dicționarul de calcul de predicate din prezentarea standard cuprinde următoarele concepte: - variabile (le vom nota cu ultimele litere ale alfabetului 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: (existenta, universalitatea); - termeni; - forme functionale; - forme de predicat; - atomi; - formule. Constantele individuale și variabilele individuale Sunt similare cu constantele și variabilele din analiza matematică, cu singura diferență că zona de schimbare a acestora este indivizii, nu numerele reale. În teoria inteligenței artificiale, constantele și variabilele numite din memoria agentului corespunzătoare obiectelor și conceptelor din lumea reală sunt de obicei numite concepte. În limbile de ordinul întâi, există doar variabile individuale, deci sunt numite pur și simplu variabile. După cum se va arăta mai jos, utilizarea limbilor de ordinul întâi și respingerea utilizării limbilor de ordin superior impun 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. Pentru desemnarea variabilelor se vor folosi litere mici x, y, z, alfabet latin cu indici. 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 indica relația pe care o descrie predicatul. O constantă de predicat nu își schimbă valoarea de adevăr. Este asociat cu un număr adecvat de argumente sau parametri numiti termeni, formând o formă de predicat. Denumirea constantei predicatului este nume mnemonice sau litera alfabetului latin P cu indici. Limbajul predicatelor conține limbajul enunțurilor, deoarece o declarație nu este altceva decât o constantă de predicat fără argumente sau o formă de predicat cu loc nul. Zona semantică a formei de predicat coincide cu zona de schimbare a enunțului, adică. (Și eu). Constante funcționale Constanta funcțională (f, g, h) precum și constanta predicată, atunci când sunt combinate cu un număr adecvat de termeni, formează o formă funcțională. Diferența dintre o formă funcțională și o formă de predicat este că domeniul său semantic este alcătuit dintr-un set de constante individuale. O constantă funcțională nulă este pur și simplu o constantă individuală. conectivele logice în calculul predicatelor servesc la formarea formulelor. Cuantificatori. În calculul predicatelor se folosesc doi cuantificatori: cuantificatorul de generalitate () și cuantificatorul de existență (). Expresia xP se citește ca „pentru fiecare x P este adevărat”. Expresia xP se citește ca „există un astfel de x pentru care P este adevărat”. Un termen este o expresie formată din variabile și constante, eventual folosind funcții. 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, iar f este un simbol funcţional n-ary, 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ă un termen nu conține variabile, atunci se numește termen de bază sau constant. Termenul (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 se scrie doar f. O formă de predicat este o constantă de predicat concatenată cu un număr adecvat de termeni. Dacă p este constanta m-aria 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. expresie de tip (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 (formula) predicat n-ari, 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 (A ^ B), (A  B), (A  B) și (A  B) sunt formule; - 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 agregate): obiecte, oameni sau evenimente. Constantele sunt reprezentate - 45 - prin simboluri precum Jacques_2 (Anexa 2 la cuvântul Jacques indică o persoană foarte specifică printre persoanele cu acest nume), Cartea_22, Trimiterea_8. Variabile. Indicați numele agregatelor, cum ar fi o persoană, o carte, un pachet, un eveniment. Simbolul Book_22 reprezintă o instanță bine definită, iar simbolul cărții indică fie setul „toate cărțile” fie „conceptul unei cărți”. Simbolurile x, y, z reprezintă denumirile colecțiilor (seturi sau concepte specifice). Nume de predicate (constante de predicat). Ei definesc regulile de unire a constantelor și variabilelor, de exemplu, reguli gramaticale, proceduri, operații matematice. Simboluri precum următoarele expresii sunt folosite pentru numele predicative: Trimitere, Scriere, Plus, Împărțire. Numele funcționale (constantele funcției) reprezintă aceleași reguli ca și predicatele. Pentru a nu fi confundate cu numele de predicate, numele funcționale se scriu cu litere mici: frază, trimite, scrie, plus, împărți. Simbolurile care sunt folosite pentru a reprezenta constante, variabile, predicate și funcții nu sunt „cuvinte rusești”. Sunt simboluri ale unei reprezentări - cuvintele „ limbaj obiect„(În cazul nostru, limbajul predicatelor). Prezentarea trebuie să excludă orice ambiguitate a limbii. Prin urmare, numele indivizilor conțin numere atribuite numelor agregatelor. Jacques_1 și Jacques_2 reprezintă două persoane cu același nume. Aceste reprezentări sunt esența concretizării denumirii colecției „Jacques”. Un predicat este un nume de predicat împreună cu un număr adecvat de termeni. Predicatul se mai numește și formă de predicat. Exemplu. În rusă: Jacques îi trimite cartea lui Marie, logic: Trimitere (Jacques_2, Mari_4, Cartea_22). Aspect logic fuzzy logici neclare, teoria mulțimilor fuzzy și a altor teorii „fuzzy” este asociată cu munca savantului american Zadeh. Ideea principală a lui Zade 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ă printr-o interpretare strictă fără ambiguitate, iar tot ceea ce este asociat cu utilizarea unui limbaj natural are o interpretare multivalorică. Scopul lui Zade a fost de a construi o nouă disciplină matematică bazată nu pe teoria mulțimilor clasică, ci pe teoria mulțimilor fuzzy. Urmărind în mod constant ideea de neclaritate, potrivit lui Zadeh, se pot construi analogii neclare ale tuturor conceptelor matematice de bază și se pot crea aparatul formal necesar pentru modelarea raționamentului uman și a modului uman de rezolvare a problemelor (Fig. 17). - 46 - Crearea teoriei multimilor fuzzy - Rezolvare Teoria matematica a multimilor fuzzy - Baza mecanismului Formalizarea rationamentului modului uman - Teza de sarcini - o persoana in viata de zi cu zi - Problema gandeste si ia decizii asupra baza conceptelor fuzzy Fig. 17. Logica apariției teoriei mulțimilor fuzzy În prezent, teoria mulțimilor fuzzy și logica fuzzy (fuzzy set & fuzzy logic) ocupă un loc puternic printre direcțiile de conducere ale inteligenței artificiale. Conceptul de „fuzziness”, aplicat inițial mulțimilor, apoi în logică, 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 modelelor fuzzy de optimizare și luare a deciziilor. Următoarele pachete sunt cele mai populare în rândul clienților ruși: 1) CubiCalc 2.0 RTC - 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, care vă permite să faceți estimări rapide cu date cunoscute incorect, fără a acumula 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ă. Este adesea necesar să se găsească un compromis rezonabil între conceptele de „acuratețe” și „importanță” atunci când comunicăm cu lumea reală. De exemplu: pentru a lua o decizie de a traversa strada, o persoană nu estimează viteza unei mașini care se apropie cu o precizie de zecimi de metru pe secundă. El își definește viteza mașinii ca fiind „foarte rapidă”, „rapidă”, „lentă”, etc. 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 metodă (bazată pe lucrările lui Zadeh) implică respingerea afirmației principale a teoriei clasice a mulțimilor conform căreia un element poate să aparțină sau să nu aparțină unei mulțimi. În acest caz, se introduce o funcție specială de set de caracteristici - așa-numita funcție de membru, care preia valori dintr-un interval. Această metodă duce la o logică continuă. În al doilea mod, mai general, de formalizare a neclarității, se presupune că funcțiile caracteristice ale unei mulțimi iau valori nu dintr-un interval, 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 interval, ci cu o submulțime sau o parte a acestui interval. Algebra mulțimilor P-fuzzy poate fi redusă la o algebră de clasă. 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 item poate fi asociat cu nota cea mai potrivită pentru el. În plus, valorile estimărilor în sine pot fi neclare și date sub formă de funcții. Se obține ideea generală a logicii fuzzy. Acum despre totul în detaliu. Să luăm î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 dintr-un limbaj natural (de exemplu, „mic”, „rapid” etc.) ), atunci această variabilă este definită ca o variabilă lingvistică. Cuvintele, ale căror semnificații sunt asumate de o variabilă lingvistică, denotă de obicei mulțimi neclare. 4 Sisteme informatice inteligente: Instrucțiuni metodice la practica 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; comp.: G.G. Kulikov, T.V. Breikin, L.Z. Kamalova. - Ufa, 1999.-40 p. - 48 - O variabilă lingvistică își poate lua valori fie cuvinte, fie numere. Definiția unei variabile lingvistice (formale) O variabilă lingvistică se numește cinci (x, T (x), X, G, M), unde x este numele variabilei; T (x) - un set de nume de valori lingvistice ale variabilei x, fiecare dintre acestea fiind un set neclar pe mulțimea X; G este o regulă sintactică pentru formarea numelor de valori ale lui x; M este o regulă semantică pentru asocierea fiecărei valori a unei valori cu conceptul său. Scopul conceptului de variabilă lingvistică este de a spune într-un mod formal că o variabilă poate lua drept semnificații un cuvânt dintr-o limbă naturală. Cu alte cuvinte, fiecare variabilă lingvistică este formată din: - nume; - multimea valorilor sale, care se mai numeste si multimea de termeni de baza T. Elementele multimii de termeni de baza sunt denumirile variabilelor fuzzy; - set universal X; - regula sintactică G, conform căreia se generează termeni noi folosind cuvinte din limbaj natural sau formal; - o regulă semantică P, care atribuie fiecărei valori a unei variabile lingvistice o submulțime fuzzy a mulțimii X. De exemplu, dacă spunem „ viteza rapida ", Atunci variabila" viteza "trebuie inteleasa ca o variabila lingvistica, dar asta nu inseamna ca variabila" viteza "nu poate lua valori reale. O variabila fuzzy este descrisa de o multime (N, X, A), unde N este numele variabilei, X este o mulțime universală (zona de raționament), 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. O multime fuzzy se formeaza prin introducerea unui concept generalizat de apartenenta, i.e. extinderea setului de valori cu două elemente ale funcției caracteristice (0,1) la continuum. Aceasta înseamnă că trecerea de la apartenența completă a unui obiect la o clasă la neapartenența sa completă se produce nu brusc, ci lin, treptat, iar apartenența unui element la o mulțime este exprimată printr-un număr din interval. - 49 - Mulțimea fuzzy (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 unei mulțimi fuzzy A se numește domeniul de definire al funcției de apartenență μа. În fig. 18 prezintă principalele varietăți de funcții de membru. Orez. 18. Tipul funcţiilor de apartenenţă După tipul de funcţii de apartenenţă, acestea se disting în: - submodale (Fig. 1. c); - amodal (Fig. 1. a); - multimodal (Fig 1. m); - unimodal (Fig 1.u). - Un 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 = Tabelul care descrie funcția de membru x1 x2 x3 x4 0,2 0,6 1 0,8 Exemplu „Mulți oameni înalți” În viața reală, un astfel de concept precum „înălțimea 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, iar alții - mai mult de 190 cm. Seturile neclare ne permit să ținem cont de o astfel de evaluare neclară. - 50 - Fie x o variabilă lingvistică care denotă „înălțimea unei persoane”, funcția sa de a aparține unui set de oameni înalți A: X (0,1), unde X este o mulțime care include toate valorile posibile ale unei persoane. înălțimea, este dată astfel: Atunci mulțimea „oamenilor înalți” este dată de expresia A = (x | A (x) = 1), x ϲ X. Aceasta este prezentată grafic î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ă de linia punctată. Orez. 19. Un set neclar de oameni înalți Astfel, o persoană cu înălțimea de 145 cm va aparține mulțimii A cu grad de apartenență A (145) = 0, o persoană cu înălțimea de 165 cm - A (165) = 0,3, o înălțime de 185 cm -A (185) = 0,9 și o înălțime de 205 cm - A (205) = 1. Exemplu. — Ți-e frig acum? Temperaturile de + 60oF (+ 12oC) sunt percepute de oameni ca fiind reci, iar temperaturile de + 80oF (+ 27oC) sunt percepute ca căldură. Temperaturile de + 65oF (+ 15oC) par unora a fi scăzute, altora destul de confortabile. Numim acest grup de definiții funcția de apartenență la mulțimile 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 determinarea frigului este „temperatura sub + 15oC”, atunci + 14,99oC va fi considerat rece, dar + 15oC nu. În fig. 20. Este prezentat un grafic pentru a vă ajuta să înțelegeți modul î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”. Funcții similare pot fi descrise pentru alte concepte, cum ar fi stările deschise și închise, temperatura chillerului — 51 — sau temperatura turnului chillerului. Orez. 20. Mulțimea fuzzy „Temperatura” Astfel, se pot trage următoarele concluzii despre esența conceptului de „mulțime fuzzy”: 1) mulțimile fuzzy descriu concepte nedefinite (curger rapid, apa fierbinte , vreme caldă); 2) seturile neclare permit posibilitatea apartenenței parțiale la ele (vineri este parțial o 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 apartenență pe interval (vineri aparține weekendurilor cu un grad de apartenență de 0,3); 4) funcția de apartenență asociază obiectul (sau variabila logică) cu valoarea gradului de apartenență a acestuia într-o mulțime fuzzy. Forme de curbă pentru atribuirea funcțiilor de apartenență Există peste o duzină de curbe tipice pentru alocarea funcțiilor de apartenență. Cele mai răspândite sunt: ​​funcțiile de apartenență triunghiulare, trapezoidale și gaussiene. Funcția de apartenență triunghiulară este determinată de un triplu de numere (a, b, c), iar valoarea sa în punctul x se calculează 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) Pentru (ba) = (cb) avem cazul unei funcții de membru triunghiular simetric (Fig. 21), care poate fi specificată în mod unic prin două parametrii din triplu (a, b, c). Orez. 21. Funcția de apartenență triunghiulară În mod similar, pentru a seta funcția de apartenență trapezoidală, aveți nevoie de 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) Când (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 sunt de obicei reprezentate împreună pe un singur grafic. În fig. 23, este prezentată formalizarea conceptului imprecis de „Vârsta omului”. 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 omului” Operații de bază pe mulțimi fuzzy Operațiile de bază pe IS din clasa tuturor IS F (X) = ( | : X ) ale mulțimii universale X sunt prezentate mai jos. 1. Adunarea 5  2 =   = 1-  1,  x  X Fig. 24. Programul operației „Complement” peste funcția M 2. Intersecția I (minimum: variabile neinteracționante).  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 restricționat).  3 = ( 1   2) (x) = max (0,  1 (x) +  2 (x) -1),  x  X 5. Consolidarea II (maxim: sumă limitată).  3 = ( 1   2) (x) = min (1,  1 (x) +  2 (x)),  x  X 6. Intersecția III (produs algebric). 5 În continuare, operațiunile care sunt aceleași pentru toate cele trei baze sunt afișate pe un fundal galben. - 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 А В Fig. 25. Graficul operației de intersecție I (A) a uniunii I (B) a funcțiilor M și M1 A B Fig. 26. Graficul operației de intersecție II (A) a uniunii II (B) a funcțiilor M și M1 A B Fig. 27. Graficul operației de intersecție III (A) a uniunii 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ție.  3 =  2 (x),  x  X Fig. 28. Graficul diferenței dintre funcțiile M și M1 Fig. 29. Graficul de concentrare a funcției M1 Spre deosebire de algebra booleană, în F (X) nu sunt îndeplinite legile excluderii celei de-a treia. Atunci când se construiesc operațiuni de unire sau de intersecție în F (X), este necesar să se renunțe fie la legile excluderii celui de-al treilea, fie la proprietatea distributivității și idempotității. Obiectele fuzzy pot fi clasificate după tipul intervalului de valori al funcției de membru. Și aici se disting variantele X: - zăbrele; - semigrup; - inel; - categorie. Cazul S-multimilor neclare definite de perechea (X, ), unde - 56 - : XS este o mapare de la X la o multime S ordonata liniar Este firesc sa se impuna cerintele de finitate si completitudine lui S. Un exemplu de mulțime finită ordonată liniar este un set de valori lingvistice ale variabilei lingvistice „CALITATE” = (rău, mediu, bun, excelent). N 1 2 3 4 5 6 7 8 9 Tabelul 7 Tabelul de corespondență al operațiilor pe mulțimi neclare și funcții logice Numele operației Modificator/legătură Complement NOT Intersecție (minimum: AND (ȘI, ..., ȘI) variabile neinteracționante) Uniune I ( maxim: SAU variabile care nu interacționează) (FIE, ..., SAU) Intersecția II (produs limitat ȘI) Uniune II (produs ȘI limitat) SAU Intersecția III (produs ȘI algebric) Uniune III (suma algebrică) SAU Diferența Concentrație FOARTE După cum se arată, în funcţie Din metodele de introducere a operaţiilor de unire şi intersecţie a IS, există trei teorii principale ale SI. În conformitate cu criterii similare, ele împart: - logica fuzzy cu operații maximin (operații 1,2,3,8,9); - logica fuzzy cu operatii limitate (operatiile 1,4,5,8,9); - logica probabilistica fuzzy (operatiile 1,6,7,8,9). Interpretarea adevărului ca variabilă lingvistică duce la o logică neclară cu semnificațiile „adevărat”, „foarte adevărat”, „perfect 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.

Tutorialul introduce cititorii în istoria inteligenței artificiale, a modelelor de reprezentare a cunoștințelor, a sistemelor experte și a rețelelor neuronale. Sunt descrise principalele direcții și metode utilizate în analiza, dezvoltarea și implementarea sistemelor inteligente. Sunt luate în considerare modelele de reprezentare a cunoștințelor și metodele de lucru cu acestea, metodele de dezvoltare și crearea de sisteme expert. Cartea va ajuta cititorul să stăpânească abilitățile de proiectare logică a bazelor de date de domeniu și de programare în limbajul ProLog.
Pentru studenții și profesorii universităților pedagogice, profesorii de licee, gimnazii, licee.

Conceptul de inteligență artificială.
Un sistem de inteligență artificială (AI) este un sistem software care simulează procesul gândirii umane pe un computer. Pentru a crea un astfel de sistem, este necesar să se studieze însuși procesul de gândire al unei persoane care decide sarcini specifice sau un factor de decizie într-o anumită zonă, evidențiază pașii principali ai acestui proces și dezvoltă software care le reproduce pe un computer. Prin urmare, metodele AI sugerează o abordare structurată simplă pentru dezvoltarea sistemelor software complexe de luare a deciziilor.

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ă rezolve sarcinile intelectuale considerate în mod tradițional, comunicând cu un computer într-un subset limitat de limbaj natural.

CUPRINS
Capitolul 1. Inteligența artificială
1.1. Introducere în sistemele de inteligență artificială
1.1.1. Conceptul de inteligență artificială
1.1.2. Inteligența artificială în Rusia
1.1.3. Structura funcțională a sistemului de inteligență artificială
1.2. Direcții pentru dezvoltarea inteligenței artificiale
1.3. Date și cunoștințe. Reprezentarea cunoștințelor în sisteme inteligente
1.3.1. Date și cunoștințe. Definiții de bază
1.3.2. Modele de reprezentare a cunoștințelor
1.4. Sistem expert
1.4.1. Structura sistemului expert
1.4.2. Dezvoltarea și utilizarea sistemelor expert
1.4.3. Clasificarea sistemelor expert
1.4.4. Reprezentarea cunoștințelor în sisteme expert
1.4.5. Instrumente experte de construcție a sistemelor
1.4.6. Tehnologie expertă de dezvoltare a sistemului
Întrebări și sarcini de control pentru capitolul 1
Literatura pentru capitolul 1
Capitolul 2. Programarea logică
2.1. Metodologii de programare
2.1.1. Metodologia de programare imperativă
2.1.2. Metodologia de programare orientată pe obiecte
2.1.3. Metodologia de programare funcțională
2.1.4. Metodologia de programare logica
2.1.5. Metodologia de programare cu constrângeri
2.1.6. Metodologia de programare a rețelelor neuronale
2.2. O scurtă introducere în calculul predicatului și demonstrațiile teoremelor
2.3. Procesul de inferență în limbajul Prolog
2.4. Structura unui program Prolog
2.4.1. Folosind obiecte compuse
2.4.2. Folosind domenii alternative
2.5. Organizarea repetărilor în Prolog
2.5.1. Metoda rollback după eșec
2.5.2. Metoda de tăiere și derulare înapoi
2.5.3. Recursie simplă
2.5.4. Metoda regulii de recursivitate generalizată (GPR).
2.6. Liste în Prolog
2.6.1. Listează operațiuni
2.7. Șiruri de prolog
2.7.1. Operații cu șiruri
2.8. Fișiere prolog
2.8.1. Predicate fișierului Prolog
2.8.2. Descrierea domeniului fișierului
2.8.3. Scrie la dosar
2.8.4. Citirea dintr-un fișier
2.8.5. Modificarea unui fișier existent
2.8.6. Adăugați la sfârșitul unui fișier existent
2.9. Crearea bazelor de date dinamice în Prolog
2.9.1. Baze de date în Prolog
2.9.2. Predicate dinamice ale bazei de date în Prolog
2.10. Crearea sistemelor expert
2.10.1. Structura sistemului expert
2.10.2. Reprezentarea cunoștințelor
2.10.3. Metode de retragere
2.10.4. Sistem interfața cu utilizatorul
2.10.5. Sistem expert bazat pe reguli
Întrebări și sarcini de control pentru capitolul 2
Literatura pentru capitolul 2
Capitolul 3. Rețele neuronale
3.1. Introducere în rețelele neuronale
3.2. Model de neuron artificial
3.3. Aplicarea rețelelor neuronale
3.4. Antrenamentul rețelei neuronale
Întrebări și sarcini de control pentru capitolul 3
Literatura pentru capitolul 3.

Descărcare gratuită e-book în format convenabil, urmăriți și citiți:
Descarcă cartea Fundamentals of Artificial Intelligence, Borovskaya E.V., Davydova N.A., 2016 - fileskachat.com, descărcare rapidă și gratuită.

Statul Armavir

Universitatea Pedagogică

FUNDAMENTELE INTELIGENTEI ARTIFICIALE

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

Armavir 2004

Publicat prin decizia UMS ASPU

Referent:, candidat la științe fizice și matematice, profesor asociat, șef al Centrului de Internet al Academiei Agricole de Stat Kabardino-Balkarian

Kozyrev al inteligenței artificiale. Ghid de studiu pentru studenții care studiază la specialitatea „informatică”. - Armavir, 2004.

Considerat 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 de instruire este destinat studenților care studiază în specialitatea „informatică”, și poate 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 de cadru …………………………………………. ………… 10

3.3. Modelul 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 experte de dezvoltare a sistemelor ……… 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. Variabilele din PROLOG ………………………………………… ... 22

5.5. Obiecte și tipuri de date din PROLOG ……………………………… ... 23

5.6. Principalele secțiuni ale programului PROLOG …………………………… .23

5.7. Revenire ………………………………………………………… ... 24

5.8. Controlul backtracking: Predicate de eșec și tăiere …… 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 sferele de activitate, devenind un mijloc de integrare a științelor. Instrumentele software bazate pe tehnologii și metode de inteligență artificială au devenit larg răspândite în lume. Toate țările dezvoltate din punct de vedere economic au început să efectueze cercetări intense privind crearea unui spațiu informațional unic care să creeze condiții pentru lucrul comun de la distanță bazat pe baze de cunoștințe. Cursul „Fundamentele inteligenței artificiale” în învățământul superior include studiul unor astfel de secțiuni precum prezentarea 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 examinează mediul de dezvoltare instrumentală pentru programele 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 simula relații logice între obiecte permit rezolvarea problemelor din diverse domenii.

Manualul educațional-metodologic „Fundamentals of Artificial Intelligence” va ajuta la extinderea ideilor viitorului profesor de informatică despre domeniile de aplicare a teoriei inteligenței artificiale, despre limbajele de programare și structurile hardware disponibile și promițătoare pentru crearea artificială. sistemele de informații.

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

euntellectus(lat) - minte, rațiune, rațiune, abilități de gândire 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 inteligente. 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 cadrul sistemului și să o folosești pentru a rezolva probleme practice. Tehnologiile AI sunt folosite astăzi în multe domenii de aplicare.

Începutul cercetărilor în domeniul AI (sfârșitul anilor 1950) este asociat cu lucrările lui Newell, Syman și Shaw, care au investigat procesele de rezolvare a diferitelor probleme. Rezultatele muncii lor au fost programe precum „LOGIK-THEORETIK”, destinate demonstrarii 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 diverselor metode euristice.

În acest caz, metoda euristică de rezolvare a unei probleme a fost considerată ca caracteristică gândirii umane „în general”, care se caracterizează prin apariția unor presupuneri despre modalitatea de rezolvare a problemei cu verificarea lor ulterioară. El 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 de obicei 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, sunt utilizate trei abordări pentru a crea rețele neuronale:

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

program- crearea de programe si instrumente destinate calculatoarelor performante. Rețelele sunt create în memoria computerului, toată munca este realizată de propriile procesoare;

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

B. Cibernetica „cutiei negre”.

Cibernetica „cutie neagră” se bazează pe principiul opus neurociberneticii. Nu contează cum funcționează dispozitivul „gânditor”. Principalul lucru este că reacționează la influențele date de intrare în același mod ca și creierul uman.

Această direcție a inteligenței artificiale s-a concentrat pe găsirea de algoritmi pentru rezolvarea problemelor inteligente 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), succese în rezolvarea de puzzle-uri și jocuri (), dezamăgirea în rezolvarea problemelor practice (), primele succese în rezolvarea unui număr de probleme practice ( ), utilizare comercială în masă în rezolvarea problemelor practice (). Dar baza succesului comercial este pe bună dreptate formată 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 domeniu
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 analiză, acestea sunt:

Limbajul care utilizează modelul de producție este PROLOG.

3.4. Model logic

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

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

T - set elemente de baza de natură diferită cu proceduri adecvate;

P este un set de reguli sintactice. Cu ajutorul lor, din elementele T se formează colecții corecte sintactic. Procedura P (R) determină dacă acest set este corect;

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

B - un set de reguli de inferență. Aplicându-le elementelor lui A, puteți obține noi colecții corecte din punct de vedere sintactic la care puteți aplica din nou aceste reguli. Procedura P (B) determină, pentru fiecare colecție corectă sintactic, dacă aceasta este deductibilă.

4. Sisteme experte

4.1. Numirea sistemelor expert

Sistem expert(ES) sunt sisteme software complexe care acumulează cunoștințele specialiștilor în domenii specifice și reproduc această experiență empirică pentru sfatul 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 practice neformalizate. Utilizarea unui sistem expert ar trebui folosită numai atunci când dezvoltarea lor este posibilă și oportună.

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 un specialist obișnuit nu este capabil să vadă (în timpul alocat) toate aceste condiții;

Prezența concurenților care au avantajul că fac o treabă mai bună la o anumită sarcină.

De funcţional sistemele expert pot fi împărțite în următoarele tipuri:

1. Sisteme expert puternice concepute pentru un cerc restrâns de utilizatori (sisteme de control pentru echipamente tehnologice complexe, sisteme expert 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 diagnostic medical, sisteme complexe de instruire. 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 cunoștințelor - un inginer cognitiv.

3. Sisteme experte cu numar mic reguli și relativ ieftine. Aceste sisteme sunt destinate publicului larg (sisteme care facilitează depanarea hardware-ului). Utilizarea unor astfel de sisteme face posibil să se facă fără personal înalt calificat, pentru a reduce timpul de depanare. Baza de cunoștințe a unui astfel de sistem poate fi completată și modificată fără a recurge la asistența 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 realizat independent. Folosit în situații pentru a facilita munca zilnică. 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 și repararea echipamentelor simple.

Utilizarea sistemelor expert și a rețelelor neuronale aduce beneficii economice semnificative. De exemplu: - American Express și-a redus pierderile cu 27 de milioane de dolari pe an datorită unui sistem expert care determină oportunitatea acordării sau refuzului unui împrumut unei anumite firme; „DEC economisește 70 de milioane de dolari anual cu XCON / XSEL, care personalizează sistemul de calcul VAX. 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 de dolari cu un sistem expert în conducte.

4.2. Tipuri de sarcini rezolvate cu
sistem expert

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

Detectarea și identificarea diferitelor tipuri de nave oceanice - SIAP;

Determinarea trăsăturilor de bază ale personalității pe baza rezultatelor testării psihodiagnostice în sistemele AUTANTEST și MICROLUSHER etc.

Diagnosticare... Diagnosticarea se referă la detectarea unei defecțiuni într-un anumit sistem. Exemple de ES:

Diagnosticul și terapia vasoconstricției coronariene - ANGY;

Diagnosticarea erorilor în hardware și software de calculator - sistem CRIB etc.

Monitorizarea... Sarcina principală a monitorizării este interpretarea continuă a datelor în timp real și semnalarea că anumiți parametri sunt în afara limitelor permise. Principalele probleme sunt „sărirea” situației alarmante și sarcina inversă a declanșării „false”. Exemple de ES:

Controlul exploatării centralelor SPRINT, asistență dispecerii unui reactor nuclear - REACTOR:

Controlul senzorilor de urgență la o fabrică chimică - FALCON etc.

Proiecta... Proiectarea constă în pregătirea caietului de sarcini pentru crearea de „obiecte” cu proprietăți predefinite. Caietul de sarcini se referă la întregul set de documente necesare, desen, notă explicativă etc. Exemple de ES:

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

Proiectare LSI - CADHELP;

Sinteză circuite electrice- SYN etc.

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

Prognoza meteo - sistem WILLARD:

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

Prognoze în economie - ECON et al.

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

Planificarea comportamentului robotului - STRIPS,

Planificarea comenzilor industriale - 1SIS,

Planificarea experimentului - MOLGEN et al.

Educaţie. Sistemele de învățare diagnostichează erorile în studiul unei discipline folosind un computer și sugerează deciziile corecte. Ei acumulează cunoștințe despre ipoteticul „elev” și greșelile sale caracteristice, apoi în munca lor sunt capabili să diagnosticheze slăbiciunile cunoștințelor elevilor și să găsească mijloace adecvate pentru a le elimina. Exemple de ES:

Învățarea limbajului de programare Lisp în sistemul Lisp Teacher;

Sistemul PROUST - predarea limbajului Pascal etc.

Soluțiile sistemelor 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 unui expert și unui utilizator (de obicei într-o limbă apropiată de naturală). Paralel cu această 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 - Folosit în baza de cunoștințe pentru a descrie relațiile dintre obiecte. Inferența se realizează pe baza relațiilor definite de reguli.

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

Inferență automată- un mecanism de raționament care operează cu cunoștințe și date în vederea obținerii de noi date; pentru aceasta se folosește de obicei un mecanism implementat prin software pentru găsirea de soluții.

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, precum și permite utilizatorului să controleze cursul raționamentului într-o oarecare măsură.

Explicați subsistemul- este necesar pentru a oferi utilizatorului capacitatea 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. Include un sistem de meniuri imbricate, șabloane de limbaj de reprezentare a cunoștințelor, sfaturi („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 despre sarcină sunt procesate și, după codificarea corespunzătoare, sunt transferate în blocurile sistemului expert. Rezultatele prelucrării datelor obținute sunt transmise la modulul de sfaturi și explicații și, după ce au fost convertite î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 cere o explicație de la sistemul expert pentru a-l primi.

4.4. Principalele etape ale dezvoltării 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 SE specific includ:

Definirea zonei problematice și a sarcinii;

Găsirea unui expert dornic să coopereze în rezolvarea problemei și desemnarea unei echipe de dezvoltare;

Determinarea unei abordări preliminare pentru rezolvarea problemei;

Analiza costurilor și beneficiilor din dezvoltare;

Întocmirea unui plan detaliat de dezvoltare.

2. Dezvoltarea unui sistem prototip

Sistem prototip este o versiune trunchiată a sistemului expert, concepută pentru a verifica corectitudinea codificării faptelor, a relațiilor și a strategiilor de raționament expert.

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

Sistemul prototip ar trebui să rezolve cel mai mult sarcini tipice dar nici nu ar trebui să fie mare.

Timpul și efortul implicat în prototipare ar trebui să fie neglijabile.

Lucrarea programelor prototip este evaluată și verificată pentru a o aduce în concordanță cu nevoile reale ale utilizatorilor. Prototipul este verificat pentru:

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

Eficacitatea 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 inginerului de cogniție, extinde baza de cunoștințe a prototipului despre domeniul 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 adaugă de obicei profunzime sistemului furnizând Mai mult reguli pentru aspectele subtile ale cazurilor individuale. După stabilirea structurii de bază a ES, inginerul de cunoștințe trece la dezvoltarea și adaptarea interfețelor, cu ajutorul cărora sistemul va comunica cu utilizatorul și expertul.

De obicei implementat tranzitie lina de la prototipuri la sisteme industriale expert. Uneori, la dezvoltarea unui sistem industrial, se disting etape suplimentare pentru tranziție: prototip demonstrativ - prototip de cercetare - prototip de lucru - 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 vom grupa după cum urmează:

Criteriile utilizatorului (claritatea și „transparența” sistemului, ușurința în utilizare a interfețelor etc.);

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

Criterii pentru echipa de dezvoltare (eficiența implementării, productivitate, timp de răspuns, design, lărgimea domeniului de aplicare, 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, factori de ponderare utilizate în ieșiri logice, date etc.).

5. Andocarea sistemului

În această etapă, sistemul expert este andocat cu alte instrumente software în mediul în care va lucra, iar oamenii pe care îi va deservi sunt instruiți.Andocare înseamnă și dezvoltarea conexiunilor între sistemul expert și mediul în care operează.

Andocarea include asigurarea comunicarii SE cu bazele de date existente si cu alte sisteme din intreprindere, precum si imbunatatirea factorilor de sistem care depind de timp, astfel incat sa puteti asigura o functionare mai eficienta a acestuia si sa imbunatatiti caracteristicile mijloacelor sale tehnice daca sistemul funcționează într-un mediu neobișnuit (de exemplu, comunicarea cu dispozitivele de măsurare).

6. Suport de sistem

Transcodarea unui sistem într-un limbaj precum C îmbunătățește performanța și portabilitatea, dar scade 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 schimbă, atunci este necesar să se susțină sistemul în mediul 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 mai puțin comune ale inteligenței artificiale, cum ar fi REFAL, dezvoltate în Rusia. Versatilitatea acestor limbaje este mai mică decât cea a limbilor tradiționale, dar limbajele de inteligență artificială compensează pierderea acesteia prin posibilități bogate de lucru cu date simbolice și logice, ceea ce este extrem de important pentru sarcinile de inteligență artificială. Pentru a crea sunt folosite limbaje ale inteligenței artificiale calculatoare specializate(de exemplu, mașini Lisp) concepute pentru a rezolva problemele de inteligență artificială. Dezavantajul acestor limbi este inaplicabilitatea lor pentru crearea de sisteme experte hibride.

Instrumente software speciale

Biblioteci și suplimente 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 sisteme experte la un nivel superior decât este posibil în limbaje 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), care este un sistem expert MYCIN gol. că nu necesită munca programatorilor pentru a crea un sistem expert gata făcut. Tot ce este necesar sunt experți în domeniu pentru a umple baza de cunoștințe. Cu toate acestea, dacă un anumit domeniu nu se potrivește bine cu modelul utilizat într-un anumit shell, umplerea baza de cunoștințe în acest caz este foarte dificilă.

5. PROLOG – limbajul logicii
programare

5.1. Informații generale despre PROLOG.

PROLOGUE (PROGRAMMING IN LOGIC) este un limbaj de programare logic conceput pentru a rezolva 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 preluarea informațiilor din baze de date, iar metodele sale de căutare sunt fundamental diferite de cele tradiționale.

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

Esența abordării logice este că mașinii ca program nu i se oferă un algoritm, 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 programatorului este să reprezinte cu succes domeniul cu un sistem de formule logice și cu un astfel de set de relații care descriu cel mai pe deplin sarcina.

Proprietățile fundamentale ale PROLOGULUI:

1) motor de căutare și returnare a inferenței

2) motor de potrivire a modelului încorporat

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

4) lipsa indicatorilor, a operatorilor de atribuire și sărituri

5) recursiunea naturală

Etapele programării PROLOGUE:

1) anunțarea faptelor despre obiecte și relația dintre acestea;

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

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

Baza teoretică a PROLOGULUI este o ramură a logicii simbolice numită calculul predicatului.

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

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

De exemplu, faptul negru (pisica) este scris folosind predicatul negru, care are un singur argument. Fapt a scris (sholokhov, „DON LINIT”) scris folosind predicatul a scris care are două argumente.

Numărul de argumente ale unui predicat 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 din Rusia este sistemul de programare Turbo Prolog - o implementare comercială a limbajului pentru computerele compatibile cu IBM. În 1988, un mult mai puternic Varianta turbo Prolog 2.0, care include un mediu de programare integrat avansat, compilator rapid și instrumente de programare de nivel scăzut. Borland a distribuit această versiune până în 1990, când PDC a dobândit un monopol asupra utilizării textele sursă compilator și promovarea în continuare a sistemului de programare pe piață sub numele PDC Prolog.

În 1996, Centrul de Dezvoltare Prolog lansează pe piață sistemul Visual Prolog 4.0. Mediul Visual Prolog utilizează o abordare numită „programare vizuală”, în care aspect iar comportamentul programelor este definit folosind instrumente speciale de proiectare grafică fără programare tradițională într-un limbaj algoritmic.

Visual Prolog include mediu interactiv dezvoltare vizuală (VDE - Visual Develop Environment), care include editori de text și diverse grafice, unelte generatoare de cod care construiesc logica de control (Experți), precum și o interfață care este o extensie a limbajului programare vizuală(VPI - Visual Programming Interface), compilator Prolog, un set de diverse include fișiere și biblioteci, 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- aceasta este o afirmație că se observă o relație specifică între obiecte. Faptul 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:

studiind (ira, universitate). % Ira studiază la universitate

părinte (ivan, alexei). % 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 disponibile.

Structura regulilor:

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

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

Partea stângă a regulii de inferență este numită cap reguli, iar partea dreaptă este corp... Corpul poate consta din mai multe condiții, separate prin virgule sau punct și virgulă. O virgulă înseamnă o operație logică ȘI, un punct și virgulă înseamnă o operație logică SAU. Propozițiile folosesc variabile pentru a rezuma regulile de inferență. Variabilele sunt valabile într-o singură propoziție. Numele în propoziții diferite indică obiecte diferite. 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 compun corpul regulii sunt adevărate. Faptele și regulile formează bază de cunoștințe.

Dacă aveți o bază de date, puteți scrie Anchetă(ținta) către ea. O cerere este o formulare a unei probleme pe care un program trebuie să o rezolve. Structura sa este aceeași cu cea a unei reguli sau a unui fapt. Există interogări constante și interogări variabile.

Interogările 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, 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

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

Sunt apelate interogări simple subscop, o interogare compusă se evaluează la adevărat atunci 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

Variabila din PROLOG nu este considerată o locație de memorie alocată. Este folosit pentru a desemna un obiect care nu poate fi referit prin nume. Variabila poate fi luată în 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 numește o variabilă care nu contează liber, o variabilă având o valoare - concretizat.

Este apelată o variabilă constând doar din caracterul de subliniere anonimși este folosit dacă sensul său este irelevant. De exemplu, există fapte:

părinte (Ira, Tanya).

părinte (misha, tanya).

părinte (Olya, Ira).

Este necesară identificarea tuturor părinților

Anchetă: părinte (x, _)

Rezultat:

X = Ira

X = Misha

X = Olya

Scopul unei variabile este afirmația. Î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ă niciun operator de atribuire în PROLOG; rolul său este jucat de operatorul de egalitate =. Ținta X = 5 poate fi gândită ca o comparație (dacă X are o valoare) sau ca o atribuire (dacă X este liber).

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

5.5. Obiecte și tipuri de date în PROLOG

Sunt apelate obiectele de date din PROLOG termeni... Un termen poate fi un termen (structură) constant, variabil sau 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. Ghilimele sunt omise dacă șirul începe cu litera micași conține doar litere, cifre și un caracter de subliniere (adică dacă se poate distinge de notația 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.

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

Domeniuîn PROLOG, tipul de date este numit. 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 secvență de litere latine, numere și liniuțe de subliniere care încep cu o literă mică sau orice succesiune de simboluri cuprinse între ghilimele.

5.6. Secțiunile principale ale programului PROLOG

De regulă, un program PROLOG constă din patru secțiuni.

DOMENIILE- secțiune care descrie domenii (tipuri). Secțiunea este utilizată dacă programul folosește domenii non-standard.

De exemplu:

PREDICATE - secțiune pentru descrierea predicatelor. Secțiunea este folosită dacă programul folosește predicate non-standard.

De exemplu:

știe (nume, nume)

numele studentului)

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

De exemplu:

stie (lena, ivan).

student (ivan).

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

POARTĂ - secțiunea țintă. Această secțiune înregistrează cererea.

De exemplu:

student_sign (lena, X).

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

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

scrie („Bună ziua”, Nume, „!”).

Top articole similare