Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica


Informatica


Qdidactic » stiinta & tehnica » informatica
Limbajul de programare : GOAL - caracteristicile limbajului goal



Limbajul de programare : GOAL - caracteristicile limbajului goal


1.Notiuni introductive


GOAL este un limbaj de programare folosit pentru programarea agentilor rationali a caror actiune deriva din convingerile si scopurile lor.

Prin agent rational se intelege un agent care are preferinte clare, modele de incertitudine prin valori asteptate si intotdeauna efectueaza actiuni care duc la un rezultat optim dintr-o multime de actiuni propuse.

Agentii GOAL se numesc rationali deoarece satisfac un numar de constrangeri de baza a rationalitatii si decide de a performa actiuni in realizarea obiectivelor bazandu-se pe o schema de rationament derivata din rationament practic

Limbajul GOAL ofera blocuri de constructie simple pentru proiectarea si implementarea agentilor rationali. Elementele de limbaj si caracteristicile GOAL permit si faciliteaza manipularea "credintelor" si scopului unui agent in structura sa de decizie.

Conceptele de programare belief si goal incorporate in GOAL, constituie baza acestei forme de rationament si sunt similare cu omologii lor de sens comun folositi zilnic pentru a explicat actiunile pe care le realizam.

Se disting 2 tipuri de cunoasteri sau convingeri: conceptuale sau cunostiinte de domeniu stocate intr-o baza de cunoastere si dinamice pentru a reprezenta starea mediului intr-o baza de convingeri

Obiectivele (goals) sunt declaratii representative pentru ceea ce vrea agentul sa faca ci nu cum sa faca acest lucru

Limbajul suporta actiunea de selectie folosind asa-numitele reguli de actiuni care au rolul de a imprima agentilor capacitate cognitive precum si comportament reactiv


2. Caracteristicile limbajului GOAL


Caracteristica distinctiva a limbajului GOAL o reprezinta notiunea de scopuri sau obiective declarative si modul cum agentii deriva actiunea pornind de la aceste obiective.



Convingerile si obiectivele limbajului GOAL reprezinta starea mentala

Principalele caracteristici ale GOAL cuprind:

a) "Convingeri" declarative : agentii folosesc un limbaj simbolic, logic pentru a reprezenta informatiile avute, si credintele sau cunostiinte despre mediul in care actioneaza in vederea realizarii scopurilor. Acest limbaj de reprezentare a cunostiintelor nu este stability de GOAL dar poate varia in functie de nevoile programatorului

b) Obiective declarative : agentii pot avea scopuri multiple care specific ce doreste agentul sa realizeze la un anumit moment in viitorul apropiat sau indepartat. Scopurile sau obiectivle declarative specifica o stare a mediului pe care agentul doreste sa o stabileasca, dar nu specifica actiuni sau proceduri despre cum sa realizeze acest lucru

c) Strategia de angajament blind : agentii se angajeaza in atingerea obiectivelor si sa renunte doar cand sunt realizate. Aceasta strategie de angajament este strategia implicita folosita de agentii GOAL. Agentii rationali presupun ca nu au obiectivele pe care ei cred ca deja le-au realizat, o presiune pusa pe agentii rationali sa renunte la un obiectiv deja realizat

d) Selectia actiunii bazata pe norme : agentii folosesc asa-numitele norme de actiune pentru a selecta actiuni tinand cont de convingerile si obiectivele lor. Aceste norme pot sa subspecifice alegerea de actiune, in sensul ca actiuni multiple pot fi effectuate in orice moment, datorate normelor de actiune ale agentului. In acest caz un agent GOAL va selecta o actiune arbitrara pentru executie

e) Module de intentie : agentii isi pot concentra atentia si pune toate eforturile pentru a realiza o parte din obiectiv, folosind un subset din actiunile lor si cunostiinte relevante pentru realizarea acelor obiective. GOAL ofera module pentru a structura normele de actiune si cunostiintele dedicate in realizarea obiectivelor specifice.

