SlideShare uma empresa Scribd logo
1 de 121
Baixar para ler offline
Interacțiune om‐calculator       2.0




       Dr. Sabin‐Corneliu Buraga

     Facultatea de Informatică
Universitatea “A.I.Cuza” Iaşi, România


   Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




tehnici elementare de inteligență artificială

        Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




     However beautiful the strategy,
you should occasionally look at the results.

               Winston Churchill



       Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Cum folosim inteligența artificială într‐un joc?




           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




     Artificial intelligence is the application
     of simulated reasoning for the purposes 
of making informed decisions and solving problems

                     Brian Hall, 2004




           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




In contextul jocurilor, sistemul trebuie să aproximeze 
 procesele de decizie astfel încât să pară inteligente



     AI being intelligent versus AI appearing intelligent

                  if it looks smart, it is smart

              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




   “In AI research, the end goal is to simulate 
the human mind. In a game, the ultimate goal is 
   to make sure the game experience is fun.”

  Richard Rouse, Game Design Theory and Practice 
      (2nd Edition), Wordware Publishing, 2005




          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




            Principii de proiectare:

        KISS (Keep It Simple, Stupid)


tehnicile AI trebuie doar să convingă utilizatorul
  că entitățile jocului (e.g., NPC) sunt “smart”



        Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                  Principii de proiectare:

                Hard Does Not Equal Fun

 maniera de jucat nu trebuie să fie – obligatoriu – dificilă

jucătorul uman nu poate fi la fel de eficient ca unul simulat 
 de calculator – vezi jocurile de strategie în timp‐real (RTS)


              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                  Principii de proiectare:

                               Play Fair

 personajele simulate (NPC‐urile) trebuie să se conformeze 
                acelorași reguli ale jocului

jucătorii umani sunt frustrați atunci când sistemul “trișează”


              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




      Utilizări ale AI în jocuri (Rouse, 2005)

    provocarea jucătorului (challenge the player)
modelarea comportamentului NPC (not do dumb things)
   realizarea impredictibilității (be unpredictable)
  suport în derularea narațiunii (assist storytelling)
  crearea unei lumi credibile (create a living world)



           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                                                      artificial 
                                                      stupidity


Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




     Utilizări ale AI în jocuri (Rouse, 2005)

   Tetris – generarea aleatoare a următoarei piese
                        versus
The Sims – recurgerea la un sistem de agenți software 
  (comportament autoadaptiv al personajelor NPC)




           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Clasificarea (classification)
   rețele neuronale, logici fuzzy etc.
Simularea sistemelor biologice (life systems)
   algoritmi genetici
Găsirea drumului (pathfinding)
   BFS, DFS, Dijkstra, euristici – e.g., metoda A*
Luarea de decizii (decision making)
   automate, arbori de decizie, sisteme bazate pe reguli,…

               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                      Scop:
   mutarea unei entități dintr‐o locație într‐alta,
       ținând cont de posibilele obstacole

  rol esențial în navigarea NPC‐urilor prin mediul jocului

se reduce la găsirea drumului de cost minim într‐un (di)graf



              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                  Implementări uzuale:
        mutarea în locația vecină (next step closer)

     parcurgeri de grafuri: BFS (Breadth First Search), 
DFS (Depth First Search), Dijkstra (shortest path algorithm)

       recurgerea la euristici: Best First Search, A*
               informed search 
                   methods
             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                       Metode tradiționale:
    Next           move one step closer to the goal during 
 Step Closer       each iteration (cannot avoid obstacles)
Breadth First      starting with a vertex, visit each of 
   Search          its children, and each of their children, etc.
  Best First       same as BFS, but children are selected 
   Search          using a heuristic
 Depth First       search a child of a vertex, then its first child, 
   Search          then its first child’s first child,…
                 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                    Evitarea obstacolelor
              (în conjuncție cu next step closer)

                Random Bounce/Backstepping

                  la întâlnirea unui obstacol,
se face un pas înapoi și se selectează aleatoriu o locație liberă



               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




intrarea într‐o “fundătură” (cul‐de‐sac)
   Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                Evitarea obstacolelor
          (în conjuncție cu next step closer)

                       Obstacle Tracing

  la întâlnirea unui obstacol, ia‐o la dreapta/stânga

apar probleme pentru grafuri complicate sau cu cicluri


           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                 Metode euristice

         în contextul Best First Search,
se consideră anumite locații (noduri ale grafului)
             ca fiind mai prioritare




        Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                       Metode euristice

suplimentar, Best First Search și A* se bazează pe 3 euristici
     pentru determinarea distanței de la nodul curent
                  la cel final (nodul scop):

                  maximul: max (dx, dy)
                    Manhattan: dx + dy
            distanța euclidiană: sqrt (dx2 + dy2)
              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                       Metode euristice

pentru A*, fiecare nod n are asociat costul f(n) = g(n) + h(n)

   g(n) – costul drumului de la nodul de start până la n
                   h(n) – euristica aleasă
                                                               euristică
                                                              admisibilă
costul f(n) determină ordinea nodurilor alese să fie vizitate
              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




