Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
BRIDGE EXPERT
"Inteligenta artificiala"
Este implementat un sistem expert in jocul de bridge.
Acest sistem expert nu este adresat incepatorilor in jocul de bridge, ci persoanelor care cunosc regulile generale si vor sa-si insuseasca sistemul de licitatie "MAJORA IN 5". In forma prezentata in proiect, sistemul expert poate fi inclus in programe mai vaste ca de exemplu:
bridge pe calculator - acest SE ar asigura o modalitate prin care calculatorul sa ia deciziile legate de licitatiile jucatorilor controlati de el
sistem de antrenament cu calculatorul - calculatorul ar putea fi folosit pe post de partener in timpul antrenamentelor pentru insusirea temeinica a licitatiilor, principiilor si conventiilor specifice sistemului de licitatie "MAJORA IN 5"
In acest SE am acoperit problemele legate de deschiderea licitatiei precum si raspunsurile dupa deschiderea de 1FA.
Completarea ulterioara se poate realiza foarte usor, prin legarea de noi subarbori de oricare din nodurile arborelui de decizie existent.
Sistemul expert se bazeaza pe urmatorul arbore de decizie . Pentru simplitate am omis ca din fiecare nod sa existe o legatura catre nodul (100 - "Ati ales sa iesiti din program"). Nodurile cu laturi rotunjite reprezinta concluziile. Fiecare arc este marcat cu raspunsul prin care se ajunge de la un nod la altul .
Descrierea arborelui de decizie:
jucatorul alege ce moment al licitatiei doreste sa analizeze - deschiderea sau raspunsurile la deschidere
daca are 13 carti in mana, continua, daca nu iese din program
daca nu are suficiente puncte de onor (PO) pentru a deschide la nivelul 1 cu 1 la culoare, in functie de mana sa poate pasa sau poate face o licitatie de semibaraj sau baraj
daca are suficiente PO pentru a deschide la nivelul 1 cu 1 la culoare iar in plus are distributie regulata, isi descrie mana astfel:
o 12 - 15 PO : 1 la culoare apoi FA
o 16 - 18 PO : 1FA
o 19 PO : 1 la culoare apoi salt in FA
o 20 - 22 PO : 2FA
o 23 - 24 PO : 2♣ apoi FA
o peste 24 PO : 2♦ apoi FA
daca mana este foarte puternica, deschide cu 2♣ sau cu 2♦, in functie de distributie
daca are suficiente PO pentru a deschide la nivelul 1 cu 1 la culoare si are o distributie bicolora, liciteaza conform conventiei pentru distributiile bicolore
daca are suficiente PO pentru a deschide la nivelul 1 cu 1 la culoare si nu are o distributie bicolora, deschide cu majora, daca are o culoare majora de minim 5 carti sau cu cea mai buna minora.
In cazul in care partenerul a deschis licitatia cu 1FA, jucatorul poate raspunde:
daca are un bicolor major, minim 5-5, liciteaza conform conventiilor, in functie de taria mainii
daca are o mana slaba, fara culori lungi, paseaza
invita la mansa prin 2FA cu o mana medie, fara majora in 4
declara mansa la 3FA cu o mana limitata, fara majora in 4
2♣ Stayman daca are cel putin o majora in 4 si peste 8 PO
liciteaza conform conventiei Texas daca are in mana o culoare lunga.
Proiectul consta din 2 fisiere clips.
In fisierul, "prj_declarare_fapte.CLP" sunt declarate faptele specifice acestui sistem expert in jocul de bridge, corespunzatoare arborelui de decizie prezentat mai sus.
Faptele pot fi de urmatoarele tipuri:
(intrebare nr_nod text_intrebare)
(lista_raspunsuri nr_nod raspuns_1 raspuns_2 . )
(regula nr_nod nr_raspuns nod_urmator)
(concluzie nr_nod text_concluzie)
Listing-ul fisierului "prj_declarare_fapte.clp":
(deffacts fapte
(intrebare 1 'Ce moment al licitatiei doriti sa analizati?')
(lista_raspunsuri 1 '1 - Iesire din program' '2 - Deschiderea' '3 - Raspunsuri la deschiderea partenerului')
(regula 1 1 100)
(regula 1 2 2)
(regula 1 3 200)
(intrebare 2 'Aveti 13 carti in mana?')
(lista_raspunsuri 2 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 2 1 100)
(regula 2 2 3)
(regula 2 3 4)
(concluzie 3 'Rezolvati problema si reluati programul')
(intrebare 4 'Aveti destule puncte de onor (PO) pentru a deschide la nivelul 1 cu 1 la culoare?')
(lista_raspunsuri 4 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 4 1 100)
(regula 4 2 5)
(regula 4 3 6)
(intrebare 5 'Aveti o culoare de minim 7 carti?')
(lista_raspunsuri 5 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 5 1 100)
(regula 5 2 7)
(regula 5 3 8)
(intrebare 7 'Aveti o culoare majora de 6 carti?')
(lista_raspunsuri 7 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 7 1 100)
(regula 7 2 9)
(regula 7 3 10)
(concluzie 9 'Licitatia potrivita este PAS.')
(intrebare 10 'Aveti cel putin 6 PO?')
(lista_raspunsuri 10 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 10 1 100)
(regula 10 2 9)
(regula 10 3 12)
(concluzie 12 'Deschideti cu 2 cupe sau 2 pici, in functie de culoarea majora pe care o detineti.')
(intrebare 8 'Mana indeplineste conditiile pentru o licitatie de baraj?')
(lista_raspunsuri 8 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 8 1 100)
(regula 8 2 9)
(regula 8 3 14)
(concluzie 14 'Faceti licitatia de baraj corespunzatoare mainii pe care o aveti.')
(intrebare 6 'Aveti o distributie regulata, fara majora in 5?')
(lista_raspunsuri 6 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 6 1 100)
(regula 6 2 16)
(regula 6 3 15)
(intrebare 15 'Aveti intre 12 si 15 PO?')
(lista_raspunsuri 15 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 15 1 100)
(regula 15 2 18)
(regula 15 3 17)
(concluzie 17 'Deschideti licitatia cu 1 la culoare apoi licitati FA la nivel minim.')
(intrebare 18 'Aveti intre 16 si 18 PO?')
(lista_raspunsuri 18 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 18 1 100)
(regula 18 2 20)
(regula 18 3 19)
(concluzie 19 'Licitatia corespunzatoare mainii dumneavoastra este 1FA.')
(intrebare 20 'Aveti 19 PO?')
(lista_raspunsuri 20 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 20 1 100)
(regula 20 2 22)
(regula 20 3 21)
(concluzie 21 'Deschideti licitatia cu 1 la culoare si apoi licitati FA cu salt.')
(intrebare 22 'Aveti intre 20 si 22 PO?')
(lista_raspunsuri 22 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 22 1 100)
(regula 22 2 24)
(regula 22 3 23)
(concluzie 23 'Licitatia corespunzatoare este 2 FA.')
(intrebare 24 'Aveti intre 23 si 24 PO?')
(lista_raspunsuri 24 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 24 1 100)
(regula 24 2 26)
(regula 24 3 25)
(concluzie 25 'Deschideti licitatia cu 2 trefle si apoi licitati FA.')
(concluzie 26 'Deschideti licitatia cu 2 carouri si apoi licitati FA.')
(intrebare 16 'Aveti o mana cu minim 8 levate de joc (Lj) si peste 16 PO?')
(lista_raspunsuri 16 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 16 1 100)
(regula 16 2 28)
(regula 16 3 27)
(intrebare 27 'Aveti mai mult de 9,5 Lj?')
(lista_raspunsuri 27 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 27 1 100)
(regula 27 2 29)
(regula 27 3 30)
(concluzie 29 'Licitati 2 trefle.')
(concluzie 30 'Licitati 2 carouri.')
(intrebare 28 'Aveti o mana cu distributie bicolora?')
(lista_raspunsuri 28 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 28 1 100)
(regula 28 2 32)
(regula 28 3 31)
(concluzie 31 'Licitati in conformitate cu conventia pentru distributii bicolore.')
(intrebare 32 'Aveti o culoare majora in 5?')
(lista_raspunsuri 32 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 32 1 100)
(regula 32 2 33)
(regula 32 3 34)
(intrebare 33 'Caroul este mai bun decat trefla?')
(lista_raspunsuri 33 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 33 1 100)
(regula 33 2 35)
(regula 33 3 36)
(concluzie 35 'Licitati 1 trefla.')
(concluzie 36 'Licitati 1 caro.')
(intrebare 34 'Aveti cupa in 5?')
(lista_raspunsuri 34 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 34 1 100)
(regula 34 2 38)
(regula 34 3 37)
(concluzie 37 'Licitati 1 cupa.')
(concluzie 38 'Licitati 1 pica.')
(concluzie 100 'Ati ales sa iesiti din program')
(intrebare 200 'Cu ce a deschis partenerul?')
(lista_raspunsuri 200 '1 - Iesire din program' '2 - 1FA')
(regula 200 1 100)
(regula 200 2 201)
(intrebare 201 'Aveti un bicolor major min 5-5?')
(lista_raspunsuri 201 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 201 1 100)
(regula 201 2 211)
(regula 201 3 202)
(intrebare 202 'Aveti o mana slaba, cu sanse mici de mansa?')
(lista_raspunsuri 202 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 202 1 100)
(regula 202 2 204)
(regula 202 3 203)
(concluzie 203 'Licitati 2 carouri si dupa rectificarea partenerului licitati 2 pici.')
(intrebare 204 'Aveti o mana suficienta pentru mansa, fara sanse de slem?')
(lista_raspunsuri 204 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 204 1 100)
(regula 204 2 208)
(regula 204 3 205)
(intrebare 205 'Cupa este mai buna decat pica?')
(lista_raspunsuri 205 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 205 1 100)
(regula 205 2 207)
(regula 205 3 206)
(concluzie 206 'Licitati 4 trefle.')
(concluzie 207 'Licitati 4 carouri.')
(intrebare 208 'Aveti o mana foarte puternica, cu sanse sigure de slem?')
(lista_raspunsuri 208 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 208 1 100)
(regula 208 2 209)
(regula 208 3 210)
(concluzie 209 'Licitati 2 cupe si dupa rectificarea partenerului licitati 4 cupe.')
(concluzie 210 'Licitati 2 cupe si dupa rectificarea partenerului licitati 3 cupe.')
(intrebare 211 'Aveti o mana foarte slaba, fara culori lungi?')
(lista_raspunsuri 211 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 211 1 100)
(regula 211 2 213)
(regula 211 3 212)
(concluzie 212 'Licitati PAS.')
(intrebare 213 'Aveti o mana cu distributie regulata, fara majora in 4, suficienta pentru a invita la mansa, dar insuficienta pentru a sustine la nivel de mansa?')
(lista_raspunsuri 213 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 213 1 100)
(regula 213 2 215)
(regula 213 3 214)
(concluzie 214 'Licitati 2FA.')
(intrebare 215 'Aveti o mana cu distributie regulata, fara majora in 4, suficienta pentru mansa?')
(lista_raspunsuri 215 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 215 1 100)
(regula 215 2 217)
(regula 215 3 216)
(concluzie 216 'Licitati 3FA.')
(intrebare 217 'Aveti cel putin o majora in 4 si peste 8 PO?')
(lista_raspunsuri 217 '1 - Iesire din program' '2 - Nu' '3 - Da')
(regula 217 1 100)
(regula 217 2 219)
(regula 217 3 218)
(concluzie 218 'Licitati 2 trefle Stayman.')
(concluzie 219 'Licitati conform conventiei Texas.')
(defrule salvare_fapte
=>
(save-facts 'fapte.txt')
In fisierul "prj_SE.CLP" este implementat sistemul expert efectiv adica regulile care permit afisarea intrebarilor, introducerea si validarea raspunsurilor pe baza carora sistemul expert ia deciziile .
Listing-ul fisierului "prj_SE.clp
(defrule load_fapte
=>
(load-facts 'fapte.txt')
(deffacts fff
(nod_curent 1)
(defrule afisare_intrebare_validare_raspuns
(nod_curent ?nc)
(intrebare ?nc ?text_intrebare)
(lista_raspunsuri ?nc $?r)
=>
(printout t ?text_intrebare crlf)
(printout t $?r crlf)
(bind ?raspuns (read))
(while (or (not (integerp ?raspuns))
(> ?raspuns (length$ $?r))
(<= ?raspuns 0)
)
(printout t 'Nu ati introdus un raspuns valid.' crlf)
(bind ?raspuns (read))
)
(assert (raspuns_dat ?raspuns))
(defrule schimbare_nod_curent
(nod_curent ?nc)
?f <- (nod_curent ?nc)
(raspuns_dat ?raspuns)
?f1 <- (raspuns_dat ?raspuns)
(regula ?nc ?raspuns ?nc_nou)
=>
(retract ?f1)
(retract ?f)
(assert (nod_curent ?nc_nou))
(defrule afisare_concluzie
(nod_curent ?nc)
(concluzie ?nc ?text_concluzie)
=>
(printout t ?text_concluzie crlf)
Fig.1 - Incarcarea programului si afisarea primei intrebari.
Fig.2 - Secventa de raspunsuri care conduce catre concluzia "Licitatia potrivita este PAS" in cazul in care jucatorul are 13 carti in mana, nu are destule PO pentru a deschide la nivelul 1 cu 1 la culoare si nici cu indeplineste conditiile necesare unei deschideri de baraj sau semibaraj.
Copyright © 2024 - Toate drepturile rezervate