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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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