Università degli studi di Cagliari Facoltà di Ingegneria Dipartimento di Ingegneria Elettronica Gruppo di Elettromagnetismo Metodo di Progettazione Automatica.

Slides:



Advertisements
Presentazioni simili
PARI/GP Introduzione.
Advertisements

Prof. Salvatore Di Gregorio Dr. William Spataro Dr. Donato D’Ambrosio
Interazione Uomo - Macchina
Analisi e progettazione
PHP.
Hard disk.
Algoritmi e Programmazione
Realizzazione di un robot mobile controllato mediante comandi labiali
Algoritmi e Dimostrazioni Stefano Berardi
Gestione dei dati e della conoscenza (agenti intelligenti) M.T. PAZIENZA a.a
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Informatica Problema Algoritmo Programma
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Processi Aleatori : Introduzione – Parte I
IL PATRIMONIO DI DATI - LE BASI DI DATI. Il patrimonio dei dati Il valore del patrimonio di dati: –Capacità di rispondere alle esigenze informative di.
FONDAMENTI DI INFORMATICA III A3A1-1 Realtà e Modello MODELLI E METODOLOGIE PER LA PROGETTAZIONE LOGICA DI SISTEMI INFORMATIVI PER LUFFICIO Argomento 3.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
Università di Padova Dipartimento di Ingegneria dellInformazione Analisi della Qualità del Servizio in Reti Radio Ad Hoc Special Interest Group on NEtworking.
Introduzione alla programmazione ll
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2 1 JAVA: obiettivi di progetto del linguaggio Nota storica: Il linguaggio JAVA (inizialmente.
Algoritmi Genetici Prof. Salvatore Di Gregorio Dr. William Spataro Dr. Donato DAmbrosio Modelli Computazionali per Sistemi Complessi A.A. 2003/2004 Università
ALGORITMI E PROGRAMMAZIONE STRUTTURATA
Modelli simulativi per le Scienze Cognitive
Intelligenza Artificiale Algoritmi Genetici
CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.
Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.
LINGUAGGI DI PROGRAMMAZIONE
Algoritmi Genetici Alessandro Bollini
Elementi di Informatica
Candidato : Giuseppe Circhetta Relatori :
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
CODIFICA Da flow-chart a C++.
Un esempio: Calcolo della potenza n-esima di un numero reale
Statistica Che cos’è?.
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
Biologia.blu B - Le basi molecolari della vita e dell’evoluzione
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
1 Esercitazione Sistemi distribuiti: sistemi che risisedono su più calcolatori interconnessi da una rete di comunicazione Algoritmi distribuiti: programmi.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
LINGUAGGI DI PROGRAMMAZIONE Per comunicare comandi e dati ad un computer occorre un particolare linguaggio detto LINGUAGGIO MACCHINA, che è un insieme.
MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni Reti di Calcolatori L.S. 2005/2006.
Alessandro Bollini Dipartimento di Informatica e Sistemistica Università di Pavia Via Ferrata, Pavia Algoritmi Evolutivi.
Gli algoritmi genetici (GA)1 Si ispirano al meccanismo dell’evoluzione Viene creata una popolazione di individui che si riproduce ed evolve, di generazione.
Programmazione Attività di progettazione ed implementazione di programmi I programmi permettono di realizzare funzioni complesse su un hardware in grado.
L’esecuzione dei programmi
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Master MATITCiclo di vita del Sistema Informativo1 CICLO DI VITA DEL SISTEMA INFORMATIVO.
Progetto RE.VE.N.GE. MQ REliable and VErsatile News delivery support for aGEncies Sistema di Distribuzione Reti di Calcolatori LS – Prof. Antonio Corradi.
UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA Dispositivi per il.
Il software Claudia Raibulet
SnippetSearch Database di snippet bilanciato e replicato di Gianluigi Salvi Reti di calcolatori LS – Prof. A.Corradi.
Esercizi.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Diagrammi a blocchi.
Informatica e Informatica di Base
Università degli Studi di Firenze Facoltà di Ingegneria Dipartimento di Sistemi e Informatica Corso di Laurea in Ingegneria Informatica Modelli e strumenti.
Scambio Moduli Automatizzato
Computazione Naturale AA
Programmazione dei Calcolatori Elettronici
Le funzioni.
Centro Studi Sistemi Idrici Corso sull’utilizzo dei modelli EPR (Evolutionary Polynomial Regression) 21 maggio 2010 Dipartimento di Ingegneria dell’Università.
IL PLC AUTOMAZIONE INDUSTRIALE
Laboratorio di Architettura Degli Elaboratori1 Macchine a stati finiti – un automa di Mealy generale con 1 bit d’ingresso, 1 di uscita e 2 di stato.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
Università degli studi di Cagliari Facoltà di Ingegneria Dipartimento di Ingegneria Elettronica Gruppo di Elettromagnetismo Metodo di Progettazione Automatica.
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

Università degli studi di Cagliari Facoltà di Ingegneria Dipartimento di Ingegneria Elettronica Gruppo di Elettromagnetismo Metodo di Progettazione Automatica basato sulla Genetic Programming

Obiettivo Sviluppare un metodo per automatizzare la progettazione di soluzioni a problemi complessi Creare uno strumento per affrontare problemi non facilmente trattabili per via analitica o attraverso le tradizionali tecniche di progetto Aprire una strada verso soluzioni innovative

Flow Chart del ciclo di progetto

Gli strumenti necessari I riquadri in verde nel flow-chart mettono in evidenza la necessità di alcuni strumenti: Un sistema formale di rappresentazione della soluzione teorica individuata Un insieme di regole che consentano di operare delle modifiche sulla rappresentazione del modello Una logica di controllo

La Genetic Programming E' una generalizzazione degli algoritmi genetici e come tale trae spunto dalle teorie evoluzionistiche di Darwin e dalla genetica, ma a differenza di questi ultimi non opera su stringhe di bit ma su algoritmi. Questi sono delle combinazioni di funzioni tratte da un particolare insieme scelto accuratamente per ben rappresentare il problema in esame. Il termine funzione va inteso nella sua accezione più generica, può dunque trattarsi di Operatori aritmetici e/o logici; Funzioni matematiche di vario tipo; Funzioni definite ad hoc per il problema in esame.

Gli oggetti della Genetic Programming Gli oggetti della GP, i programmi, vengono indicati col termine individui e gli insiemi di tali oggetti col termine popolazioni. Gli individui vengono solitamente rappresentati mediante una notazione compatta ereditata dai linguaggi funzionali (tipo LISP) detta s-expression (OR (AND (NOT D0) (NOT D1)) (AND D0 D1)) O mediante una più intuitiva rappresentazione ad albero

S-Expression in forma d'albero

La Genetic Programming La Genetic Programming imita il ciclo della vita, per cui inizia con una popolazione di individui generati a caso. Ognuno di questi individui viene poi analizzato e riceve un punteggio, detto fitness, che misura il suo grado di adattamento (ovvero la sua capacità di soddisfare i requisiti richiesti). A questo punto si costruisce una nuova popolazione detta generazione successiva. Imitando il principio di sopravvivenza del più forte viene assegnata agli individui con un punteggio più elevato una opportunità di sopravvivere e passare alla generazione successiva ed una maggiore probabilità di riprodursi.

Flow Chart del Ciclo Evolutivo

La Genetic Programming La riproduzione degli individui imita i meccanismi della genetica e avviene tramite due operatori principali: il CROSSOVER che imita la riproduzione sessuata ed in particolare l'incrocio di due patrimoni genetici diversi la MUTATION che imita la riproduzione asessuata ed in particolare l'alterazione casuale di un particolare patrimonio genetico

Un esempio di operatore: il CROSSOVER

Un caso concreto: le antenne filiformi Una antenna filiforme è una struttura costituita da un insieme di cilindri metallici disposti ordinatamente nello spazio. Come tale può essere rappresentata in maniera del tutto generale come l'insieme di un certo numero di linee spezzate disposte arbitrariamente nello spazio.

L’insieme di funzioni Avendo scelto di modellare la soluzione mediante un insieme di linee spezzate nello spazio, per la scelta delle funzioni con cui modellare la soluzione si è tratto spunto dal linguaggio LOGO. Si sono dunque selezionate delle funzioni che consentissero movimenti e rotazioni arbitrarie nello spazio e altre che “disegnassero delle linee” { RotX, RotY, RotZ, Wire, Branch, End…}

Struttura del software e strumenti utilizzati ECJ, Evolutionary Computation in JAVA, è una libreria di pubblico dominio che fornisce gli strumenti di base per operare con la genetic programming. NEC2, Numerical Electromagnetic Code, è un software di pubblico dominio per l’analisi di antenne filiformi sviluppato presso il Lawrence Livermore Laboratory. Il software si basa su due strumenti: ECJ NEC 2

I modelli di rappresentazione ECJ, operando con gli strumenti propri della Genetic Programming, modella gli individui mediante strutture ad albero e li rappresenta mediante s-expression: Tree 0: (RuotaRispettoA_Z (Wire (RuotaAttornoA_Z END))) Tree 1: (RuotaRispettoA_Z (Wire (StiraLungoX END))) Tree 2: (RuotaAttornoA_Y (StiraLungoY (Wire END))) Tree 3: (RuotaAttornoA_Y (StiraLungoY (Wire END))) Tree 4: (RuotaAttornoA_Y (StiraLungoY (StiraLungoY (RuotaAttornoA_Z (StiraLungoY (RuotaAttornoA_Z (Wire END)))))))) …..

I modelli di rappresentazione NEC 2 è l’evoluzione di vare software scritti quando l’input veniva fornito mediante schede perforate e, pur lavorando su file, mantiene ancora un forte legame con le origini. Il seguente listato NEC rappresenta la struttura della s-expression precedente : GW E E E E E E E-03 GW E E E E E E E-03 GW E E E E E E E-03 GW E E E E E E E-03 GW E E E E E E E-03 GW E E E E E E E-03 GX GE LD E6 EX EK FR RP …..

Il ciclo di analisi di un individuo si esegue il parsing della s- expression che rappresenta l'individuo; si genera genera il listato NEC che descrive la struttura, comprensivo dei comandi necessari per l’analisi si scrive il file su disco si lancia l'eseguibile esterno in C++ si leggono i risultati dell'analisi si sintetizzano questi risultati in un valore numerico che rappresenta la fitness (o punteggio di merito) dell’individuo

Funzionamento del software modalità stand-alone Viene avviato un unico processo Java che inizializza il sistema a partire da un insieme di file di configurazione; genera la popolazione iniziale combinando casualmente alcune funzioni tratte dall’insieme definito precedentemente; valuta ogni singolo individuo presente nella popolazione secondo lo schema precedentemente illustrato; verifica se almeno uno degli individui soddisfa i requisiti richiesti e in caso affermativo termina; altrimenti genera una nuova popolazione combinando I patrimoni genetici degli individui più promettenti e prosegue il ciclo evolutivo

