Proprietățile fundamentale ale prologului. Manual pentru discipline ale direcției

Statul Armavir

Universitatea Pedagogică

BAZELE INTELIGENTEI ARTIFICIALE

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

Armavir 2004

Publicat prin decizie a UMS ASPU

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

Inteligența artificială Kozyrev. Manual educațional și metodologic pentru studenții care studiază la specialitatea „informatică”. – Armavir, 2004

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

Manualul educațional și metodologic este destinat studenților care studiază în specialitatea „informatică”, putând fi folosit și de oricine este interesat de problemele inteligenței artificiale și programare 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……………………………………………. 9

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

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

3.3. Model de produs……………………………………………………..11

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

4. Sisteme experte………………………………………………………...12

4.1. Scopul sistemelor expert…………………………………………….12

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

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

4.4. Etapele principale ale dezvoltării sistemelor expert……………………16

4.5. Instrumente pentru dezvoltarea sistemelor expert………18

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

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

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

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

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

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

5.7. Întoarcerea……………………………………………………………...24

5.8. Controlul backtracking: predicate eșuate și tăiere......26

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

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

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

5.12. Sarcini standard procesarea listei………………………………………….31

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

Introducere

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

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

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

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

euntellectus(lat) - minte, rațiune, inteligență, abilități de gândire ale unei persoane. Inteligenţă artificială(AI) este un domeniu al informaticii, al cărui subiect este dezvoltarea de hardware și software care permite utilizatorului să rezolve probleme considerate în mod tradițional intelectuale. Teoria inteligenței artificiale este știința cunoașterii, cum să o obțineți, să o reprezentați în sisteme artificiale, să o procesați în cadrul sistemului și să o utilizați pentru a o rezolva. probleme practice. Tehnologiile care folosesc inteligența artificială sunt folosite astăzi în multe domenii de aplicare.

Începutul cercetărilor în domeniul AI (sfârșitul anilor 50 ai secolului XX) este asociat cu lucrările lui Newell, Sayman și Shaw, care au studiat procesele de rezolvare a diferitelor probleme. Rezultatele muncii lor au fost programe precum „TEORISTUL LOGIC”, concepute pentru a demonstra teoreme în calculul propozițional și „REzolvarea problemelor generale”. 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 unei varietăți de metode euristice.

Metoda euristică de rezolvare a unei probleme a fost considerată caracteristică gândirii umane „în general”, care se caracterizează prin apariția unor presupuneri despre modul de rezolvare a unei probleme și verificarea ulterioară a acestora. A fost pusă în contrast cu metoda algoritmică folosită în calculatoare, care a fost interpretată ca implementarea mecanică a unei anumite secvențe de pași, conducând în mod 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 că baza creier 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ă saltului în dezvoltarea computerelor. Au apărut neurocalculatoarele și transputerii.

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

hardware- crearea de calculatoare speciale, carduri 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ă. Se fac unele calcule placi speciale extensii (coprocesoare), unele - software.

B. Cibernetica cutiei negre.

Baza ciberneticii „cutiei negre” este principiul opus neurociberneticii. Nu contează cum este proiectat dispozitivul „gânditor”. Principalul lucru este că reacționează la influențele date de intrare în același mod ca și creierul uman.

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

Cercetările în domeniul inteligenței artificiale au parcurs un drum lung și spinos: primele hobby-uri (1960), pseudoștiința (1960-65), succese în rezolvarea de puzzle-uri și jocuri (), dezamăgire în rezolvarea problemelor practice (), primele succese în rezolvare. o serie de probleme practice ( ), utilizare comercială în masă în rezolvarea problemelor practice (). Dar baza succesului comercial se află pe bună dreptate în sistemele expert și, în primul rând, în sistemele 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 zonă
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, Go. Se bazează pe una dintre abordările anterioare - 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 infructuoasă. În prezent, se utilizează un model mai complex, inclusiv analiza și sinteza mesajelor în limbaj natural, care constă din mai multe blocuri. Pentru analiza este:

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

3.4. Model logic

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

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

T – un set de elemente de bază de diverse naturi cu procedee corespunzătoare;

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

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

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

4. Sisteme experte

4.1. Scopul 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 a oferi sfaturi utilizatorilor mai puțin calificați.

Scopul cercetării sistemelor expert este de a dezvolta programe care, atunci când rezolvă probleme de la un anumit domeniul subiectului, obțineți rezultate care nu sunt inferioare ca calitate și eficiență rezultatelor obținute de experți.

Sistemele experte sunt concepute pentru a rezolva probleme informale, practic semnificative. Sistemele expert ar trebui utilizate numai atunci când dezvoltarea lor este posibilă și fezabilă.

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ă revizuiască (în timpul alocat) toate aceste condiții;

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

De funcţional 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 și 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 specialiști experți. Colectarea de cunoștințe și formarea unei baze de cunoștințe este realizată de un specialist în colectarea de cunoștințe - un inginer cognitiv.

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

4. Sisteme expert simple pentru uz individual. Deseori realizat independent. Folosit în situații pentru a ușura munca de zi cu zi. Utilizatorul, după ce a organizat regulile într-o anumită bază de cunoștințe, își creează propriul sistem expert pe baza acestuia. Astfel de sisteme sunt folosite în drept, 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 companii; - DEC economisește 70 milioane USD 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 USD utilizând un sistem expert de management al conductelor.

4.2. Tipuri de probleme rezolvate folosind
sistem expert

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

Detectare și identificare tipuri variate nave maritime - SIAP;

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

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

Diagnosticul și terapia îngustării vaselor 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 semnalizarea când anumiți parametri depășesc limitele acceptabile. Principalele probleme sunt „lipsirea” unei situații de alarmă și problema inversă a activării „false”. Exemple de ES:

Monitorizarea functionarii centralelor SPRINT, asistenta dispeceratelor reactoarelor nucleare - REACTOR:

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

Proiecta. Proiectarea constă în pregătirea specificațiilor pentru crearea de „obiecte” cu proprietăți predeterminate. Caietul de sarcini înseamnă î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;

Sinteza circuitelor electrice - SYN etc.

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

Prognoza meteo - sistem WILLARD:

Estimări pentru recolta viitoare - PI. FURNICĂ;

Prognoze în economie - ECON etc.

Planificare. Planificarea se referă la găsirea planurilor de acțiune legate de obiecte capabile să îndeplinească anumite funcții. Astfel de ES folosesc modele ale comportamentului obiectelor reale pentru a deduce logic consecințele activității planificate. Exemple de ES:

Planificarea comportamentului robotului - STRIPS,

Planificarea comenzilor industriale - 1SIS,

Design experimental - MOLGEN et al.

Educaţie. Sistemele educaționale diagnostichează erorile atunci când studiază orice disciplină folosind un computer și sugerează soluțiile corecte. Ei acumulează cunoștințe despre un „elev” ipotetic și greșelile sale caracteristice, apoi în munca lor sunt capabili să diagnosticheze punctele slabe ale cunoștințelor elevilor și să găsească mijloace adecvate pentru a le elimina. Exemple de ES:

Instruire in limbajul de programare Lisp in sistemul „Teacher Lisp”;

Sistemul PROUST - instruire lingvistică Pascal et al.

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

Sistemele experte își pot extinde cunoștințele în timpul interacțiunii cu un expert.

4.3. Structura sistemelor expert

Structura sistemelor expert include următoarele componente:

Bază de cunoștințe– nucleul unui ES, un corp de cunoștințe dintr-un domeniu, înregistrat pe suport informatic într-o formă înțeleasă de un expert și de un utilizator (de obicei într-o limbă apropiată de naturală). În 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ți obiecte și relațiile dintre ele. Reguli – utilizate în baza de cunoștințe pentru a descrie relațiile dintre obiecte. Pe baza relațiilor specificate de reguli, se efectuează inferența logică.

Bază de date– destinat stocării temporare a faptelor și ipotezelor, conține date intermediare sau rezultatul comunicării dintre sisteme și utilizator.

Inferență automată– un mecanism de raționament care funcționează cu cunoștințe și date pentru a obține date noi; pentru aceasta, se folosește de obicei un mecanism de căutare a soluției implementat de software.

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

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

Subsistemul de achiziție a cunoștințelor– un program care oferă unui inginer de cunoștințe posibilitatea de a crea o bază de cunoștințe într-un mod interactiv. Include un sistem de meniuri imbricate, șabloane de limbaj de reprezentare a cunoștințelor, indicii (modul „ajutor”) ș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 (definiție, modificare, adăugare);

Rezolvarea problemelor.

În acest mod, datele sarcinii sunt procesate și, după o codificare corespunzătoare, transferate în blocurile sistemului expert. Rezultatele prelucrării datelor primite intră în modulul de sfaturi și explicații și, după recodificarea într-un limbaj apropiat de firesc, sunt emise sub formă de sfaturi, explicații și comentarii. Dacă răspunsul nu este clar pentru utilizator, utilizatorul poate solicita o explicație de la sistemul expert pentru obținerea acestuia.

4.4. Etapele principale ale dezvoltării sistemelor expert

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

1. Selectarea problemei potrivite

Activitățile care preced decizia de a începe dezvoltarea unui SE specific includ:

Definirea zonei problematice și a sarcinii;

Găsirea unui expert dornic să colaboreze la rezolvarea problemei și desemnarea unei echipe de dezvoltare;

Determinarea unei abordări preliminare pentru rezolvarea problemei;

Analiza costurilor si profiturilor din dezvoltare;

Pregătirea plan detaliat dezvoltare.

2. Dezvoltarea unui sistem prototip

Sistem prototip este o versiune trunchiată a unui sistem expert conceput pentru a verifica codificarea corectă a faptelor, relațiilor și strategiilor de raționament ale expertului.

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

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

Timpul și munca implicate în crearea unui prototip ar trebui să fie neglijabile.

Performanța programelor prototip este evaluată și testată pentru a se asigura că acestea sunt aliniate cu nevoile reale ale utilizatorilor. Prototipul este testat pentru:

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

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

Calitatea cazurilor de testare;

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

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

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

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

3. Dezvoltarea prototipului la un sistem expert industrial.

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

De regulă, se realizează o tranziție lină de la prototipuri la sistemele expert industriale. Uneori, atunci când se dezvoltă un sistem industrial există pași suplimentari a merge: prototip demonstrativ - prototip de cercetare - prototip operațional - sistem industrial.

4. Evaluarea sistemului

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

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

Criteriile experților invitați (evaluarea sfaturilor și soluțiilor oferite de sistem, comparație cu propriile decizii, evaluarea subsistemului explicație etc.);

Criteriile echipei de dezvoltare (eficiența implementării, productivitatea, timpul de răspuns, designul, amploarea domeniului de acoperire, consistența cunoștințelor, numărul de fundături când sistemul nu poate lua o decizie, analiza sensibilității programului la modificări minore în reprezentarea cunoștințelor, ponderare coeficienții utilizați în ieșirea logică, date etc.).

5. Sistem de andocare

În această etapă, sistemul expert este interfațat cu alte programe software din mediul în care va funcționa, iar oamenii pe care îi va deservi sunt instruiți.Interfața înseamnă și dezvoltarea de conexiuni între sistemul expert și mediul în care operează.

Andocarea include asigurarea comunicării între ES și bazele existente date și alte sisteme din întreprindere, precum și îmbunătățirea factorilor de sistem dependenți de timp, astfel încât să poată funcționa mai eficient și să-și îmbunătățească performanța hardware atunci când sistemul funcționează într-un mediu neobișnuit (de exemplu, comunicarea cu dispozitivele de măsurare).

6. Suport de sistem

Recodificarea unui sistem într-un limbaj precum C îmbunătățește performanța și portabilitatea, dar reduce flexibilitatea. Acest lucru este acceptabil numai dacă sistemul păstrează toate cunoștințele despre domeniul problemei ș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 mențină sistemul într-un mediu de instrumente de dezvoltare.

Limbi de inteligență artificială

Lisp (LISP) și Prolog (Prolog) sunt cele mai comune limbaje concepute pentru a rezolva problemele de inteligență artificială. Există, de asemenea, limbaje de inteligență artificială mai puțin obișnuite, de exemplu REFAL, dezvoltate în Rusia. Universalitatea acestor limbi este mai mică decât limbi tradiționale, dar limbajele de inteligență artificială compensează pierderea acesteia cu capacități bogate de lucru cu date simbolice și logice, ceea ce este extrem de important pentru sarcinile de inteligență artificială. Pe baza limbajelor de inteligență artificială, computerele specializate (de exemplu, mașinile Lisp) sunt create 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 Representation Language), ARTS etc., permițând utilizatorilor să lucreze cu șabloane de sistem expert pentru mai multe nivel inalt decât este posibil în limbajele convenționale de inteligență artificială.

"Cochilii"

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

5. PROLOG – limbaj logic
programare

5.1. Informații generale despre PROLOG.

PROLOG (Programming in LOGIC) este un limbaj de programare logica conceput pentru rezolvarea problemelor din domeniul inteligenței artificiale (crearea de sisteme electronice, programe de traducere, procesarea limbajului natural). Este folosit pentru procesarea limbajului natural și are instrumente puternice care vă permit să extrageți informații din baze de date, iar metodele de căutare folosite în el sunt fundamental diferite de cele tradiționale.

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

Esența abordării logice este că mașinii nu i se oferă un algoritm ca program, ci descriere formală tematică și problema fiind rezolvată sub forma unui sistem axiomatic. Apoi, căutarea unei soluții folosind ieșirea în 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 o astfel de varietate de relații pe acesta care descriu cel mai pe deplin sarcina.

Proprietățile fundamentale ale PROLOGUE:

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

2) mecanism de potrivire a modelului încorporat

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

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

5) naturalețea recursiunii

Etapele programării în PROLOG:

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

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