f) Comunicare la nivel de cunostiinte : agentii pot intercomunica pentru schimb de informatii si coordonare de actiuni. Agenti GOAL comunica folosind un limbaj de reprezentare a cunostiintelor, folosit de asemenea si la reprezentarea credintelor si obiectivelor

Aceasta lista scurta dar cu o vedere larga a limbajului GOAL ilustreaza seria de concepte care sunt disponibile pentru agentii de programare rationali. GOAL este un limbaj de nivel inalt expresiv care faciliteaza agentii de programare care isi justifica actiunea din obiective si convingeri

Un program pentru agentul GOAL se constituie din 5 sectiuni :

- un set de reguli de domeniu, care este optional, si mai poarta numele de baza de cunoastere a agentului (knowledge base)

- un set de convingeri, denumita si baza de convingeri ( beliefs base)

- un set de obiective, denumit si baza de obiective (goal base)

- o sectiune de program constituita dintr-o serie de reguli de actiune

- o specificatie de actionare constituita din preconditii si postconditii ale actiunii agentului

Cunostiintele, convingerile si obiectivele sunt reprezentate intr-un limbaj de reprezentare a cunoasterii cum ar fi PROLOG  Prolog este un limbaj logic de programare cu scop general asociat cu inteligenta artificiala si lingvistica computationala

Structura generala a unui agent GOAL este de forma :

Codul agent folosit pentru a ilustra structura unui agent GOAL este un agent sa resolve problemele BLOCKS WORLD fiind unul dintre cele mai renumite domenii de planificare in inteligenta artificiala fiind un sistem de limbaj natural domeniu limitat care poate intelege comenzi tastate si muta blocuri pe o suprafata, altfel spus este un mediu simplu constituit dintr-un numar finit de blocuri suprapuse in turnuri pe o masa de dimensiuni infinite si in care se presupune ca fiecare bloc are o denumire proprie (a,b, . g)

O aplicatie BLOCKS WORLD o reprezinta transformarea unui bloc din stare initiala(initial state) intr-un bloc obiectiv (goal state). Performanta unei aplicatii BLOCKS WORLD este stabilita in functie de numarul de mutari necesare pentru a transforma o stare init in stare goal.

Un agent lucreaza optim daca nu exista posibilitatea de a imbunatati numarul de mutari



Un exemplu de rezolvare a BLOCKS WORLD folosind un agent GOAL

Se presupune ca singura actiune permisa agentului este cea de mutare a unui bloc care este pe varfului unui turn pe varful altui turn sau pe masa. Primul lucru care trebuie facut este sa putem reprezenta configuratia blocurilor, asta inseamna ca trebuie stiut care bloc e deasupra altui bloc si care blocuri sunt libere. Un bloc care este varful unui turn, deci neavand niciun bloc deasupra lui este liber (clear), deoarece masa are dimensiuni infinte, deci exista loc pentru orice bloc de a fi mutat pe masa, se spune ca si masa este libera (clear)

Un bloc este in pozitie (in position) daca blocul in starea actuala este pozitionat deasupra altui bloc sau pe masa si corespunde pozitiei in starea finala (goal state), si toate blocurile de sub el sunt in pozitie. Altfel, daca blocul nu este in pozitia care trebuie se spune ca este pozitionat gresit (misplaced). Se observa ca doar blocurile deplasate gresit trebuie sa fie mutate pentru a rezolva problema. Mutarea unui bloc este contructiva daca acel bloc ajunge pe pozitia dorita (in position) si scade numarul de blocuri deplasate gresit

Initial se ofera sectiunile care definesc starea mentala initiala a agentului. Aceste sectiuni trebuie incluse in modului init de mai sus. Convingerile agentului reprezinta starea curenta a BLOCKS WORLD astfel incat obiectivele agentului sa fie obiectivul principal.

Sectiunea knowledge urmatoare contine cunostiinte aditionale de conceptie sau domeniu relatate la domeniul BLOCKS WORLD.


knowledge

Este de retinut ca toate blocurile din sectiunea knowledge reapar in sectiunea beliefs deoarece pozitia fiecarui bloc trebuie sa fie specificata pentru a caracteriza configuratia completa a blocurilor. Altfel spus in sectiunea beliefs apar blocurile in starea initiala