bool AStarSearch (Node start, Node goal) {
      PriorityQueue open;          // coada cu priorități
      List closed;                 // lista nodurilor drumului
      Node n, child;
      start.parent = NULL;         // start n‐are precedent
      open.enqueue(start);         // primul nod e cel de start
      while (!open.isEmpty()) { // mai există noduri de vizitat
              n = open.dequeue();
              if (n == goal) {    // nodul curent e ținta/scopul
                     makePath();//  generăm calea de urmat
                     return true;
              }

               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0


while (n.hasMoreChildren()) { // iterăm copiii nodului
      // preluăm următorul nod de vizitat
      child = n.getNextChild();
      // …și calculăm costul asociat
      COSTVAL newg = n.g + child.cost;
      if ((open.contains(child) || 
           closed.contains(child)) && child.g <= newg)
              continue; // copilul deja a fost vizitat sau
                          // costul lui este prea mare
      child.parent = n;
      child.g = newg;
      child.h = GoalEstimate(child); // folosim euristica
      child.f = child.g + child.h;       // costul actualizat
         Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0


                  // nodul va trebui revizitat, 
                  // din moment ce i s‐a reactualizat costul
                  if (closed.contains(child))
                          closed.remove(child)
                  if (!open.contains(child))
                          open.enqueue(child);
                  else
                          open.requeue(child);
           } // while (n.hasMoreChildren)
           closed.add(n); // actualizăm drumul curent
    } // while (!open.isEmpty()) 
    return false; // drumul nu a fost determinat
}
             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                    Metode euristice

        pentru grafuri mari (e.g., hărți largi),
  structurile de date open & close pot fi ineficiente

     pentru alte detalii privind A*, a se consulta
 Stuart Russell & Peter Norvig, Artificial Intelligence. 
A Modern Approach (2nd Edition), Prentice Hall, 1995


           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Modelarea unui joc de tip RTS – Real‐Time Strategy
                conform (Brian Hall, 2004)

          mediul include 10 tipuri de terenuri
  personajele NPC aparțin a 4 categorii de trupe (units)
             se definesc 7 trupe particulare

       terenurile/trupele au caracteristici diferite


            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Modelarea unui joc de tip RTS – Real‐Time Strategy

    scopul este traversarea diverselor tipuri de teren 
de către cele 7 trupe, conform caracteristicilor specificate

       se va alege o euristică menită a lua în calcul
   atât tipul de terenuri, cât și categoria fiecărei trupe



             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




     Tipuri de teren (terrain types)

 Jungle (J), Forest (F), Plains (P), Desert (D),
Foothills (FH), Mountains (M), Roadway (R),
      Trail (T), Swamp (S), Water (W)




      Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




              Tipuri de teren (terrain types)


fiecare tip are proprietăți ce determină maniera de traversare

 exemplu: mountains consist of very steep slopes and rocky 
 uneven ground; this terrain is considered impassible to all 
  but those on foot, and even so is very difficult to traverse


               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




               Categorii de trupe (units)

     Infantry: Light Infantry (LI), Heavy Infantry (HI)
Wheeled Vehs: Jeeps (J), Armored Personnel Carriers (APC)
     Tracked Vehicles: Tanks (T), Mobile Base (MB)
                       Hovercraft (H)




             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                Categorii de trupe (units)

 exemplificare: Infantry are soldiers on foot, with excellent 
  maneuverability. They can traverse all types of terrain, 
           aside from water, with little impediment. 
Trails, roadways and other non‐varied terrain are preferred. 
 Heavy Infantry is incapable to traverse jungles, mountains, 
                     and swampy terrains.


              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Se specifica un cost de traversare pentru fiecare tip de teren, 
                conform categoriilor de trupe




               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Acest cost va fi inclus în formula de calcul al euristicii:

                       h(n) = h’(n) * Wu,t

                                                   maximul, 
                                                  Manhattan,
                                              distanța euclidiană




              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                  Definirea hărții jocului

inițial, se poate adopta o soluție 2D, cu perspectiva aeriană, 
               recurgându‐se la un caroiaj (grid)




              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




          Simplificarea determinării drumului:
               Hierarchical Pathfinding

se bazează pe divide‐et‐impera: divizarea spațiului în sub‐arii




               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                                   conform Brian Hall, Artificial 
                                Intelligence for Game Developers, 
                                   e‐Institute Publishing, 2004
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Determinarea drumului pentru configurații oarecare 
               (non‐gridded maps)

                           soluții:
                    super‐imposed grids
          visibility points (waypoint networks)
                        radial basis
                         cost fields
                         quad‐trees
            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




      Visibility points (waypoint networks)

    the idea is to place points around the obstacles, 
  and draw lines from each point to every other point 
 such that the lines do not cross through any obstacles

these points are then used by the pathfinding algorithm
           to determine where you can walk


            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Visibility points (waypoint networks)




    Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




        Visibility points (waypoint networks)

           fiecare punct (waypoint) are asociate: 
   poziția, identificatorul, raza de influență, orientarea,
          alte date de interes (general blind data)

datele de interes – e.g., animation trigger data, wait signal, 
 defend, danger, posture,… – pot fi utile în luarea deciziilor 
           sau pentru redarea stării personajelor
              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                          Quad‐Trees

harta este divizată în zone rectangulare (quads) ierarhice

         se memorează zonele ce pot fi formate 
            fără a se traversa nici un obstacol




            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




              Quad‐Trees




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Tehnici folosite în cadrul jocurilor:
              flocking
           decision trees
          state machines
       rule‐based systems
         squad behaviors
             scripting


   Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                           Flocking

      vizează luarea deciziilor la nivel de grup 
            compus din entități similare

e.g., simularea comportamentului unui banc de pești,
               al unui stol de păsări etc.



          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                               Flocking

 mulțimea de comportamente ale fiecărei entități a grupului 
contribuie la mișcarea acestuia behavior based movement


   comportamentul individual poate fi sau nu influențat 
             de entitățile din vecinătate


              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                                                         entitatea
                                                         de interes




scop: cum se decide care va fi următoarea mișcare 
              a entității de interes

         Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                                                            entități 
                                                          perceptibile




entitățile perceptibile sunt cele care pot fi “simțite” 
             de către entitatea de interes

          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




  entități 
inaccesibile

entitățile inaccesibile sunt cele ce nu pot fi percepute
              de către entitatea de interes

           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




entitatea de interes va percepe obiectele din cadrul conului
  cercurile concentrice facilitează determinarea distanței
              până la alte entități ale grupului
              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                 Flocking

     comportamente de bază:
      separarea (separation)
       coeziunea (cohesion)
       evitarea (avoidance)
       alinierea (alignment)



Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                               Flocking

                  separarea (separation)
