game computing: tehnici ai
DESCRIPTION
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.TRANSCRIPT
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Dr. Sabin‐Corneliu Buraga
Facultatea de InformaticăUniversitatea “A.I.Cuza” Iaşi, România
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
tehnici elementare de inteligență artificială
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
However beautiful the strategy,you should occasionally look at the results.
Winston Churchill
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Cum folosim inteligența artificială într‐un joc?
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Artificial intelligence is the applicationof simulated reasoning for the purposes
of making informed decisions and solving problems
Brian Hall, 2004
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Principii de proiectare:
KISS (Keep It Simple, Stupid)
tehnicile AI trebuie doar să convingă utilizatorulcă entitățile jocului (e.g., NPC) sunt “smart”
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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)
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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ă”
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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)
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
artificial stupidity
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Utilizări ale AI în jocuri (Rouse, 2005)
Tetris – generarea aleatoare a următoarei pieseversus
The Sims – recurgerea la un sistem de agenți software (comportament autoadaptiv al personajelor NPC)
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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,…
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Next Step Closer
move one step closer to the goal during each iteration (cannot avoid obstacles)
Breadth First Search
starting with a vertex, visit each of its children, and each of their children, etc.
Best First Search
same as BFS, but children are selected using a heuristic
Depth FirstSearch
search a child of a vertex, then its first child, then its first child’s first child,…
Metode tradiționale:
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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ă
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
intrarea într‐o “fundătură” (cul‐de‐sac)
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Metode euristice
în contextul Best First Search,se consideră anumite locații (noduri ale grafului)
ca fiind mai prioritare
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Metode euristice
suplimentar, Best First Search și A* se bazează pe 3 euristicipentru 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)
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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 nh(n) – euristica aleasă
costul f(n) determină ordinea nodurilor alese să fie vizitate
euristicăadmisibilă
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
bool AStarSearch (Node start, Node goal) {PriorityQueue open; // coada cu prioritățiList closed; // lista nodurilor drumuluiNode n, child;start.parent = NULL; // start n‐are precedentopen.enqueue(start); // primul nod e cel de startwhile (!open.isEmpty()) { // mai există noduri de vizitat
n = open.dequeue();if (n == goal) { // nodul curent e ținta/scopul
makePath();// generăm calea de urmatreturn true;
}
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
while (n.hasMoreChildren()) { // iterăm copiii nodului// preluăm următorul nod de vizitatchild = n.getNextChild();// …și calculăm costul asociatCOSTVAL 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 marechild.parent = n;child.g = newg;child.h = GoalEstimate(child); // folosim euristicachild.f = child.g + child.h; // costul actualizat
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
// nodul va trebui revizitat, // din moment ce i s‐a reactualizat costulif (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
}
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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 consultaStuart Russell & Peter Norvig, Artificial Intelligence. A Modern Approach (2nd Edition), Prentice Hall, 1995
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Modelarea unui joc de tip RTS – Real‐Time Strategyconform (Brian Hall, 2004)
mediul include 10 tipuri de terenuripersonajele NPC aparțin a 4 categorii de trupe (units)
se definesc 7 trupe particulare
terenurile/trupele au caracteristici diferite
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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 calculatât tipul de terenuri, cât și categoria fiecărei trupe
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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)
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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)
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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.
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Se specifica un cost de traversare pentru fiecare tip de teren, conform categoriilor de trupe
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Acest cost va fi inclus în formula de calcul al euristicii:
h(n) = h’(n) * Wu,t
maximul, Manhattan,
distanța euclidiană
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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)
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Simplificarea determinării drumului:Hierarchical Pathfinding
se bazează pe divide‐et‐impera: divizarea spațiului în sub‐arii
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
conform Brian Hall, Artificial Intelligence for Game Developers,
e‐Institute Publishing, 2004
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Determinarea drumului pentru configurații oarecare (non‐gridded maps)
soluții:super‐imposed grids
visibility points (waypoint networks)radial basiscost fieldsquad‐trees
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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 algorithmto determine where you can walk
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Visibility points (waypoint networks)
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Quad‐Trees
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Tehnici folosite în cadrul jocurilor:flocking
decision treesstate machines
rule‐based systemssquad behaviors
scripting
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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.
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
entitateade interes
scop: cum se decide care va fi următoarea mișcare a entității de interes
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
entități perceptibile
entitățile perceptibile sunt cele care pot fi “simțite” de către entitatea de interes
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
entități inaccesibile
entitățile inaccesibile sunt cele ce nu pot fi perceputede către entitatea de interes
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
entitatea de interes va percepe obiectele din cadrul conului
cercurile concentrice facilitează determinarea distanțeipână la alte entități ale grupului
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Flocking
comportamente de bază:separarea (separation)coeziunea (cohesion)evitarea (avoidance)alinierea (alignment)
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Flocking
alte comportamente posibile, implementate în unele jocuri:
cruisingdecide ce direcția va avea entitatea, daca ea rămâne singură
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Flocking
alte comportamente posibile, implementate în unele jocuri:
stay within boundsconstrânge entitatea de interes să se miște într‐un areal dat
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Arbori decizionali (decision trees)
uzual, nu se ia în considerație starea sistemului (stateless)
la fiecare iterație, întregul arbore este evaluatentitățile apar ca fiind indecise, în unele cazuri
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
arbore de decizie simplu asociat unui personaj NPC
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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)
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
automat utilizat în procesul decizional al unui NPC
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
automat modelândstarea jocului
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Rule 1:Conditions: Player in ViewDecision: Attack
Rule 2:Conditions: Player not in view, not chasing, on patrol pathDecision: Patrol Path
Rule 3:Conditions: Player not in view, not chasing, not on patrol pathDecision: Go to Patrol Path
Rule 4:Conditions: Player not in view, chasing, chase time limit has not expiredDecision: Chase Player
Rule 5:Conditions: Player not in view, chasing, chase time limit has expiredDecision: Go to Patrol Path
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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 comportaconform ordinelor din partea liderului
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Comportamente bazate pe lider (Squad behaviors)
fiecare membru al grupului are asociat un automatpe baza căruia realizează acțiunile specificate:
așteptarea unei comenzi & mișcarea spre punctul țintă
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
jocuri cu 2 oponenți
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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 legaletestul de terminare (terminal test)
funcția de utilitate: oferă valoarea numerică a rezultatuluide exemplu, câștig=1, pierdere=‐1, remiză=0
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Un joc cu 2 oponenți poate fi considerat ca fiind o problemă de căutare
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Decizii perfecte: MIN‐MAX
cei doi jucători sunt numiți MAX si MIN,cu MAX primul la mutare
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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 MAXpentru fiecare mutare posibilă a lui MIN
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Decizii perfecte: MIN‐MAX
strategia optimală pentru MAX e dată de algoritmul minimax
generarea tuturor stărilor joculuiaplicarea 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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
pentru a fi victorios, MAX va face mutarea de deschidere A1replica lui MIN cea mai bună va fi A11
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
arborele jocului de table (Russel & Norvig, 1995)
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
orice sistem poate fi privit ca fiind un agent software(Enrico Franconi, 2003)
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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ă
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Puncte de vedere:
agenții ca entități comportamentale
agenții ca descriere a atributelor acestora
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Aspect important:
autonomiaun agent este un sistem computațional capabil
să realizeze acțiuni autonome în cadrul unui mediu
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Agenții ca entități comportamentale agere (lat.)
asocierea calităților umane mașinilor
înțelegerea comportamentului & semanticiisistemelor complexe (McCarthy, 1977)
interfață om‐calculator: metafore & interacțiune “Ne pare rău, nu există trupe disponibile pentru misiune”
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Agenții ca entități comportamentale
sisteme intenționale: decizii & scopuri
convingeri, dorințe, intenții, planuri
exemplu: termostat – agent trivial (neinteresant)
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Agenții ca sisteme intenționalecomportamentul uman e prezis și explicat
via atribuirea de atitudini (attitudes)
credința, dorința, frica, speranța etc.
“Simina muncește din greu,fiindcă dorește să termine proiectul.”
noțiuni intenționale
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Agenții ca descriere a atributelor lorreacție
autonomiecolaborarepersonalitateadaptabilitateinferențămobilitate
…
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Agenții implică termeni/cunoștințe din:calcul distribuit
inteligență artificială interacțiune om‐mașină
inginerie softwarefilosofielingvisticăpsihologie
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Agenții implică termeni/cunoștințe din:inteligență artificială
reprezentarea cunoștințelor și a contextuluimodelarea mediului
cunoașterea acțiunilor: pre‐condiții, efecte, chainingraționament, deducere automată
învățare automată (machine learning)
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Agenții implică termeni/cunoștințe din:calcul distribuit
inter‐comunicareclient/server vs. peer‐to‐peer
servicii Webnegocierea mesajelorpervasive computing
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
agenții în context – conform Miles Davis, 2008
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Agenții trebuie să asigure autonomia și continuitateaacțiunilor întreprinse
capabili să acționeze în mod flexibil și inteligent, adaptându‐se situațiilor survenite
fără aportul utilizatorului
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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/sausămanifeste mobilitate
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Utilizarea termenului “agent”:agenți de interfață
personaje animate (embodied agents)agenți BDI – logică & raționament automat
agenți mobiliagenți autonomi & reactivi – robotică
agenție a mulți‐agenților…
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Exemplu: embodied agents
grafică generată de computeranimație artistică
caracter inteligent al comportamentului
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
O taxonomie a agenților – conform (Tim Jones , 2003)
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Sistem multi‐agentsistem compus din mai mulți agenți,care interacționează unul cu altul
Michael Wooldridge, 2002
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
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 descentralizatecalculul se desfășoară asincron
nu există un control global al sistemului
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Modelare formalăCooperarePlanificare
ComportamentComunicare inter‐agenți
DezvoltareInginerie – agent‐oriented paradigm
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
Cadre de dezvoltare a agenților (frameworks)e.g., JADE (Java Agent Development Environment), Cybele
Sisteme multi‐agentcomunicare via FIPA ACL
eventual, având capacități de mobilitate
Obiecte mobileexemplu: agleți Java
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
sistemmulti‐agent
conform (Jones, 2003)
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0
game developmentinteligența artificială în contextul jocurilor
noțiuni fundamentale privind agenții software
Interacțiune om‐calculator
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
2.0