Game computing: tehnici AI

1,440 views
1,334 views

Published on

O introducere in proiectarea jocurilor pe calculator (game computing), prezentare in cadrul cursului Interactiune om-calculator, master, Facultatea de Informatica, Alexandru Ioan Cuza din Iasi.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,440
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Game computing: tehnici AI

  1. 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. 2. Interacțiune om‐calculator 2.0tehnici elementare de inteligență artificială Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  3. 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. 4. Interacțiune om‐calculator 2.0Cum folosim inteligența artificială într‐un joc? Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  5. 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. 6. Interacțiune om‐calculator 2.0In 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. 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. 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. 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. 10. Interacțiune om‐calculator 2.0 Principii de proiectare: Play Fair personajele simulate (NPC‐urile) trebuie să se conformeze  acelorași reguli ale joculuijucătorii umani sunt frustrați atunci când sistemul “trișează” Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  11. 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. 12. Interacțiune om‐calculator 2.0 artificial  stupidityDr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  13. 13. Interacțiune om‐calculator 2.0 Utilizări ale AI în jocuri (Rouse, 2005) Tetris – generarea aleatoare a următoarei piese versusThe Sims – recurgerea la un sistem de agenți software  (comportament autoadaptiv al personajelor NPC) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  14. 14. Interacțiune om‐calculator 2.0Clasificarea (classification) rețele neuronale, logici fuzzy etc.Simularea sistemelor biologice (life systems) algoritmi geneticiGă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. 15. Interacțiune om‐calculator 2.0Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  16. 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 joculuise reduce la găsirea drumului de cost minim într‐un (di)graf Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  17. 17. Interacțiune om‐calculator 2.0Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  18. 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. 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. 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. 21. Interacțiune om‐calculator 2.0intrarea într‐o “fundătură” (cul‐de‐sac) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  22. 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ângaapar probleme pentru grafuri complicate sau cu cicluri Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  23. 23. Interacțiune om‐calculator 2.0Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  24. 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. 25. Interacțiune om‐calculator 2.0 Metode euristicesuplimentar, 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. 26. Interacțiune om‐calculator 2.0 Metode euristicepentru 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. 27. Interacțiune om‐calculator 2.0bool 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. 28. Interacțiune om‐calculator 2.0while (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. 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. 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. 31. Interacțiune om‐calculator 2.0Modelarea 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. 32. Interacțiune om‐calculator 2.0Modelarea 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. 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. 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. 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. 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. 37. Interacțiune om‐calculator 2.0Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  38. 38. Interacțiune om‐calculator 2.0Se specifica un cost de traversare pentru fiecare tip de teren,  conform categoriilor de trupe Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  39. 39. Interacțiune om‐calculator 2.0Acest 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. 40. Interacțiune om‐calculator 2.0 Definirea hărții joculuiiniț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. 41. Interacțiune om‐calculator 2.0 Simplificarea determinării drumului: Hierarchical Pathfindingse bazează pe divide‐et‐impera: divizarea spațiului în sub‐arii Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  42. 42. Interacțiune om‐calculator 2.0 conform Brian Hall, Artificial  Intelligence for Game Developers,  e‐Institute Publishing, 2004Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  43. 43. Interacțiune om‐calculator 2.0Determinarea 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. 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 obstaclesthese points are then used by the pathfinding algorithm to determine where you can walk Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  45. 45. Interacțiune om‐calculator 2.0Visibility points (waypoint networks) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  46. 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. 47. Interacțiune om‐calculator 2.0 Quad‐Treesharta 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. 48. Interacțiune om‐calculator 2.0 Quad‐TreesDr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  49. 49. Interacțiune om‐calculator 2.0Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  50. 50. Interacțiune om‐calculator 2.0Tehnici 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. 51. Interacțiune om‐calculator 2.0 Flocking vizează luarea deciziilor la nivel de grup  compus din entități similaree.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. 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. 53. Interacțiune om‐calculator 2.0 entitatea de interesscop: 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. 54. Interacțiune om‐calculator 2.0 entități  perceptibileentităț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. 55. Interacțiune om‐calculator 2.0 entități inaccesibileentităț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. 56. Interacțiune om‐calculator 2.0entitatea 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. 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. 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. 59. Interacțiune om‐calculator 2.0Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  60. 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. 61. Interacțiune om‐calculator 2.0Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  62. 62. Interacțiune om‐calculator 2.0 Flocking evitarea (avoidance) directing the group to move away from given thingsimplică existența capacităților de detecție a obiectelor, plus observarea mediului înconjurător Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  63. 63. Interacțiune om‐calculator 2.0Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  64. 64. Interacțiune om‐calculator 2.0 Flocking alinierea (alignment) keeping all of the entities in the group  aligned in approximately the same directionajustarea 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. 65. Interacțiune om‐calculator 2.0Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  66. 66. Interacțiune om‐calculator 2.0 Flockingalte comportamente posibile, implementate în unele jocuri: cruisingdecide ce direcția va avea entitatea, daca ea rămâne singură Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  67. 67. Interacțiune om‐calculator 2.0 Flockingalte comportamente posibile, implementate în unele jocuri: stay within boundsconstrânge entitatea de interes să se miște într‐un areal dat Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  68. 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. 69. Interacțiune om‐calculator 2.0arbore de decizie simplu asociat unui personaj NPC Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  70. 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 starede 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. 71. Interacțiune om‐calculator 2.0automat utilizat în procesul decizional al unui NPC Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  72. 72. Interacțiune om‐calculator 2.0automat modelând starea jocului Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  73. 73. Interacțiune om‐calculator 2.0 Sisteme bazate pe reguli (rule‐based systems) regulile pot fi specificate a‐priori sau se pot ajusta dinamicunei 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. 74. Interacțiune om‐calculator 2.0Rule 1: Conditions: Player in View Decision: AttackRule 2: Conditions: Player not in view, not chasing, on patrol path Decision: Patrol PathRule 3: Conditions: Player not in view, not chasing, not on patrol path Decision: Go to Patrol PathRule 4: Conditions: Player not in view, chasing, chase time limit has not expired Decision: Chase PlayerRule 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. 75. Interacțiune om‐calculator 2.0Comportamente 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. 76. Interacțiune om‐calculator 2.0Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  77. 77. Interacțiune om‐calculator 2.0Comportamente 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. 78. Interacțiune om‐calculator 2.0Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  79. 79. Interacțiune om‐calculator 2.0 Comportament programat via scriptingfiecare 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. 80. Interacțiune om‐calculator 2.0Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  81. 81. Interacțiune om‐calculator 2.0 jocuri cu 2 oponențiDr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  82. 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. 83. Interacțiune om‐calculator 2.0Un 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. 84. Interacțiune om‐calculator 2.0 Decizii perfecte: MIN‐MAXcei doi jucători sunt numiți MAX si MIN, cu MAX primul la mutare Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  85. 85. Interacțiune om‐calculator 2.0 Decizii perfecte: MIN‐MAXMAX 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. 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 MINde 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. 87. Interacțiune om‐calculator 2.0 Decizii perfecte: MIN‐MAXstrategia optimală pentru MAX e dată de algoritmul minimax generarea tuturor stărilor jocului aplicarea funcției de utilitate pentru stările terminalepe 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. 88. Interacțiune om‐calculator 2.0pentru 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. 89. Interacțiune om‐calculator 2.0 Decizii imperfecte: alpha‐beta pruning utilizarea de euristici pentru a evalua utilitatea  & condiția de terminarearborele stărilor de joc nu mai este complet generat Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  90. 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. 91. Interacțiune om‐calculator 2.0arborele jocului de table (Russel & Norvig, 1995) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  92. 92. Interacțiune om‐calculator 2.0Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  93. 93. Interacțiune om‐calculator 2.0orice sistem poate fi privit ca fiind un agent software (Enrico Franconi, 2003) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  94. 94. Interacțiune om‐calculator 2.0 Agent software inteligententitate care percepe mediul și acționează conform cunoștințelor deja acumulate (internal declarative body of knowledge) aceste cunoștințe trebuie modelateastfel încât să poată fi înțelese de către mașină Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  95. 95. Interacțiune om‐calculator 2.0 Puncte de vedere: agenții ca entități comportamentaleagenții ca descriere a atributelor acestora Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  96. 96. Interacțiune om‐calculator 2.0 Aspect important: autonomia un agent este un sistem computațional capabilsă realizeze acțiuni autonome în cadrul unui mediu Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  97. 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. 98. Interacțiune om‐calculator 2.0Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  99. 99. Interacțiune om‐calculator 2.0Agenții ca entități comportamentale  sisteme intenționale: decizii & scopuri convingeri, dorințe, intenții, planuriexemplu: termostat – agent trivial (neinteresant) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  100. 100. Interacțiune om‐calculator 2.0 Agenții ca sisteme intenționalecomportamentul 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. 101. Interacțiune om‐calculator 2.0 Agenții ca descriere a atributelor lorentităț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. 102. Interacțiune om‐calculator 2.0Agenții ca descriere a atributelor lor reacție autonomie colaborare personalitate adaptabilitate inferență mobilitate … Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  103. 103. Interacțiune om‐calculator 2.0Agenț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. 104. Interacțiune om‐calculator 2.0Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  105. 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 mediuluicunoaș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. 106. Interacțiune om‐calculator 2.0Agenț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. 107. Interacțiune om‐calculator 2.0agenții în context – conform Miles Davis, 2008 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  108. 108. Interacțiune om‐calculator 2.0Agenț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. 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. 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. 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. 112. Interacțiune om‐calculator 2.0Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  113. 113. Interacțiune om‐calculator 2.0O taxonomie a agenților – conform (Tim Jones , 2003) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  114. 114. Interacțiune om‐calculator 2.0 Sistem multi‐agentsistem 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. 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. 116. Interacțiune om‐calculator 2.0 Sistem multi‐agentfiecare 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. 117. Interacțiune om‐calculator 2.0 Modelare formală Cooperare Planificare Comportament Comunicare inter‐agenți DezvoltareInginerie – agent‐oriented paradigm Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  118. 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. 119. Interacțiune om‐calculator 2.0 sistem multi‐ agent conform (Jones, 2003)Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  120. 120. Interacțiune om‐calculator 2.0 game development inteligența artificială în contextul jocurilornoțiuni fundamentale privind agenții software Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  121. 121. Interacțiune om‐calculator 2.0Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

×