keep the separation between entities a certain fixed distance

  are loc în funcție de o distanță de separare considerată

              se bazează pe calculul de vectori


              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                           Flocking

                coeziunea (cohesion)
      multiple entities tend to “stick together”

 membrii grupului trebuie să se afle în proximitate, 
       oferind astfel un grad de siguranță

determinarea poziției medii a entităților perceptibile

          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                             Flocking

                 evitarea (avoidance)
 directing the group to move away from given things

implică existența capacităților de detecție a obiectelor,
        plus observarea mediului înconjurător



            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                         Flocking

              alinierea (alignment)
     keeping all of the entities in the group 
  aligned in approximately the same direction

ajustarea direcției trebuie să se realizeze gradual

      noua direcție poate fi determinată 
    doar pe baza celei mai apropiate entități
        Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                               Flocking

alte comportamente posibile, implementate în unele jocuri:

                           cruising
decide ce direcția va avea entitatea, daca ea rămâne singură




              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                               Flocking

alte comportamente posibile, implementate în unele jocuri:

                   stay within bounds
constrânge entitatea de interes să se miște într‐un areal dat




              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




          Arbori decizionali (decision trees)

uzual, nu se ia în considerație starea sistemului (stateless)

      la fiecare iterație, întregul arbore este evaluat
       entitățile apar ca fiind indecise, în unele cazuri




             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




arbore de decizie simplu asociat unui personaj NPC
         Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




 Automate cu stări finite (finite state machines)

              se evaluează starea curentă,
   pentru a se decide dacă are loc o tranziție de stare


de asemenea, se folosesc pentru realizarea animațiilor și 
pentru menținerea stării generale a jocului (game state)


            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




automat utilizat în procesul decizional al unui NPC
         Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0


automat modelând
  starea jocului




    Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




   Sisteme bazate pe reguli (rule‐based systems)

 regulile pot fi specificate a‐priori sau se pot ajusta dinamic

unei reguli i se pot asocia caracteristici: punctaj, prioritate,…

              situațiile complexe pot necesita 
 recurgerea la un sistem de interferență (inference engine)
     conform logicii folosite – e.g., calcul cu predicate

               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0


Rule 1:
          Conditions: Player in View
          Decision: Attack
Rule 2:
          Conditions: Player not in view, not chasing, on patrol path
          Decision: Patrol Path
Rule 3:
          Conditions: Player not in view, not chasing, not on patrol path
          Decision: Go to Patrol Path
Rule 4:
          Conditions: Player not in view, chasing, chase time limit has not expired
          Decision: Chase Player
Rule 5:
          Conditions: Player not in view, chasing, chase time limit has expired
          Decision: Go to Patrol Path

                     Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Comportamente bazate pe lider (Squad behaviors)

   una dintre entitățile grupului este aleasă ca lider,
          luând deciziile pentru întreg grupul

       uzual, membrii grupului se vor comporta
        conform ordinelor din partea liderului



            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Comportamente bazate pe lider (Squad behaviors)

   fiecare membru al grupului are asociat un automat
      pe baza căruia realizează acțiunile specificate:
 așteptarea unei comenzi & mișcarea spre punctul țintă




            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




        Comportament programat via scripting

fiecare entitate poate reacționa la diverse evenimente tratate 
    prin intermediul script‐urilor – incorporate sau externe

                          exemple:
    Civilization IV recurge la programe Python externe
 Game Maker are suport pentru limbajul GML + editor vizual


               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




      jocuri cu 2 oponenți
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




           Specificarea jocului cu 2 oponenți

                         starea inițială: 
configurația jocului (e.g., poziția pieselor) + cine mută primul
       mulțimea operatorilor definind mutările legale
              testul de terminare (terminal test)
 funcția de utilitate: oferă valoarea numerică a rezultatului
        de exemplu, câștig=1, pierdere=‐1, remiză=0


               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Un joc cu 2 oponenți poate fi considerat 
     ca fiind o problemă de căutare




      Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




    Decizii perfecte: MIN‐MAX

cei doi jucători sunt numiți MAX si MIN,
        cu MAX primul la mutare




    Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




             Decizii perfecte: MIN‐MAX

MAX va realiza o căutare a secvenței de mutări ce conduc 
 la o stare de terminare a jocului în care este câștigător 
               conform funcției de utilitate




             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




          Decizii perfecte: MIN‐MAX

   MAX trebuie să găsească o strategie de câștig, 
     în mod independent de mutările lui MIN

de exemplu, determinarea mutării corecte a lui MAX
      pentru fiecare mutare posibilă a lui MIN



          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                Decizii perfecte: MIN‐MAX

strategia optimală pentru MAX e dată de algoritmul minimax

              generarea tuturor stărilor jocului
   aplicarea funcției de utilitate pentru stările terminale
pe baza valorii acesteia, se poate calcula funcția de utilitate 
        pentru stările anterioare, până la cea inițială
MAX face mutarea ce duce la obținerea valorii celei mai mare
               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




pentru a fi victorios, MAX va face mutarea de deschidere A1
            replica lui MIN cea mai bună va fi A11

             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




   Decizii imperfecte: alpha‐beta pruning

  utilizarea de euristici pentru a evalua utilitatea 
              & condiția de terminare

arborele stărilor de joc nu mai este complet generat




          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                  Jocuri bazate pe șansă

arborele jocului va trebui să includă și noduri de tip chance, 
             alături de cele de tip MAX si MIN

în loc de valoarea minimax, se va calcula o valoare anticipată 
       (expected value) conform unei funcții expectimax



              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




arborele jocului de table (Russel & Norvig, 1995)
        Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




orice sistem poate fi privit ca fiind un agent software
               (Enrico Franconi, 2003)
          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




      Agent software inteligent
entitate care percepe mediul și acționează
  conform cunoștințelor deja acumulate
 (internal declarative body of knowledge)


      aceste cunoștințe trebuie modelate
astfel încât să poată fi înțelese de către mașină

       Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




             Puncte de vedere:

  agenții ca entități comportamentale

