Reti di petri
Transcript
Reti di petri
RETI DI PETRI NellUnità Didattica PROBLEM SOLVING abbiamo imparato un metodo per risolvere molti problemi : aritmetici , logici , da risolvere al computer o semplicemente di vita quotidiana. Erano prima semplici poi sempre più complessi e gli schemi a blocchi, uniti al metodo della programmazione strutturata , ci hanno aiutato ad applicarlo . Avevano però tutti una caratteristica : erano problemi sequenziali ,ovvero si potevano tutti risolvere con una serie di operazioni che venivano eseguite una di seguito allaltra .Questo valeva anche per le più complesse che prima si scomponevano in azioni sempre più semplici e poi eseguite . Una volta trasformati in Schemi a Blocchi venivano tradotti in Programmi in linguaggio Basic ed eseguiti, unistruzione dopo laltra in ordine sequenziale (non fatevi trarre in inganno dalla CALL-SUB, perché anchessa è sequenziale, solamente si sposta un momento ad eseguire una serie di operazione poi torna diligentemente al suo posto ad eseguire la successiva). In realtà spesso questo è un modo di procedere semplificato che però riesce brillantemente a risolvere uninfinità di problemi ,inoltre è lunico usabile quando si hanno a disposizione strumenti sequenziali come il linguaggio di programmazione BASIC . Riprendiamo ad esempio la ricetta del risotto allo zafferano che abbiamo imparato a cucinare in Problem Solving. Se ricordate labbiamo scomposta in questa serie di azioni:1) Soffriggere la cipolla nellolio,2) aggiungere il riso,3) insaporire,4)aggiungere lo zafferano, 5)aggiungere a mano a mano il brodo caldo sempre mescolando,6) quando è cotto aggiungere il parmigiano,7) spegnere, 8)servire. Questa ricetta è giusta ,preparerete un buon risotto, ma analizzandola meglio possiamo osservare che è imprecisa in un punto: anche il brodo deve essere preparato, ha un suo metodo e un suo tempo di cottura e soprattutto deve essere caldo quando va aggiunto al riso, quindi ha bisogno di operazioni che vanno eseguite in momenti sia precedenti che contemporanei a quelli della cottura del risotto. Il formalismo degli schemi a blocchi non ci aiuta quando dobbiamo indicare azioni concorrenti cioè che devono essere contemporanee o che una deve essere eseguita prima di unaltra ma non mi interessa specificare quanto prima purchè sia pronta quando serve . Abbiamo quindi bisogno di un nuovo metodo grafico che ci aiuti in queste situazioni. Useremo le RETI di PETRI e con esse descriveremo anche ambienti complessi , ad esempio il funzionamento di una trattoria e dei vari personaggi che in essa si muovono. Reti di Petri 1 Le RETI di PETRI sono grafi composti da due elementi : le condizioni e gli eventi. Questi si indicano con cerchietti e con barrette collegati da frecce orientate che indicano il verso di percorrenza. Una freccia collegherà sempre un cerchietto a una barretta o viceversa ma mai due barrette o due cerchietti. Condizione Una RdP avrà questo aspetto: Evento La possiamo leggere così : devono esistere tutte le condizioni indicate nei cerchietti in alto, cioè in ingresso, perché avvenga levento indicato nella barretta e quindi il sistema renda vere le condizioni indicate sotto cioè in uscita. Vediamo una semplice RdP: ho ottomila lire in tasca e decido di andare a prendere un hamburger da McDs. Ecco cosa sono riuscito a indicare con questa semplice rete: sono un cliente affamato con £8000 in tasca davanti ad una cassa di McDs ordino un hamburger e una bibita mi trovo con un hamburger e una bibita in mano da McDs ma senza più un soldo in tasca. Reti di Petri 2 Vediamo ora la nostra ricetta del risotto allo zafferano . Siamo riusciti ad indicare tutte le azioni che si svolgono sequenzialmente, quelle concorrenti ( brodo ) e tutte le condizioni necessarie perché gli eventi (cotture, soffritti, tenere in caldo) avvengano. Vediamo un altro esempio: andiamo in biblioteca, consultiamo gli scaffali e troviamo il libro che vogliamo, lo mostriamo alladdetto che prende nota e aggiorna lelenco dei libri presenti, usciamo con il libro. Reti di Petri 3 Usiamo le RdP per qualcosa di più interessante e più complesso. Disegnamo la favola di Cappuccetto Rosso che tutti conosciamo. Si vede chiaramente lintreccio della favola , si può seguire lazione del protagonista e si possono scoprire tutte le azioni contemporanee degli altri personaggi, ad esempio mentre Cappuccetto Rosso raccoglie i fiori, il lupo corre dalla nonna che è, nello stesso momento, a letto. Reti di Petri 4 Proviamo con unaltra favola altrettanto famosa: I tre porcellini. Se non la ricordate ecco la trama molto brevemente. I tre porcellini sono ormai cresciuti e vengono invitati dalla mamma ad andarsene ciascuno per la propria strada. Il primo si costruisce una casetta di paglia, il secondo di legno e il terzo di mattoni. Arriva il lupo che distrugge la casetta di paglia ma il porcellino riesce a rifugiarsi dal secondo fratello. Il lupo lo insegue ma soffia via anche la casetta di legno. I due porcellini corrono dal terzo fratellino e si riparano nella casetta di mattoni che non verrà distrutta dal lupo. Alla fine rimarranno i tre porcellini sani e salvi, il lupo sconfitto e la casetta di mattoni in piedi. A voi la morale ma a noi la corrispondente RdP. Costruzione delle case Allo stesso modo si possono narrare racconti più complicati , prova ad esempio con la trama di un libro o con quella dellultimo film visto , o meglio ancora con lintreccio di un giallo . Reti di Petri 5 Finora abbiamo visto e descritto situazioni in cui un processo parte da un inizio e , con il concorso di vari elementi , evolve verso una fine. Ci sono situazioni che ,volendo descriverle con maggior dettaglio, non hanno in realtà una fine ma sono cicliche e ripartono sempre dallinizio. Immaginatevi di andare in videoteca e di noleggiare una videocassetta.. Cercate tra gli scaffali, la trovate , la prendete, la portate alla cassa ,pagate il noleggio e uscite. Nel frattempo il cassiere , che era libero, vi serve lasciandovi lo scontrino e ,alla vostra uscita, si rimette in attesa del prossimo cliente ritrovandosi ancora libero. Voi entrate in videoteca , fate quello che dovete fare ed uscite. Il cassiere è in videoteca, serve i clienti che man mano gli si presentano e rimane in videoteca . (Ad un certo momento anche lui andrà a casa ma in questo momento non ci preoccupiamo di questo aspetto). Ora che siamo diventati esperti nel descrivere situazioni complesse, facciamo un ulteriore passo: descriviamo processi concorrenti. In questi processi le singole parti evolvono contemporaneamente ma ciascuna in modo scorrelato, hanno dei legami tra loro, ad esempio un evento deve avvenire prima di un altro, ma non ci interessa sapere se tutte le condizioni di uno si sono verificate prima di un altro o meno. Ogni processo evolve autonomamente e, ogni tanto, ne incrocia un altro che, anchesso, sta svolgendo la sua storia in modo indipendente. Reti di Petri 6 Abbiamo fame, siamo nelle vicinanze di un Mc Donalds, decidiamo di entrare, ma prima di ordinare ci fermiamo ad osservare il comportamento dei singoli cassieri e di ciascun cliente. Ecco cosa possiamo notare: CASSIERE C LIEN TE cassiere in attesa cliente arrivato O RDINAZIO NE FA CO NTO O R DIN AZIO N E VASSO IO PRO NTO cameriere occupato ATTESA cliente SCO NTRIN O RICEVU TA VASSO IO PREPAR A VASSO IO cliente servito vassoio pronto RICERCA PO STO CO NSEG NA posto trovato vassoio al cliente CO N SUMAZIO N E PASTO cliente saz io Reti di Petri 7 Laddetto , dopo aver servito un cliente si rimette in attesa del successivo ,mentre il cliente arriva, ordina e se ne va . Solo quando arriva lordine del cliente laddetto prepara il vassoio ed emette lo scontrino e, di conseguenza il cliente ,solo quando ha ricevuto il vassoio, può cercare un posto e andare a mangiare. Ecco il processo completo che ne risulta. cassiere in attesa O R DINAZIO NE cliente arrivato FA CO NTO O RD INE cameriere occupato ATTESA cliente SCO NTRIN O RICEVUTA VASSO IO PREPARA VASSO IO cliente servito vassoio pronto R ICER CA PO STO C O NSEG N A posto trovato vassoio al cliente CO N SUMAZIO NE PASTO cliente sazio Reti di Petri 8 Non a tutti piace un hamburger e quindi decidiamo di andare in trattoria. Vediamo cosa succede lì. Seguiamo il lavoro del cameriere, del cliente e del cuoco . CUO CO cuoco libero CAMERIERE ORD INE RIC HIESTA cameriere libero PREPARAZIO NE ORD INAZIO NE O RDINE piatto morto cucina libera VASSOIO cameriere in attesa SERVE AL TAVOLO CUO CE pranzo servito cibo cotto CLIENTE PREPARAZIO NE VASSO IO clienti OR DINAZIONE VASSOIO sul banco clienti in attesa ORD INE piatto servito CO NSUMAZIO NE cliente sazio Reti di Petri 9 Ma i nostri tre personaggi si muovono contemporaneamente e le loro attività si incrociano e dipendono una dallaltra .Vediamo il loro lavoro nellinsieme cuoco libero O RD IN E R ICH IESTA cameriere libero PREPARAZIO N E O RD IN AZIO NE piatto morto cucina libera cameriere in attesa CU O CE SERVE AL TAVO LO cibo cotto pranzo servito PREPARAZIO N E VASSO IO clienti OR D IN AZIO NE VASSO IO sul banco clienti in attesa C O NSUMAZIO N E cliente sazio Reti di Petri 10 Torniamo nella nostra realtà quasi quotidiana e andiamo in mensa a vedere come fare a scoprire, momento per momento in che stato si trova un processo e come può evolvere in base alla sua situazione in quellistante. Allingresso in mensa un addetto ritira i tagliandi di pranzo pagato, gli alunni si mettono in coda e vengono serviti , ad uno ad uno, da una scodellatrice. Solo dopo essere stato servito il singolo alunno può mangiare. Fotografiamo la mensa in vari istanti e segnamo con un pallino nero le condizioni che in momento sono vere .Devono essere vere tutte le condizioni in entrata ad un evevto perché questo evolva e mi permetta di rendere vere le condizioni in uscita. Vediamo laddetto allingresso, tanti alunni fuori dalla mensa e una scodellatrice in attesa. M en sa A d d e tto ai tag lian d i A lu n n o A cce tt a zio n e S co de lla trice A lu n n o in co da Ls scodellatrice non può far nulla finchè un alunno non consegna il suo tagliando e si mette in coda. V e rs a n e l pia t to A lu n n o s e rv ito M en sa A d d e tto ai tag lian d i C o n s u m a zio n e A lu n n o A lu n n o s a zio A cce tt a zio n e S co de lla trice A lu n n o in co da V e rs a n e l pia t to A lu n n o s e rv ito C o n s u m a zio n e A lu n n o s a zio Reti di Petri 11 A questo punto lalunno può mangiare il suo meritato ( sic !!! ) pranzo M en sa A d d e tto ai tag lian d i A lu n n o A cce tt a zio n e S co de lla t rice A lu n n o in coda V e rs a n e l pia tt o A lu n n o s e rv it o C o n s u m a zio n e A lu n n o s a zio A voi adesso il divertimento di riprendere i grafi dei paragrafi precedenti e, seguendo levoluzione dei vari processi mettere, passo dopo passo, i pallini ai punti giusti. cuoco libero O R DINE cuoco libero O R DINE RICH IE STA RICH IE STA camer iere libero P R EP AR AZIO N E camer iere libero P R EP AR AZIO N E O RD IN AZIO N E O RD IN AZIO N E piatto morto cucina libera cameriere in attesa CUOCE piatto morto cucina libera cameriere in attesa S E RV E AL TAV O LO CUOCE S E RV E AL TAV O LO cibo cotto pr anz o servito cibo cotto pr anz o servito clienti P R EP AR AZIO N E V ASS O IO P R EP AR AZIO N E V ASS O IO clienti O R DIN AZIO N E O R DIN AZIO N E V AS SO IO sul banco clienti in attesa V AS SO IO sul banco clienti in attesa CO N SU MAZIO NE Condizioni all’evento ORDINAZIONE CO N SU MAZIO NE Condizioni all’evento PREPARAZIONE cliente saz io cliente saz io Reti di Petri 12 cuoco libero O R DINE cuoco libero O RD IN E RICH IE STA R IC HIES TA camer iere libero P R EP AR AZIO N E cameriere libero P R EP AR AZIO N E O RD IN AZIO N E O R DINAZIO N E piatto morto cucina libera cameriere in attesa CUOCE piatto morto cucina libera camer ier e in attesa S E RV E AL TAV O LO C UO C E SE R VE AL TAV O LO cibo cotto pr anz o servito cibo cotto pranz o ser vito clienti P R EP AR AZIO N E V ASS O IO clienti P R EP AR AZIO N E V ASS O IO O R DIN AZIO N E O R DINAZIO N E V AS SO IO sul banco V AS SO IO sul banco clienti in attesa clienti in attesa CO N SU MAZIO NE Condizioni all’evento PREPARAZIONE VASSOIO Condizioni all’evento CUOCE C O NS UMAZIO N E cliente saz io cliente saz io cuoco libero O RD IN E cuoco libero O R DINE R IC HIES TA RICH IE STA cameriere libero P R EP AR AZIO N E camer iere libero P R EP AR AZIO N E O R DINAZIO N E O RD IN AZIO N E piatto morto cucina libera camer ier e in attesa C UO C E piatto morto SE R VE AL TAV O LO cucina libera cameriere in attesa CUOCE S E RV E AL TAV O LO cibo cotto pranz o ser vito cibo cotto pr anz o servito clienti P R EP AR AZIO N E V ASS O IO clienti P R EP AR AZIO N E V ASS O IO O R DINAZIO N E O R DIN AZIO N E V AS SO IO sul banco clienti in attesa V AS SO IO sul banco clienti in attesa C O NS UMAZIO N E CO N SU MAZIO NE Condizioni all’evento SERVE AL TAVOLO cliente saz io Condizioni all’evento CONSUMAZIONE cliente saz io Reti di Petri 13 7) Ci siamo fermati tutti in mensa perché un professore ci aveva dato il compito di svolgere un lavoro di gruppo. Dobbiamo preparare un cartellone su cui incollare una relazione e delle foto, il tutto presentato con un bel titolo e delle frecce di collegamento. la vo ro d i g rup p o A B C ric e rc a te s to ric e rc a fo to s c rive re tito lo fo to c a rte llo ne c o n tito lo te s to Ci dividiamo in tre gruppi: A prepara la relazione, B le foto e C il cartellone vero e proprio. A s s e m bla g g io c a rte llo ne finito In questo modo ci siamo divisi in tre gruppi ma non sappiamo ancora bene cosa deve fare ciascuno. Entriamo nellevento Ricerca foto ed espandiamolo proprio come abbiamo sempre fatto in Program Solving con lapproccio top down o per raffinamenti successivi. Chiaramente dobbiamo usare un formalismo diverso da quello precedente ma restiamo sempre nelle RdP. Per assolvere al compito Ricerca foto dobbiamo sfogliare delle riviste, trovare le foto appropriate, scannerizzarle ,poiché la rivista non è ritagliabile e poi stamparle a colori. Disegno la RdP corrispondente incorniciando tutto in un grande rettangolo che chiameremo Ricerca foto . In ingresso avremo il gruppo A e in uscita la foto pronta, proprio come allentrata e alluscita dellevento Ricerca foto nel grafo precedente più grossolano. R icer ca fo to A R ivis ta s fogliare foto trova ta s can n e r f oto n e l Pc s tam pa foto Reti di Petri 14 S C A NNER La foto così come ci appare sul video dopo averla scannerizzata però non ci piace molto, possiamo modificarla espandendo la condizione foto nel Pc che si troverà in un grande cerchio con levento scanner in ingresso e stampa in uscita e s p a n s ion e foto n e l P c fo to acqu is ita Modifica foto ritocca ta S tam pa B r ice r ca te s to En ciclo pe dia S foglio Allo stesso modo decidiamo cosa deve fare il gruppo B. Prende unenciclopedia, la sfoglia, trova il testo che interessa, lo riassume , lo inserisce nel computer e lo stampa. te s to trovato R ias s u n to te s to s u Pc T es to s u P C te s to s u d is c o Siamo molto precisi nei nostri lavori e quindi indichiamo anche come vogliamo produrre il nostro testo: chiaramente useremo Word e per sicurezza memorizzeremo il testo anche su dischetto. s ta m pa testo A4 Nel frattempo il gruppo C ha comperato il foglio di grande formato e ha scritto il titolo. Potete tenere le espansioni successive oppure potete ricomporre tutto in un unico grande grafo. Le operazioni di espansione che abbiamo compiuto sugli eventi e sulle condizioni si chiama MORFISMO. Reti di Petri 15 8) Il nostro laboratorio è un po povero e possiede due PC ma una sola stampante. I due gruppi A e B hanno però bisogno entrambi di questa stessa risorsa . Infatti questa è una risorsa condivisa dal processo Lavoro di gruppo. 1° P C 2° P C F o to s u P C T e s to s u P C P ro va s u s c he rm o S tam p ante F ile O K P ro va s u s c he rm o S tam p ante F ile O K M io T urno M io T urno S tam p a d e f initiva S ta m p a d e f initiva F o to s ta m p ata T e s to s tam p ato E quindi necessario che i due gruppi si mettano daccordo e decidano in che ordine usare la stampante, ovvero stabiliscano le condizioni in base alle quali ,amichevolmente , si dividano i tempi duso della risorsa comune ed evitino quindi di arrivare alle mani e usare la rissa come metodo di risoluzione dei conflitti !!! . Detto per inciso, sprecherebbero tempo prezioso della risorsa unica e condivisa , la stampante, che resterebbe ferma per tutto il tempo della rissa e della proclamazione del vincitore. 1° PC 2° PC F o to s u P C P ro va s u s c he rm o T e s to s u P C P ro va s u s c he rm o S tam p ante F ile O K F ile O K M io T urno M io T urno S tam p a d e finitiva F o to s tam p ata T e s to s tam p ato Reti di Petri 16 Provate voi a risolvere il conflitto, inserendo i pallini neri prima della fase di stampa e obbligando i due gruppi a fare dei turni.... PRIMO TURNO 1° PC 2° PC F o to s u P C P ro va s u s c he rm o T e s to s u P C P ro va s u s c he rm o S tam p ante F ile O K F ile O K M io T urno M io T urno S tam p a d e finitiva F o to s tam p ata T e s to s tam p ato SECONDO TURNO 1° PC 2° PC F o to s u P C P ro va s u s c he rm o T e s to s u P C P ro va s u s c he rm o S tam p ante F ile O K F ile O K M io T urno M io T urno S tam p a d e finitiva F o to s tam p ata T e s to s tam p ato Credits Un grazie grosso così allIng Mandelli che ha scritto il testo dellunità e agli alunni Arabsolgar, Cucci, Incognito, Petrelli e Viappiani (rigorosamente in ordine alfabetico), che hanno disegnato i diagrammi. Il corso di informatica Reti di Petri 17