deciziile

7
Universitatea Alexandru Ioan Cuza Facultatea de Informatică Cursul de Programare Bazată pe Reguli An 3 Info, sem. 2 Proiect: Deciziile Companionului 1. Informaii 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 eseniale în comunicarea pe care Companionul trebuie să o aibă cu Masterul: personalitatea (P) Masterului, situaia curentă (S) în care este angrenat Masterul și gândurile (G) care „încolesc” î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ăgei pe marginea documentului. Dintre acestea, A, B și D vă solicită mai mult; la C și E răspundei 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ă construii soluia dumneavoastră plecând de la elementele cunoscute, extrapolând, acolo unde dorii, posibilităile oferite de tehnologia existentă. Dacă avei nevoie de o componentă tehnologică pe care nu știi cum să o procurai (de exemplu un tip de semnal pe un canal de intrare) presupunei că o avei și mergei 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 producei și un cod CLIPS funcional, acest lucru vă va adauga la punctaj. Codul CLIPS trebuie plasat întrun fișier text cu extensia CLP, separat de fișierul Word. Vi se cere să fii imaginativi și consecveni în notaii. Timpul estimat de realizare a proiectului este de 1015 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 referii valori de pe canale, precizai întotdeauna în faă numele canalului, în sintaxa (din partea dreaptă a semnului :=):

Upload: cyp

Post on 13-Apr-2016

4 views

Category:

Documents


0 download

DESCRIPTION

deciziile

TRANSCRIPT

 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