agenții ca descriere a atributelor acestora




       Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                 Aspect important:

                     autonomia
  un agent este un sistem computațional capabil
să realizeze acțiuni autonome în cadrul unui mediu




           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




    Agenții ca entități comportamentale 
                    agere (lat.)
       asocierea calităților umane mașinilor

      înțelegerea comportamentului & semanticii
         sistemelor complexe (McCarthy, 1977)

    interfață om‐calculator: metafore & interacțiune 
“Ne pare rău, nu există trupe disponibile pentru misiune”
            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Agenții ca entități comportamentale 

  sisteme intenționale: decizii & scopuri

    convingeri, dorințe, intenții, planuri

exemplu: termostat – agent trivial (neinteresant)

        Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




   Agenții ca sisteme intenționale
comportamentul uman e prezis și explicat
  via atribuirea de atitudini (attitudes) 
                                                                noțiuni 
                                                             intenționale
    credința, dorința, frica, speranța etc.

         “Simina muncește din greu,
    fiindcă dorește să termine proiectul.”
       Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




     Agenții ca descriere a atributelor lor
entități software posedând funcții comportamentale, 
              rulând autonom și continuu
 în medii colective, compuse din alți agenți/procese


       a se parcurge J. Bradshow, Software Agents,
               AAAI Press/MIT Press, 1997
             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Agenții ca descriere a atributelor lor
                     reacție
                   autonomie
                   colaborare
                  personalitate
                  adaptabilitate
                    inferență
                    mobilitate
                        …
      Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Agenții implică termeni/cunoștințe din:
                calcul distribuit
             inteligență artificială 
           interacțiune om‐mașină
              inginerie software
                     filosofie
                   lingvistică
                   psihologie
     Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




   Agenții implică termeni/cunoștințe din:
             inteligență artificială

   reprezentarea cunoștințelor și a contextului
               modelarea mediului
cunoașterea acțiunilor: pre‐condiții, efecte, chaining
        raționament, deducere automată
      învățare automată (machine learning)

          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Agenții implică termeni/cunoștințe din:
            calcul distribuit

             inter‐comunicare
       client/server vs. peer‐to‐peer
                servicii Web
           negocierea mesajelor
            pervasive computing

     Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




agenții în context – conform Miles Davis, 2008
       Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Agenții trebuie să asigure autonomia și continuitatea
                 acțiunilor întreprinse

   capabili să acționeze în mod flexibil și inteligent, 
        adaptându‐se situațiilor survenite
              fără aportul utilizatorului


            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




 Ideal, un agent trebuie să învețe din propria‐i 
experiență și să dezvolte tehnici de comunicare
      și de cooperare cu alți agenți și/sau
             să manifeste mobilitate




          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




    Utilizarea termenului “agent”:
            agenți de interfață
  personaje animate (embodied agents)
agenți BDI – logică & raționament automat
               agenți mobili
  agenți autonomi & reactivi – robotică
         agenție a mulți‐agenților
                     …

     Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                Exemplu: 
             embodied agents 

     grafică generată de computer
            animație artistică
caracter inteligent al comportamentului




    Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




O taxonomie a agenților – conform (Tim Jones , 2003)
            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




         Sistem multi‐agent
sistem compus din mai mulți agenți,
  care interacționează unul cu altul

        Michael Wooldridge, 2002




    Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                  Sistem multi‐agent

în general, agenții reprezintă interesele utilizatorilor
                (scopuri & motivații)

             pentru o bună interacțiune,
agenții trebuie să poată coopera, coordona și negocia

             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                    Sistem multi‐agent
fiecare agent posedă informații sau prezintă funcționalități 
     incomplete agentul nu poate rezolva problema
           (luată în ansamblu), în mod individual

          datele procesate sunt descentralizate
             calculul se desfășoară asincron
         nu există un control global al sistemului

             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




          Modelare formală
             Cooperare
             Planificare
           Comportament
      Comunicare inter‐agenți
             Dezvoltare
Inginerie – agent‐oriented paradigm

    Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




  Cadre de dezvoltare a agenților (frameworks)
e.g., JADE (Java Agent Development Environment), Cybele

                  Sisteme multi‐agent
               comunicare via FIPA ACL
        eventual, având capacități de mobilitate 

                       Obiecte mobile
                     exemplu: agleți Java
            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                  sistem
                  multi‐
                  agent




       conform (Jones, 2003)
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




              game development
  inteligența artificială în contextul jocurilor
noțiuni fundamentale privind agenții software




       Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

Mais conteúdo relacionado

Mais de Sabin Buraga

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleSabin Buraga
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebSabin Buraga
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebSabin Buraga
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Sabin Buraga
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Sabin Buraga
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTSabin Buraga
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Sabin Buraga
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Sabin Buraga
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeSabin Buraga
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSabin Buraga
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSabin Buraga
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.Sabin Buraga
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSabin Buraga
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSabin Buraga
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSabin Buraga
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSabin Buraga
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5Sabin Buraga
 

Mais de Sabin Buraga (20)

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturale
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma REST
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor Web
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.js
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului Web
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5
 