3) formularea întrebării despre obiecte și relațiile dintre ele.

Baza teoretică a PROLOG este o ramură a logicii simbolice numită calcul predicat.

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

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

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

Numărul de argumente ale predicatului se numește aritatea predicatului și se notează cu negru/1 (predicatul negru are un argument, aritatea sa este egală cu 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 Robert Kowalski despre aplicațiile logicii la programare (1973).

Cel mai faimos sistem de programare din Rusia este Turbo Prolog - o implementare comercială a limbajului pentru computerele compatibile cu IBM. În 1988, a fost lansată o versiune mult mai puternică a Turbo Prolog 2.0, incluzând un mediu de dezvoltare de programe integrat îmbunătățit, un compilator rapid și instrumente de programare de nivel scăzut. Borland a distribuit această versiune până în 1990, iar apoi PDC a dobândit monopolul privind utilizarea codului sursă al compilatorului și promovarea în continuare a sistemului de programare pe piață sub numele PDC Prolog.

În 1996, Centrul de Dezvoltare Prolog a lansat pe piață Visual Prolog 4.0. Mediul Visual Prolog utilizează o abordare numită „programare vizuală” în care aspect iar comportamentul programelor sunt determinate folosind instrumente speciale de proiectare grafică fără programare traditionalaîn limbaj algoritmic.

Visual Prolog include un mediu de dezvoltare vizuală interactiv (VDE), care include text și diverse editor grafic, instrumente de generare 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 diferite fișiere și biblioteci plug-in, un editor de linkuri, fișiere care conțin exemple și ajutor.

5.2. Sugestii: fapte și reguli

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

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

Structura faptului:

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

Exemple de fapte:

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

părinte (Ivan, Alexey). % Ivan este părintele lui Alexey

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ăr ș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, și partea dreaptă - 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 generaliza regulile de inferență. Variabilele sunt valabile doar într-o singură propoziție. Numele în propoziții diferite se referă la diferite obiecte. Toate propozițiile trebuie să se încheie cu un punct.

Exemple de reguli:

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

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

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

Dacă aveți o bază de date, puteți scrie cerere(gol) la ea. O cerere este o declarație a problemei pe care programul trebuie să o rezolve. Structura sa este aceeași cu cea a unei reguli sau a unui fapt. Există interogări cu constante și interogări cu variabile.

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

De exemplu, există fapte:

știe (Lena, Tanya).

știe (Lena, Sasha).

știe (Sasha, Tanya).

a) Lena o cunoaste pe Sasha?

cerere: știe (Lena, Sasha).

Rezultat: da

b) O cunoaște Tanya pe Lena?

cerere știe (Tanya, Lena).

Rezultat: Nu

Dacă interogarea include o variabilă, interpretul încearcă să găsească valorile acesteia astfel încât interogarea să fie adevărată.

a) Pe cine cunoaște Lena?

cerere: știe (Lena, X).

Rezultat:

X = Tanya

X = Sasha

b) Cine o cunoaste pe Sasha?

cerere: știe (X, Sasha).

Rezultat: X = Lena

Solicitările pot fi compuse, adică pot consta din mai multe interogări simple. Ele sunt unite prin semnul „,”, care este înțeles ca 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 reciproce, ar trebui să creați o interogare:

știe (Lena, X), știe (Sasha, X).

Rezultat:

X = Tanya

5.4. Variabile în PROLOG

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

Numele variabilei trebuie să înceapă cu o literă mare sau un caracter de subliniere și să conțină numai caractere alfanumerice și caractere de subliniere: X, _y, AB, X1. Se apelează o variabilă care nu are valoare gratuit, o variabilă care are o valoare – specific.

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

părinte (Ira, Tanya).

părinte (Misha, Tanya).

părinte (Olya, Ira).

Necesar pentru identificarea tuturor părinților

Cerere: 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 considerată ca o comparație (dacă variabila X are o valoare) sau ca o atribuire (dacă variabila X este liberă).

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

5.5. Obiecte și tipuri de date în PROLOG

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

Atom– orice succesiune de caractere cuprinsă între ghilimele. Ghilimele sunt omise dacă linia începe cu o literă mică și conține doar litere, cifre și liniuțe de subliniere (adică dacă se poate distinge de desemnările variabilelor). 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 de naștere (persoană(„Masha”,”Ivanova”), date(15 aprilie 1983))

Domeniuîn PROLOG se numește tip de date. Domeniile standard sunt:

întreg – numere întregi.

numere reale – reale.

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

char este un singur caracter închis în apostrofe.

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

5.6. Secțiunile principale ale unui program PROLOG

De obicei, un program PROLOG este format din patru secțiuni.

DOMENIILE– secțiune pentru descrierea domeniilor (tipurilor). Această secțiune este utilizată dacă programul folosește domenii non-standard.

De exemplu:

PREDICATE – secțiunea descriere a predicatului. Secțiunea este folosită dacă programul folosește predicate non-standard.

De exemplu:

știe (nume, nume)

numele studentului)

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

De exemplu:

știe (Lena, Ivan).

student (Ivan).

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

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

De exemplu:

semn_student(lena, X).

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

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

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

Manualul 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 modele de reprezentare a cunoștințelor și metode de lucru cu acestea, metode de dezvoltare și creare a sistemelor expert. Cartea va ajuta cititorul să stăpânească abilitățile de proiectare logică a bazelor de date de domenii și de programare în limbajul ProLog.
Pentru studenții și profesorii universităților pedagogice, profesorii școlilor secundare, gimnaziilor, liceelor.

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 procesul de gândire al unei persoane care rezolvă anumite probleme sau ia decizii în zonă specifică, evidențiați pașii principali ai acestui proces și dezvoltați software care îi reproduce pe un computer. Prin urmare, metodele AI adoptă 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 de a dezvolta hardware și software care să permită unui utilizator non-programator să pună și să rezolve problemele 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. Structură funcțională sisteme 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 pentru construirea de sisteme expert
1.4.6. Tehnologie expertă de dezvoltare a sistemului
Întrebări și teme de testare pentru capitolul 1
Referințe pentru capitolul 1
Capitolul 2. Programarea logica
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 prin constrângeri
2.1.6. Metodologia de programare a rețelelor neuronale
2.2. O scurtă introducere în calculul predicatului și demonstrarea teoremei
2.3. Procesul de inferență în Prolog
2.4. Structura programului în limbajul Prolog
2.4.1. Utilizarea obiectelor compuse
2.4.2. Folosind domenii alternative
2.5. Organizarea repetarii in 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ă (GRR).
2.6. Liste în Prolog
2.6.1. Operațiuni pe liste
2.7. Coarde în Prolog
2.7.1. Operații cu șiruri
2.8. Fișiere în Prolog
2.8.1. Predicate Prolog pentru lucrul cu fișiere
2.8.2. Descrierea domeniului fișierului
2.8.3. Scrieți la dosar
2.8.4. Citirea dintr-un fișier
2.8.5. Modificare fișier existent
2.8.6. Adăugarea 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 de interfață cu utilizatorul
2.10.5. Sistem expert bazat pe reguli
Întrebări și teme de testare pentru capitolul 2
Referințe 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 teme de testare pentru capitolul 3
Referințe pentru capitolul 3.

Descărcare gratuită e-book la format convenabil, urmăriți și citiți:
Descărcați cartea Fundamentele inteligenței artificiale, Borovskaya E.V., Davydova N.A., 2016 - fileskachat.com, descărcare rapidă și gratuită.

Institutul Kolomna (filiala)

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

învăţământul profesional

„UNIVERSITATEA DESCHISĂ DE STAT DE LA MOSCOVA”

Departamentul de Informatică și Tehnologii Informaționale

"APROBAT"

Educațional și metodologic

Consiliul KI (f) MGOU

Președinte al Consiliului

Profesor

A.M. Lipatov

„___” ____________ 2010

P.S. Romanov

BAZELE INTELIGENTEI ARTIFICIALE

Manual pentru discipline ale direcției

"Informatica si informatica"

Pentru studenții universitari

Kolomna – 2010

U

Publicat în conformitate cu hotărârea consiliului educațional și metodologic al Institutului Kolomna (filiala) a Instituției de Învățământ de Stat de Învățământ Profesional Superior „MGOU” din data de __________ 2010 Orașul 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 multimilor fuzzy. 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 domeniul „Informatică și Informatică”. Poate fi utilizat atunci când studiază sistemele informaționale inteligente de către studenți de alte specialități.

Referent: doctor stiinte 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. Dispoziții ale teoriei mulțimilor fuzzy........................................ ........... 32

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

§ 2.1.1. Operatii de baza pe multimi 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 neclare de tip (L-R)................................................ ..........46

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

§ 2.6. Relații neclare............................................................. ...................................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 produs................................................. ... ...............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. Sisteme expert de bază.................................................. ......... .........86

§ 3.8. Dificultăți în dezvoltarea sistemelor expert și modalități de a le rezolva

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 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 antrenament.................................................. .......... .............114

§ 3.12.2. Clasificarea sistemelor de control adaptiv

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

§ 3.12.3. Exemple de sisteme adaptive de control al robotului...........123

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

§ 3.13. Rețele neuronale și tehnologii neurocalculatoare.................................132

§ 3.13.1. Caracteristici generale ale direcţiei...................................132

§ 3.13.2. Neuropachete.................................................................. ....... ...........................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. Regulă Delta și recunoașterea literelor..................................150

3.14.1.4. Adalina, madalina 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ă” face parte din complex informatică, iar tehnologiile create pe baza acesteia aparțin tehnologiilor informaționale. Scopul acestei științe este de a permite raționamentul și acțiunea inteligentă sisteme de calculși alte dispozitive artificiale. Ca domeniu științific independent, inteligența artificială (IA) există de puțin peste un sfert de secol. În acest timp, atitudinea societății față de specialiștii implicați în astfel de cercetări a suferit o evoluție 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 prosperitate în secolul al XX-lea. În ultimii ani de formare a IA ca disciplină științifică specială, s-au format modelele sale conceptuale, s-au acumulat metode și tehnici specifice care îi aparțin doar și s-au stabilit câteva paradigme fundamentale. Inteligența artificială a devenit o știință complet respectabilă, nu mai puțin onorabilă și necesară decât fizica sau biologia.

Inteligența artificială este o știință experimentală. Natura experimentală a inteligenței artificiale constă în faptul că atunci când creează anumite reprezentări și modele pe computer, cercetătorul compară comportamentul acestora între ele și cu exemple de modul în care un specialist rezolvă aceleași probleme, le modifică pe baza acestei comparații, încercând să obțină o mai bună potrivirea rezultatelor. Pentru ca modificarea programelor să îmbunătățească rezultatele într-un mod „monoton”, trebuie să aveți idei și modele inițiale rezonabile. Ele sunt furnizate de studii psihologice ale conștiinței, în special psihologia cognitivă.

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

Cartea prezintă elementele de bază ale inteligenței artificiale, 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.

Dezvoltarea inteligenței artificiale

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

Relevanța intelectualizării sistemelor de calcul se datorează nevoii umane de a găsi soluții în astfel de realități lumea modernă, ca inexactitatea, ambiguitatea, incertitudinea, vagitatea și caracterul nerezonabil al informațiilor. Necesitatea de a crește viteza și adecvarea acestui proces stimulează crearea sistemelor de calcul, prin interacțiunea cu lumea reală prin intermediul roboticii, echipamentelor de producție, instrumentelor și altor hardware-uri, care pot contribui la implementarea acestuia.

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

Exemplu de inteligență artificială

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

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

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

Figura 1 - Piramida informației

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

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

Maslennikova O.E. , Popova I.V.

Tutorial. Magnitogorsk: MaSU, 2008. 282 p. Manualul conturează modele de reprezentare a cunoștințelor, teoria sistemelor expert, bazele programării logice și funcționale. Se acordă multă atenție istoriei dezvoltării inteligenței artificiale. Prezentarea materialului este însoțită de un număr mare de ilustrații, sunt oferite exerciții și întrebări pentru autocontrol.
Lucrarea se adresează studenților cu normă întreagă și cu frecvență parțială care studiază în domeniile „Informatică”, „Educație fizică și matematică (Profil – Informatică)”.Introducere în inteligența artificială.
Istoria dezvoltării inteligenței artificiale ca direcție științifică.
Principalele direcții de cercetare în domeniul inteligenței artificiale.
Aspecte filozofice ale problemei inteligenței artificiale.
Întrebări pentru autocontrol.
Literatură.
Modele de reprezentare a cunoștințelor.
Cunoştinţe.
Model logic de reprezentare a cunoștințelor.
Rețele semantice.
Rame.
Modelul produsului.
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 probleme de rezolvat.
Structura și modurile de funcționare ale sistemului expert.
Tehnologie pentru dezvoltarea sistemelor expert.
Instrumente de sistem expert.
Sisteme informatice inteligente.
Exerciții.
Întrebări pentru autocontrol.
Literatură.
Prolog ca limbaj de programare logic.
Introducere în programarea logică.
Reprezentarea cunoștințelor despre domeniul subiectului sub formă de fapte și reguli ale bazei de cunoștințe Prolog.
Sensul descriptiv, procedural și automat al unui program Prolog.
Tehnici de bază de programare în Prolog.
Mediul Visual Prolog.
Exerciții.
Literatură.
Introducere în programarea funcțională.
Istoria programării funcționale.
Proprietățile limbajelor funcționale de programare.
Sarcini de programare funcțională.
Exerciții.
Răspunsuri pentru autotest.
Literatură.
sarariu.
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. Citeşte mai mult.

