420 likes | 585 Views
Artificiële Intelligentie. Genetische Algoritmen Kees Vlak. Overzicht. Wat is Artificiële Intelligentie? Genetische Algoritmen Voorbeeld: TSP Praktijkvoorbeelden van GA's De oplossingsruimte en het fitness-landschap Voor en nadelen van GA's Andere AI technieken De AIig.
E N D
Artificiële Intelligentie Genetische Algoritmen Kees Vlak
Overzicht • Wat is Artificiële Intelligentie? • Genetische Algoritmen • Voorbeeld: TSP • Praktijkvoorbeelden van GA's • De oplossingsruimte en het fitness-landschap • Voor en nadelen van GA's • Andere AI technieken • De AIig
Wat is Artificiële Intelligentie? In den beginne was het streven om machines maken die even intelligent zijn of zelfs intelligenter zijn dan mensen. Dit doel wordt aangeduid met: “Strong AI”. Enkele van de vele definities van wat er tegenwoordig onder AI verstaan wordt: • Het op alle mogelijke manieren nog “slimmer” maken van de computer. • Het zodanig programmeren van de computer of een robot dat deze ''gedrag" begint te vertonen dat normaal door dieren of mensen vertoond wordt bij het oplossen van problemen. • Het nabootsen in software van een deel van het menselijk intellect, meer specifiek het redeneren en het leren.
GA - Genetische Algoritmen • Wat is een GA? • Evolutie in de natuur. • Evolutie in een computer. • Welk soort probleem? • Wat moet er gebeuren.
Wat is een GA? • Een GA is een van de technieken van de AI • Programma dat in een computer het proces van evolutie in de natuur nabootst • Wordt gebruikt om oplossingen te vinden voor problemen waarvan de standaardoplossing veel te veel rekentijd zou vergen.
Evolutie in de natuur • Evolutie is een proces dat maakt dat individuen steeds beter aangepast worden aan de (steeds veranderende) omgeving waarin ze leven. Zodat ze nakomelingen kunnen voortbrengen. • Kwekers en fokkers gebruiken de mogelijkheden die de evolutie biedt om het proces te sturen in een door hen gewenste richting.
condities wanneer/waarom evolutie werkt (ook in de natuur) • Een soort moet meer nakomelingen krijgen dan dat er in leven kunnen blijven. • Genetische variatie. • Survival of the fittest. Bij de evolutie gaat het om het “verbeteren” van de erfelijke eigenschappen. (Er bestaan geen allerbeste genen!)
Evolutie in een computer De drie condities voor evolutie in de natuur dienen ook in de computer voor te komen. • Elk individu wordt gerepresenteerd door chromosoom, een reeks genen. Elk gen bestaat uit een of meer symbolen. • Als nu dat chromosoom de informatie bevat voor een mogelijke oplossing van een probleem. • En als nu die individuen (chromosomen) die een “betere” oplossing bevatten, overleven en zich mogen voortplanten dan evolueert het geheel. Dan bevatten de chromosomen op den duur een meer optimale oplossing voor het gekozen probleem.
Welk soort probleem? Alle problemen die aan de onderstaande twee eisen voldoen komen in aanmerking om met GA aangepakt te worden. • Een min of meer goede oplossing van het probleem moet geschreven kunnen worden als een reeks symbolen. • Er moet een programma-routine beschikbaar zijn om een gegeven oplossing te beoordelen.
Wat moet er gebeuren • Er moet een codering systeem gekozen te worden om een oplossing te vertalen in een chromosoom. (een individu). • Er moet een programma routine komen om elk individu te beoordelen. (De fitness-functie.) • Bepaald moet worden hoeveel individuen per generatie mee doen in dit proces. • Hoeveel individuen per generatie moeten uitvallen omdat ze niet goed genoeg voldoen. • Welke individuen mogen zich voortplanten? • Hoe worden de chromosoom van twee ouders gekruist doorgegeven aan de nakomelingen? • Hoe vaak en op welke wijze treden daarbij willekeurige mutaties op? • Wanneer stoppen we met het evolutie proces?
Voorbeeld: TSP • Wat is het TSP • De codering in een reeks genen • De fitness-functie • Het kruisen • Mutaties • Overige instellingen
Wat is het TSP TSP staat voor Traveling Salesman Problem of in het Nederlands: het handelsreizigersprobleem. Het handelsreizigersprobleem is één van de bekende problemen in de computerwetenschap: • Een handelsreiziger moet een aantal steden bezoeken. • Ga op zoek naar de kortste weg die hij kan gebruiken. • Iedere stad wordt precies eenmaal bezocht. • Hij komt weer thuis in de stad waaruit hij vertrokken is.
De codering in een reeks genen In elke reeks moeten alle steden precies eenmaal voorkomen. Voorbeeld met 10 steden ( 0 t/m 9): “3 5 0 7 1 9 2 4 6 8“ Het laatste stuk van de route is van stad 8 terug naar stad 3. Het individu = een chromosoom = een reeks genen = een route.
De fitness-functie • Bereken de totale lengte van de reeks genen (route) door middel van een afstandstabel. • Hoe kleiner de afstand hoe beter de route.
Het kruisen • Het kruisen betekent dat twee individuen samen twee kinderen voortbrengen • Genetische informatie van de ouders wordt gemixt doorgeven aan elk kind. • Moeilijkheid is dat elk kind steeds de complete set van stedennummers dient te bevatten. Iedere stad precies eenmaal!
Het kruisen (De techniek) • Stel 10 steden. Stad 0 t/m 9. • Genereer een willekeurig getal: (0, 1, 2, .... 7, 8). • Stel dat het getal 3 gegenereerd is. • De genen 0 t/m 3 worden nu van ouder 1 naar kind 1 overgebracht. • De overgebleven genen (stadnummers) krijgen ze van de andere ouder, zoveel mogelijk in de daar voorkomende volgorde. • Idem voor ouder 2 en kind 2.
Het kruisen (Een voorbeeld) Ouder 1: “0 1 2 3 4 5 6 7 8 9” Ouder 2: “0 2 4 6 8 1 3 5 7 9” Kind 1 : “0 1 2 34 6 8 5 7 9” Ouder 1: “0 1 2 3 4 5 6 7 8 9” Ouder 2: “0 2 4 6 8 1 3 5 7 9” Kind 2 : “0 2 4 61 3 5 7 8 9”
Mutaties • Een mutatie is een willekeurige verandering in de genen van een kind • Muteren gebeurt om de variatie in de verzameling individuen in stand te houden. • Als alle individuen te veel op elkaar gaan lijken zorgt muteren voor nieuwe kansen op verbeteringen.
Mutaties • Alle nieuwe kinderen kunnen gemuteerd worden, of dat gebeurt hangt van het toeval af. • Als de mutatiekans bijvoorbeeld 10 % is, dan wordt 10 % van de kinderen éénmaal gemuteerd. • De mutatie bestaat er uit dat er 2 genen uit het chromosoom worden omgewisseld. • Voorbeeld: De genen op posities 5 en 8 worden verwisseld. • Voor de mutatie: Kind 1 = “9 1 8 2 7 3 6 4 5 0” • Na de mutatie: Kind 1 = “9 1 8 2 7 5 6 4 3 0”
Overige instellingen • Omvang van een generatie. Bijvoorbeeld 40 individuen. • Per ronde kunnen dan 20 individuen die het slechtst presteren, verwijderd worden. • 10 maal kunnen 2 individuen dan nageslacht krijgen 10 x 2 = 20
Welke individuen mogen zich voortplanten? • Dat wordt per keer door het lot bepaald • Verschillende strategieen mogelijk
Wanneer stoppen we het evolutie-proces? • Bijvoorbeeld: Als de beste route al 1000 generaties niet meer is verbeterd • Als er in de zoektocht naar de kortste route veel steden betrokken zijn zullen we waarschijnlijk nooit weten of er nog betere oplossingen mogelijk zijn.
Praktijkvoorbeelden van GA's • Produktieplanning, roosters, wedstrijdindeling • Ontwerp, bijvoorbeeld minimaliseren van materiaalgebruik • Zoeken, bijvoorbeeld in een doolhof • Overige, oftewel allerlei toepassingen waar iets geoptimaliseerd moet worden
Produktieplanning, roosters, wedstrijdindeling • Mogelijke genen: Wie doet wat op welk tijdstip en op welke plaats • Fitness: Hierin worden eisen meegenomen die gesteld worden aan: • volgorde van aktiviteiten • bezetting van leslokalen, machines etc. • totale doorlooptijd of wanneer iets klaar moet zijn • etc.
Ontwerp • Een “domme routine” die met succes kan opboksen tegen de vakkennis van ervaren constructeurs. • Een fabrikant wilde een bepaald soort auto lichter maken (zuiniger) en toch sterker (veiliger). Hij wilde de kooiconstructie van de auto aanpakken. • Genen: Er werden 100 punten bepaalt op de constructie waar de dikte van het staal bepaald moet worden. Elke dikte kon 10 verschillende waarden hebben. • Fitness: De kooi moet: • minimaal de vereiste sterkte hebben • zo licht mogelijk zijn • GA kwam nu goed van pas en er is een besparing op gewicht mee gerealiseerd.
Zoeken • Bijvoorbeeld in een doolhof waar je in elk vakje omhoog of omlaag kan of naar links of rechts. • Genen: Elk vakje met daarin een van de 4 richtingen. • Fitness: • Doodlopende paden krijgen een lage fitness. • Bij goede paden (tussen beginpunt en eindpunt) krijgt het kortste pad de hoogste fitness.
De oplossingsruimte en het fitness-landschap • De oplossingsruimte van problemen • Het fitness-landschap van problemen • Spijkerbed-problemen
De oplossingsruimte van een probleem • De gehele verzameling mogelijke oplossingen voor een probleem noemt men de oplossingsruimte van dat probleem. • Het aantal genen in het chromosoom is tevens het aantal dimensies van de oplossingsruimte.
Voor en nadelen van GA's. • Nadelen van GA's • Voordelen van GA's
Nadelen • Men kan er niet zeker van zijn dat de uitkomst niet in een lokaal optimum is blijven steken en dus niet het globale optimum vindt. • Als er meerdere gelijkwaardige oplossingen zijn, vind je er maar 1
Voordelen Enkele voordelen kunnen zijn: • Maakt oplossingen mogelijk voor een klasse problemen die met andere middelen niet goed op te lossen zou zijn, namelijk veel problemen waarvan de oplossing normaal erg veel rekentijd zou vergen. • Als je een redelijk goede oplossing steeds opnieuw te weten moet komen in vooraf onvoorspelbaar wijzigende situaties. • Als een min of meer standaard wijze om op een “creatieve” manier problemen op te lossen.
De AI ig De HCC – AI interesse groep is een klein clubje mensen dat elkaar ontmoet om: • over het onderwerp AI in al zijn facetten te kletsen • ervaringen uit te wisselen • voordrachten te geven of te beluisteren • eigengemaakte programma's te laten zien
Andere AI-technieken Het aantal technieken is legio. Enkele ervan: • Kennissystemen • Neurale netwerken • Genetisch programmeren • Fuzzy logic • AI agenten
De AI ig komt bijeen • een maal per maand (eerste zaterdag) • Disselplein 5, Hooglanderveen (bij Amersfoort, Vathorst) • in het zelfde gebouw en op dezelfde dagen als de Robotica ig van de HCC