Game computing: tehnici AI

  • 1. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga Facultatea de Informatică Universitatea “A.I.Cuza” Iaşi, România Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 2. Interacțiune om‐calculator 2.0 tehnici elementare de inteligență artificială Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 3. Interacțiune om‐calculator 2.0 However beautiful the strategy, you should occasionally look at the results. Winston Churchill Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 4. Interacțiune om‐calculator 2.0 Cum folosim inteligența artificială într‐un joc? Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 5. Interacțiune om‐calculator 2.0 Artificial intelligence is the application of simulated reasoning for the purposes  of making informed decisions and solving problems Brian Hall, 2004 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 6. Interacțiune om‐calculator 2.0 In contextul jocurilor, sistemul trebuie să aproximeze  procesele de decizie astfel încât să pară inteligente AI being intelligent versus AI appearing intelligent if it looks smart, it is smart Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 7. Interacțiune om‐calculator 2.0 “In AI research, the end goal is to simulate  the human mind. In a game, the ultimate goal is  to make sure the game experience is fun.” Richard Rouse, Game Design Theory and Practice  (2nd Edition), Wordware Publishing, 2005 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 8. Interacțiune om‐calculator 2.0 Principii de proiectare: KISS (Keep It Simple, Stupid) tehnicile AI trebuie doar să convingă utilizatorul că entitățile jocului (e.g., NPC) sunt “smart” Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 9. Interacțiune om‐calculator 2.0 Principii de proiectare: Hard Does Not Equal Fun maniera de jucat nu trebuie să fie – obligatoriu – dificilă jucătorul uman nu poate fi la fel de eficient ca unul simulat  de calculator – vezi jocurile de strategie în timp‐real (RTS) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 10. Interacțiune om‐calculator 2.0 Principii de proiectare: Play Fair personajele simulate (NPC‐urile) trebuie să se conformeze  acelorași reguli ale jocului jucătorii umani sunt frustrați atunci când sistemul “trișează” Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 11. Interacțiune om‐calculator 2.0 Utilizări ale AI în jocuri (Rouse, 2005) provocarea jucătorului (challenge the player) modelarea comportamentului NPC (not do dumb things) realizarea impredictibilității (be unpredictable) suport în derularea narațiunii (assist storytelling) crearea unei lumi credibile (create a living world) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 12. Interacțiune om‐calculator 2.0 artificial  stupidity Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 13. Interacțiune om‐calculator 2.0 Utilizări ale AI în jocuri (Rouse, 2005) Tetris – generarea aleatoare a următoarei piese versus The Sims – recurgerea la un sistem de agenți software  (comportament autoadaptiv al personajelor NPC) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 14. Interacțiune om‐calculator 2.0 Clasificarea (classification) rețele neuronale, logici fuzzy etc. Simularea sistemelor biologice (life systems) algoritmi genetici Găsirea drumului (pathfinding) BFS, DFS, Dijkstra, euristici – e.g., metoda A* Luarea de decizii (decision making) automate, arbori de decizie, sisteme bazate pe reguli,… Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 15. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 16. Interacțiune om‐calculator 2.0 Scop: mutarea unei entități dintr‐o locație într‐alta, ținând cont de posibilele obstacole rol esențial în navigarea NPC‐urilor prin mediul jocului se reduce la găsirea drumului de cost minim într‐un (di)graf Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 17. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 18. Interacțiune om‐calculator 2.0 Implementări uzuale: mutarea în locația vecină (next step closer) parcurgeri de grafuri: BFS (Breadth First Search),  DFS (Depth First Search), Dijkstra (shortest path algorithm) recurgerea la euristici: Best First Search, A* informed search  methods Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 19. Interacțiune om‐calculator 2.0 Metode tradiționale: Next  move one step closer to the goal during  Step Closer each iteration (cannot avoid obstacles) Breadth First  starting with a vertex, visit each of  Search  its children, and each of their children, etc. Best First  same as BFS, but children are selected  Search using a heuristic Depth First search a child of a vertex, then its first child,  Search then its first child’s first child,… Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 20. Interacțiune om‐calculator 2.0 Evitarea obstacolelor (în conjuncție cu next step closer) Random Bounce/Backstepping la întâlnirea unui obstacol, se face un pas înapoi și se selectează aleatoriu o locație liberă Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 21. Interacțiune om‐calculator 2.0 intrarea într‐o “fundătură” (cul‐de‐sac) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 22. Interacțiune om‐calculator 2.0 Evitarea obstacolelor (în conjuncție cu next step closer) Obstacle Tracing la întâlnirea unui obstacol, ia‐o la dreapta/stânga apar probleme pentru grafuri complicate sau cu cicluri Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 23. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 24. Interacțiune om‐calculator 2.0 Metode euristice în contextul Best First Search, se consideră anumite locații (noduri ale grafului) ca fiind mai prioritare Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 25. Interacțiune om‐calculator 2.0 Metode euristice suplimentar, Best First Search și A* se bazează pe 3 euristici pentru determinarea distanței de la nodul curent la cel final (nodul scop): maximul: max (dx, dy) Manhattan: dx + dy distanța euclidiană: sqrt (dx2 + dy2) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 26. Interacțiune om‐calculator 2.0 Metode euristice pentru A*, fiecare nod n are asociat costul f(n) = g(n) + h(n) g(n) – costul drumului de la nodul de start până la n h(n) – euristica aleasă euristică admisibilă costul f(n) determină ordinea nodurilor alese să fie vizitate Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 27. Interacțiune om‐calculator 2.0 bool AStarSearch (Node start, Node goal) { PriorityQueue open; // coada cu priorități List closed; // lista nodurilor drumului Node n, child; start.parent = NULL; // start n‐are precedent open.enqueue(start); // primul nod e cel de start while (!open.isEmpty()) { // mai există noduri de vizitat n = open.dequeue(); if (n == goal) { // nodul curent e ținta/scopul makePath();//  generăm calea de urmat return true; } Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 28. Interacțiune om‐calculator 2.0 while (n.hasMoreChildren()) { // iterăm copiii nodului // preluăm următorul nod de vizitat child = n.getNextChild(); // …și calculăm costul asociat COSTVAL newg = n.g + child.cost; if ((open.contains(child) ||  closed.contains(child)) && child.g <= newg) continue; // copilul deja a fost vizitat sau // costul lui este prea mare child.parent = n; child.g = newg; child.h = GoalEstimate(child); // folosim euristica child.f = child.g + child.h; // costul actualizat Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 29. Interacțiune om‐calculator 2.0 // nodul va trebui revizitat,  // din moment ce i s‐a reactualizat costul if (closed.contains(child)) closed.remove(child) if (!open.contains(child)) open.enqueue(child); else open.requeue(child); } // while (n.hasMoreChildren) closed.add(n); // actualizăm drumul curent } // while (!open.isEmpty())  return false; // drumul nu a fost determinat } Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 30. Interacțiune om‐calculator 2.0 Metode euristice pentru grafuri mari (e.g., hărți largi), structurile de date open & close pot fi ineficiente pentru alte detalii privind A*, a se consulta Stuart Russell & Peter Norvig, Artificial Intelligence.  A Modern Approach (2nd Edition), Prentice Hall, 1995 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 31. Interacțiune om‐calculator 2.0 Modelarea unui joc de tip RTS – Real‐Time Strategy conform (Brian Hall, 2004) mediul include 10 tipuri de terenuri personajele NPC aparțin a 4 categorii de trupe (units) se definesc 7 trupe particulare terenurile/trupele au caracteristici diferite Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 32. Interacțiune om‐calculator 2.0 Modelarea unui joc de tip RTS – Real‐Time Strategy scopul este traversarea diverselor tipuri de teren  de către cele 7 trupe, conform caracteristicilor specificate se va alege o euristică menită a lua în calcul atât tipul de terenuri, cât și categoria fiecărei trupe Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 33. Interacțiune om‐calculator 2.0 Tipuri de teren (terrain types) Jungle (J), Forest (F), Plains (P), Desert (D), Foothills (FH), Mountains (M), Roadway (R), Trail (T), Swamp (S), Water (W) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 34. Interacțiune om‐calculator 2.0 Tipuri de teren (terrain types) fiecare tip are proprietăți ce determină maniera de traversare exemplu: mountains consist of very steep slopes and rocky  uneven ground; this terrain is considered impassible to all  but those on foot, and even so is very difficult to traverse Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 35. Interacțiune om‐calculator 2.0 Categorii de trupe (units) Infantry: Light Infantry (LI), Heavy Infantry (HI) Wheeled Vehs: Jeeps (J), Armored Personnel Carriers (APC) Tracked Vehicles: Tanks (T), Mobile Base (MB) Hovercraft (H) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 36. Interacțiune om‐calculator 2.0 Categorii de trupe (units) exemplificare: Infantry are soldiers on foot, with excellent  maneuverability. They can traverse all types of terrain,  aside from water, with little impediment.  Trails, roadways and other non‐varied terrain are preferred.  Heavy Infantry is incapable to traverse jungles, mountains,  and swampy terrains. Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 37. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 38. Interacțiune om‐calculator 2.0 Se specifica un cost de traversare pentru fiecare tip de teren,  conform categoriilor de trupe Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 39. Interacțiune om‐calculator 2.0 Acest cost va fi inclus în formula de calcul al euristicii: h(n) = h’(n) * Wu,t maximul,  Manhattan, distanța euclidiană Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 40. Interacțiune om‐calculator 2.0 Definirea hărții jocului inițial, se poate adopta o soluție 2D, cu perspectiva aeriană,  recurgându‐se la un caroiaj (grid) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 41. Interacțiune om‐calculator 2.0 Simplificarea determinării drumului: Hierarchical Pathfinding se bazează pe divide‐et‐impera: divizarea spațiului în sub‐arii Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 42. Interacțiune om‐calculator 2.0 conform Brian Hall, Artificial  Intelligence for Game Developers,  e‐Institute Publishing, 2004 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 43. Interacțiune om‐calculator 2.0 Determinarea drumului pentru configurații oarecare  (non‐gridded maps) soluții: super‐imposed grids visibility points (waypoint networks) radial basis cost fields quad‐trees Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 44. Interacțiune om‐calculator 2.0 Visibility points (waypoint networks) the idea is to place points around the obstacles,  and draw lines from each point to every other point  such that the lines do not cross through any obstacles these points are then used by the pathfinding algorithm to determine where you can walk Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 45. Interacțiune om‐calculator 2.0 Visibility points (waypoint networks) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 46. Interacțiune om‐calculator 2.0 Visibility points (waypoint networks) fiecare punct (waypoint) are asociate:  poziția, identificatorul, raza de influență, orientarea, alte date de interes (general blind data) datele de interes – e.g., animation trigger data, wait signal,  defend, danger, posture,… – pot fi utile în luarea deciziilor  sau pentru redarea stării personajelor Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 47. Interacțiune om‐calculator 2.0 Quad‐Trees harta este divizată în zone rectangulare (quads) ierarhice se memorează zonele ce pot fi formate  fără a se traversa nici un obstacol Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 48. Interacțiune om‐calculator 2.0 Quad‐Trees Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 49. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 50. Interacțiune om‐calculator 2.0 Tehnici folosite în cadrul jocurilor: flocking decision trees state machines rule‐based systems squad behaviors scripting Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 51. Interacțiune om‐calculator 2.0 Flocking vizează luarea deciziilor la nivel de grup  compus din entități similare e.g., simularea comportamentului unui banc de pești, al unui stol de păsări etc. Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 52. Interacțiune om‐calculator 2.0 Flocking mulțimea de comportamente ale fiecărei entități a grupului  contribuie la mișcarea acestuia behavior based movement comportamentul individual poate fi sau nu influențat  de entitățile din vecinătate Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 53. Interacțiune om‐calculator 2.0 entitatea de interes scop: cum se decide care va fi următoarea mișcare  a entității de interes Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 54. Interacțiune om‐calculator 2.0 entități  perceptibile entitățile perceptibile sunt cele care pot fi “simțite”  de către entitatea de interes Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 55. Interacțiune om‐calculator 2.0 entități  inaccesibile entitățile inaccesibile sunt cele ce nu pot fi percepute de către entitatea de interes Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 56. Interacțiune om‐calculator 2.0 entitatea de interes va percepe obiectele din cadrul conului cercurile concentrice facilitează determinarea distanței până la alte entități ale grupului Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 57. Interacțiune om‐calculator 2.0 Flocking comportamente de bază: separarea (separation) coeziunea (cohesion) evitarea (avoidance) alinierea (alignment) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 58. Interacțiune om‐calculator 2.0 Flocking separarea (separation) keep the separation between entities a certain fixed distance are loc în funcție de o distanță de separare considerată se bazează pe calculul de vectori Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 59. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 60. Interacțiune om‐calculator 2.0 Flocking coeziunea (cohesion) multiple entities tend to “stick together” membrii grupului trebuie să se afle în proximitate,  oferind astfel un grad de siguranță determinarea poziției medii a entităților perceptibile Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 61. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 62. Interacțiune om‐calculator 2.0 Flocking evitarea (avoidance) directing the group to move away from given things implică existența capacităților de detecție a obiectelor, plus observarea mediului înconjurător Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 63. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 64. Interacțiune om‐calculator 2.0 Flocking alinierea (alignment) keeping all of the entities in the group  aligned in approximately the same direction ajustarea direcției trebuie să se realizeze gradual noua direcție poate fi determinată  doar pe baza celei mai apropiate entități Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 65. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 66. Interacțiune om‐calculator 2.0 Flocking alte comportamente posibile, implementate în unele jocuri: cruising decide ce direcția va avea entitatea, daca ea rămâne singură Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 67. Interacțiune om‐calculator 2.0 Flocking alte comportamente posibile, implementate în unele jocuri: stay within bounds constrânge entitatea de interes să se miște într‐un areal dat Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 68. Interacțiune om‐calculator 2.0 Arbori decizionali (decision trees) uzual, nu se ia în considerație starea sistemului (stateless) la fiecare iterație, întregul arbore este evaluat entitățile apar ca fiind indecise, în unele cazuri Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 69. Interacțiune om‐calculator 2.0 arbore de decizie simplu asociat unui personaj NPC Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 70. Interacțiune om‐calculator 2.0 Automate cu stări finite (finite state machines) se evaluează starea curentă, pentru a se decide dacă are loc o tranziție de stare de asemenea, se folosesc pentru realizarea animațiilor și  pentru menținerea stării generale a jocului (game state) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 71. Interacțiune om‐calculator 2.0 automat utilizat în procesul decizional al unui NPC Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 72. Interacțiune om‐calculator 2.0 automat modelând starea jocului Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 73. Interacțiune om‐calculator 2.0 Sisteme bazate pe reguli (rule‐based systems) regulile pot fi specificate a‐priori sau se pot ajusta dinamic unei reguli i se pot asocia caracteristici: punctaj, prioritate,… situațiile complexe pot necesita  recurgerea la un sistem de interferență (inference engine) conform logicii folosite – e.g., calcul cu predicate Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 74. Interacțiune om‐calculator 2.0 Rule 1: Conditions: Player in View Decision: Attack Rule 2: Conditions: Player not in view, not chasing, on patrol path Decision: Patrol Path Rule 3: Conditions: Player not in view, not chasing, not on patrol path Decision: Go to Patrol Path Rule 4: Conditions: Player not in view, chasing, chase time limit has not expired Decision: Chase Player Rule 5: Conditions: Player not in view, chasing, chase time limit has expired Decision: Go to Patrol Path Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 75. Interacțiune om‐calculator 2.0 Comportamente bazate pe lider (Squad behaviors) una dintre entitățile grupului este aleasă ca lider, luând deciziile pentru întreg grupul uzual, membrii grupului se vor comporta conform ordinelor din partea liderului Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 76. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 77. Interacțiune om‐calculator 2.0 Comportamente bazate pe lider (Squad behaviors) fiecare membru al grupului are asociat un automat pe baza căruia realizează acțiunile specificate: așteptarea unei comenzi & mișcarea spre punctul țintă Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 78. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 79. Interacțiune om‐calculator 2.0 Comportament programat via scripting fiecare entitate poate reacționa la diverse evenimente tratate  prin intermediul script‐urilor – incorporate sau externe exemple: Civilization IV recurge la programe Python externe Game Maker are suport pentru limbajul GML + editor vizual Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 80. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 81. Interacțiune om‐calculator 2.0 jocuri cu 2 oponenți Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 82. Interacțiune om‐calculator 2.0 Specificarea jocului cu 2 oponenți starea inițială:  configurația jocului (e.g., poziția pieselor) + cine mută primul mulțimea operatorilor definind mutările legale testul de terminare (terminal test) funcția de utilitate: oferă valoarea numerică a rezultatului de exemplu, câștig=1, pierdere=‐1, remiză=0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 83. Interacțiune om‐calculator 2.0 Un joc cu 2 oponenți poate fi considerat  ca fiind o problemă de căutare Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 84. Interacțiune om‐calculator 2.0 Decizii perfecte: MIN‐MAX cei doi jucători sunt numiți MAX si MIN, cu MAX primul la mutare Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 85. Interacțiune om‐calculator 2.0 Decizii perfecte: MIN‐MAX MAX va realiza o căutare a secvenței de mutări ce conduc  la o stare de terminare a jocului în care este câștigător  conform funcției de utilitate Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 86. Interacțiune om‐calculator 2.0 Decizii perfecte: MIN‐MAX MAX trebuie să găsească o strategie de câștig,  în mod independent de mutările lui MIN de exemplu, determinarea mutării corecte a lui MAX pentru fiecare mutare posibilă a lui MIN Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 87. Interacțiune om‐calculator 2.0 Decizii perfecte: MIN‐MAX strategia optimală pentru MAX e dată de algoritmul minimax generarea tuturor stărilor jocului aplicarea funcției de utilitate pentru stările terminale pe baza valorii acesteia, se poate calcula funcția de utilitate  pentru stările anterioare, până la cea inițială MAX face mutarea ce duce la obținerea valorii celei mai mare Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 88. Interacțiune om‐calculator 2.0 pentru a fi victorios, MAX va face mutarea de deschidere A1 replica lui MIN cea mai bună va fi A11 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 89. Interacțiune om‐calculator 2.0 Decizii imperfecte: alpha‐beta pruning utilizarea de euristici pentru a evalua utilitatea  & condiția de terminare arborele stărilor de joc nu mai este complet generat Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 90. Interacțiune om‐calculator 2.0 Jocuri bazate pe șansă arborele jocului va trebui să includă și noduri de tip chance,  alături de cele de tip MAX si MIN în loc de valoarea minimax, se va calcula o valoare anticipată  (expected value) conform unei funcții expectimax Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 91. Interacțiune om‐calculator 2.0 arborele jocului de table (Russel & Norvig, 1995) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 92. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 93. Interacțiune om‐calculator 2.0 orice sistem poate fi privit ca fiind un agent software (Enrico Franconi, 2003) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 94. Interacțiune om‐calculator 2.0 Agent software inteligent entitate care percepe mediul și acționează conform cunoștințelor deja acumulate (internal declarative body of knowledge) aceste cunoștințe trebuie modelate astfel încât să poată fi înțelese de către mașină Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 95. Interacțiune om‐calculator 2.0 Puncte de vedere: agenții ca entități comportamentale agenții ca descriere a atributelor acestora Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 96. Interacțiune om‐calculator 2.0 Aspect important: autonomia un agent este un sistem computațional capabil să realizeze acțiuni autonome în cadrul unui mediu Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 97. Interacțiune om‐calculator 2.0 Agenții ca entități comportamentale  agere (lat.) asocierea calităților umane mașinilor înțelegerea comportamentului & semanticii sistemelor complexe (McCarthy, 1977) interfață om‐calculator: metafore & interacțiune  “Ne pare rău, nu există trupe disponibile pentru misiune” Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 98. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 99. Interacțiune om‐calculator 2.0 Agenții ca entități comportamentale  sisteme intenționale: decizii & scopuri convingeri, dorințe, intenții, planuri exemplu: termostat – agent trivial (neinteresant) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 100. Interacțiune om‐calculator 2.0 Agenții ca sisteme intenționale comportamentul uman e prezis și explicat via atribuirea de atitudini (attitudes)  noțiuni  intenționale credința, dorința, frica, speranța etc. “Simina muncește din greu, fiindcă dorește să termine proiectul.” Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 101. Interacțiune om‐calculator 2.0 Agenții ca descriere a atributelor lor entități software posedând funcții comportamentale,  rulând autonom și continuu în medii colective, compuse din alți agenți/procese a se parcurge J. Bradshow, Software Agents, AAAI Press/MIT Press, 1997 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 102. Interacțiune om‐calculator 2.0 Agenții ca descriere a atributelor lor reacție autonomie colaborare personalitate adaptabilitate inferență mobilitate … Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 103. Interacțiune om‐calculator 2.0 Agenții implică termeni/cunoștințe din: calcul distribuit inteligență artificială  interacțiune om‐mașină inginerie software filosofie lingvistică psihologie Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 104. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 105. Interacțiune om‐calculator 2.0 Agenții implică termeni/cunoștințe din: inteligență artificială reprezentarea cunoștințelor și a contextului modelarea mediului cunoașterea acțiunilor: pre‐condiții, efecte, chaining raționament, deducere automată învățare automată (machine learning) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 106. Interacțiune om‐calculator 2.0 Agenții implică termeni/cunoștințe din: calcul distribuit inter‐comunicare client/server vs. peer‐to‐peer servicii Web negocierea mesajelor pervasive computing Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 107. Interacțiune om‐calculator 2.0 agenții în context – conform Miles Davis, 2008 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 108. Interacțiune om‐calculator 2.0 Agenții trebuie să asigure autonomia și continuitatea acțiunilor întreprinse capabili să acționeze în mod flexibil și inteligent,  adaptându‐se situațiilor survenite fără aportul utilizatorului Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 109. Interacțiune om‐calculator 2.0 Ideal, un agent trebuie să învețe din propria‐i  experiență și să dezvolte tehnici de comunicare și de cooperare cu alți agenți și/sau să manifeste mobilitate Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 110. Interacțiune om‐calculator 2.0 Utilizarea termenului “agent”: agenți de interfață personaje animate (embodied agents) agenți BDI – logică & raționament automat agenți mobili agenți autonomi & reactivi – robotică agenție a mulți‐agenților … Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 111. Interacțiune om‐calculator 2.0 Exemplu:  embodied agents  grafică generată de computer animație artistică caracter inteligent al comportamentului Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 112. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 113. Interacțiune om‐calculator 2.0 O taxonomie a agenților – conform (Tim Jones , 2003) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 114. Interacțiune om‐calculator 2.0 Sistem multi‐agent sistem compus din mai mulți agenți, care interacționează unul cu altul Michael Wooldridge, 2002 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 115. Interacțiune om‐calculator 2.0 Sistem multi‐agent în general, agenții reprezintă interesele utilizatorilor (scopuri & motivații) pentru o bună interacțiune, agenții trebuie să poată coopera, coordona și negocia Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 116. Interacțiune om‐calculator 2.0 Sistem multi‐agent fiecare agent posedă informații sau prezintă funcționalități  incomplete agentul nu poate rezolva problema (luată în ansamblu), în mod individual datele procesate sunt descentralizate calculul se desfășoară asincron nu există un control global al sistemului Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 117. Interacțiune om‐calculator 2.0 Modelare formală Cooperare Planificare Comportament Comunicare inter‐agenți Dezvoltare Inginerie – agent‐oriented paradigm Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 118. Interacțiune om‐calculator 2.0 Cadre de dezvoltare a agenților (frameworks) e.g., JADE (Java Agent Development Environment), Cybele Sisteme multi‐agent comunicare via FIPA ACL eventual, având capacități de mobilitate  Obiecte mobile exemplu: agleți Java Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 119. Interacțiune om‐calculator 2.0 sistem multi‐ agent conform (Jones, 2003) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 120. Interacțiune om‐calculator 2.0 game development inteligența artificială în contextul jocurilor noțiuni fundamentale privind agenții software Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 121. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco