sistemi multi-agente. agente entità reale o virtuale che vive in un ambiente, lo percepisce, agisce...

Post on 01-May-2015

214 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Sistemi Multi-agente

Agente

Entità reale o virtuale che “vive” in un ambiente, lo percepisce, agisce in esso e che ha un comportamento autonomo conseguente alla sua conoscenza, alle sue interazioni, alle sue finalità.

Il controllo dell’agente sui processi suddetti è locale.

Un po’ di storia

Il più antico agente virtuale? La tartaruga LOGO che mette in

azione un comportamento localeNon ha percezione alcuna del mondo

complessivo in cui viveÈ “responsabile” delle sue conoscenzeSi muove su una “griglia”È in sintonia con il movimento del corpo.Nasce come “strumento di pensiero” per

giovani.

Il LOGO

la programmazione è un gioco!nessuna pretesa da ingegneria del swLinguaggio interpretatoScritto su linee. Ogni linea è una chiamata di funzione di tipo Comando (con effetti ma senza valore) print,.. Operazione (con valore come output) sum, list,.. Un sottoinsieme di operazioni è costituito dai

predicati che assumono il valore true false

MSWLOGO CiaoMondo!!

label “ciaomondo!!

Scegliere la grandezza, il colore del font e scrivere

repeat 36 [label "ciaomondo!! rt 10 setpencolor repcount]

Introduzione concetti: procedura

TO BOXREPEAT 4 [FD 100 RT 90]END E se vogliamo 2 quadrati?TO BOXESREPEAT 4 [FD 100 RT 90]RT 90 PU FD 120 PD LT 90REPEAT 4 [FD 100 RT 90]END

Introduzione variabili

E se devono essere tanti? E di grandezza qualunque?

Studio delle figure poligonali e “geometria della tartaruga”.

Vediamo qualche cammino.

Qualche cammino

repeat 4 [fd 50 rt 90]repeat 5 [fd 50 rt 72]repeat 6 [fd 50 rt 60]repeat 5 [fd 50 rt 144] repeat 3 [fd 50 rt 120]Può la tartaruga decidere a priori che il cammino si chiude? Cammina su un cerchio C’è una sola corda di lunghezza fissata in una

direzione

I dati

Possono essereParoleListeVettori I numeri sono casi particolari di parole.Non c’è il sistema forte dei tipi: l’interprete

lo decide dal contesto.

I dati

due simboli particolari : per indicare “il contenuto di ..”

Si tratta di un uso molto utile per ricordare allo studente il concetto di variabile.

Quotazione o “ Si tratta di un simbolo che indica nessuna

valutazione. Il numero è un caso speciale di autovalutazione

“2 2

Assegnamento

make “ x sum :y 3ha due parametri. L’effetto sta nel porre nel

primo parametro la valutazione del secondo

Sum :y 3dove si indica di effettuare la somma tra il

contenuto di y e il numero 3

Il secondo parametro è passato per valore, il primo per indirizzo

Assegnamento

Indirizzamento indiretto make "x 45 make :x 3 print :45

Scoping Le variabili non devono essere dichiarate e sono

globali. Possono essere dichiarate locali a una procedura e vale lo scoping dinamico.

I parametri delle procedure creano variabili locali

Liste

Rispetto ai vettori sono espandibili first, last, butfirst, butlast, member, item. sentence fput, lput

Coda con le operazioni queue, dequeue, Stack con le operazioni push and popLa ricorsione è il modo naturale di trattare con le liste.

Strutture di controllo

ifelse test [ do if true list ] [do if false list]

repeat number [instruction list]

Altre istruzioni iterative ma si raccomanda l’uso ricorsivo

Esempi

make "stati [italia francia spagna]label :statiOppurelabel thing “statilabel first :statipr first [italia francia spagna]pr last [italia francia spagna]pr butfirst [italia francia spagna]show butfirst [italia francia spagna]ct

Esempi

make first [gatto cane] first [Meo Lilli]pr :gatto??make "Meo "gattopr :meo??make :meo "graffiapr :gatto ( o pr thing :meo)??

località

La tartaruga può alterare il colore sotto di sé

pu

for [red 0 255] [for [green 0 255] [setpixel (list :red :green 0) fd 1] bk 256 rt 90 fd 1 lt 90]pd al variare della grandezza della “penna”

località

Se la tartaruga non è su un piano?

Cosa vuol dire “andar diritto”?

Come si accorge di non essere su un piano?

Teorema del cammino semplice e del cammino semplice chiuso.

Strutture di controllo

OPERAZIONE [una lista di comandi] [vari dati]

show map [? * ? ] [ 5 6 7 ]

[25 36 49]

Brian Harvey

to choices :menu [ :sofar []]if emptyp :menu [print :sofar stop]foreach first :menu [(choices butfirst :menu sentence :sofar ?)]endchoices [[small medium large] [vanilla [ultra chocolate] lychee [rum raisin] ginger] [cone cup]]

commento

The program doesn't have anything about the size of the menu built in. You can use any number of categories, and any number of possibilities in each category.

Let's see you do that in four lines of Java!

Esempio

to vai ;sceglie un punto sullo schermo

pu setxy -250 + random 500 -150 + random 300 pd

rt random 360 ;sceglie l'inclinazione

end

Esempio

to galassia :num ;traccia ‘:num’ stelle

repeat :num [ vai star random 50 ] ;di ampiezza arbitraria

endto star :size repeat 5 [fd :size rt 144 ] end

top related