beliefs

Toate blocurile knowledge sunt prezente in sectiunea goals care specifica o configuratie cu rolul de reutilizare a tuturor blocurilor adica modul cum trebuie sa arate blocurile in goal state

goals

Un agent GOAL poate avea mai multe obiective in acelasi timp. Aceste obiective pot intra in conflict pentru ca oricare obiectiv poate fi realizat momente diferite. De exemplu, un agent poate avea ca obiectiv sa vada un film la cinema si ulterior sa il urmareasca acasa

In GOAL, se disting notiuni diferite ale obiectivului. Un obiectiv primitiv ( primitiva goal) este o declaratie care porneste de la baza obiectivului aflat in legatura cu conceptele defintie in baza de cunostiinte (knowledge). De exemplu, tower([a,e,b]) este o primitiva goal si scriem goal(tower([a,e,b])) pentru a sublinia asta. Initial tower([a,e,b]) este un obiectiv de realizat deoarece agentul nu crede ca a este deasupra lui e, e deasupra lui b si ca b este pe masa. Obiectivele de realizat sunt obiective primitive pe care agentul nu crede si sunt notate cu tower([a,e,b]). Este de asemenea folositor sa se poata spune ca un obiectiv a fost realizat, goal-a(tower([e,b])) este folosit pentru a exprima ca tower([e,b]) a fost realizat cu blocul e deasupra blocului b.

Ambele obiective de realizare precum si notiunea de obiectiv realizat pot fi exprimate :

a-goal(formula) ::= goal(formula), not(bel(formula))

goal-a(formula) ::= goal(formula), bel(formula)

Exista o literatura semnificativa in definirea conceptului de obiectiv de realizat in literatura de agenti.

Sectiunea de program de mai jos specifica o strategie de selectare a actiunilor cu ajutorul unor reguli de actiune. Aceasta sectiune ar trebui ( ar fi cel mai bine) sa fie inclusa in modulul main. Prima regula de mai jos afirma ca mutand blocul X deasupra blocului Y (sau eventual pe masa) este o optiune daca o asemenea mutare este constructiva. A doua regula afirma ca se muta un bloc X pe masa numai daca blocul X este pus gresit

main module


Sectiunea event module specifica regulile pentru perceptiile de procesare primite de la mediu. Regula de mai jos specifica ca daca o perceptie (percept) este primita astfel incat blocul X este deasupra blocului Y si X este considerat a fi deasupra blocului Z ,inegal cu Y, atunci on(X,Y) se adauga la sectiunea belief si on(X,Z) va fi eliminat


event module


In final, trebuie sa-i oferim agentului actiuni, in cazul in care folosim BLOCKS WORLD doar pentru actiuni de mutare. Actiuni, cum ar fi actiunea de mutare folosita mai sus, sunt specificate folosind o specificatie STRIPS a preconditiilor si postconditiilor. O preconditie specifica cand actiunea poate fi realizata (este pornita). O postconditie specifica  efectele rezultate in urma actiunii. Intrucat actiunea trebuie sa fie global accesibila, specificatia de actiune trebuie sa fie inclusa in modulul init

actionspec

post



PLATFORMA GOAL


Starea actuala a platformei GOAL este inca la nivel de prototip. Interpretorul GOAL poate fi obtinut prin downloadarea pachetului de instalare. Limbajul vine cu un mediu de dezvoltare integrate ( INTEGRATED DEVELOPMENT ENVIRONMENT - IDE) care permite editarea si depanarea agentilor GOAL

La incarcarea unui fisier .mas, toate fisierele apartinand aceluiasi proiect sunt incarcate si fisierele text sunt gata pentru editare. Introspectorul arata obiectivele si convingerile agentului si orice perceptii si mesaje primite


Implementarea limbajului GOAL a fost testate si ruleaza pe majoritatea platformelor cunoscute cum ar fi Windows XP, Windows Vista, Linux si Ubuntu. Interpretorul GOAL a fost scris in Java si ruleaza pe versiuni de Sun Java 1.5 sau mai recente.






Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright