Parallelisering/Distribuering af Genetiske Algoritmer



Relaterede dokumenter
Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel:

Algoritmer og invarianter

Bits DM534. Rolf Fagerberg, 2012

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomielt tid Optimeringsproblemer kan ikke altid verificeres i polynomiel

Acceleration af Kollisionsdetektion på Parallelle Computerarkitekturer

Sidste gang Motivation Definitioner Approximations-algoritme for knudeoverdækning Approximations-algoritme for TSP med trekantsulighed

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Dynamisk programmering

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Sommeren 2001, opgave 1

Abstrakte datatyper C#-version

Dynamisk programmering

ALGORITMER OG DATA SOM BAGGRUND FOR FORUDSIGELSER 8. KLASSE. Udfordring

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomiel tid

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version

Dynamisk programmering

Indholdsfortegnelse PSpice modul 3. Forudsætninger. Forberedelse til øvelser

Symmetrisk Traveling Salesman Problemet

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

It og informationssøgning Forelæsning oktober 2006 Nils Andersen

Hardware, Software co-synthesis med genetisk multiobjektive algorithmer. Peter Kjærulff, s991267

Algoritmedesign med internetanvendelser ved Keld Helsgaun

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Kapitel 1. statusseminar HERE GOES TEXT

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Python programmering. Per Tøfting. MacFest

Netværksalgoritmer 1

Parallelle algoritmer

DMX styring med USB-interface

En karakteristik af de regulære sprog. Ugens emner. FA minimering [ ] MyHill-Nerode-sætningen en algoritme til minimering af FA er

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Jan B. Larsen HTX Næstved Computational Thinking Albena Nielsen N. Zahles Gymnasium 2018/2019

Noter til C# Programmering Iteration

Selvstudium 1, Diskret matematik

Nanostatistik: sandsynligheder Kursushjemmeside: kurser/nanostatistik/

26 Programbeviser I. Noter. PS1 -- Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler.

Dagens program. Velkommen og præsentation.

programmeringskonkurrencer implementation under tidspres

at du trænes i at genkende aminosyrer i en simpel proteinstruktur (pentapeptid = lille protein bestående af 5 (penta) aminosyrer)

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

Sammenhængskomponenter i grafer

Genetisk drift og naturlig selektion

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er

Mindste udspændende træ

Susanne Ditlevsen Institut for Matematiske Fag susanne

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

.. if L(u) + w(u, v) < L(v) then.. begin... L(v) := L(u) + w(u, v)... F (v) := u.. end. med længde L(z)}

Styresystemer og tjenester

Introduktion til funktioner, moduler og scopes i Python

DM507 Algoritmer og datastrukturer

Start af nyt schematic projekt i Quartus II

Opret en Powerpoint præsentation automatisk med VBA

dpersp Uge 40 - Øvelser Internetalgoritmer

Hamilton-veje og kredse:

DM13-3. Obligatorisk opgave E.05 Håndoptimering af SPARC assembler-kode

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer

Eksperimentel Matematik

Gennemsnit og normalfordeling illustreret med terningkast, simulering og SLUMP()

Vægtede grafer. I en vægtet graf har enhver kant tilknyttet en numerisk værdi, kaldet kantens vægt

CMU PROJEKT HYPOTESETEST OG SIMULERING MICHAEL AGERMOSE JENSEN CHRISTIANSHAVNS GYMNASIUM

Cellen og dens funktioner

Søgning og Sortering. Søgning og Sortering. Søgning. Linæer søgning

Fiskenes gener kan afsløre ulovligt fiskeri

Simulering af Regnskyl Projekt 3, & 02631, Foråret 2012

It og informationssøgning Forelæsning september 2006 Nils Andersen. Gentagelser og tekster

Spar tid med struktureret programmering! Om PLC programmering

Lærervejledning Til internet-spillet Kræftkampen og undervisningshæftet Hvorfor opstår kræft? Biologi klasse

Approximationsalgoritme giver garanti for løsningskvalitet Heuristik giver ingen garanti for løsningskvalitet

Dagens opgave. Vi er blevet hyret af et hospital da de har hørt at vi dataloger kan hjælpe deres patienter.

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer

Fractal compression a technology in search of a problem

Bilagsnotat til: De nationale tests måleegenskaber

Kan økonomien i at bruge kødkvægstyre i økologisk mælkeproduktion forbedres ved at bruge kønssorteret sæd?

Invarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen.

Økonomisk analyse af forskellige strategier for drægtighedsundersøgelser

R100APM Premier Rower COMPUTER

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Multi-Camera redigering

DKAL Snitflader REST Register

Introduktion til datastrukturer

Mandelbrot smartphone applikation

Styresystemer og tjenester

Flowchart og Nassi ShneidermanN Version. Et flowchart bruges til grafisk at tegne et forløb. Det kan fx være et programforløb for en microcontroller.

Søgning og Sortering. Philip Bille

Kapitel 9: Netværksmodeller

Årsplan for biologi i 7. klasse 17/18

Læseplan for valgfaget teknologiforståelse. (forsøg)

ØVELSE 3A. I SAS kan man både bruge {}, [] og () som paranteser til index.

Oversigt. Kursus Introduktion til Statistik. Forelæsning 10: Statistik ved hjælp af simulering. Per Bruun Brockhoff.

Studiedesigns: Alternative designs

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Lageret i maskinarkitekturen. Beregningsenhed, lagre (registre, RAM, disk), ydre enheder

Mm6: More sorting algorithms: Heap sort and quick sort - October 29, 2008

