deciziile
DESCRIPTION
deciziileTRANSCRIPT
Universitatea Alexandru Ioan Cuza
Facultatea de Informatică Cursul de Programare Bazată pe Reguli
An 3 Info, sem. 2
Proiect: Deciziile Companionului 1. Informaţții generale, orzanizare Proiectul Deciziile Companionului continuă proiectul Companion de la cursul de IA, anul 3, sem. 1, detaliind anumite aspecte ale modulului de Decizie. În acest proiect ne interesează trei elemente esenţțiale în comunicarea pe care Companionul trebuie să o aibă cu Masterul: personalitatea (P) Masterului, situaţția curentă (S) în care este angrenat Masterul și gândurile (G) care „încolţțesc” în „mintea” Companionului pentru a fi comunicate Masterului. Fiecare student va avea de răspuns la 5 puncte, marcate A – E mai jos, prin săgeţți pe marginea documentului. Dintre acestea, A, B și D vă solicită mai mult; la C și E răspundeţți prin câte un singur paragraf. Proiectele sunt individuale și nu comunică între ele. Nu se vor accepta descrieri identice sau asemănătoare. Trebuie să construiţți soluţția dumneavoastră plecând de la elementele cunoscute, extrapolând, acolo unde doriţți, posibilităţțile oferite de tehnologia existentă. Dacă aveţți nevoie de o componentă tehnologică pe care nu știţți cum să o procuraţți (de exemplu un tip de semnal pe un canal de intrare) presupuneţți că o aveţți și mergeţți mai departe cu proiectarea. Proiectul trebuie predat în format electronic, ca fișier Word având o întindere de maximum 5 pagini A4, cu un font Calibri de 12, la rând simplu și margini de 2,5 cm (ca acest document). Dacă pentru anumite întrebări produceţți și un cod CLIPS funcţțional, acest lucru vă va adauga la punctaj. Codul CLIPS trebuie plasat într-‐un fișier text cu extensia CLP, separat de fișierul Word. Vi se cere să fiţți imaginativi și consecvenţți în notaţții. Timpul estimat de realizare a proiectului este de 10-‐15 ore efective de lucru. 2. Canale Modulul de decizie al Companionului își va procura datele de intrare de pe un număr de canale. Când referiţți valori de pe canale, precizaţți întotdeauna în faţță numele canalului, în sintaxa (din partea dreaptă a semnului :=):
<intrare-‐canal> := <nume-‐canal>=<valoare>. De exemplu: GPS=in_move Anumite canale pot avea faţțete, fiecare faţțetă purtând o valoare: <intrare-‐canal> := <nume-‐canal>=<faţțetă>(<valoare>). De exemplu: GPS=BUILDING(mall), cu semnificaţția: canalul GPS indică că Masterul se află într-‐o clădire care, prin repere geografice, e recunoscută ca fiind Mall-‐ul. Uneori o valoare de pe un canal poate avea mai multe faţțete simultan, caz în care se pot forma expresii logice cu valori ale faţțetelor: <intrare-‐canal> := <nume-‐canal>=<expresie>, în care: <expresie> := <valoare> | <faţțetă>(<valoare>) <expresie> := <expresie> AND <expresie> <expresie> := <expresie> OR <expresie> <expresie> := NOT <expresie> De exemplu: GPS=TOWN(iasi) AND BUILDING(mall) AND NOT MOVE(in_move) care trebuie citit: canalul GPS indică poziţționarea în Mall-‐ul din orașul Iași și lipsa mișcării. Acestea sunt câteva propuneri de canale, împreună cu numele lor: -‐ GPS: coordonate geografice corelate cu cunoașterea hărţților. Exemple de faţțete/valori furnizate pe acest canal: GPS=MOVE(in_move) GPS=BUILDING(mall) GPS=TOWN(iasi) GPS=STREET(berthelot) -‐ INTERNET: site-‐uri Internet care sunt folosite ca intrări în decizie. Exemple: INTERNET=URL(www.ziaruldeiasi.ro) INTERNET=SOCIAL(linkedin) AND LOGIN(ionescu) Puteţți fi oricât de specifici în indicarea intrărilor din Internet. Amintiţți-‐vă că un modul TEXT are grijă de prelucrările textuale care vin pe acest canal. -‐ MUSIC: precizează informaţții (nume, autor, gen etc.) despre bucăţți muzicale pe care Masterul le ascultă pe dispozitivul mobil. Exemplu: MUSIC=AUTHOR(ceaikovsky) AND TITLE(3rd concert)
MUSIC=GENRE(classic) -‐ LEXIC: informaţții despre lexicul Masterului ori idiosincrazii în tastare, detectate în sms-‐uri, email-‐uri etc. expediate de pe dispozitivul mobil. Exemple: LEXIC=CONTAINS(<word>*) – o listă de cuvinte care, găsite în comunicaţția
Masterului, ar putea influenţța decizia asupra personalităţții sau situaţției LEXIC=GENRE(slang) – recunoașterea unui gen literar sau a unui sub-‐limbaj LEXIC=TYPING(shortcuts) – utilizarea cu predilecţție a scurtăturilor în tastare -‐ POSTURE: informaţții asupra postúrilor adoptate de Master, în măsura în care ele pot fi detectate de accelerometru ori indicatorul de înclinare. Exemple: POSTURE=sitting_position POSTURE=laying POSTURE=standing_position – detectabil, de exemplu, din înclinarea verticală,
presupunând telefonul plasat constant în același loc la purtător, distanţța faţță de sol, apreciată vizual, și lipsa decelerărilor
POSTURE=running – detectabil prin amplitudinea mare și frecvenţța crescută a decelerărilor pe verticală
POSTURE=walking – detectabil prin amplitudinea redusă și frecvenţța redusă a decelerărilor pe verticală
-‐ VOICE: informaţții despre voci (numărul lor, timbrul, volumul, bărbat/femeie/copil, râs, plâns, strigăte etc.) VOICE=MASTER=ENVIRONMENT(talking) VOICE=MASTER=ENVIRONMENT (laughing) VOICE=MASTER=ENVIRONMENT (crying) VOICE=MASTER=PHONE(talking) – Masterul vorbește la telefon VOICE=OTHERS(more) – sunt departajate un număr de voci
fără alte elemente de identificare VOICE=OTHERS:xxx(male) AND OTHERS:xxx(laughing) – numele faţțetei este
OTHERS urmat de un ID al vocii departajate din context; aici: un bărbat râde în vecinătatea Masterului
VOICE=OTHERS(child) – un copil vorbește în vecinătatea Masterului
-‐ SOUND: informaţții despre sunete depistate în context. Exemple: SOUND=NATURE(wind) SOUND=NATURE(waves) SOUND=ANIMAL(birds) AND ANIMAL(dog) – ciripesc păsări și latră un câine SOUND=CAR(door_slam) – se trântește o ușă de mașină SOUND=CAR(engine_running) – se aude un motor mergând
SOUND=MUSIC(classical) – se aude o muzică clasică în apropiere, ceea ce este altceva decât MUSIC=classical, care descrie canalul ca fiind MUSIC și înseamnă că muzica e redată de pe telefonul mobil
-‐ VISUAL: informaţții asupra locului în care se află Masterul, prin decodificarea imaginilor captate de camera mobilului. De exemplu: VISUAL=in_the_car – Companionul (și implicit Masterul) se află în
mașină VISUAL=in_the_garrage VISUAL=in_the_open VISUAL=AT_HOME(in_the_dining) VISUAL=AT_HOME(in_the_living) VISUAL=AT_OFFICE(at_table) – Masterul e așezat la masa de lucru la serviciu -‐ AUTO: informaţții despre acceleraţție, frână, consum mediu, viteza etc., în general orice dată care ar putea fi extrasă din calculatorul de bord al autovehiculului Masterului, cu care Companionul se presupune că ar putea fi în legătură. Exemple: AUTO=SPEED(80) AND AVG_CONSUMPTION(5.4) AUTO=docked – mobilul Masterului este docat în mașină Puteţți propune și alte canale. 3. Personalitatea
Se vor căuta elemente definitorii ale tipurilor de personalităţți umane, precum și elemente de identificare (care trădează personalitatea). Se va încerca plasarea Masterului într-‐un tipar cunoscut, dar și configurarea unui mănunchi
de caracteristici particulare (particularizarea tiparului general). Puteţți adopta și o altă teorie decât cea clasică a celor 4 tipuri de personalităţți (v. http://en.wikipedia.org/wiki/Four_Temperaments). Se vor identifica canalele care, monitorizate continuu, sunt utile în depistarea informaţțiilor utile în configurarea personalităţții. Portretul creat ar trebui să fie compus din extrem de multe piese de forma: <stimul> – <tip_personalitate> – <probabilitate> care exprimă faptul că un anumit stimul poate constitui o probă a unui tip de personalitate cu o anumită probabilitate. De exemplu: VOICE=MASTER(crying) – melancholic – 0.9 VOICE=MASTER(crying) – coleric – 0.4 VOICE=MASTER(shouting) – coleric – 0.8 VOICE=MASTER(yelling) – coleric – 0.9 VOICE=MASTER(laughing) – phlegmatic – 0.7
A
4. Situaţția
Se vor defini o colecţție de situaţții posibile. Exemple:
în casă singur în casă cu prieteni în casă cu familia la serviciu la cumpărături la volan, în drum spre serviciu la volan, în drum spre o destinaţție necunoscută (Companionului) la volan, singur în mașină la volan, cu familia în mașină la volan, cu o persoană neidentificată în mașină la teatru în vacanţță, la mare, pe plajă în vacanţță, la mare, plimbare în vacanţță, la munte, singur într-‐o regiune nemarcată în vacanţță, la ski, pe pârtie în vacanţță de ski, seara în oraș, cu prieteni în vacanţță de ski, după o accidentare, la spital etc. Sunt mii de situaţții posibile și combinaţții ale acestora. Fiecare dintre dumneavoastră veţți avea de descris câte o situaţție semnificativă, la care veţți adăuga variaţții. Uneori situaţțiile pot fi combinate pentru a genera situaţții complexe, atunci când sunt compozabile (amestecate). Alteori situaţțiile nu sunt composabile. Exemple de situaţții compozabile: -‐ oricare dintre următoarele: {„sunt la volan”, „mă plimb cu câinele”, „sunt la birou”} e composabilă cu oricare dintre următoarele: {„vorbesc la telefon”, „vorbesc cu o persoană aflată în proximitate”, „ascult muzică”}. Unele combinaţții de situaţții sunt incompatibile: „sunt la volan” – „dorm”; „sunt la teatru, piesa a început” – „vorbesc la telefon”; „sunt în avion” – „vorbesc la telefon”; „sunt la serviciu” – „dorm” etc. Depistarea combinaţțiilor de acest gen ar trebui să angreneze fie comportamente de extrem pericol, fie avertismente, fie doar excepţții care să ducă la recalcularea lor. De exemplu: -‐ dacă „dorm” nu pot să „plimb câinele” – fizic imposibil depistarea simultană e un semnal că s-‐a făcut o eroare recalculare;
B
-‐ dar dacă „sunt la serviciu”, în anumite condiţții aș putea să „dorm”... recalculare; dacă se verifică semnal de trezire, nu semnal de ieșire din starea „sunt la serviciu”... Situaţțiile sunt caracterizate de: -‐ triggere – evenimente are pot provoca intrarea în starea respectivă; -‐ condiţții de terminare – evenimente care ar duce la terminara situaţției; -‐ condiţții de compatibilitate – parametri care trebuiesc adeveriţți pe perioada situaţției; -‐ situaţții cu care sunt compatibile, situaţții cu care sunt incompatibile. Situaţțiile nu pot fi detectate fără o cuplare strânsă la mediul înconjurător. Lucraţți la dezvoltarea unui cadru de descriere a situaţțiilor. În cele ce urmează aveţți câteva propuneri de la care puteţți pleca. Observaţți că în descrierea sloturilor de condiţționare am adoptat în unele locuri identificatori temporali în faţța intrărilor de canal (sau a numelor de situaţții) pentru a marca valori înregistrate pe acele canale (ori situaţții) care s-‐au petrecut în trecutul imediat (before) sau care sunt încă active (currently). SITUATION DESCRIPTION NAME: in_the_car TRIGGER_CONDITIONS: before: POSTURE=standing_position; before:SOUND=CAR(door_slam); currently:POSTURE=sitting_position; currently:AUTO=docked COMPATIBILITY_CONDITIONS: currently: VISUAL=in_the_car TERMINATION_CONDITIONS: before: POSTURE=sitting_position; before:AUTO=docked; currently:POSTURE=standing_position; currently:VISUAL=in_the_garrage OR in_the_open TIPICAL_TIME_LENGTH: from 2 minutes to 12 hours SITUATION DESCRIPTION NAME: driving TRIGGER_CONDITIONS: before: GPS=NOT MOVE(in_move); before:SOUND=CAR(light_up_engine); currently: GPS=MOVE(in_move) COMPATIBILITY_CONDITIONS: currently:SOUND=CAR(engine_running); currently:SITUATION=in_the_car; currently: NOT SITUATION=sleeping TERMINATION_CONDITIONS: before:SOUND=CAR(switch_off_engine); currently:GPS=NOT MOVE(in_move); TIPICAL_TIME_LENGTH: from 2 minutes to 12 hours
Imaginaţți un sistem prin care situaţțiile să fie „adnotate” în agent între anumite momente. În felul acesta Companionul ar fi ghidat în procesul de învăţțare a recunoașterii situaţțiilor după configuraţții ale intrărilor.
C
5. Gândurile Companionul ar trebui să se comporte ca un „spiriduș”, aflat în buzunar, care are propriile lui „gânduri”, pe care le poate face ori nu cunoscute Masterului, conform personalităţții, preferinţțelor acestuia și situaţțiilor în care este Masterul angrenat. Orice schimbare de situaţție poate antrena un „gând” Companionului. Orice informaţție nouă care intră pe un canal poate, de asemenea, antrena un gând. Gândurilor le sunt asociate niveluri de relevanţță. Gândurile se sortează permanent în ordinea descrescătoare a relevanţței lor la situaţție. O setare în agent poate stabili la ce nivel al relevanţței Companionul trebuie să-‐și facă cunoscute găndurile Masterului. Nivelul acestei setări ar trebui să rezulte din perioada de acomodare a Masterului cu Companionul, prin corecţții. Fiecare gând ar trebui să fie un rezultat al combinaţției dintre un tip de personalitate,
o situaţție curentă și un stimul (o intrare specifică). Ca urmare, aveţți de descris înregistrări de forma: <personalitate> – <situaţție> – <stimul> – <gând> – <relevanţță>
care trebuie citită astfel: pentru un anumit tip de personalitate a Masterului, atunci când el se află într-‐o anumită situaţție, apariţția unui stimul duce la apariţția unui gând al Companionului, care are o anumită relevanţță. Gândul urmează a fi ori nu comunicat Masterului (excutat) în funcţție de un prag de sensibilitate al Masterului, anterior setat.
Imaginaţți o necesitate pentru care pragul ar trebui să fie diferit pentru diferite situaţții. Descrieţți cum s-‐ar putea realiza acest lucru.
Este de așteptat ca lungimile răspunsurilor voastre să respecte ordinea parţțială: E < C < A < {B,D}.
D
E