Puteți scrie o recenzie de carte și vă puteți împărtăși experiențele. Alți cititori vor fi întotdeauna interesați de părerea dvs. despre cărțile pe care le-ați citit. Indiferent dacă 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 Instituția de Învățământ de Stat de Învățământ Profesional Superior „Universitatea de Stat Magnitogorsk” O.E. Maslennikova, I.V. Popova Fundamentals of Artificial Intelligence Manual Magnitogorsk 2008 UDC 681.142.1.01 BBK Z97 M Recenzători: Doctor în științe fizice și matematice, profesor S.I. Kadchenko doctor în științe tehnice, profesorul A.S. Sarvarov M Maslennikov O.E., Popova I.V. Fundamentele inteligenței artificiale: manual. indemnizatie / O.E. Maslennikova, I.V. Popova. - Magnitogorsk: MaSU, 2008. - 282 p. ISBN 978-5.86781-609-4 Manualul prezintă modele de reprezentare a cunoștințelor, teoria sistemelor expert și elementele de bază ale programării logice și funcționale. Se acordă multă atenție istoriei dezvoltării inteligenței artificiale. Prezentarea materialului este însoțită de un număr mare de ilustrații, sunt oferite exerciții și întrebări pentru autocontrol. Lucrarea se adresează studenților cu normă întreagă și cu frecvență parțială care studiază în domeniile „Informatică”, „Învățămîntul de 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..... INTRODUCERE ........ 5 1.1. ISTORIA DEZVOLTĂRII INTELIGENTEI ARTIFICIALE CA DIRECȚIE ȘTIINȚIFĂ....................................... ............................ ................................ ................................... .......... 9 1.2. DIRECȚII PRINCIPALE 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ȘTERILOR.............................. ...... 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 DE EXPERȚI....... .................................................. ........ .......... 86 3.1. CONCEPTUL DE SISTEM EXPERT............................................................ ........................................ 86 3.2. TIPURI DE SISTEME EXPERT ŞI TIPURI DE PROBLEME REZOLVATE............................................ 89 3.3. STRUCTURA ȘI MODURI DE OPERARE ALE SISTEMULUI EXPERT........................................... ........ 99 3.4. TEHNOLOGIE PENTRU DEZVOLTAREA SISTEMELOR EXPERT.............................................. ....... 102 3.5. INSTRUMENTE DE SISTEM EXPERT............................................. 113 3.6. SISTEME DE INFORMAȚII INTELIGENTE............................................. 129 EXERCIȚII............ ..................................... ................................................... ...... 135 ÎNTREBĂRI PENTRU AUTOCONTROL...................................... ......................... ................. 136 LITERATURĂ...... .............................................. ................................... .............. ......... 138 CAPITOLUL 4. PROLOGUL CA LIMBAJ DE PROGRAMARE LOGICĂ................... ............ ............................................... ...... .... 139 4.1. INTRODUCERE ÎN PROGRAMARE LOGICĂ............................................ 139 4.2. REPREZENTAREA CUNOAȘTERII DESPRE DOMENIU SUBIECTUL ÎN VEDEREA FAPTELOR ȘI REGULUI BAZEI DE CUNOAȘTERE PROLOG............................... ....................... ................................. ........................ 140 4.3 . SENSUL DESCRIPTIV, PROCEDURAL ȘI MAȘINĂ AL PROGRAMULUI PROLOG............................................. ........................ ................................ .............................. ............ 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. INTRODUCERE PROGRAMARE FUNCŢIONALĂ. .................................................. ...... ................................. 199 5.1. ISTORIA PROGRAMĂRII FUNCȚIONALE........................................................... .... 200 5.2. PROPRIETĂȚI ALE LIMBAJURILOR DE PROGRAMARE FUNCȚIONALĂ.................................. 203 5.3. PROBLEME DE PROGRAMARE FUNCȚIONALĂ............................... 207 EXERCIȚII........ . ................................................. ....... ................................................. 210 AUTO- RĂSPUNSURI LA TEST...................................................... .............. ..................... 210 REFERINȚE............. ................. ................................ ........................ ................................ 211 GLOSAR...................... .......................... .............................................. ....... 213 ANEXA 1 .................. ...................... .................................................. ........... 221 ANEXA 2 ..................... ............... ......................................... ......... .............. 252 ANEXA 3 ............................ ..... .................................................. ................................. 265 -4- PREFAȚĂ Recent, sa înregistrat o creștere a interesului pentru inteligența artificială, cauzată de creșterea cerințelor pentru sistemele informaționale. Omenirea se îndreaptă în mod constant către o nouă revoluție a informațiilor, comparabilă ca scară cu dezvoltarea Internetului. Inteligența artificială este o ramură a informaticii al cărei scop este de a dezvolta hardware și software care să permită unui utilizator non-programator să-și stabilească și să-și rezolve propriile probleme, considerate în mod tradițional intelectuale, prin comunicarea cu un computer într-un subset limitat de limbaj 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 fuseseră deja formate: printre filosofi s-au dezbătut mult timp despre natura omului și despre procesul de înțelegere a lumii, neurofiziologii și psihologii au dezvoltat o serie de teorii cu privire la activitatea creierului uman. și gândirea, economiștii și matematicienii au pus întrebări despre calculele optime și prezentarea cunoștințelor despre lume într-o formă formalizată; în cele din urmă, s-a născut fundamentul teoriei matematice a calculelor - 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 activitățile profesionale de predare. Momentan tutorial este format din cinci capitole. Primul oferă o scurtă introducere în inteligența artificială: se ia în considerare istoria dezvoltării acesteia ca direcție științifică, sunt evidențiate principalele domenii ale inteligenței artificiale și aspecte filozofice ale problemei precum posibilitatea existenței, siguranța și utilitatea artificială. inteligența sunt luate în considerare. 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 discută aspecte teoretice și practice în dezvoltarea sistemelor expert; oferă o descriere a shell-ului XpertRule. Al patrulea capitol conturează principiile de bază ale programării în limbajul Prolog și descrie mediul Visual Prolog. Al cincilea capitol descrie elementele de bază ale programării funcționale cu exemple în LISP. Manualul conține un număr mare de ilustrații, exerciții și întrebări pentru autocontrol. Pentru a facilita studierea materialului, este oferit un glosar. -5- CAPITOLUL 1. INTRODUCERE ÎN INTELIGENTEA ARTIFICIALĂ Inteligența artificială (IA) este o nouă direcție în informatică, al cărei subiect de studiu este orice activitate intelectuală umană care se supune unor legi precunoscute. În mod 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ției. 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, dar pentru a dezvolta în mod eficient programe de lucru cu elemente AI, cunoștințele despre caracteristicile inteligenței umane pe care le are știința 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 naștere, IA s-a dezvoltat ca un domeniu interdisciplinar, interacționând cu informatica și cibernetica, științe 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 Probleme care nu pot fi rezolvate prin metode tradiționale în informatică au migrat în domeniul AI. În plus, rezultatele obținute în IA sunt împrumutate la crearea de software și devin parte a Informaticii. Ș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 abordări informaționale și neurobiologice, ci iau în considerare și aspectele sociale și psiholingvistice ale utilizării cunoștințelor. Logica si matematica. Logica stă la baza tuturor formalismelor de reprezentare a cunoștințelor cunoscute, precum și a limbajelor de programare precum Lisp și Prolog. Pentru a rezolva problemele AI, se folosesc metode de matematică discretă, teoria jocurilor și teoria operațiilor. La rândul său, AI poate fi folosit pentru a demonstra teoreme și rezolva probleme din diverse domenii ale matematicii: geometrie, calcul integral. Psihologie și lingvistică. Recent, experții 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 și de luare a 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 prelucrarea limbajelor naturale și artificiale, pe de o parte, și a fenomenologiei limbajului, pe de altă parte. Biologia și medicina ne permit să studiem și să înțelegem mai bine funcționarea creierului, a sistemelor de vedere, a auzului și a altor senzori naturali și să dăm 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ă în prezent. 1. Cercetarea în domeniul IA este cercetare fundamentală, în cadrul căreia se dezvoltă modele și metode de rezolvare a problemelor care au fost considerate în mod tradițional inteligente și care anterior nu erau susceptibile de formalizare și automatizare. 2. AI este o nouă direcție în informatică asociată cu noi idei de rezolvare a problemelor pe un computer, cu dezvoltarea unei tehnologii de programare fundamental diferite, cu trecerea la o arhitectură computerizată care respinge arhitectura clasică, care datează din prima calculatoare. 3. Ca urmare a muncii în domeniul AI, se nasc multe sisteme de aplicații care rezolvă probleme pentru care sistemele create anterior nu erau potrivite. -7- Pentru a ilustra prima abordare, putem da un exemplu cu un calculator. La începutul secolului, calculele aritmetice cu numere cu mai multe cifre erau lotul câtorva indivizi dotați, iar capacitatea de a efectua astfel de operații aritmetice în minte era considerată pe bună dreptate un dar unic al naturii și a făcut obiectul cercetării științifice. În zilele noastre, inventarea calculatorului a făcut această abilitate accesibilă chiar și unui elev de clasa a treia. La fel este și în AI: îmbunătățește capacitățile intelectuale ale unei persoane prin preluarea soluției unor probleme neformalizate anterior. Pentru a ilustra a doua abordare, putem lua în considerare povestea unei încercări de a crea un computer de generația a cincea. La mijlocul anilor '80, Japonia a anunțat începerea unui proiect ambițios de a crea un computer de generația a cincea. Proiectul sa bazat pe ideea unei implementări hardware a limbajului PROLOG. Totuși, proiectul s-a încheiat cu eșec, deși a avut o influență puternică asupra dezvoltării și răspândirii PROLOG ca limbaj de programare. Motivul eșecului a fost concluzia grăbită că o singură limbă (deși una destul de universală) ar putea oferi singura soluție pentru toate problemele. Practica a arătat că o paradigmă de programare universală pentru rezolvarea tuturor problemelor nu a fost încă inventată și este puțin probabil să apară. Acest lucru se datorează faptului că fiecare sarcină este o parte a domeniului subiectului care necesită un studiu atent și o abordare specifică. Încercările de a crea noi arhitecturi de computer continuă și sunt asociate cu calcule paralele și distribuite, neurocalculatoare, procesoare probabilistice și fuzzy. Munca în domeniul creării de sisteme expert (ES) poate fi clasificată ca a treia direcție, cea mai pragmatică, în AI. Sistemele experte sunt sisteme software care înlocuiesc un specialist uman în domenii înguste de activitate intelectuală care necesită utilizarea unor cunoștințe speciale. Crearea unui sistem electronic î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 din momentul apariției sale. Cu toate acestea, această disciplină nu a primit imediat recunoaștere oficială. AI a fost criticată ca o subramură a ciberneticii, considerată o „pseudosștiință”. Până la un anumit moment în timp, numele șocant „inteligență artificială” a jucat și el un rol negativ. Astfel, a existat o glumă în Prezidiul Academiei de Științe că „cei cărora le lipsește inteligența naturală sunt angajați în inteligența artificială”. Cu toate acestea, astăzi AI este o direcție științifică oficial recunoscută în Rusia, revistele „Sisteme de control și mașini” și „AI News” sunt publicate, conferințe științifice si seminarii. Există o Asociație rusă de IA, care numără aproximativ 200 de membri, al cărei președinte este doctorul în științe tehnice D.A. Pospelov, iar președintele de onoare este academicianul Academiei Ruse de Științe G.S. Pospelov. Există un Institut rus de inteligență artificială în subordinea Consiliului președintelui Federației Ruse pentru informatică și informatică. În cadrul RAS există un Consiliu Științific pe problema „Inteligentei Artificiale”. Cu participarea acestui Consiliu, au fost publicate multe cărți pe tema IA și traduceri. Lucrările lui D.A. Pospelov, Litvintseva și Kandrashina sunt binecunoscute - în domeniul reprezentării și procesării cunoștințelor, E.V. Popov și Khoroshevsky - în domeniul prelucrării limbajului natural și al sistemelor expert, Averkin și Melikhov în domeniul logicii fuzzy și al seturilor fuzzy, Stefanyuk - în domeniul sistemelor de învățare, Kuznetsov, Finn și Vagin - în domeniul logicii și cunoștințelor reprezentare. În Rusia există o școală lingvistică de computer puternică în mod tradițional, care provine din munca pe modelul „SenseText” a lui Melchuk. Printre faimoșii lingviști informatici se pot numi Apresyan, Gorodetsky, Paducheva, Narignani, Leontyeva, Shalyapina, Zaliznyak Sr., Kibrik Sr., Baranov și mulți alții. etc. 1.1. Istoria dezvoltării inteligenței artificiale ca direcție științifică Ideea de a crea o asemănare artificială a minții umane pentru a rezolva probleme complexe și a simula capacitatea de gândire a fost în aer încă din cele mai vechi timpuri. În Egiptul antic, a fost creată o statuie mecanică „prin viață” a zeului Amon. În Iliada lui Homer, zeul Hephaestus a falsificat creaturi umanoide, automate. Această idee a fost jucată de multe ori în literatură: de la Galatea lui Pigmalion 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. Lull (c.1235-c.1315), care în secolul al XIV-lea. a încercat să creeze o mașină pentru rezolvarea diferitelor probleme pe baza unei clasificări universale 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 noua știință a ciberneticii. 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, mai degrabă decât de calcul. La scurt timp după ce inteligența artificială a fost recunoscută ca o ramură independentă a științei, a avut loc o divizare în două domenii principale: neurocibernetica și cibernetica „cutie neagră”. Și numai în prezent, tendințele de a combina din nou aceste părți într-un singur întreg au devenit vizibile. În URSS, în 1954, la Universitatea de Stat din Moscova, sub conducerea profesorului A.A. Lyapunov (1911 - 1973), și-a început activitatea seminarul „Automate și gândire”. La acest seminar au participat fiziologi, lingviști, psihologi și matematicieni de seamă. Este general acceptat că în acest moment s-a născut inteligența artificială în Rusia. Ca și în străinătate, au apărut domeniile neurociberneticii și ciberneticii „cutie neagră”. În 1956 -1963. Au fost efectuate căutări intensive pentru 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 a propus să-și creeze propriile modele. Au fost create și testate diverse abordări. Primele cercetări în domeniul AI au fost asociate cu crearea unui program pentru jocul de șah, deoarece se credea că abilitatea de a juca șah era 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ă pentru crearea unui astfel de program. Americanii Shaw și Simon, în colaborare cu un grup de psihologi olandezi din Amsterdam sub conducerea lui de Groot, au creat un astfel de program. Pe parcurs, a fost creat un limbaj special IPL1 (1956), conceput pentru a manipula informația în formă simbolică, care a fost predecesorul limbajului Lisp (MacCarthy, 1960). Cu toate acestea, primul program de inteligență artificială a fost programul Theoretical Logician, conceput pentru a demonstra teoreme în calculul propozițional (9 august 1956). Un program pentru jocul de șah a fost creat în 1957 (NSS - Newell, Shaw, Simon). Structura sa și structura programului Logic-Teoretician au stat la baza creării programului Universal Problem Solving (GPS-General Problem Solving). Analizând diferențele dintre situații și construind obiective, acest program este bun la rezolvarea puzzle-urilor Tower of 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, a apărut un articol despre gramatica transformațională de Chomsky, unul dintre fondatorii lingvisticii computaționale. La sfârşitul anilor '50. S-a născut modelul de căutare labirint. Această abordare reprezintă problema ca un grafic care reflectă spațiul de stare1, iar în acest grafic este căutată calea optimă de la datele de intrare la datele rezultate. S-a depus multă muncă pentru dezvoltarea acestui model, dar ideea nu a căpătat o largă acceptare în rezolvarea problemelor practice. 1 Spațiul de stări este un grafic ale cărui vârfuri corespund unor situații întâlnite în problemă („situații cu probleme”), iar rezolvarea problemei se rezumă la găsirea unei căi în acest grafic. - 10 - Începutul anilor 60. - era programării euristice. Euristica este o regulă care nu este justificată teoretic, 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, predeterminate. Î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 solicitărilor de rezultate ale meciurilor anterioare de baseball, iar programul STUDENT (Bobrow, 1964) a fost capabil să rezolve probleme algebrice formulate în limba engleză. Orez. 2. Repere în dezvoltarea IA ca direcție științifică Au fost puse mari speranțe în munca în domeniul traducerii automate, al cărei început este asociat cu numele lingvistului local Belskaya. Cu toate acestea, cercetătorilor au fost nevoie de mulți ani pentru a realiza că traducerea automată nu este o problemă izolată și necesită un pas necesar numit înțelegere pentru a avea succes. Printre cele mai semnificative rezultate obținute de oamenii de știință autohtoni în anii 60, trebuie remarcat algoritmul „Cora” de M. Bongard, care modelează activitatea creierului uman în recunoașterea modelelor. În 1963 - 1970 Metodele logicii matematice au început să fie folosite pentru rezolvarea problemelor. Noua abordare la logica formală, bazată pe aducerea raționamentului la o contradicție, a apărut în 1965 - 11 - (J. Robinson). Pe baza metodei de rezoluție, care a făcut posibilă demonstrarea automată a teoremelor în prezența unui set de axiome inițiale, limbajul Prolog a fost creat în 1973. În URSS în 1954-1964. sunt create programe individuale iar căutarea soluţiilor la probleme logice este explorată. În Leningrad (LOMI - Departamentul Leningrad al Institutului de Matematică V.A. Steklov), se creează un program care demonstrează automat teoremele (ALPEV LOMI). Se bazează pe derivarea inversă originală a lui S.Yu. Maslov, similară cu metoda de rezoluție a 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 elaborate modele speciale de reprezentare a situaţiilor - reprezentarea cunoaşterii. Î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” individuale, 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 puține. vocabular. Aproape toate aceste sisteme au folosit aceeași abordare - simplificarea combinatoriei, bazată pe reducerea necesarului de căutare a alternativelor bazate pe bunul simț, utilizarea funcțiilor de evaluare numerică și diverse euristici. La începutul anilor '70, a existat un salt calitativ în cercetarea inteligenței artificiale. Acest lucru se datorează a două motive.  În primul rând. Toți cercetătorii și-au dat seama treptat că tuturor programelor create anterior le lipsea cel mai important lucru - cunoștințe profunde în domeniul relevant. Diferența dintre un expert și o persoană obișnuită este că un expert are experiență într-un anumit domeniu, adică. ani de cunoștințe acumulate.  În al doilea rând. Apare o problemă specifică: cum să transferați aceste cunoștințe într-un program dacă creatorul direct nu deține aceste cunoștințe. Răspunsul este clar: programul în sine trebuie să le izoleze de datele primite de la expert. Cercetările privind rezolvarea problemelor și înțelegerea limbajului natural au un lucru în comun: o problemă comună- prezentarea cunoștințelor. Până în 1970, existau - 12 - multe programe create pe baza acestor idei. Primul dintre acestea este programul DENDRAL. Este conceput pentru a genera formule structurale ale compușilor chimici pe baza informațiilor primite de la spectrometrul de masă. Programul a fost dezvoltat la Stanford cu participarea laureatului Nobel D. Lederberg. Ea a câștigat experiență în procesul de funcționare proprie. Expertul a pus în ea 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 Winograd 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ă cunoștințelor semantice și pragmatice despre „lumea cuburilor” sa. De la mijlocul anilor 80, inteligența artificială a fost comercializată în străinătate. Investițiile anuale de capital sunt în creștere, se creează sisteme expert industriale. Există un interes din ce în ce mai mare pentru sistemele de autoînvățare. La noi 1980-1990. Se desfășoară cercetări active în domeniul reprezentării cunoștințelor, se dezvoltă limbaje de reprezentare a cunoștințelor și sisteme expert (mai mult de 300). Limba REFAL este creată la Universitatea de Stat din Moscova. În 1988, a fost creată AAI - Asociația de Inteligență Artificială. Printre membrii săi se numără peste 300 de cercetători. Președintele Asociației - D.A. Pospelov. Cele mai mari centre sunt la Moscova, Sankt Petersburg, Pereslavl-Zalessky, Novosibirsk. 1.2. Direcții principale 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 în lume numai despre lingvistică computațională. Conferințele naționale de inteligență artificială au loc în mod regulat în aproape toate țările europene, precum și în SUA, Canada, Japonia, Rusia și Asia de Sud-Est. În Rusia, acest eveniment are loc la fiecare doi ani sub auspiciile Asociației Ruse pentru IA (RAAI). În plus, Conferința Internațională Comună privind IA (IJCAI) are loc o dată la doi ani. Peste 3 mii de periodice publică rezultate științifice in aceasta zona. Nu există o clasificare completă și strictă a tuturor domeniilor AI; o încercare de a clasifica problemele pe care AI le rezolvă este prezentată în Fig. 3. Conform clasificării D.A. Pospelov în IA există două abordări dominante ale cercetării în domeniul AI: neurobionic și informațional (Fig. 4 și 5). - 13 - sarcini General Formal Expert Percepție Jocuri (Șah, Go, puzzle-uri) Inginerie Prelucrarea limbajului natural Matematică Analiză științifică Raționament de bun simț Geometrie Analiză financiară Control robot Verificare program Diagnosticare medicală Fig. 3. Obiectivele AI Susținătorii primei și-au stabilit scopul de a reproduce artificial procesele care au loc în creierul uman. Această direcție se află la intersecția dintre medicină, biologie și cibernetică. În același timp, ei studiază creierul uman, identifică modalitățile în care funcționează și creează mijloace tehnice pentru a reproduce structurile biologice și procesele care au loc în ele. Domeniul IA poate fi împărțit în cinci mari secțiuni: − structuri de tip neural; − programe de rezolvare a problemelor intelectuale; − sisteme bazate pe cunoștințe; − programare inteligentă; − sisteme inteligente. Fiecare secțiune poate fi reprezentată după cum urmează (vezi Figura 4-9). - 14 - Fig. 4. Structuri asemănătoare neuronului 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 simularea gândirii umane. Dacă răspunsul la această întrebare este vreodată negativ, atunci toate celelalte întrebări din domeniul AI nu vor avea cel mai mic sens. Prin urmare, la începerea cercetării în domeniul inteligenței artificiale, 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 esență asemănători cu El, atunci oamenii sunt destul de capabili să creeze pe cineva după chipul și asemănarea unei persoane. 2. Biologic. Crearea unei noi minți din punct de vedere biologic este destul de comună pentru oameni. Observând copiii, vedem că - 16 - aceștia dobândesc majoritatea cunoștințelor prin învățare, și nu atât de inerente lor în prealabil. Această afirmație nu a fost dovedită la nivel modern, dar din semnele exterioare totul arată exact așa. 3. Empiric. Ceea ce anterior părea a fi culmea creativității umane - jocul de șah, dame, recunoașterea imaginilor vizuale și sonore, sintetizarea noilor solutii tehnice, în practică s-a dovedit a nu fi o sarcină atât de dificilă. Acum munca nu este la nivelul posibilității sau imposibilității implementării celor de mai sus, ci despre găsirea celui mai optim algoritm - de multe ori aceste probleme nici măcar nu sunt considerate 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 '50, 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”. El a dovedit, de asemenea, posibilitatea teoretică a creării lor. Există și diverse dovezi informale ale posibilității de auto-reproducere, dar pentru programatori, cea mai frapantă dovadă, poate, va fi existența virușilor informatici. 5. Algoritmic. Posibilitatea fundamentală de automatizare a soluționării problemelor intelectuale folosind un calculator este asigurată de proprietatea universalității algoritmice. Această proprietate a computerelor înseamnă că pot implementa în mod programatic (adică, prezente sub forma unui program de mașină) orice algoritm de conversie a informațiilor. Mai mult, procesele generate de acești algoritmi sunt potențial fezabile, adică sunt fezabile ca rezultat al unui număr finit de operații elementare. Fezabilitatea practică a algoritmilor depinde de instrumentele disponibile, care se pot schimba pe măsură ce tehnologia avansează. Astfel, în legătură cu apariția computerelor de mare viteză, algoritmi care anterior erau doar potențial fezabil au devenit practic fezabil. În plus, conținutul acestei proprietăți este de natură predictivă: ori de câte ori în viitor orice prescripție este recunoscută de un algoritm, atunci, indiferent de forma și mijloacele în care este exprimată inițial, aceasta poate fi specificată și sub forma unui programul mașinii. Totuși, nu trebuie să credem că computerele și roboții pot, în principiu, să rezolve orice problemă. Analiza diferitelor probleme i-a condus pe matematicieni la o descoperire remarcabilă. S-a dovedit riguros că există tipuri de probleme pentru care un singur algoritm eficient 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 face și ce nu pot face. De fapt, o afirmație despre imposibilitatea algoritmică a unei anumite clase de probleme nu este doar o admitere că un astfel de algoritm este necunoscut și nu a fost încă găsit de nimeni. O astfel de afirmație este în același timp o prognoză pentru toate timpurile viitoare care acest fel algoritmul nu ne este cunoscut și nu va fi indicat de nimeni sau, cu alte cuvinte, că nu există. Inteligența artificială poate fi considerată printre instrumentele (inteligente și neinteligente) care au fost create și stăpânite de umanitate pe parcursul dezvoltării sale istorice. Acestea includ:  unelte de mână;  mașini și mașini;  limbaj şi vorbire;  mașini de numărat;  mijloace de VT şi telecomunicaţii. Filosofii susțin că producția de instrumente (în sensul larg al cuvântului) este cea mai mare vedere importantă activități care îi deosebesc pe strămoșii noștri de alte primate. Ființele umane se remarcă printre animale prin capacitatea lor de a produce cunoștințe și instrumente. Nicio altă invenție tehnologică sau socio-politică nu a provocat un astfel de decalaj gigantic în dezvoltarea speciei homo sapiens 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 de stocat, procesat și transmis decât toate îmbunătățirile anterioare ale tehnologiei hârtiei. Computerul a depășit toate instrumentele de calcul din trecut (abac, abac, mașină de adăugare) ca viteză, varietate de funcții și ușurință în utilizare. Extinderea în mod constant a domeniului de aplicare a automatizării în domeniul muncii mentale monotone, procesarea digitală a informațiilor 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 noul fel instrumente alternative celor existente. Această realitate i-a forțat pe filozofii AI să treacă dincolo de întrebarea „Este posibil să creăm o mașină inteligentă?” la problema influenţei instrumentelor intelectuale asupra societăţii. În special, se are în vedere posibilul efect social al dezvoltării IA și anume: - 18 - creșterea nivelului de inteligență al întregii societăți, ceea ce va oferi noi descoperiri, invenții și o nouă înțelegere a umanității pentru sine.  schimbarea situaţiei în care majoritatea oamenilor sunt mijloc şi instrument de producţie. Următoarea întrebare filozofică despre 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ă), rolul principal al unei persoane nu mai este lenea (în sensul dorinței de a economisi energie), ci instinctele de căutare. Să presupunem că o persoană a reușit să creeze un intelect care îl depășește pe al său (chiar dacă nu în calitate, ci în cantitate). Ce se va întâmpla cu omenirea acum? Ce rol va juca persoana? Pentru ce se foloseste acum? Și, în general, este necesar să se creeze AI în principiu? Aparent, cel mai acceptabil răspuns la aceste întrebări este conceptul de „amplificator de inteligență” (IA). Potrivit S.L. Sotnik, o analogie cu președintele statului este potrivită aici - nu trebuie să cunoască valența vanadiului sau a limbii Programare Java pentru a lua decizii cu privire la dezvoltarea industriei de vanadiu. Fiecare își face treaba lui - un chimist descrie un proces tehnologic, un programator scrie un program; economistul îi spune preşedintelui că, investind bani în spionaj industrial, ţara va primi 20%, iar în industria vanadiului - 30% pe an. Cred că, cu această formulare a întrebării, oricine poate face alegerea corectă. ÎN în acest exemplu presedintele foloseste UI biologic - un grup de specialisti cu creierul lor proteic. Dar deja acum sunt folosite și interfețele de utilizator nevii - de exemplu, computere, computere de bord. În plus, o persoană folosește mult timp amplificatoare de forță (SA) - un concept similar în multe privințe cu FE. Mașini, macarale, motoare electrice, prese, pistoale, avioane și multe, multe altele servesc drept amplificatoare de forță. 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. Acest lucru ridică problema securității sistemelor AI. Cum să evitați consecințele negative care însoțesc orice nouă realizare a revoluției științifice și tehnologice? Această problemă a bântuit mințile omenirii încă de pe vremea lui Karel Capek, care a folosit pentru prima dată termenul „robot”. Alți scriitori de science fiction și-au adus o contribuție majoră la discuția sa. Cele mai cunoscute sunt o serie de povestiri ale scriitorului și omul de știință Isaac Asimov, în care puteți găsi cea mai dezvoltată soluție la problema securității, care este acceptată de majoritatea oamenilor. Vorbim despre cele trei legi ale roboticii. 1. Un robot nu poate face rău unei persoane sau, prin inacțiune, nu poate permite ca o persoană să fie rănită.  - 19 - 2. Un robot trebuie să respecte comenzile date de o persoană, cu excepția cazurilor în care aceste comenzi contravin primei legi. 3. Un robot trebuie să aibă grijă de siguranța lui, în măsura în care aceasta nu contrazice prima și a doua lege. Ulterior, Asimov adaugă „Legea Zero” la această listă: „Un robot nu poate face rău umanității sau, prin inacțiune, nu permite umanității să facă rău”. La prima vedere, astfel de legi, dacă sunt pe deplin respectate, ar trebui să asigure siguranța umanității. 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 ușoară în formă algoritmică. Să presupunem că această problemă este rezolvată. Acum, ce ar însemna un sistem AI prin termenul „rău”? Va decide ea că însăși existența omului este un rău complet? La urma urmei, fumează, bea, îmbătrânește de-a lungul anilor și își pierde sănătatea, suferă. Nu ar fi răul mai mic să pun capăt rapid acestui lanț de suferințe? Desigur, puteți introduce câteva completări legate de valoarea vieții și libertatea de exprimare. Dar acestea nu vor mai fi cele trei legi simple care erau în original. În continuare: ce va decide sistemul AI într-o situație în care salvarea unei vieți este posibilă doar în detrimentul alteia? Deosebit de interesante sunt acele cazuri în care sistemul nu are informatii complete despre cine este cine. Cu toate acestea, în ciuda problemelor enumerate mai sus, 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? Dacă plecăm de la conceptul de UI, putem oferi 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 declanșării unui grup de neuroni (ansamblu neuronal) într-o zonă complet previzibilă. De asemenea, au fost efectuate experimente inverse în care iritarea unei zone specifice produce rezultatul dorit. Acestea ar putea fi emoții de bucurie, opresiune, frică, agresivitate. Astfel, pare posibil ca funcție obiectivă accepta gradul de satisfacție al creierului gazdei umane. Dacă luați măsuri pentru a elimina activitățile autodistructive într-o stare de depresie și, de asemenea, asigurați alte stări mentale speciale, veți obține următoarele. Deoarece se presupune că o persoană normală nu își va face rău pe sine și, fără niciun motiv anume, altora, iar UI 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 se deplasează în domeniul psihologiei și al aplicării legii, deoarece - 20 - sistemul (instruit) nu va face nimic din ceea ce proprietarul său nu își dorește. Întrebări pentru autocontrol 1. Ce este inteligența artificială? 2. Cu ce ​​domenii științifice interacționează inteligența artificială? 3. Descrieți abordări de înțelegere a subiectului inteligenței artificiale ca disciplină științifică. 4. Descrie starea curenta AI în Rusia. 5. Descrieți stadiul „pre-computer” al dezvoltării 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. Oferiți dovezi ale posibilității de modelare a gândirii umane. 14. Care este rațiunea trecerii la problema influenței instrumentelor intelectuale asupra societății? 15.Ce cauze ș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 web al Asociației Ruse de Inteligență Artificială. – Mod de acces: http://www.raai.org/ 4. Sotnik, S.L. Fundamentele proiectării sistemelor de inteligență artificială: prelegeri. – Mod de acces: http://newasp.omskreg.ru/intellect/f25.htm 5. Russell, S. Artificial intelligence: a modern approach / Stuart Russell, Peter Norvig. – M.: Editura Williams, 2006. – 1408 p. - 21 - CAPITOLUL 2. MODELE DE REPREZENTARE A CUNOAȘTERII 2.1. Cunoștințe Ce tipuri de cunoștințe sunt necesare pentru a permite un comportament „inteligent”? „Secretul” fenomenologiei modelului de cunoaștere se află în lumea din jurul nostru. În general, modelul de reprezentare a cunoștințelor ar trebui să ofere descriere diferită obiectele și fenomenele care alcătuiesc domeniul în care trebuie să lucreze un agent inteligent. Tematica este o parte a realității asociată cu rezolvarea unei probleme. Un agent inteligent este 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 specificate atât extensiv (adică printr-un set de fapte specifice corespunzătoare unui concept dat și care se referă la domeniul 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ă reprezintă cunoștințele în termeni de fapte despre obiectele din jurul său. Din acest motiv, trebuie să existe modalități de a reprezenta obiecte, clase (categorii, tipuri) de obiecte, de a descrie proprietăți și de a interacționa cu obiectele. 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ă” - obiect individual Situații - toate tipurile 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 prin ele însele, modelul de reprezentare trebuie să permită să descrie locația evenimentelor pe axa timpului, precum și relația lor cauză-efect. Situații Stări statice Proprietăți și relații permanente Procese dinamice Incidente stabile Rezultate temporare Evenimente Fig. 9. Un exemplu de clasificare a situațiilor propusă de Paducheva La reprezentarea ierarhiei obiectelor și a relațiilor, principala dificultate este alegerea bazei, i.e. proprietăţi (caracteristici) după care are loc diviziunea. De obicei, chiar dacă o persoană distinge cu ușurință între diferite tipuri de obiecte și situații din viață, încercarea de clasificare verbală pune o mare problemă. Proceduri. Comportamentul (de exemplu: mersul pe bicicletă) necesită cunoștințe care depășesc cunoștințele declarative despre obiecte și relațiile dintre ele. Aceasta este cunoștințele despre cum să faci cutare sau cutare acțiune, care se numește cunoștințe procedurale sau experiență (abilitate). La fel ca mersul pe bicicletă, majoritatea comportamentelor conștiente (de exemplu, comunicarea, înțelegerea sau demonstrarea teoremelor) implică cunoștințe procedurale și este adesea dificil să distingem clar între cunoștințele procedurale și cunoștințele obiectului. Exemplu Termenul „disciplină” - descrie situația lipsei de cunoștințe procedurale la o persoană care se prezintă ca specialist Meta-cunoștințe - cunoștințe despre cunoștințe: despre volumul și originea cunoștințelor despre un anumit obiect, despre fiabilitate informație specifică sau despre importanța relativă a unor fapte particulare. Meta-cunoașterea include, de asemenea, ceea ce oamenii știu despre propria lor capacitate de procesator de cunoștințe: punctele forte, punctele slabe, nivelul de experiență în diverse domenii și sentimentul 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).  Cunoștințe aprofundate (abstracte, imagini, analogii, care reflectă o înțelegere a structurii disciplinei și a relației dintre conceptele individuale). Pe cale de existenţă:  Fapte (împrejurări binecunoscute).  Euristică (cunoștințe din experiența experților). Prin rigiditate:  Cunoaștere aprofundată (vă permite să primiți recomandări clare, fără ambiguitate în condiții inițiale date).  Cunoștințe soft (permite luarea de decizii multiple, vagi și recomandări diverse). După forme de prezentare:  Cunoștințe declarative (fapte sub formă de seturi de date structurate).  Cunoștințe procedurale (algoritmi sub formă de proceduri de prelucrare a faptelor). După modalitatea de însuşire:  Cunoştinţe ştiinţifice (obţinute prin predare şi/sau studiu sistematic).  Cunoștințe de zi cu zi, de zi cu zi (dobândite în cursul vieții). Pentru a găzdui o bază de cunoștințe în scopul utilizării acesteia pentru a rezolva probleme 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 cele procedurale – logice ş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 unei abordări euristice: „troika”, modele de producție, cadru, rețea Pe baza unei abordări teoretice: bazate pe logica formală și bazată pe „logica umană” – modală și multivalorică. - 24 - 2.2. Model logic de reprezentare a cunoștințelor Concepte de bază ale logicii Majoritatea oamenilor cred că cuvântul „logic” înseamnă „rezonabil”. Astfel, dacă o persoană raționează logic, atunci raționamentul său este rezonabil, deci nu permite concluzii pripite. Logica este știința formelor și metodelor gândirii corecte. Aceasta înseamnă că, având în vedere numărul necesar de fapte adevărate, concluzia trebuie să fie întotdeauna adevărată. Pe de altă parte, dacă o concluzie logică este invalidă, înseamnă că s-a ajuns la o concluzie falsă bazată pe fapte adevărate. Este necesar să se facă distincția între conceptele de logică formală și informală. O caracteristică distinctivă a logicii informale este că este folosită în viața de zi cu zi. O dovadă logică complexă este un lanț de concluzii logice în care o concluzie duce la alta și așa mai departe. În logica formală, numită și logică simbolică, ceea ce este important este modul în care se face concluzia logică și cum sunt luați în considerare alți factori pentru a se asigura că concluzia finală este dovedită adevărată sau falsă într-un mod acceptabil. Logica are nevoie și de semantică pentru a da semnificație simbolurilor. Logica formală folosește o semantică care se bazează nu pe utilizarea cuvintelor care poartă conținut emoțional, ci pe alegerea unor nume semnificative pentru variabile, similare programării. Ca și matematica, logica studiază în mod direct nu obiectele empirice, ci abstracte. Aceasta ridică întrebarea: care este natura sau statutul ontologic al obiectelor abstracte? Despre ce fel de obiecte abstracte vorbim? În logica (clasică) se disting două tipuri fundamentale de obiecte abstracte: − concepte (proprietăţi); − relaţiile. Conceptele pot fi fie simple, fie complexe. Conceptele complexe sunt un set de concepte relativ mai simple (proprietăți simple) interconectate prin anumite relații. Obiectele abstracte mai complexe sunt judecățile, ale căror elemente structurale sunt și concepte și anumite relații. Judecățile, la rândul lor, sunt elemente structurale ale inferențelor (sisteme de judecăți), iar inferențe sunt elemente structurale ale conceptelor și teoriilor (sisteme de inferențe). În fig. Figura 10 prezintă ierarhia tipurilor de obiecte abstracte în logica clasică. Specificul logicii constă în faptul că studiază relațiile sau relațiile cele mai generale, universale, dintre obiectele abstracte. În conformitate cu aceasta, există următorul obiectiv - 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țe) 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 o universitate” este o judecată. „Dacă o persoană studiază la un institut, atunci este fie un student, fie un student absolvent” este o inferență. „Teoria calculului predicatului de ordinul întâi” este un concept. Concept Conceptele sunt obiecte abstracte care sunt accesibile înțelegerii umane ca proprietăți (semne) simple și complexe ale obiectelor empirice. Conceptul este î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 conceptele sunt conţinutul şi volumul. Toate caracteristicile logice și operațiile logice sunt rezultatul cunoașterii inferențiale din legea unei relații invers proporționale între conținutul și sfera unui concept. Fiecare concept are un domeniu de aplicare al conceptului (sfera conceptuală) și o adăugare la domeniul de aplicare al conceptului (Fig. 11, 12). Sfera unui concept este totalitatea (mulțimea) tuturor acelor empirice (obiecte individuale) cărora un concept dat este inerent (ca proprietate, atribut). - 26 - Adăugarea la volum este totalitatea tuturor acelor obiecte empirice care nu au un concept dat. 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: relațional, de rețea, model ierarhic date Adăugarea volumului: modele de date documentare (descriptive, tezaur, modele de date orientate pe format document) Conceptele pot fi de următoarele tipuri: 1) în volum: a. singur (U = 1 element, Kamaz); b. general (U>1 element, Uzina de automobile din Moscova); 2) după existenţa elementelor: a. nevid(elev); b. gol (kolobok); 3) după structura elementelor: a. neadunare (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) după calitatea elementelor: a. înregistrată (revista Open Systems, 1/2008); b. neînregistrat (intelligentsia), abstract; 7) după natura obiectului: a. specific(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 debitor este general, nevid, colectiv, corelativ, pozitiv, neînregistrabil și specific. Tehnici de bază pentru înțelegerea conceptelor Tehnicile de bază pentru înțelegerea conceptelor includ: − abstractizarea; − comparaţie; − generalizare; − analiză; − sinteza. Abstracția este selecția mentală (înțelegerea) unei anumite proprietăți sau relații prin abstracție de la alte proprietăți sau relații ale unui obiect empiric. Comparația – stabilirea asemănărilor sau diferențelor între obiecte. Generalizarea este izolarea mentală a unui anumit concept prin compararea altor concepte. Abstracția, comparația și generalizarea sunt tehnici care sunt strâns legate între ele. Acestea 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 tip de abstractizare complexă etc. Analiza este împărțirea mentală a unui obiect empiric sau abstract în componentele sale structurale constitutive (părți, proprietăți, relații). Sinteza este unificarea mentală a diferitelor obiecte într-un obiect integral. Exemple 1. Compararea oamenilor după înălțime implică abstracția conceptului „persoană” pentru a izola proprietatea „înălțime”. 2. Generalizare: „scaun” și „masă” - „mobilier”. Relația dintre concepte Pentru a explica relațiile dintre concepte, puteți folosi diagrame sub formă de cercuri Euler (Fig. 13). Exemple Uniformă (uniformă): Kazan este capitala. Independent (traversare): pasager – student. Subordonare: copac - mesteacăn. Opus (contrast): alb și negru. - 28 - Conradictor: alb – nu alb. Subordonare (subordonare): ofițeri (maior-căpitan). Împărțirea logică a unui concept este împărțirea domeniului de aplicare a conceptului în părți care nu se suprapun, bazate pe un anumit 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 Contrar Identic (uniform) X, Y X Y M(X)= M(Y) M(X)M(Y) U X este subordonată lui Y X Y M(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. Volumele conceptelor de specii nu trebuie să se suprapună (adică, membrii diviziunii nu trebuie 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) este împărțirea conceptelor după principiul contradictorialității (A, non-A). Clasificările sunt anumite sisteme (colecții ordonate) de concepte de specii. Clasificările sunt folosite pentru a căuta noi relații între concepte, precum și pentru a sistematiza cunoștințele existente. Exemplul 1. Tabelul periodic este un exemplu de clasificare științifică a elementelor chimice. 2. Un exemplu de clasificare a sistemelor informatice (SI) este prezentat în figura de mai jos. Bazele diviziunii: scop funcțional. A, B, C sunt exemple de sisteme informatice conform acestei clasificări. IS Sisteme faptice Sisteme de inteligență artificială Sisteme documentare IS „Universitate” Lingvo „Consultant Plus” A B C Fig. 14. Exemplu de clasificare Tehnicile de înțelegere a conceptelor (abstracție, comparație, generalizare, analiză, sinteză, divizare) sunt proceduri cognitive universale și fundamentale care nu au fost încă modelate cu succes în cadrul inteligenței artificiale. Aceasta este una dintre secțiunile fundamentale ale logicii clasice, care ar trebui integrată în teoria bazelor de cunoaștere. După aceasta vor sarcinile disponibile modelarea unor astfel de acte mentale precum formularea de ipoteze, predarea cunoștințelor declarative, procedurile de inferență va deveni mai încăpătoare. - 30 - Judecata O judecată este un obiect structural complex care reflectă legătura obiectivă dintre obiect și proprietatea acestuia. Judecata este în contrast cu entități precum: „propoziție”, „percepție”, „scene din lumea reală”. Exemplu. Următoarele propoziții exprimă aceeași propoziție: − „Un rechin este un pește răpitor”; − „Toți rechinii sunt pești răpitori.” − „Rechinii sunt pești răpitori.” Logica clasică consideră structura unei simple judecăți într-o interpretare ușor diferită de cea acceptată în cercetarea logico-lingvistică modernă. Astfel, î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: ​​− concept individual (IC); − concept de predicat (PC); − relaţia de predicţie (PR). Exemple Având în vedere propoziția: „Platon este un filozof”. În această propoziție care exprimă judecata S: „Platon” este un subiect logic, adică. simbol care denotă conceptul individual de judecată S. „Filosoful” este un predicat logic, adică. simbol care denotă conceptul de predicat al judecății S. „A apărea” este un conjunctiv subiect-predicat, adică. simbol care denotă o relație de predicție. Astfel, putem trage următoarea concluzie intermediară: − un concept individual este un sistem de concepte considerat ca o entitate conceptuală, un obiect empiric; − concept de predicat – un concept considerat ca o proprietate a unui anumit obiect empiric; − relație de predicție – o relație care conectează 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 modalități de oficializare a judecăților elementare. - 31 - Metoda 1. Limbajul natural este în mod tradițional considerat greoi și imprecis, dar încă nu a fost inventată nicio metodă formală care să se potrivească cu versatilitatea limbajului natural. Judecăți simple Atributiv Despre relații Existență Călugării, de regulă, sunt modesti Magnitogorsk la sud de Chelyabinsk Există molid albastru Fig. 15. Tipuri de judecăți simple Metoda a 2-a. Logica aristotelică tradițională. a 3-a metoda. Logica simbolică modernă. Principalele tipuri de judecăți complexe În plus față de 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 folosind 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 folosind mijloacele logicii simbolice moderne, inclusiv mijloacele logicii propoziționale și logica predicatelor (a se vedea paragrafele corespunzătoare ale paragrafului). Principalele tipuri de judecăți complexe includ − conjunctive; − disjunctive; − implicativ; − modal: o aletic (necesar, poate accidental); o epistemic (a cunoaste, a crede, a crede, a crede); o deontic (hotarat, interzis); o axiologic (bun, rău); o temporală (în trecut, înainte, ieri, mâine, în viitor); − întrebări: o dacă- întrebări; o ce- întrebări. Aici există și o continuitate de clase de logică și metode de inteligență artificială. - 32 - Inferențe Inferența (în logica tradițională) este înțeleasă ca o anumită formă de gândire prin care se face o tranziție mentală (numită „concluzie”) de la una sau mai multe judecăți (numite „premisă”) la o altă judecată (numită „concluzie”). o 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. Termenul silogism este folosit pentru a desemna inferența în logică. Silogismele pot fi formale sau informale. Aristotel a folosit primele silogisme formale. Silogistica pe care a dezvoltat-o ​​(teoria silogismelor formale, adică inferențe) a avut o influență semnificativă asupra dezvoltării logicii antice și scolastice și a servit drept bază pentru crearea unei teorii logice moderne a inferențelor. Pentru a consolida conceptele 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); − necontradictorii (afirmaţiile care se contrazic între ele nu pot fi adevărate în acelaşi timp); − treimea exclusă (din două afirmaţii concordante una cu alta, una este adevărată, cealaltă este falsă, iar a treia nu este dată); - motiv suficient (orice afirmație adevărată are un motiv suficient în virtutea căreia este adevărată și nu falsă). Să aruncăm o privire mai atentă la fiecare dintre pozițiile desemnate. I. Legea identității Legea identității dovedește 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”. Dacă această lege este încălcată, pot apărea următoarele erori. Amphiboly (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ă limbajul te va duce la Kiev. Și am cumpărat ieri limbă afumată. Acum pot merge cu încredere 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.” Aici eroarea se datorează faptului că în prima propoziție cuvântul „lup” este folosit ca metaforă, iar în a doua premisă – în sensul său literal. 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ă conceptele inițiale nu au fost clarificate. Astfel, legea identității exprimă una dintre cele mai importante cerințe ale gândirii logice – certitudinea. II. Legea necontradicției Această lege exprimă cerința de consistență a gândirii. Legea necontradicției spune: două propoziții, dintre care una afirmă ceva despre subiectul gândirii („A este B”), iar cealaltă neagă același lucru despre același subiect de gândire („A nu este B”) , nu poate fi simultan adevărat , dacă în același timp atributul B este afirmat sau negat despre obiectul gândirii A, considerat în același timp și în aceeași relație. De exemplu, propozițiile „Kama este un afluent al Volgăi” și „Kama nu este un afluent al Volgăi” nu pot fi adevărate simultan dacă aceste propoziții se referă la același râu. Nu va exista nicio contradicție dacă afirmăm ceva și negăm același lucru cu privire la aceeași persoană, care, totuși, este considerată în momente diferite. Astfel, hotărârile „Această persoană este student la MaSU” și „Această persoană nu este student la MaSU” pot fi simultan adevărate dacă prima dintre ele se referă la același timp (când această persoană studii la Universitatea de Stat din Moscova), iar în al doilea - altul (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 extinde atât asupra judecăților opuse, cât și asupra celor 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 mijlocului exclus Legea mijlocului exclus afirmă că două propoziții 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 este adevărat. - 34 - Legea mijlocului exclus formulează o cerință importantă pentru gândirea ta: nu poți să devii de la recunoașterea uneia dintre cele două afirmații contradictorii ca adevărată și să cauți ceva al treilea între ele. Dacă unul dintre ele este recunoscut ca fiind adevărat, atunci celălalt trebuie să fie recunoscut ca fals și să nu îl caute pe al treilea. Exemplu: animalele pot fi fie vertebrate, fie nevertebrate, nu poate exista nimic al treilea. IV. Legea Rațiunii Suficiente Conținutul acestei legi poate fi exprimat astfel: pentru a fi considerată pe deplin de încredere, orice poziție trebuie dovedită, i.e. trebuie cunoscute suficiente motive pentru care se consideră adevărată. O bază suficientă poate fi un alt gând, deja testat de practică și recunoscut ca adevărat, al cărui rezultat necesar este adevărul poziției care se dovedește. Exemplu. Baza logică a judecății „Camera a devenit mai caldă” este faptul de dilatare a mercurului termometrului. În știință, sunt considerate temeiuri suficiente: a) dispoziții referitoare la fapte certificate ale realității, b) definiții științifice, c) dispoziții științifice dovedite anterior, d) axiome și e) experiență personală. Inferența logică Inferența logică este derivarea unei anumite formule bazată pe multe alte formule logice prin aplicarea regulilor de inferență. Interpretul expresiilor logice, folosind inferența logică, construiește el însuși lanțul necesar de calcule pe baza descrierii inițiale. Semnificația abordării logice constă în posibilitatea construirii unui interpret a cărui funcționare nu depinde de formule logice. Regulile în reprezentarea logică au forma: P0←P1, …, Pn. P0 se numește țintă, iar P1, P2, ..., Pn este corpul regulii. Predicatele P1, P2, ..., Pn sunt condiții care trebuie îndeplinite pentru ca atingerea scopului P0 să aibă succes. Să ne uităm la elementele de bază ale inferenței logice folosind exemplul de realizare a procedurii de determinare a corectitudinii raționamentului. Definiția raționamentului corect logic Când spunem că o propoziție D decurge logic dintr-un alt P, ne referim la următoarele: ori de câte ori propoziția P este adevărată, atunci este și propoziția D. În logica propozițională avem de-a face cu formulele P și D, in functie de unele variabile X1, X2,.., Xn. Definiție. Vom spune că din formula P(X1, X2,...,Xn) urmează logic formula D(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 este îndeplinită. Formula P este numită premisa, iar D este concluzia raționamentului logic. De obicei, în raționamentul logic, nu se folosește o premisă P, ci mai multe; în acest caz, raționamentul va fi corect din punct de vedere logic; din conjuncția premiselor rezultă logic concluzia. Verificarea corectitudinii raţionamentului logic Prima metodă este prin definiţie: a) notaţi toate premisele şi concluziile sub formă de formule logice propoziţionale; b) să creeze o conjuncție de premise formalizate P1& P2&…& Pn,; c) verificați folosind tabelul de adevăr dacă concluzia D rezultă din formula P1&P2&...&Pn. A doua metodă se bazează pe următorul criteriu de consecință logică: „Formula D decurge logic din formula P dacă și numai dacă formula P |-D este o tautologie.” Apoi verificarea corectitudinii raționamentului logic se reduce la a răspunde la întrebarea: formula este o tautologie? La această întrebare se poate răspunde prin construirea unui tabel de adevăr pentru formulă sau prin reducerea acestei formule folosind transformări echivalente la o tautologie cunoscută. Vom numi a treia metodă de verificare a corectitudinii raționamentului logic scurtată, deoarece nu necesită o enumerare completă a valorilor variabilelor pentru a construi un tabel de adevăr. Pentru a justifica această metodă, formulăm o condiție în care raționamentul logic este incorect. Raționamentul este incorect dacă există un set de valori ale variabilelor X01, X02,.., X0n astfel încât premisa D(X01, X02,.., X0n) = А 3 și concluzia P(X01, X02,..., X0n) = ȘI. Exemplu. Raționamentul este dat: „Dacă plouă, atunci pisica este în cameră sau la subsol. Mouse-ul este în cameră sau în gaură. Dacă pisica este în subsol, atunci șoarecele este în cameră. Dacă pisica este în cameră, atunci șoarecele este în gaură, iar brânza este în frigider. Acum plouă, iar brânza este pe masă. Unde este pisica și unde este șoarecele? Să introducem următoarele notații: D – „plouă”; K – „pisica în cameră”; P – „pisica la subsol”; M – „șoarece în cameră”; N – „șoarece în gaură”; X – „brânză la frigider”; ¬Х – „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 - R→M D&¬X ----? Să folosim regulile de inferență 1) D&¬X├D; 2) D&¬X├¬X; 3) D→K|R, D├ K|R. În continuare vom lua în considerare două opțiuni. Opțiunea A. Să aibă loc K. Atunci 4a) K, K→H&X, K├H&X; 5a) H&X ├ X; 6a) ¬Х,Х├Х&¬Х - avem o contradicție, ceea ce înseamnă că presupunerea a fost greșită și această opțiune este imposibilă. Opțiunea B, Să aibă loc P. Atunci 4b) P, P →M├M; 5b) R,M├R&M S-a primit concluzia R&M, i.e. „Pisica este în subsol și șoarecele este în cameră” Exemplu Verificați corectitudinea raționamentului într-un mod scurtat. În ce alte moduri se poate rezolva această problemă? Raționamentul este dat: „Dacă azi este geroasă, mă duc la patinoar. Dacă azi este dezgheț, 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 următoarea notație: M – „azi va fi geros”; K – „Voi merge la patinoar”; O – „azi va fi dezgheț”; D - „Voi merge la discotecă.” Schema de raționament are forma: M→K O→Д M|O ---Д Raționamentul este corect din punct de vedere logic dacă pentru orice mulțime de valori ale variabilelor (M, K, O, D) pentru care toate premisele sunt adevărate , concluzia este si ea adevarata. Să presupunem contrariul: există o mulțime (M0,K0,O0.D0) astfel încât premisele sunt adevărate și 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 - M0 = I, K0 = I, O0 = A, D0 = A (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 →Д0 M0 ˅ O0 M0 К0 Fals Note presupunem că premisele sunt adevărate, Д0 О0 iar concluzia este falsă din 2.4 și definiția a implicației din 3, 5 și definiția disjuncției din 1, 6 și definiția 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 propoziționale (M, K, O, D) sunt implicate în raționament, tabelul de adevăr va conține 16 rânduri, iar această metodă necesită multă muncă. Folosind regulile de inferență, puteți construi un raționament corect din punct de vedere logic, dar nu este întotdeauna posibil să demonstrați incorectitudinea raționamentului logic. Prin urmare, pentru această sarcină, cea mai convenabilă modalitate este de a verifica corectitudinea raționamentului logic. Pentru a consolida regulile de inferență logică, trebuie să finalizați exercițiile de la p. 78. Principalele secțiuni ale logicii simbolice moderne În dezvoltarea logicii clasice se disting următoarele trei etape principale: logica antică (aproximativ 500 î.Hr. - începutul d.Hr.), logica scolastică (începutul d.Hr. - prima jumătate a secolului al XIX-lea) secol) , 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 considerate numai din punctul de vedere al adevărului sau al falsității lor, iar inferențe sunt reprezentate de sisteme corespunzătoare de enunțuri. - 38 - Logica predicatelor (calcul de predicate). Obiecte de studiu mai complexe sunt judecățile luate în considerare ținând cont de structura lor internă. Secțiunea de logică î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 său îl constituie întreaga sferă a relațiilor în ansamblu, toate acele relații universale care pot avea loc între concepte, judecăți, concluzii, precum și simbolurile care le desemnează. Următoarele paragrafe ale paragrafului prezintă pozițiile cheie ale logicii propoziționale și ale predicatelor de ordinul întâi. Pentru a înțelege mai bine logica modernă, este necesar să luăm în considerare principalele prevederi definite de silogismele lui Aristotel. Logica lui Aristotel În logica lui Aristotel, structura judecăţilor elementare este exprimată prin următoarele structuri: − S este P (1); − S nu este P (2), unde S este un subiect logic (din latinescul Subjectum); P - vreun predicat logic (din latinescul Predicatum). Tipurile de judecăți din logica lui Aristotel sunt enumerate mai jos. 1. Propoziții generale afirmative – A „Toți S sunt P” – Toți poeții sunt oameni impresionabili. Cuvintele „este” și „nu este” servesc ca un conectiv subiect-predicat. Din enunţurile (1) şi (2), folosind cuvintele „toţi” şi „unii”, se construiesc enunţuri de forma: − tot S este P: Tipul A (Affirmo); − unele S sunt P: Tip I (AffIrmo); − toate S nu sunt P: Tip N (Nego); − un S nu este P: Tip O (NegO). 2. Judecăți generale negative – E (N) „Nu S este P” - Nicio persoană nu este omniscientă. 3. Propoziție specifică afirmativă – I „Unii S sunt P” – Unii oameni au părul creț. 4. Judecata negativă parțială – O „Unii S nu sunt P” – Unii oameni nu știu să asculte. Enunțurile de tip 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ă relații funcțional-integrale, care sunt de obicei descrise sub forma unui pătrat logic (Fig. 16, Tabelul 2). - 39 - Când folosiți un pătrat logic, este important să țineți cont de 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 A I L L E L L I I I I L O L I I Fig. 16. Pătrat logic Explicații ale pătratului logic al lui Aristotel În stânga colțul de sus Pătratul logic conține afirmații de tip A (afirmativ general). În colțul din dreapta sus sunt enunțuri de tip E (negativ general). În colțul din stânga jos (sub A) sunt afirmații de tip I (în special afirmative). În colțul din dreapta jos (sub E) sunt enunțuri de tip O (negative parțiale). Enunțurile de tipurile A și O, precum și enunțurile de tipurile E și I, sunt legate între ele într-o relație de contradictorie, sau contradicție (relații diagonale). Enunțurile de tipurile A și E sunt într-o relație de contrarietate sau opoziție. - 40 - Enunțurile de tip I sunt subordonate (prin urmare implică) enunțuri de tip A. Enunțurile de tip O sunt subordonate afirmațiilor de tip E. În timp ce afirmațiile contradictorii au valori de adevăr opuse (una este adevărată, cealaltă este falsă) , afirmațiile contradictorii nu pot fi simultan adevărate, dar pot fi false în același timp. Folosind un pătrat logic, puteți deriva propoziții opuse, contradictorii și subordonate datelor, stabilindu-le adevărul sau falsitatea. Exemplul 1. Fiecare judecată este exprimată în propoziţia A →1. 2. Nici o judecată nu se exprimă î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, cu ajutorul pătratului logic al lui Aristotel , se pot stabili tipuri de relaţii între judecăţi: 1) obţinerea de cunoştinţe inferenţiale; 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 formalisme ale 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 Schoenfield și Taze; la Pospelov se poate găsi o prezentare populară a acestor teorii, care poate fi recomandată ca o introducere inițială. După definiția lui Thaize, propozițiile logice sunt o clasă de propoziții în limbaj natural care pot fi adevărate sau false, iar calculul propozițional este ramura logicii care studiază astfel de propoziții. Se ridică o întrebare firească: Ce să faci cu propozițiile limbajului, despre adevărul despre care nu se poate spune nimic cert? Exemplu. „Dacă mâine plouă, voi sta acasă.” Deocamdată, vom presupune pur și simplu că toate propozițiile cu care avem de-a face aparțin clasei enunțurilor logice. Vom desemna enunțuri folosind majuscule ale alfabetului latin și un index, dacă prezentarea o cere. Exemple de notare a enunțurilor: S, S1, S2, H, H1, H2. După cum sa menționat deja, o afirmație logică este fie adevărată, fie falsă. O declarație adevărată i se atribuie valoarea logică - 41 - TRUE (sau ȘI), unei declarații false i se atribuie valoarea logică FALSE (sau L). Astfel, valoarea de adevăr formează mulțimea (I, L). În calculul propozițional sunt introduse cinci conjunctive logice (Tabelul 3), cu ajutorul cărora se întocmesc formule logice în conformitate cu regulile de construcție. Tabelul 3 Conexiuni logice Nume comun Tip Altă notație desemnare Negație Unară -, ~, NOT, NOT  Conjuncție ^ Binar & , ., AND , AND * Disjuncție  Binar SAU SAU Implicație  Binar => -> Echivalență  Binar<=> <-> ~ * Notă: a nu se confunda cu valoarea de adevăr I. Setul de reguli de construire a formulelor logice pe 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; − limitare: formula se obține în mod unic folosind regulile descrise în etapa de bază și de inducție. Formulele sunt indicate cu majuscule ale alfabetului latin cu indici. Exemple de formule logice sunt date în exemplu. Exemple a) T = S1 ^ S2; b) N = H1H2. Expresia a) poate fi citită după cum urmează: „Formula logică T este conjuncția (conjunctiv logic ȘI) a afirmațiilor logice S1 și S2.” Interpretarea expresiei b) este următoarea: „Formula logică N este disjuncția (SAU conjunctiv logic) a negației (NU) a enunțului logic H1 și a afirmației logice H2.” Valoarea de adevăr a unei formule logice este o funcție a valorilor de adevăr ale afirmațiilor sale constitutive și poate fi determinată în mod unic folosind tabele de adevăr. Mai jos sunt tabele de adevăr pentru negație și conective binare (Tabelele 4, 5). Astfel, dacă sunt cunoscute valorile de adevăr pentru afirmațiile din exemplul a), de exemplu S1 = I, S2 = L, atunci valoarea de adevăr pentru formula - 42 - T poate fi găsit la intersecția celui de-al doilea rând și a treia coloană din Tabelul 5, adică T = L. Tabelul 4 Tabelul de adevăr pentru negație ¬X I L L I Tabelul 5 Tabelul de adevăr pentru conexiunile binare X Y X^Y X Y X Y XY AND AND AND AND I I I I L I L L I I I L L L I I Logica predicatelor de ordinul întâi Relațiile dintre obiecte sunt descrise folosind concepte matematice speciale numite predicate logice, iar calculul predicatului este ramura logicii care le studiază. Orice logică este un sistem formal pentru care trebuie definite următoarele: − alfabetul sistemului - un set numărabil de simboluri; − formule de sistem - un anumit subset al tuturor cuvintelor care se pot forma din simbolurile incluse în alfabet (de obicei se specifică o procedură care permite alcătuirea formulelor din simboluri ale alfabetului de sistem); − axiomele sistemului - un set selectat de formule ale sistemului; − reguli de inferență ale sistemului - un set finit de relații între formulele sistemului. Dicționarul de calcul de predicate în prezentarea sa 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: (existenţă, universalitate); − ape termale; − forme funcţionale; − forme de predicat; − atomi; − formule. Constante individuale și variabile individuale Sunt similare cu constantele și variabilele din analiză matematică, singura diferență fiind că gama lor de variație reprezintă mai degrabă indivizi decât numere reale. În teoria inteligenței artificiale, constantele și variabilele numite din memoria agentului care corespund obiectelor și conceptelor din lumea reală sunt de obicei numite concepte. În limbile de ordinul întâi, variabilele pot fi doar individuale, așa că sunt numite pur și simplu variabile. După cum se va arăta mai jos, utilizarea limbilor de ordinul întâi și refuzul de a folosi limbi 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 nume mnemonice preluate din text. Literele mici vor fi folosite pentru a desemna variabile literele x,y,z , alfabet latin cu indexuri. Exemplu. Constante individuale: a1, b1, c, u, v1, seller_w, k22, buy_l, m10, book_a1. Variabile: x, y2, z33. Constantele predicatelor Constantele predicatelor denotă 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, numiți termeni, formând o formă de predicat. Constantele predicatelor sunt notate prin 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, L). Constante funcționale O constantă funcțională (f, g, h) precum și o constantă de 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 constă dintr-un set de constante individuale. O constantă funcțională de loc nul este pur și simplu o constantă individuală. conectivele logice în calculul predicatelor servesc la formarea formulelor. Cuantificatori. Calculul de predicate folosește doi cuantificatori: cuantificatorul general () ș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 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: - fiecare variabilă sau constantă este un termen; − dacă t1,...,tn sunt termeni, iar f este un simbol al funcției n-are, 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. Un termen (t1,t2 ...tn) este orice variabilă și orice formă funcțională. O formă funcțională este o constantă funcțională conectată la un număr adecvat de termeni. Dacă f este o constantă n-ară funcțională și t1 ..., tn sunt termeni, atunci forma corespunzătoare este de obicei notată cu f(t1, ...,tn). Dacă n=0, atunci pur și simplu scrieți 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. o expresie ca (s=t), unde s și t sunt termeni. O formulă atomică sau elementară se obține prin aplicarea unui predicat unor termeni, mai precis, aceasta este expresia 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) formule; - dacă A este o formulă și x este o variabilă, atunci xA și xA sunt formule. Să reprezentăm alfabetul logicii predicatelor prin concepte. constante. Ele servesc ca nume de indivizi (spre deosebire de nume de agregate): obiecte, oameni sau evenimente. Constantele sunt reprezentate prin simboluri - 45 - precum Jacques_2 (adăugarea lui 2 la cuvântul Jacques indică o persoană foarte specifică printre persoanele cu acest nume), Book_22, Parcel_8. Variabile. Ele denotă nume de agregate, cum ar fi o persoană, o carte, un pachet, un eveniment. Simbolul Book_22 reprezintă o instanță foarte specifică, iar cartea de simboluri indică fie setul de „toate cărțile”, fie „conceptul de carte”. Simbolurile x, y, z reprezintă denumirile colecțiilor (anumite mulțimi sau concepte). Nume de predicate (constante de predicat). Ei definesc regulile pentru conectarea constantelor și variabilelor, de exemplu, reguli gramaticale, proceduri și operații matematice. Pentru numele predicative, sunt folosite simboluri precum următoarele expresii: Trimite, Scrie, Plus, Împărțire. Numele de funcții (constantele funcției) reprezintă aceleași reguli ca și predicate. Pentru a evita confuzia cu numele predicatelor, numele funcționale sunt scrise numai cu litere mici: frază, trimite, scrie, plus, împărți. Simbolurile folosite pentru a reprezenta constante, variabile, predicate și funcții nu sunt „cuvinte rusești”. Sunt simboluri ale unor reprezentări - cuvinte ale unui „limbaj obiect” (în cazul nostru, limbajul predicatelor). Prezentarea trebuie să excludă orice ambiguitate a limbajului. Prin urmare, numele indivizilor conțin numere care sunt atribuite numelor agregatelor. Jacques_1 și Jacques_2 reprezintă două persoane cu aceleași nume. Aceste reprezentări sunt concretizări ale numelui agregatului „Jacques”. Un predicat este un nume de predicat împreună cu un număr adecvat de termeni. Un predicat se mai numește și formă de predicat. Exemplu. În rusă: Jacques îi trimite o carte Mariei, logic: Parcel (Jacques_2, Marie_4, Book_22). Logica fuzzy Apariția logicii fuzzy, a teoriei mulțimilor fuzzy și a altor teorii „fuzzy” este asociată cu munca omului de știință american Zadeh. Ideea principală a lui Zadeh a fost că modul uman de raționament, bazat pe limbajul natural, nu poate fi descris în cadrul formalismelor matematice tradiționale. Aceste formalisme sunt caracterizate de o strictă lipsă de ambiguitate a interpretării, iar tot ceea ce ține de utilizarea limbajului natural are o interpretare cu mai multe valori. Scopul lui Zadeh a fost să construiască o nouă disciplină matematică, care să se bazeze nu pe teoria mulțimilor clasice, ci pe teoria mulțimilor fuzzy. Urmărind în mod consecvent ideea de neclaritate, conform lui Zadeh, este posibil să se construiască analogii neclare ale tuturor conceptelor matematice de bază și să se creeze aparatul formal necesar pentru modelarea raționamentului uman și a modului uman de rezolvare a problemelor (Fig. 17). - 46 - Crearea teoriei mulțimilor fuzzy - Rezolvarea Teoria matematică a mulțimilor fuzzy - Baza mecanismului Formalizarea raționamentului modului uman - Teza problemei - o persoană în viața de zi cu zi - Problema gândește și ia decizii pe baza unor concepte 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 domeniile de frunte ale inteligenței artificiale. Conceptul de „fuzzy”, aplicat inițial mulțimilor și apoi logicii, a fost extins cu succes și în alte domenii ale matematicii și informaticii și acum există deja: - teoria relațiilor fuzzy; - teoria multimilor fuzzy; - teoria măsurilor şi integralelor fuzzy; - teoria numerelor și ecuațiilor fuzzy: - teoria logicii fuzzy și raționamentul aproximativ: - teoria limbajelor fuzzy; - teoria algoritmilor fuzzy; - teoria modelelor fuzzy de optimizare și luare a deciziilor. Următoarele pachete sunt cele mai populare printre clienții 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 – un program pentru extragerea automată a regulilor fuzzy din datele de intrare; 4) FuziCalc - o foaie de calcul cu câmpuri neclare care vă permite să faceți estimări rapide cu date inexacte cunoscute fără acumulare de erori; 5) OWL – un pachet care conține textele sursă ale tuturor tipurilor cunoscute de rețele neuronale, fuzzy memorie asociativă etc. Principalii „consumatori” ai logicii fuzzy pe piața rusă sunt: ​​bancherii, finanțatorii și specialiștii în domeniul analizei politice și economice. - 47 - Majoritatea sarcinilor umane nu necesită precizie ridicată. Adesea, atunci când comunicați cu lumea reală, trebuie să găsiți un compromis rezonabil între conceptele de „acuratețe” și „importanță”. De exemplu: pentru a lua o decizie privind traversarea străzii, o persoană nu estimează viteza unei mașini care se apropie cu o precizie de zecimi de metri pe secundă. El definește pentru sine viteza mașinii ca „foarte rapidă”, „rapidă”, „înceată”, etc., adică. folosește variabile lingvistice pentru a indica viteza. Teoria mulțimilor fuzzy oferă următoarele metode pentru formalizarea conceptelor fuzzy. Prima metodă (bazată pe munca lui Zadeh) implică abandonarea afirmației de bază a teoriei clasice a mulțimilor că un element poate aparține sau nu unei mulțimi. În acest caz, este introdusă o funcție caracteristică specială a mulțimii - așa-numita funcție de membru, care ia valori din interval. Această metodă conduce la logica continuum. În a doua metodă, mai generală, de formalizare a neclarității, se presupune că funcțiile caracteristice ale unei mulțimi iau o valoare nu din intervalul , ci într-o rețea distributivă finită sau infinită. Această generalizare se numește mulțimi fuzzy în sensul lui Gauguin. A treia metodă este P-mulții 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 algebra claselor. A patra metodă este mulțimile neclare eterogene. Aici, în cazul general, elementelor mulțimii universale li se atribuie valori în diferite rețele distributive. Fiecare element poate fi asociat cu ratingul care i se potrivește cel mai bine. În plus, valorile estimărilor în sine pot fi neclare și specificate sub formă de funcții. S-a obținut o idee generală a logicii neclare. 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ă o variabilă poate prelua semnificația cuvintelor în limbaj natural (de exemplu, „mic”, „rapid” etc.), atunci această variabilă este definită ca o variabilă lingvistică. Cuvintele ale căror valori sunt luate de o variabilă lingvistică denotă de obicei seturi neclare. 4 Sisteme informatice inteligente: Instrucțiuni pentru un atelier de laborator la cursul „Sisteme informaționale inteligente” pentru studenții specialității 071900 - Sisteme informaționale în economie / Ufimsk. stat aviaţie tehnologie. Universitate; comp.: G.G.Kulikov, T.V.Breikin, L.Z.Kamalova. - Ufa, 1999. -40 p. - 48 - O variabilă lingvistică poate lua drept valori fie cuvinte, fie numere. Definirea unei variabile lingvistice (formale) O variabilă lingvistică se numește cvintuplu (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 o mulțime neclară pe mulțimea X; G – regulă sintactică pentru formarea numelor de valori x; M este o regulă semantică pentru asocierea fiecărei valori cu conceptul său. Scopul conceptului de variabilă lingvistică este de a spune în mod formal că o variabilă poate lua drept valori cuvinte dintr-o limbă naturală. Cu alte cuvinte, fiecare variabilă lingvistică este formată din: − nume; − o mulţime a valorilor sale, care se mai numeşte şi mulţimea de termeni de bază T. Elementele mulţimii de termeni de bază sunt denumirile variabilelor fuzzy; − multimea universala X; − regula sintactică G, conform căreia se generează termeni noi folosind cuvinte dintr-un limbaj natural sau formal; − regula semantică P, care atribuie fiecare valoare a unei variabile lingvistice unui submulțime neclară a mulțimii X. De exemplu, dacă spunem „viteză rapidă”, atunci variabila „viteză” ar trebui înțeleasă ca o variabilă lingvistică, dar aceasta nu nu înseamnă că variabila „viteză” nu poate lua valori reale. O variabilă fuzzy este descrisă de o mulțime (N,X,A), unde N este numele variabilei, X este o mulțime universală (aria lui raționament), A este o mulțime fuzzy pe X. Valorile unei variabile lingvistice pot fi variabile fuzzy, adică . variabila lingvistică este la un nivel mai înalt decât variabila fuzzy. Principala abordare a formalizării neclarității este următoarea. O mulțime fuzzy se formează prin introducerea unui concept generalizat de apartenență, adică. extinderea setului de valori cu două elemente ale funcției caracteristice (0,1) la un continuum. Aceasta înseamnă că trecerea de la apartenența completă a unui obiect la o clasă până la neaptitudinea sa completă nu are loc brusc, ci fără probleme, treptat, iar apartenența unui element într-o mulțime este exprimată printr-un număr din intervalul . - 49 - O mulțime fuzzy (FS) 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 SM ) direct sub forma unei funcții a mulțimii Universale X a mulțimii fuzzy A este domeniul de definire a funcției de membru μa. În fig. 18 prezintă principalele tipuri 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). − 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 de descriere a funcției de membru x1 x2 x3 x4 0,2 0,6 1 0,8 Exemplu „Mulți oameni înalți” În viața reală, un 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, alții - mai mult de 190 cm. Seturile neclare ne permit să luăm în considerare o astfel de vagitate a estimărilor. - 50 - Fie x o variabilă lingvistică care denotă „înălțimea persoanei”, funcția sa de apartenență la mulțimea de oameni înalți A:X(0,1), unde X este o mulțime care include toate valorile posibile ale înălțimii unei persoane, este dat astfel: Atunci mulțimea „oamenilor înalți” este dată de expresia A=(x| A(x)=1), x ϲ X. Aceasta este reprezentată 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 reprezentată în figură de linia punctată. Orez. 19. Set neclar de oameni înalți Astfel, o persoană de 145 cm înălțime va aparține setului A cu grad de apartenență A(145)=0, o persoană de 165 cm înălțime - A(165) = 0,3, 185 cm înălțime -A (185 )= 0,9, iar înălțimea 205 cm - A(205)=1. Exemplu. „Ți-e frig acum?” O persoană percepe o temperatură de +60oF (+12oC) ca rece și o temperatură de +80oF (+27oC) ca fiind fierbinte. Temperaturile de +65oF (+15oC) pot părea reci pentru unii, dar destul de confortabile pentru alții. Numim acest grup de definiții funcția apartenenței la seturi care descriu percepția subiectivă a unei persoane asupra temperaturii. Mașinile nu sunt capabile de o gradație atât de fină. Dacă definiția standard a frigului este „temperatura sub +15oC”, atunci +14,99oC va fi considerată rece, dar +15oC nu. În fig. 20. Este prezentat un grafic care ajută la înțelegerea modului în care o persoană percepe temperatura. Este la fel de ușor să creezi seturi suplimentare care descriu percepția umană asupra temperaturii. De exemplu, puteți adăuga seturi precum „foarte rece” și „foarte cald”. Este posibil să se descrie funcții similare pentru alte concepte, cum ar fi stările deschise și închise, temperatura răcitorului - 51 - sau temperatura turnului de răcire. Orez. 20. Setul fuzzy „Temperatura” Astfel, putem trage următoarele concluzii cu privire la esența conceptului „multimi fuzzy”: 1) seturile fuzzy descriu concepte vagi (alergator rapid, apă caldă, vreme caldă); 2) seturile neclare permit posibilitatea apartenenței parțiale la ele (vineri este parțial zi liberă (scurtată), vremea este destul de caldă); 3) gradul de apartenență a unui obiect la o mulțime neclară este determinat de valoarea corespunzătoare a funcției de apartenență pe interval (vineri aparține weekendului cu un grad de apartenență de 0,3); 4) functia de apartenenta asociaza un obiect (sau o variabila logica) cu valoarea gradului de apartenenta sa intr-o multime fuzzy. Forme de curbe pentru specificarea funcțiilor de membru Există peste o duzină de curbe standard pentru specificarea funcțiilor de membru. Cele mai utilizate sunt: ​​funcțiile de apartenență triunghiulare, trapezoidale și gaussiene. Funcția de apartenență triunghiulară este definită printr-un triplu de numere (a,b,c), iar valoarea sa în punctul x este calculată conform expresiei (1).  bx 1  b  a , a  x  b;  c  x MF (x)   , b  x  c; c  b  0, în toate celelalte cazuri   - 52 - (1) Când (b-a)=(c-b) 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 specifica o funcție de apartenență trapezoidală, este necesar un cvadruplu de 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ă ia o formă simetrică (Fig. 22). Orez. 22. Funcția de apartenență trapezoidală Colecția de funcții de apartenență pentru fiecare termen din setul de termeni de bază T este de obicei reprezentată împreună pe un singur grafic. În fig. 23 prezintă o formalizare a conceptului imprecis de „Epoca omului”. Astfel, 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 „Era umană” Operații de bază pe mulțimi fuzzy Operațiile de bază pe mulțimi fuzzy din clasa tuturor mulțimilor fuzzy F(X)=( | :X  ) ale mulțimii universale X sunt prezentate mai jos. 1. Adunarea5  2 =   = 1-  1,  x  X Fig. 24. Graficul operației „Adăugare” asupra funcției M 2. Intersecția I (minimum: variabile neinteracționante).  3 = ( 1   2) (x)= min( 1(x),  2(x)) ,  x  X 3. Grupul I (maximum: variabile care nu interacționează).  3 = ( 1   2) (x)= max( 1(x),  2(x)) ,  x  X 4. Intersecția II (produs limitat).  3 = ( 1   2) (x)= max(0,  1(x) +  2(x)-1) , x  X 5. Pooling II (maximum: cantitate limitată).  3 = ( 1   2) (x)= min(1,  1(x) +  2(x)) ,  x  X 6. Intersecția III (produs algebric). 5 Aici și mai jos, 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 A B Fig. 25. Graficul operației de intersecție I (A) combinând I (B) funcțiilor M și M1 A B Fig. 26. Graficul operației intersecției II (A) combinând funcțiile II (B) M și M1 A B Fig. 27. Graficul operației intersecției III (A) combinând funcțiile III (B) M și M1 - 55 - 8. Diferența.  3 =  1(x) -  2(x) = max(0,  1(x) -  2(x)) ,  x  X 9. Concentrația.  3 =  2(x) ,  x  X Fig. 28. Graficul diferenței dintre funcțiile M și M1 Fig. 29. Graficul concentrației funcției M1 Spre deosebire de algebra booleană, în F(X) nu sunt îndeplinite legile excluderii celei de-a treia. Când se construiesc operații de unire sau intersecție în F(X), este necesar să se renunțe fie la legile excluderii mijlocului, fie la proprietățile distributivității și idempotității. Obiectele fuzzy pot fi clasificate în funcție de tipul intervalului de valori al funcției de membru. Si aici se disting optiunile X: - grila; - semigrup; - inel; - categorie. Important pentru aplicațiile practice în ceea ce privește exprimarea ideilor și evaluărilor calitative ale unei persoane în procesul de realizare a unei soluții la o problemă este cazul mulțimilor S-fuzzy definite printr-o pereche (X, ), unde - 56 - :X S este o mapare de la X la o mulțime ordonată liniar S. Este firesc să impunem cerințele de finititate și 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ă Adăugarea 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) Unirea II (suma limitată) SAU Intersecția III (produs algebric ȘI) Unirea III (suma algebrică) SAU Diferența Concentrație FOARTE După cum sa arătat, în funcție de metodele de introducere a operațiilor de unire și intersecție a NM, există trei teorii principale ale NM. În conformitate cu criterii similare, ele împart: - logica fuzzy cu operații maximin (operații 1,2,3,8,9); − logica fuzzy cu operatii limitate (operatiile 1,4,5,8,9); − logica fuzzy probabilistica (operatiile 1,6,7,8,9). Tratarea adevărului ca variabilă lingvistică duce la o logică neclară cu valorile „adevărat”, „foarte adevărat”, „complet adevărat”, „mai mult sau mai puțin adevărat”, „nu foarte adevărat”, „fals” etc. , adică la logica cu valori fuzzy, pe care se bazează teoria raționamentului aproximativ. Domenii de aplicare ale teoriei multimilor fuzzy in diverse domenii ale cunoasterii umane.Filozofic, teoria multimilor fuzzy se remarca prin faptul ca deschide