Skip to content

teodutu/IA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IA

Inteligenta Artificiala - UPB 2020-2021

Laboratoare

Laborator 1 - A*

Se foloseste A* pentru a se gasi drumul de lungime minima intre 2 puncte dintr-un sistem de coordonate carteziene. Nu exista costuri la trecerea dintr-o celula in alta, iar euristicile folosite sunt distanta euclidiana si cea Manhattan.

Nota

Daca se elimina sqrt() din distanta euclidiana, pare ca algoritmul se comporta mai bine, dar asta e o pura intamplare, din moment ce fara sqrt() euristica nu mai e admisibila. De fapt, explorand mai putine stari, algoritmul ar putea ajunge la un rezultat gresit daca ar fi rulat pentru o problema mai complexa

Laborator 2 - Arbore SI/SAU

Se foloseste un arbore SI/SAU pentru a se modela comportamentul unui aspirator nedeterminist intr-un spatiu 1D, unde celulele pot fi fie curate, fie murdare. Nedeterminismul consta in faptul ca atunci cand aspiratorul curata o celula, exista 2 posibilitati:

  • Celula era curata $\Rightarrow$ aceasta se poate ramane curata sau se poate murdari
  • Celula era murdara $\Rightarrow$ aceasta va fi curatat, dar se poate ca si celula din dreapta sa fie curatata

Nod SAU

Reprezinta o decizie. In fiecare stare, sunt maxumum 3 actiuni posibile: Left, Right, Clean. Fiii unui nod SAU reprezinta efectele acestor decizii, daca ar deveni actiuni. Deci daca oricare dintre ele duce la o stare de succes (in care toate celulele sunt cu siguranta curate), atunci si nodul poate duce la o stare de succes.

Nod SI

Reprezinta o actiune in sine. Pentru actiunile de miscare (Left, Right), are un singur fiu, noua pozitie in care ajunge aspiratorul. Pentru actiunea Clean, nedeterminismul aspiratorului inseamna ca pentru a fi siguri ca acest nod duce la o stare de succes, e nevoie ca ambele situatii care se pot obtine in urma acestei actiuni (descrise mai sus) sa duca la succes, pentru ca nu stim care scenariu se va intampla in cazul unei functionari a aspiratorului.

Plan

La final se creeaza un plan de actiune, un fel de algoritm care descrie deciziile aspiratorului in functie de mediu (curatenia celulelor).

Laborator 3 - PCSP

Se implementeaza un algoritm generic de rezolvare a unei probleme de satisfacere a constrangerilor care admite un numar dat de abateri de la constrangerile date. Algoritmul folosit este un BKT clasic care nu mai viziteaza nodurile de pe o ramura atunci cand numarul de abateri de la constragneri de pe aceasta depaseste numarul minim global gasit pana in acel moment, deoarece ce pe acea ramura nu mai se poate gasi o asignare de variabile cu un cost mai mic decat minimul curent.

Laborator 4 - MCTS

Se implementeaza algoritmul Monte Carlo Tree Search pe un joc de connect 4

Laborator 5 - Unificare in logica cu predicate de ordinul I

Se foloseste algoritmul Robinson pentru a se realiza unificarea a doua formule, pe baza unui dictionar de substitutii (care se completeaza pe parcursul algoritmului).

Bine ca de data asta putem sa alegem singuri cum reprezentam datele...

Laborator 6 - Rezolutie in logica cu predicate de ordinul I

Se utilizeaza rezolutia pentru a demonstra propozitii.

Laborator 7 - Forward Chaining

Se demonstreaza o serie de teoreme (implicatii) folosind forward chaining. Teoremele sunt formulate in FNC si se folosesc functiile implementate in laboratoarele anterioare (unify() si substitute()) pentru a aplica un set de fapte unor premise, astfel incat sa se obtina noi fapte.

Laborator 8 - Graphplan

In lab e implementat algoritmul Graphplan care creeaza o planificare de actiuni cu scopul de a ajunge la o anumita stare. Starile sunt definite ca o lista de predicate. Algoritmul se bazeaza pe 2 notiuni:

Predicate mutex

Sunt predicate care se contrazic (de ex.: A si ~A). Aceste predicate nu pot face parte din aceeasi stare.

Actiuni mutex

Sunt actiuni care au cel putin unul dintre preconditii sau efecte in mutex. Aceste actiuni nu se pot executa simultan.

Pe baza mutecsilor descrisi mai sus, se creeaza o lista de actiuni posibile, una de actiuni aflate in mutex (au oricare dintre premise sau efecte in relatie de mutex), alta de efecte ale actiunilor antementionate si inca una cu efectele aflate in mutex.

Laborator 9 - Seminar retele bayesiene

Niste tractoare scarboase de rezolvat pe hartie. Calcule chioare de probabilitati si nimic mai mult. Nu merita sa ajunga pe Git...

Laborator 10 - Eliminarea variabilelor din retele bayesiene

Se implementeaza reguli care reduc dimensiunea factorilor (tabelelor de probabilitati) din nodurile unei retele bayesiene.

Multiplicare

Un join intre 2 factori prin care se inmultesc probabilitatile liniilor care fac match.

Insumare

Se elimina o variabila dintr-un factor adunand valorile intrarilor unde variabila respectiva are valori opuse (se poate ignora pentru ca se considera si cazul in care e adevarata si cel in care nu).

Reducere conform cu observatiile

Daca observam ca o variabila are o anumita valoare, putem elimina intrarile cu valoarea opusa din toti factorii in care apare variabila.

Teme

Tema 1 - Cautari informate in spatiul starilor

Se implementeaza si se compara performantele algoritmilor DFID, IDA*, LRTA* si Branch and Bound. Se afieseaza caile gasite de agent de la starea initiala pana la cea finala, costurile gasite de acesta pentru fiecare stare explorata, precum si timpii si memoria utilizata in cadrul fiecarui algoritm.

Tema 2 - Game about Squares

Se implementeaza un algoritm de rezolvare a nivelurilor din jocul "Game about Squares". Se foloseste algoritmul Best First ce foloseste euristica euclidiana, impreuna cu doua strategii de eliminare a starilor ce nu pot duce la o stare castigatoare.

Tema 3 - Clasificarea si rezumarea articolelor de stiri

Se foloseste algoritmul Naive Bayes pentru a clasifica articole de stiri dupa domeniul acestora. Acelasi algoritm este folosit si pentru rezumarea acestor articole. Rezumatele sunt create de catre model selectand unele propozitii din articolul initial. Se antreneaza si se compara rezultatele obtinute atat cu monograme cat si cu bigrame.