Sortering. Sortering ved fletning (merge-sort) Del-og-hersk. Merge-sort

Parallelle algoritmer

Introduktion til ActionScript

Forskningsnyheder om Huntingtons Sygdom På hverdagssprog Skrevet af forskere. Til det globale HS-fællesskab En baglæns besked gemt i HD-genet?

Transkript:

Parallelisering/Distribuering af Genetiske Algoritmer Hvorfor parallelisere/distribuere? Standard GA algoritme Modeller Embarassing parallel Global (fitness evaluering) Island (subpopulation) Grid/Cellular (individuel) Eksempel på en PGA anvendelse - CGATTO

Hvorfor parallelisere/distribuere? Hastighedsfordele Speed-up effekt, da GA er som oftest beregningstunge algoritmer Forhindre for hurtig konvergering i lokalt minimum Delpopulationer søger i forskellige dele af problemdomænet Senere samling giver dermed globalt optimum Oplagt at parallelisere for at efterligne naturens virke Hvis man simulerer naturen skal dette foregå efter samme model

Standard GA algoritme opret udgangs population (størrelsen N) while not (stopkriterie) do Fitness evaluering og selektion af bedste individer Producer nye individer Muter nogle/udvalgte individer end while

Modeller Embarassing parallel Køre flere instanser af det samme program parallelt Opsamling af statistik Starte instanser med forskellige parametre for fx crossover og mutation

Modeller Global parallelisering af fitness-niveauet opret udgangs population (størrelsen N) for alle individer do in parallel fitnessevaluering af alle individer end parallel for while not (stopkriterie) do Selektion af fitter individer for reproduktion Producer nye individer Muter nogle/udvalgte individer for alle individer do in parallel fitnessevaluering af alle individer end parallel for Producer en ny generation udfra fitnessevaluering end while - Foretages per individ og er uafhængigt af populationen - load balancing (strø model hvis flere individer end slaver) - Ofte er fitness evaluering et tungt problem

Modeller Island parallelisering af subpopulationer opret udgangs population (størrelsen N) generation og frekvens sættes til ønskede værdier while not (stopkriterie) do foreach subpopulation do in parallel Fitness evaluering og selektion af bedste individer if generation mod frekvens then Send K < N af de bedste individer til en nabo subpopulation Modtag K individer fra en nabo subpopulation Udskift K individer i subpopulationen end if Producer nye individer Muter nogle/udvalgte individer end parallel for end while - Simulering af geografiske adskilte populationer - Tilfældig dynamisk topologi, giver de bedste resultater - Sikrer forskellighed i subpopulationer (emigration : fx ring, ø, buffer) - Forskellige subpopulationer udforsker forskellige dele af udfaldsrummet

Modeller - Grid/Cellular parallelisering af individer (N individer og N celler) for alle celler i griddet do in parallel producer et tilfældigt individ i end parallel for while not (stopkriterie) do foreach celle i griddet do in parallel Fitnessevaluering af individet i Find et naboindivid k Producer et afkom fra i og k Placer afkommet i i's celle Muter i end parallel for end while - Naboindividet er fra en af de otte omkring liggende celler - Isolated-by-distance : To individers påvirkning af hinanden afhænger af afstanden imellem disse

Modeller - Hybrider Mange hybridkombinationer fx: benytte en Island-model på det øverste niveau Kombineret med en grid-model i hver enkelt subpopulation Opdeling/Model skal vælges efter problemdomænet

Et PGA eksempel - CGATTO Algoritme som vha. af test sekvenser finder fejl i digitale kredsløb. (GATTO) Stadigt voksende industrielt problem eftersom digitale kredsløb vokser i antallet af gates Algoritmen består af 3 faser.

GATTO algoritmen Fase 1. (find target fault) Dannelse af tilfældige sekvenser Find en sekvens som udspænder mindst en utestet fejl (Target Fault) Fase 2. (find en testsekvens som tester target fault) Et individ er en testsekvens Mutation og crossover sikrer nye individer Fitness = hvor tæt på target fault er individet? Senest efter maximalt antal generationer afbrydes fase 2. (fejlen er aborted) Fase 3. Fejl simulering for at se om den evt. dannede testsekvens dækker flere utestede fejl (fault dropping) Gentages indtil alle fejl er fundet/aborted eller maximalt antal iterationer er opnået

CGATTO algoritmen En paralleliseret version af GATTO Modificeringer Fase 1. Sekvens partition af den samlede mængde target faults Inddeling af grupper som arbejder på en given sekvens Fase 2. Se næste slide Fase 3. Fejl partitionering således alle processorer simulerer den samme sekvens i den samme delmængde af sekvens partitionen Forskellige parametre benyttes i de forskellige subpopukationer i en given gruppe

CGATTO fase 2. TEST_SEQUENCE phase2(fault target_fault) { for( s=0; s<max_gen/cmp_step; s++ ) { for every processor i in parallel { j = get_group(i); load_weight_values(j); for( k=0; k<cmp_step; k++ ) { Pki = compute_new_generation(pki-1); if(detecting_sequence_found()) return( get_detecting_sequence()); } besti = get_best_individual_from(pki); fi = evaluation_function(besti); } sort_groups_according_to_best_elements(); move_processors_from_worst_to_best_groups(); } return(no_sequence); }

CGATTO Afviklingsomgivelser Implementeret i C, hvor PVM biblioteker stiller kommunikationsmuligheder til rådighed 16 DEC Alpha AXP 3000/500 maskiner Forbundet gennem en GIGAswitch