199 resultados para GPGPU, CUDA, OpenCL, Programmazione Parallela
Resumo:
Questa tesi prende spunto da altri studi realizzati nel campo delle esattamente nel campo delle “Swam Intelligence”, una branca delle intelligenze artificiali prende spunto dal comportamento di animali sociali, sopratutto insetti come termini, formiche ed api, per trarne interessanti metafore per la creazione di algoritmi e tecniche di programmazione. Questo tipo di algoritmi, come per gli esempi tratti dalla biologia, risultano dotati di interessanti proprietà adatte alla risoluzione di certi problemi nell'ambito dell'ingegneria. Lo scopo della tesi è quello di mostrare tramite un esempio pratico le proprietà dei sistemi sviluppati tramite i principi delle Swarm Intelligence, evidenziando la flessibilità di questi sistemi. Nello specifico, la mia tesi analizzerà il problema della suddivisione del lavoro in una colonia di formiche, fornendo un esempio pratico quale il compito di cattura di prede in un determinato ambiente. Ho sviluppato un'applicazione software in Java che simula tale comportamento, i dati utilizzati durante le diverse simulazioni possono essere modificati tramite file di testo, in modo da ottenere risultati validi per diversi contesti.
Resumo:
La dieta, nell’antica medicina greca, rappresentava il complesso delle norme di vita, come l’alimentazione, l’attività fisica, il riposo, atte a mantenere lo stato di salute di una persona. Al giorno d’oggi le si attribuisce un significato fortemente legato all’alimentazione, puo` riferirsi al complesso di cibi che una persona mangia abitualmente oppure, con un messaggio un po' più moderno, ad una prescrizione di un regime alimentare da parte di un medico. Ogni essere umano mangia almeno tre volte al giorno, ognuno in base al proprio stile di vita, cultura, età, etc. possiede differenti abitudini alimentari che si ripercuotono sul proprio stato di salute. Inconsciamente tutti tengono traccia degli alimenti mangiati nei giorni precedenti, chi più chi meno, cercando di creare quindi una pianificazione di cosa mangiare nei giorni successivi, in modo da variare i pasti o semplicemente perchè si segue un regime alimentare particolare per un certo periodo. Diventa quindi fondamentale tracciare questa pianificazione, in tal modo si puo' tenere sotto controllo la propria alimentazione, che è in stretta relazione con il proprio stato di salute e stress, e si possono applicare una serie di aggiustamenti dove necessario. Questo è quello che cerca di fare il “Menu Planning”, offrire una sorta di guida all’alimentazione, permettendo così di aver sotto controllo tutti gli aspetti legati ad essa. Si pensi, ad esempio, ai prezzi degli alimenti, chiunque vorrebbe minimizzare la spesa, mangiare quello che gli piace senza dover per forza rinunciare a quale piccolo vizio quotidiano. Con le tecniche di “Menu Planning” è possibile avere una visione di insieme della propria alimentazione. La prima formulazione matematica del “Menu Planning” (allora chiamato diet problem) nacque durante gli anni ’40, l’esercito Americano allora impegnano nella Seconda Guerra Mondiale voleva abbassare i costi degli alimenti ai soldati mantenendo però inalterata la loro dieta. George Stingler, economista americano, trovò una soluzione, formulando un problema di ottimizzazione e vincendo il premio Nobel in Economia nel 1982. Questo elaborato tratta dell’automatizzazione di questo problema e di come esso possa essere risolto con un calcolatore, facendo soprattutto riferimento a particolari tecniche di intelligenza artificiale e di rappresentazione della conoscenza, nello specifico il lavoro si è concentrato sulla progettazione e sviluppo di un ES case-based per risolvere il problema del “Menu Planning”. Verranno mostrate varie tecniche per la rappresentazione della conoscenza e come esse possano essere utilizzate per fornire supporto ad un programma per elaboratore, partendo dalla Logica Proposizionale e del Primo Ordine, fino ad arrivare ai linguaggi di Description Logic e Programmazione Logica. Inoltre si illustrerà come è possibile raccogliere una serie di informazioni mediante procedimenti di Knowledge Engineering. A livello concettuale è stata introdotta un’architettura che mette in comunicazione l’ES e un Ontologia di alimenti con l’utilizzo di opportuni framework di sviluppo. L’idea è quella di offrire all’utente la possibilità di vedere la propria pianificazione settimanale di pasti e dare dei suggerimenti su che cibi possa mangiare durante l’arco della giornata. Si mostreranno quindi le potenzialità di tale architettura e come essa, tramite Java, riesca a far interagire ES case-based e Ontologia degli alimenti.
Resumo:
Negli ultimi anni si è sviluppata una forte sensibilità nei confronti del rischio che il dissesto idrogeologico comporta per il territorio, soprattutto in un paese come il nostro, densamente abitato e geologicamente fragile. Il rischio idrogeologico In Italia infatti è diffuso in modo capillare e si presenta in modo differente a seconda dell’assetto geomorfologico del territorio. Tra i fattori naturali che predispongono il nostro territorio a frane ed alluvioni, rientra la conformazione geologica e geomorfologica, caratterizzata da un’orografia giovane e da rilievi in via di sollevamento. A seguito del verificarsi di una serie di eventi calamitosi (Piemonte 1994, Campania 1998 e 1999, Sovereto 2000, Alpi centrali 2000 e 2002) sono state emanate leggi specifiche finalizzate all’individuazione e all’applicazione di norme, volte a prevenire e contenere i gravi effetti derivanti dai fenomeni di dissesto. Si fa riferimento in particolare, alle leggi n°267 del 3/08/1998 e 365/2000 che hanno integrato la legge 183/1989. In questo modo gli enti territoriali (Regioni, Autorità di bacino) sono stati obbligati a predisporre una adeguata cartografia con perimetrazione delle aree a differente pericolosità e rischio. Parallelamente continuano ad essere intrapresi, promossi e finanziati numerosi studi scientifici volti allo studio dei fenomeni ed alla definizione più puntuale delle condizioni di rischio, oltre alle iniziative volte alla creazione di un efficace sistema di allertamento e di sorveglianza dei fenomeni e alla messa a punto di una pianificazione di emergenza volta a coordinare in modo efficace la risposta delle istituzioni agli eventi. In questo contesto gli studi su validi approcci metodologici per l’analisi e la valutazione del rischio possono fornire un supporto al processo decisionale delle autorità preposte alla gestione del territorio, identificando gli scenari di rischio e le possibili strategie di mitigazione, e individuando la soluzione migliore in termini di accettabilità sociale e convenienza economica. Nel presente elaborato si vuole descrivere i temi relativi alla valutazione della pericolosità, del rischio e della sua gestione, con particolare attenzione ai fenomeni di instabilità dei versanti e nello specifico ai fenomeni di crollo da pareti rocciose che interessano il territorio della Provincia Autonoma di Bolzano. Il fenomeno della caduta massi infatti è comunemente diffuso in tutte le regioni di montagna e lungo le falesie costiere, ed in funzione dell’elevata velocità con cui si manifesta può costituire una costante fonte di pericolo per le vite, i beni e le attività umane in zone generalmente molto attive dal punto di vista del turismo e delle grandi vie di comunicazione. Il territorio della Provincia Autonoma di Bolzano è fortemente interessato da questo problema, sia per la morfologia montuosa della provincia che per le infrastrutture che sempre più occupano zone di territorio un tempo poco urbanizzate. Al fine di pervenire ad una legittima programmazione delle attività di previsione e prevenzione, il Dipartimento dei Lavori Pubblici della Provincia, ha scelto di utilizzare una strategia che prevedesse un insieme di attività dirette allo studio ed alla determinazione delle cause dei fenomeni calamitosi, alla identificazione dei rischi, ed alla determinazione delle zone del territorio soggette ai rischi stessi. E’ nato così, con l’operatività dell’Ufficio Geologia e Prove Materiali, il supporto del Dipartimento Opere Pubbliche e della Ripartizione Protezione Civile e la collaborazione scientifica del DISTART – Università degli Studi di Bologna, Alma Mater Studiorum, il progetto VISO che riguarda i pericoli generati da frane di crollo, ribaltamento, scivolamento di porzioni di pareti rocciose e caduta massi. Il progetto ha come scopo la valutazione del pericolo, della vulnerabilità e del rischio e dell’effettiva funzionalità delle opere di protezione contro la caduta massi lungo la strada statale del Brennero. Il presente elaborato mostra l’iter per l’individuazione del rischio specifico che caratterizza un particolare tratto stradale, così come è stato pensato dalla Provincia Autonoma di Bolzano all’interno di una strategia di previsione e prevenzione, basata su metodi il più possibile oggettivi, ed estesa all’intera rete stradale di competenza provinciale. Si esamina l’uso di metodologie diverse per calcolare l’intensità di un fenomeno franoso che potrebbe potenzialmente svilupparsi su un versante e si osserva in che modo la presenza di opere di protezione passiva influisce sull’analisi di pericolosità. Nel primo capitolo viene presentata una panoramica sui fenomeni di crollo descrivendo i fattori principali che li originano e gli interventi di protezione posti a difesa del versante. Si esaminano brevemente le tipologie di intervento, classificate in opere attive e passive, con particolare attenzione alle barriere paramassi., che si collocano tra gli interventi di difesa passivi e che stanno diventando il tipo di intervento più frequentemente utilizzato. Nel capitolo vengono descritte dal punto di vista progettuale, prendendo in esame anche la normativa di riferimento nonché le nuove linee guida per la certificazione CE delle barriere, nate negli ultimi anni per portare ad una facile comparabilità dei vari prodotti sottoposti ad impatti normalizzati, definendo con chiarezza i livelli energetici ai quali possono essere utilizzati i vari prodotti e, nel contempo, fornendo informazioni assolutamente indispensabili per la buona progettazione degli stessi. Nel capitolo successivo si prendono in esame i temi relativi alla valutazione della pericolosità e del rischio, l’iter procedurale di analisi del rischio adottato dalla Provincia Autonoma di Bolzano in relazione alle frane da crollo che investono le strade della rete provinciale ed in particolare viene descritto il progetto VISO (Viability Information Operating System), nato allo scopo di implementare un catasto informatizzato che raccolga indicazioni sul patrimonio delle opere di protezione contro la caduta massi e di rilevare e valutare il pericolo, la vulnerabilità, il rischio e l’effettiva funzionalità delle opere di protezione contro la caduta massi lungo le strade statali e provinciali. All’interno dello stesso capitolo si espone come, nell’ambito del progetto VISO e grazie alla nascita del progetto europeo Paramount ” (Improved accessibility reliability and safety of Alpine tran sport infrastructure related to mountainous hazard in a changing climate) si è provveduto, con l’aiuto di una collega del corso di laurea, a raccogliere i dati relativi all’installazione delle barriere paramassi sul territorio della Provincia Autonoma di Bolzano. Grazie ad un’analisi di archivio effettuata all’interno delle diverse sedi del servizio strade della Provincia Autonoma di Bolzano, si è presa visione (laddove presenti) delle schede tecniche delle barriere collocate sul territorio, si sono integrati i dettagli costruttivi contattando le principali ditte fornitrici e si è proceduto con una classificazione delle opere, identificando alcuni modelli di “barriere-tipo che sono stati inseriti nel database PARAMOUNT, già creato per il progetto VISO. Si è proseguito associando a tali modelli le barriere provviste di documentazione fotografica rilevate in precedenza dall’istituto di Geologia della Provincia Autonoma di Bolzano e inserite in VISO e si è valutata la corrispondenza dei modelli creati, andando a verificare sul posto che le barriere presenti sul territorio ed inserite nel database (tramite modello), effettivamente coincidessero, nelle misure e per le caratteristiche geometrico-costruttive, ai modelli a cui erano state associate. Inoltre sono stati considerati i danni tipici a cui può essere soggetta una barriera paramassi durante il suo periodo di esercizio poiché tali difetti andranno ad incidere sulla valutazione dell’utilità del sistema di difesa e di conseguenza sulla valutazione della pericolosità del versante(H*). Nel terzo capitolo si è esposta una possibile integrazione, mediante il software di calcolo RocFall, della procedura di valutazione dell’analisi di pericolosità di un versante utilizzata nell’ambito del progetto VISO e già analizzata in dettaglio nel secondo capitolo. Il software RocFall utilizza un metodo lumped mass su schema bidimensionale basato su ipotesi semplificative e consente di effettuare simulazioni probabilistiche di fenomeni di caduta massi, offrendo importanti informazioni sull’energia che si sviluppa durante il crollo, sulle velocità raggiunte e sulle altezze di rimbalzo lungo tutto il versante considerato, nonché sulla distanza di arresto dei singoli massi. Si sono realizzati dei profili-tipo da associare al versante, considerando il pendio suddiviso in tre parti : parete verticale (H = 100 m) lungo la quale si sviluppa il movimento franoso; pendio di altezza H = 100 m e angolo pari ai quattro valori medi della pendenza indicati nella scheda di campagna; strada (L = 10 m). Utilizzando il software Cad si sono realizzati 16 profili associando la pendenza media del versante a 4 morfologie individuate grazie all’esperienza dell’Istituto di Geologia e Prove materiali della Provincia Autonoma di Bolzano; si è proceduto importando tali profili in RocFall dove sono state aggiunte informazioni riguardanti la massa del blocco e l’uso del suolo, ottenendo 256 profili-tipo ai quali è stata associata una sigla definita come segue : morfologia (1, 2, 3, 4) _ pendenza (37, 53, 67, 83 gradi) _ uso del suolo (A, B, C, D) _ massa (a,b,c,d). Fissando i parametri corrispondenti al peso del masso ( inserito al solo scopo di calcolare la velocità rotazionale e l’energia cinetica ) e considerando, per ogni simulazione, un numero di traiettorie possibili pari a 1000, avendo osservato che all’aumentare di tale numero (purchè sufficientemente elevato) non si riscontrano variazioni sostanziali nei risultati dell’analisi, si è valutato come i parametri uso del suolo (A;B;C;D), morfologia (1;2;3;4) e pendenza (37°;53°;67°;83°) incidano sulla variazione di energia cinetica, di altezza di rimbalzo e sulla percentuale di massi che raggiunge la strada, scegliendo come punto di riferimento il punto di intersezione tra il pendio e la strada. Al fine di realizzare un confronto tra un profilo reale e un profilo-tipo, sono stati utilizzati 4 profili posti su un versante situato nel Comune di Laives, noto per le frequenti cadute di massi che hanno raggiunto in molti casi la strada. Tali profili sono stati visionati in sede di sopralluogo dove si è provveduto alla compilazione delle schede di campagna (impiegate per valutare l’intensità del fenomeno che potenzialmente si sviluppa dal versante) e all’individuazione dei profili-tipo corrispondenti. Sono state effettuate analisi di simulazione per entrambe le tipologie di profilo, e sono stati confrontati i risultati ottenuti in termini di Energia cinetica; altezza di rimbalzo e percentuale dei blocchi in corrispondenza della strada. I profili reali sono stati importati in RocFal in seguito ad estrapolazione dal modello digitale del terreno (ottenuto da analisi con Laser Scanner) utilizzando l’ estensione Easy Profiler nel software Arcmap. Infine si è valutata la possibilità di collocare eventuali barriere paramassi su un profilo reale, si è proceduto effettuando una analisi di simulazione di caduta massi in RocFall, importando in excel i valori corrispondenti all’andamento dei massimi dell’Energia cinetica e dell’altezza di rimbalzo lungo il pendio che forniscono una buona indicazione circa l´idonea ubicazione delle opere di protezione.
Ripartire dall'esistente Riqualificazione di un quartiere di edilizia residenziale pubblica a Faenza
Resumo:
L’intenzione che ha mosso la ricerca è stata quella di ridare valore alla casa pubblica, perché è un’opportunità per la popolazione, soprattutto per le fasce sociali più deboli e perché non può non essere espressione di qualità architettonica, urbanistica e sociale. A ciò si aggiunge la scelta di un modo di operare sostenibile, dove alle nuove costruzioni si predilige l’idea del recupero. Ecco da dove nasce l’idea di ripartire dall’esistente, scegliendo un’area del sistema urbano di proprietà pubblica, per definire, in una prospettiva di miglioramento, un sistema di strategie di intervento e un progetto di riqualificazione. Capire come agire su un’area di questo tipo, ha stimolato ad una lettura degli interventi statali sul tema dell’edilizia pubblica attraverso le azioni in campo legislativo. La ricerca ha preso poi avvio da una lettura dell’evoluzione del quadro normativo nazionale in materia, per poi concentrarsi sul contesto locale con il racconto dei fatti storici della città di Faenza fino ai giorni nostri attraverso le sue vicende urbanistiche. Una considerazione sulla legislazione passata dà la possibilità di vedere come lo Stato abbia nel tempo prestato attenzione e risposto in maniera diversa al problema della casa. In ogni periodo le iniziative dell’Amministrazione in merito alla programmazione, si mostrano come risultati di una risposta sociale e culturale, rilanciando poi, a seconda del momento, varie tematiche, ieri la carenza degli alloggi, oggi il tema della qualità urbana, del recupero e la necessità di contenere i costi e i consumi energetici. Lo studio si è quindi spostato e concentrato sulle tappe ed i risvolti della programmazione a livello locale, cercando di comprendere, anche sulle carte, il risultato di queste azioni amministrative, si legge come il susseguirsi delle diverse politiche urbanistiche abbia lasciato tracce e segni nel disegno della città. Nel loro esito formale gli interventi hanno assunto un valore nella vicenda della città poiché ne hanno determinato l’espansione in un certo modo. Dopo un lavoro di ricerca di documenti, consultando anche diversi archivi, gli interventi in materia di edilizia residenziale pubblica presenti a Faenza sono stati schedati al fine di creare un repertorio di informazioni riguardanti la localizzazione, la data di costruzione e informazioni riguardanti il tipo di intervento a livello normativo, in questo modo si è potuto inquadrare ciascun quartiere in una determinata stagione di politiche abitative. Queste informazioni sono state poi tradotte in schemi che comprendono tutto il territorio della città fino ad ottenere una visione d’insieme e cogliere le relazioni che i singoli interventi intrattengono con il resto della città. Si esplorano poi le relazioni in base alle stagioni delle politiche abitative e in base ai soggetti che ne hanno promosso la costruzione. La ricerca si propone quindi di riflettere sugli strumenti con cui agire nei casi di degrado, assecondando la logica del recupero e del riuso. Il processo per definire il "come" intervenire ha portato alla creazione di un abaco di possibili strategie di riqualificazione suddivise per grandi tematiche (connessione e mobilità, mixitè funzionale e verde, risparmio energetico, nuovi modi dell’abitare e relazioni e identità). Ogni tematica viene poi declinata in sottotemi che descrivono le operazioni possibili per la rigenerazione, correlati da una definizione e da piccoli progetti applicativi. Ciascun progetto schematizzato è pensato su un’area di edilizia residenziale pubblica di Faenza. Le strategie vengono poi effettivamente applicate ad un caso studio: il PEEP Orto Paganella. Il progetto di riqualificazione si struttura in due parti. Una riguarda l’impianto del quartiere, inserendo un nuovo volume destinato a servizi, l’altra si concentra su un edificio esistente per un progetto di recupero allo scopo di ridare valore al manufatto, riscattarne l’immagine e creare un’offerta abitativa adeguata, che assicuri abitazioni in affitto e tipi di alloggi destinati a nuovi soggetti della popolazione, con le loro specifiche esigenze. Il progetto di riqualificazione si sviluppa a partire dall’orientamento dell’edificio e dei suoi affacci. Viene sviluppato il tema dell’involucro, che circonda l’edificio e si declina sui diversi fronti in modo diverso. La proposta della facciata verso sud, trasparente e aperta sul parco pubblico ritrova la giusta considerazione per l’orientamento, sfruttandone le potenzialità e aprendosi alla vista del parco, mentre il fronte a nord rimane chiuso e protetto. Creando nuovi spazi e nuovi affacci e restituendo una nuova immagine dell’edificio si cerca di stimolare una riappropriazione del senso di appartenenza al quartiere.
Resumo:
Il presente lavoro di tesi ha come punto focale la descrizione, la verifica e la dimostrazione della realizzabilità dei Workflow Patterns di Gestione del Flusso(Control-Flow) e Risorse (Resource) definiti da parte della Workflow Pattern Initiative (WPI)in JOLIE, un innovativo linguaggio di programmazione orientato ai servizi nato nell'ambito del Service Oriented Computing. Il Service Oriented Computing (SOC) è un nuovo modo di pensare la programmazione di applicazioni distribuite, i cui concetti fondamentali sono i servizi e la composizione. L’approccio SOC definisce la possibilità di costruire un’applicazione in funzione dei servizi che ne realizzano il comportamento tramite una loro composizione, definita secondo un particolare flusso di lavoro. Allo scopo di fornire la necessaria conoscenza per capire la teoria, le meccaniche e i costrutti di JOLIE utilizzati per la realizzazione dei pattern, il seguente lavoro di tesi è stato diviso in quattro parti, corrispondenti ad altrettanti capitoli. Nel primo capitolo viene riportata una descrizione generale del SOC e della Business Process Automation (BPA), che costituisce l’ambiente in cui il SOC è inserito. Per questo viene fatta una disamina della storia informatica sui sistemi distribuiti, fino ad arrivare ai sistemi odierni, presentando in seguito il contesto del BPA e delle innovazioni derivanti dalle sue macro-componenti, di cui il SOC fa parte. Continuando la descrizione dell’approccio Service Oriented, ne vengono presentati i requisiti (pre-condizioni) e si cerca di dare una definizione precisa del termine “servizio”, fino all'enunciazione dei principi SOC declinati nell’ottica delle Service Oriented Architectures, presentando in ultimo i metodi di composizione dei servizi, tramite orchestrazione e coreografia. L’ultima sezione del capitolo prende in considerazione il SOC in un’ottica prettamente industriale e ne evidenzia i punti strategici. Il secondo capitolo è incentrato sulla descrizione di JOLIE, gli aspetti fondamentali dell’approccio orientato ai servizi, che ne caratterizzano profondamente la definizione concettuale (SOCK), e la teoria della composizione dei servizi. Il capitolo non si pone come una descrizione esaustiva di tutte le funzionalità del linguaggio, ma considera soprattutto i concetti teorici, le strutture di dati, gli operatori e i costrutti di JOLIE utilizzati per la dimostrazione della realizzabilità dei Workflow Pattern del capitolo successivo. Il terzo capitolo, più lungo e centrale rispetto agli altri, riguarda la realizzazione dei workflow pattern in JOLIE. All'inizio del capitolo viene fornita una descrizione delle caratteristiche del WPI e dei Workflow Pattern in generale. In seguito, nelle due macro-sezioni relative ai Control-Flow e Resource pattern vengono esposte alcune nozioni riguardanti le metodologie di definizione dei pattern (e.g. la teoria sulla definizione delle Colored Petri Nets) e le convezioni adottate dal WPI, per passare in seguito al vero e proprio lavoro (sperimentale) di tesi riguardo la descrizione dei pattern, l’analisi sulla loro realizzabilità in JOLIE, insieme ad un codice di esempio che esemplifica quanto affermato dall'analisi. Come sommario delle conclusioni raggiunte sui pattern, alla fine di ognuna delle due sezioni definite in precedenza, è presente una scheda di valutazione che, con lo stesso metodo utilizzato e definito dalla WPI, permette di avere una rappresentazione generale della realizzabilità dei pattern in JOLIE. Il quarto capitolo riguarda gli esiti tratti dal lavoro di tesi, riportando un confronto tra le realizzazioni dei pattern in JOLIE e le valutazioni del WPI rispetto agli altri linguaggi da loro considerati e valutati. Sulla base di quanto ottenuto nel terzo capitolo vengono definite le conclusioni del lavoro portato avanti sui pattern e viene delineato un’eventuale scenario riguardante il proseguimento dell’opera concernente la validazione ed il completamento della studio. In ultimo vengono tratte alcune conclusioni sia riguardo JOLIE, nel contesto evolutivo del linguaggio e soprattutto del progetto open-source che è alla sua base, sia sul SOC, considerato nell’ambito del BPA e del suo attuale ambito di sviluppo dinamico.
Resumo:
Uno dei principali ambiti di ricerca dell’intelligenza artificiale concerne la realizzazione di agenti (in particolare, robot) in grado di aiutare o sostituire l’uomo nell’esecuzione di determinate attività. A tal fine, è possibile procedere seguendo due diversi metodi di progettazione: la progettazione manuale e la progettazione automatica. Quest’ultima può essere preferita alla prima nei contesti in cui occorra tenere in considerazione requisiti quali flessibilità e adattamento, spesso essenziali per lo svolgimento di compiti non banali in contesti reali. La progettazione automatica prende in considerazione un modello col quale rappresentare il comportamento dell’agente e una tecnica di ricerca (oppure di apprendimento) che iterativamente modifica il modello al fine di renderlo il più adatto possibile al compito in esame. In questo lavoro, il modello utilizzato per la rappresentazione del comportamento del robot è una rete booleana (Boolean network o Kauffman network). La scelta di tale modello deriva dal fatto che possiede una semplice struttura che rende agevolmente studiabili le dinamiche tuttavia complesse che si manifestano al suo interno. Inoltre, la letteratura recente mostra che i modelli a rete, quali ad esempio le reti neuronali artificiali, si sono dimostrati efficaci nella programmazione di robot. La metodologia per l’evoluzione di tale modello riguarda l’uso di tecniche di ricerca meta-euristiche in grado di trovare buone soluzioni in tempi contenuti, nonostante i grandi spazi di ricerca. Lavori precedenti hanno gia dimostrato l’applicabilità e investigato la metodologia su un singolo robot. Lo scopo di questo lavoro è quello di fornire prova di principio relativa a un insieme di robot, aprendo nuove strade per la progettazione in swarm robotics. In questo scenario, semplici agenti autonomi, interagendo fra loro, portano all’emergere di un comportamento coordinato adempiendo a task impossibili per la singola unità. Questo lavoro fornisce utili ed interessanti opportunità anche per lo studio delle interazioni fra reti booleane. Infatti, ogni robot è controllato da una rete booleana che determina l’output in funzione della propria configurazione interna ma anche dagli input ricevuti dai robot vicini. In questo lavoro definiamo un task in cui lo swarm deve discriminare due diversi pattern sul pavimento dell’arena utilizzando solo informazioni scambiate localmente. Dopo una prima serie di esperimenti preliminari che hanno permesso di identificare i parametri e il migliore algoritmo di ricerca, abbiamo semplificato l’istanza del problema per meglio investigare i criteri che possono influire sulle prestazioni. E’ stata così identificata una particolare combinazione di informazione che, scambiata localmente fra robot, porta al miglioramento delle prestazioni. L’ipotesi è stata confermata applicando successivamente questo risultato ad un’istanza più difficile del problema. Il lavoro si conclude suggerendo nuovi strumenti per lo studio dei fenomeni emergenti in contesti in cui le reti booleane interagiscono fra loro.
Resumo:
Nell’ultimo decenno si è assisitito ad una frenetica evoluzione delle tecnologie di connessione e trasferimento dati, dagli impianti di fibra ottica sempre più diffusi e performanti, alle varie tecnologie mobile UMTS e LTE. Tutto ciò ha permesso a sempre più persone di poter spendere una maggiore fetta del proprio tempo sulla rete sia per svago che per lavoro. Questo ha portato col tempo l’utente interattivo alla ricerca di servizi remoti che prima usufruiva in locale, sia per motivi di portabilità e di interconnessione, sia per una semplice questione di sincronizzazione fra i vari dispositivi posseduti. Il presente progetto di tesi si pone come obiettivo di indagare con occhio ingegneristico all’evoluzione della struttura del web fino ad identificare e analizzare l’attuale necessità di poter avere in rete tutti quei servizi anche completi e strutturalmente complessi che prima si aveva sul proprio desktop; tutto ciò attraverso l’esempio di un nuovo linguaggio di sviluppo per applicazioni web strutturate proposto da Google: DART. In questa analisi non si potrà prescindere dallo studio attento della tecnologia che sin dagli inizi della rete ha fatto da struttura al web ovvero l’Html e il suo ultimo standard Hmtl5. Nella prima parte verrà mostrata, attraverso un breve percorso, la nascita e lo sviluppo del web, sino ai giorni nostri. Si effettuerà quindi una panoramica, rivisitando tutti più importanti passi che hanno portato la rete internet ad essere ciò che oggi utilizziamo, ponendo una particolare attenzione alle attuali esigenze di progettazione della struttura dei servizi web. Nel secondo capitolo viene introdotta la tecnologia a base del web, l’Html; attraverso una breve analisi dell’evoluzione di quest’ultima si arriverà sino all’attuale HTML5 e alle funzionalità offerte nell’ottica della programmazione web strutturata. Nel terzo capitolo si analizzerà in maniera più approfondita la necessità di un web strutturato e le potenzialità del progetto Dart attraverso alcuni esempi esplicativi. Infine si trarranno alcune conclusioni sull’attuale situazione del web, sulla necessità di un web strutturato e sulla possibilità di riuscita del progetto Dart.
Resumo:
La tesi si propone di studiare il rapporto tra i due linguaggi di programmazione più diffusi per dispositivi portatili, e si concentra in particolare sul porting dal diffusissimo linguaggio Java all'emergente Objective-C. Strumenti come J2ObjC e Codename One saranno studiati e comparati.
Resumo:
L’obbiettivo di questa tesi consiste in un analisi dello sviluppo di applicazioni mobile, rivolgendo particolare attenzione riguardo a quelle soluzioni che consentono di astrarre dall’ambiente su cui effettivamente queste verranno eseguite, per poi prendere in esame la piattaforma e il linguaggio Mobl. Sarà quindi necessario effettuare una panoramica sullo stato attuale del mercato, introducendo i diversi sistemi presenti e le metodologie proposte per la costruzione del software. Da questo studio sarà possibile ricavare i pregi e i difetti di una programmazione nativa. Volendo, in seguito, ricercare un processo di produzione software che favorisca un’indipendenza dai sistemi precedentemente descritti, verranno illustrati alcuni tra i più importanti Mobile Frameworks e tra questi si prenderà in esame Mobl, che si contraddistingue grazie a caratteristiche peculiari.
Resumo:
Web is constantly evolving, thanks to the 2.0 transition, HTML5 new features and the coming of cloud-computing, the gap between Web and traditional desktop applications is tailing off. Web-apps are more and more widespread and bring several benefits compared to traditional ones. On the other hand reference technologies, JavaScript primarly, are not keeping pace, so a paradim shift is taking place in Web programming, and so many new languages and technologies are coming out. First objective of this thesis is to survey the reference and state-of-art technologies for client-side Web programming focusing in particular on what concerns concurrency and asynchronous programming. Taking into account the problems that affect existing technologies, we finally design simpAL-web, an innovative approach to tackle Web-apps development, based on the Agent-oriented programming abstraction and the simpAL language. == Versione in italiano: Il Web è in continua evoluzione, grazie alla transizione verso il 2.0, alle nuove funzionalità introdotte con HTML5 ed all’avvento del cloud-computing, il divario tra le applicazioni Web e quelle desktop tradizionali va assottigliandosi. Le Web-apps sono sempre più diffuse e presentano diversi vantaggi rispetto a quelle tradizionali. D’altra parte le tecnologie di riferimento, JavaScript in primis, non stanno tenendo il passo, motivo per cui la programmazione Web sta andando incontro ad un cambio di paradigma e nuovi linguaggi e tecnologie stanno spuntando sempre più numerosi. Primo obiettivo di questa tesi è di passare al vaglio le tecnologie di riferimento ed allo stato dell’arte per quel che riguarda la programmmazione Web client-side, porgendo particolare attenzione agli aspetti inerenti la concorrenza e la programmazione asincrona. Considerando i principali problemi di cui soffrono le attuali tecnologie passeremo infine alla progettazione di simpAL-web, un approccio innovativo con cui affrontare lo sviluppo di Web-apps basato sulla programmazione orientata agli Agenti e sul linguaggio simpAL.
Resumo:
Negli ultimi anni le Web application stanno assumendo un ruolo sempre più importante nella vita di ognuno di noi. Se fino a qualche anno fa eravamo abituati ad utilizzare quasi solamente delle applicazioni “native”, che venivano eseguite completamente all’interno del nostro Personal Computer, oggi invece molti utenti utilizzano i loro vari dispositivi quasi esclusivamente per accedere a delle Web application. Grazie alle applicazioni Web si sono potuti creare i cosiddetti social network come Facebook, che sta avendo un enorme successo in tutto il mondo ed ha rivoluzionato il modo di comunicare di molte persone. Inoltre molte applicazioni più tradizionali come le suite per ufficio, sono state trasformate in applicazioni Web come Google Docs, che aggiungono per esempio la possibilità di far lavorare più persone contemporanemente sullo stesso documento. Le Web applications stanno assumendo quindi un ruolo sempre più importante, e di conseguenza sta diventando fondamentale poter creare delle applicazioni Web in grado di poter competere con le applicazioni native, che siano quindi in grado di svolgere tutti i compiti che sono stati sempre tradizionalmente svolti dai computer. In questa Tesi ci proporremo quindi di analizzare le varie possibilità con le quali poter migliorare le applicazioni Web, sia dal punto di vista delle funzioni che esse possono svolgere, sia dal punto di vista della scalabilità. Dato che le applicazioni Web moderne hanno sempre di più la necessità di poter svolgere calcoli in modo concorrente e distribuito, analizzeremo un modello computazionale che si presta particolarmente per progettare questo tipo di software: il modello ad Attori. Vedremo poi, come caso di studio di framework per la realizzazione di applicazioni Web avanzate, il Play framework: esso si basa sulla piattaforma Akka di programmazione ad Attori, e permette di realizzare in modo semplice applicazioni Web estremamente potenti e scalabili. Dato che le Web application moderne devono avere già dalla nascita certi requisiti di scalabilità e fault tolerance, affronteremo il problema di come realizzare applicazioni Web predisposte per essere eseguite su piattaforme di Cloud Computing. In particolare vedremo come pubblicare una applicazione Web basata sul Play framework sulla piattaforma Heroku, un servizio di Cloud Computing PaaS.
Resumo:
La crescente disponibilità di dispositivi meccanici e -soprattutto - elettronici le cui performance aumentano mentre il loro costo diminuisce, ha permesso al campo della robotica di compiere notevoli progressi. Tali progressi non sono stati fatti unicamente per ciò che riguarda la robotica per uso industriale, nelle catene di montaggio per esempio, ma anche per quella branca della robotica che comprende i robot autonomi domestici. Questi sistemi autonomi stanno diventando, per i suddetti motivi, sempre più pervasivi, ovvero sono immersi nello stesso ambiente nel quale vivono gli essere umani, e interagiscono con questi in maniera proattiva. Essi stanno compiendo quindi lo stesso percorso che hanno attraversato i personal computer all'incirca 30 anni fa, passando dall'essere costosi ed ingombranti mainframe a disposizione unicamente di enti di ricerca ed università, ad essere presenti all'interno di ogni abitazione, per un utilizzo non solo professionale ma anche di assistenza alle attività quotidiane o anche di intrattenimento. Per questi motivi la robotica è un campo dell'Information Technology che interessa sempre più tutti i tipi di programmatori software. Questa tesi analizza per prima cosa gli aspetti salienti della programmazione di controllori per robot autonomi (ovvero senza essere guidati da un utente), quindi, come l'approccio basato su agenti sia appropriato per la programmazione di questi sistemi. In particolare si mostrerà come un approccio ad agenti, utilizzando il linguaggio di programmazione Jason e quindi l'architettura BDI, sia una scelta significativa, dal momento che il modello sottostante a questo tipo di linguaggio è basato sul ragionamento pratico degli esseri umani (Human Practical Reasoning) e quindi è adatto alla implementazione di sistemi che agiscono in maniera autonoma. Dato che le possibilità di utilizzare un vero e proprio sistema autonomo per poter testare i controllori sono ridotte, per motivi pratici, economici e temporali, mostreremo come è facile e performante arrivare in maniera rapida ad un primo prototipo del robot tramite l'utilizzo del simulatore commerciale Webots. Il contributo portato da questa tesi include la possibilità di poter programmare un robot in maniera modulare e rapida per mezzo di poche linee di codice, in modo tale che l'aumento delle funzionalità di questo risulti un collo di bottiglia, come si verifica nella programmazione di questi sistemi tramite i classici linguaggi di programmazione imperativi. L'organizzazione di questa tesi prevede un capitolo di background nel quale vengono riportare le basi della robotica, della sua programmazione e degli strumenti atti allo scopo, un capitolo che riporta le nozioni di programmazione ad agenti, tramite il linguaggio Jason -quindi l'architettura BDI - e perché tale approccio è adatto alla programmazione di sistemi di controllo per la robotica. Successivamente viene presentata quella che è la struttura completa del nostro ambiente di lavoro software che comprende l'ambiente ad agenti e il simulatore, quindi nel successivo capitolo vengono mostrate quelle che sono le esplorazioni effettuate utilizzando Jason e un approccio classico (per mezzo di linguaggi classici), attraverso diversi casi di studio di crescente complessità; dopodiché, verrà effettuata una valutazione tra i due approcci analizzando i problemi e i vantaggi che comportano questi. Infine, la tesi terminerà con un capitolo di conclusioni e di riflessioni sulle possibili estensioni e lavori futuri.