Parallelismo intrinseco La genetic programming ha il vantaggio di essere una tecnica intrinsecamente parallela perché la valutazione di ogni singolo individuo può avvenire in maniera del tutto indipendente da quella degli altri. In altre parole ogni singolo individuo può essere valutato in un processo distinto eseguito nello stesso momento da un altra CPU. Per questo un ciclo evolutio ben si presta all’esecuzione su architetture distribuite.

Funzionamento del software modalità Master-Slave In modalità Master-Slave viene generato un processo Master che si occupa di inizializzare il ciclo evolutivo e di “organizzare” il lavoro ed N processi Slave che si occupano di eseguire materialmente il lavoro. Il Master invia agli slave la descrizione degli individui da valutare e gli Slave eseguono l’analisi e restituiscono al Master la fitness degli individui valutati. L’interazione tra questi processi avviene tramite una connessione TCP-IP, in tal modo i processi possono essere distribuiti su altrettante macchine e operare realmente in parallelo.

Modalità Master-Slave funzionamento del Master Quando viene avviato il master legge i file di configurazione; genera la popolazione iniziale; si pone in ascolto su una determinata porta in attesa che qualche Slave tenti una connessione; ad ogni slave che si connette affida un piccolo gruppo di individui da valutare e si pone in attesa dei risultati; ricevuti i risultati continua ad assegnare nuovi individui da valutare fino a che l’intera popolazione non è stata valutata; verifica se l’obiettivo è stato raggiunto altrimenti genera la nuova popolazione e riprende il ciclo.

Modalità Master-Slave funzionamento di uno Slave Quando viene avviato lo Slave legge i file di configurazione (che devono essere identici a quelli del master e degli altri slave); tenta di connettersi al Master; ottenuta la connessione si pone in ascolto in attesa di individui da valutare; valuta, secondo lo schema precedentemente illustrato, ogni individuo ricevuto e comunica al Master la fitness relativa; Termina quando la connessione col master viene interrotta o se quest’ultimo comunica il termine delle operazioni.