Agent som lär sig. Maskininlärning. Genetiska algoritmer. Typer av återkoppling. ! Introduktion. ! Genetiska algoritmer!

Relevanta dokument
729G43 Artificiell intelligens Maskininlärning. Arne Jönsson HCS/IDA

729G43 Artificiell intelligens Sökning

HKGBB0, Artificiell intelligens

Grundläggande Idéer Algoritmens komponenter Numerisk optimering Genetisk Programmering. Genetiska Algoritmer

Genetisk programmering i Othello

1 Begrepp och Hypoteser. 2 Inlärning genom sökning. 3 Objektiv inlärning. Inlärning av en boolsk funktion från exempel.

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder.

Föreläsning 4: Kombinatorisk sökning

Symboler och abstrakta system

de var svåra att implementera och var väldigt ineffektiva.

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder.

Regression med Genetiska Algoritmer

Introduktion till programmering SMD180. Föreläsning 8: Listor

Programmering II (ID1019) :00-11:00

Träd Hierarkiska strukturer

genetiska algoritmer

Lektion 2: Sökagenter. Robin Keskisärkkä

2D Potentialen i en nervcell definieras normalt som skillnaden i spänning mellan dess axon och dendrit.

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

Föreläsning 7 Datastrukturer (DAT037)

Antag att följande träd genereras i ett spelförande program om vi applicerar evalueringsfunktionen

PROGRAMMERING I MATEMATIK. Ämnets dag 2017 Göteborgs universitet, Matematiska Vetenskaper Åse Fahlander och Laura Fainsilber

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

Föreläsning 5: Grafer Del 1

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd.

Vad behövs för att skapa en tillståndsrymd?

Fördjupningsuppgift 729G43 Linköpings Universitet alelo408. Genetisk börshandel. Att hitta mönster i börsmarknaden med genetiska algoritmer

Föreläsninsanteckningar till föreläsning 3: Entropi

Interaktion med den genetiska algorithmen GenJam

Självbalanserande träd AVL-träd. Koffman & Wolfgang kapitel 9, avsnitt 1 2

Data mining. Data mining Skillnaden mellan observationella och experimentella data

Lösningsförslag för tentamen i Datastrukturer (DAT037) från

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

Genetiska Algoritmer

Tänk på följande saker när du skriver tentan:

PROGRAMFÖRKLARING I. Statistik för modellval och prediktion. Ett exempel: vågriktning och våghöjd

Föreläsning Datastrukturer (DAT036)

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

Två fall: q Tom sekvens: () q Sekvens av element: (a b c) ; (sum-rec '(2 4 6)) = 12. q Första elementet uppfyller vissa villkor: (2 a b c)

Föreläsning 10. Grafer, Dijkstra och Prim

A B C D E F A B C D E F (3) Svar: Tabellen ger grafen:

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12

Föreläsning 10. Grafer, Dijkstra och Prim

Datastrukturer. föreläsning 10. Maps 1

MinMax Algoritmen Implementation och optimering. Joakim Östlund 15 juni 2004

Tillämpad Programmering (ID1218) :00-13:00

Genetiska algoritmer

Nu lär vi oss tre i rad

Upplägg. Binära träd. Träd. Binära träd. Binära träd. Antal löv på ett träd. Binära träd (9) Binära sökträd (10.1)

Föreläsning 13. Dynamisk programmering

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd.

Programmering II (ID1019) :00-12:00

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18

Artificiell intelligens

Introduktion till programmering SMD180. Föreläsning 9: Tupler

Datastrukturer. föreläsning 10. Maps 1

Inom datalogin brukar man använda träd för att beskriva vissa typer av problem. Om man begränsar sig till träd där varje nod förgrenar sig högst två

Föreläsning Datastrukturer (DAT037)

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2

Genetiska algoritmer. Henrik Hansson Rapport, CDT212 Mälardalens Högskola

Föreläsning Datastrukturer (DAT036)

Dagens föreläsning Programmering i Lisp Fö 5

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

Föreläsning 8 Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT036)

Obligatorisk uppgift 5

Frågeoptimering. Frågeoptimering kapitel 14

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Genetiska Algoritmer. 10 mars 2014

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Föreläsning 10. Grafer, Dijkstra och Prim

Datastrukturer. föreläsning 8. Lecture 6 1

ADT Prioritetskö. Föreläsning 12 Innehåll. Prioritetskö. Interface för Prioritetskö. Prioritetsköer och heapar

TDP002 - Imperativ programmering

Innehåll. Föreläsning 12. Binärt sökträd. Binära sökträd. Flervägs sökträd. Balanserade binära sökträd. Sökträd Sökning. Sökning och Sökträd

Föreläsning 7: Syntaxanalys

Ett generellt träd är. Antingen det tomma trädet, eller en rekursiv struktur: rot /. \ /... \ t1... tn

Programmering A. Johan Eliasson

ADT Prioritetskö. Föreläsning 13 Innehåll. Prioritetskö vs FIFO-kö. Prioritetskö Exempel på användning. Prioritetsköer och heapar

Föreläsning 10 Innehåll. Prioritetsköer och heapar. ADT Prioritetskö. Interface för Prioritetskö. Exempel på vad du ska kunna

Linjärt minne. Sammanhängande minne är ej flexibelt. Effektivt

Föreläsning 13 och 14: Binära träd

Tentamen, Algoritmer och datastrukturer

Programmering II (ID1019) :00-12:00

Föreläsning 9: Talteori

Algoritmer, datastrukturer och komplexitet

Monte Carlo-metoder. Bild från Monte Carlo

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU

Föreläsning 9 Datastrukturer (DAT037)

729G74 IT och programmering, grundkurs. Tema 2. Föreläsning 3 Jody Foo,

729G74 IT och programmering, grundkurs. Tema 2, Föreläsning 2 Jody Foo,

729G04 Programmering och diskret matematik TEN kl 8-12

Algoritmer, datastrukturer och komplexitet

Installera Anaconda Python

Grafer MST Top. sortering Starkt samm. komponenter Kortaste avstånd. Grafalgoritmer 1. Douglas Wikström KTH Stockholm

Mångfald inom en art. Genotyp. Genpool. Olika populationer. Fig En art definieras som

Inledande programmering med C# (1DV402) Summera med while"-satsen

Transkript:

Maskininlärning gent som lär sig! Introduktion Yttre standard/återkoppling! Genetiska algoritmer! Exempelinlärning! eslutsträdsinlärning! Version Space-inlärning Återkoppling Kritiserare Mål Inlärningselement Förändringar Kunskap Sensorer Utförandeelement Omgivning Problemgenerator gent Effektorer Typer av återkoppling Genetiska algoritmer! Omgivningen talar direkt om vilken handling som skulle varit korrekt! Specikt exempel till generell regel, ex beslutsträd och version space! Generellt råd till exekverbar regel, ex råd i kortspel som via operationaliseringar omvandlas till en specik regel! Reinforcement learning! genten får bara reda på om det var bra eller dåligt, inte varför eller vilken handling som orsakade detta! Ingen återkoppling från omgivningen! Ofta klustring, ex Kohonennät, self-organizing maps (SOM)! M annat exempel! Iterativ metod som utgår från de bästa tillstånden och förbättrar dessa! Naturligt urval! Operatorer inspirerade från naturlig genetisk variation! rbetar parallellt med flera sökrymder! Egentligen sökmetod men också inlärning

Komponenter Population! Kodning (gen, kromosom)! Initialiseringsprocedur (skapa)! Evalueringsfunktion (omgivning)! Föräldraurval (reproduktion)! Genetiska operatorer (mutation, korsning) Kromosomer kan vara:! itsträngar 0 1 0 1... 1 1 0 0! Tal 43,2-33,1... 0,0 89,2! Permuationer E11 E3 E7... E1 E15! Regellistor R1 R2 R3... R22 R23! Program dir== Norr : gowest!... Exempel, 1 Exempel, 2! itsträngskromosom, 5 bit! Vill ha bara ettor! Slumpmässigt skapade kromosomer, 3 st! Evalueringsfunktion som räknar antal ettor! Välj de bästa föräldrarna för reproduktion! Låt de bästa kromosomerna vara kvar, men ta bort dubbletter! Genetisk operation! yt slumpmässig bit i den kromosom som inte reproducerades Initialpopulation 0 1 0 1 0 2 ettor 1 1 0 1 0 3 ettor 0 0 1 0 0 1 etta Evaluera 0 1 0 1 0 2 ettor 1 1 0 1 0 3 ettor 0 0 1 0 0 1 etta 1 1 0 1 0 3 ettor 0 0 1 0 1 2 ettor Reproduktion 1 1 0 1 0 0 0 1 0 1 Genetisk operation Ny population 0 1 0 1 0 2 ettor 1 1 0 1 0 3 ettor 0 0 1 0 1 2 ettor

Exempel, 3 Enkel genetisk algoritm Population 0 1 0 1 0 2 ettor 1 1 0 1 0 3 ettor 0 0 1 0 1 2 ettor Genetisk operation Reproduktion 0 0 1 1 1 1 1 1 1 1 initialisera populationen utvärdera populationen while inte tillfredställande resultat: välj ut föräldrar för reproduktion korsa och mutera Evaluera utvärdera populationen 0 1 0 1 0 2 ettor 1 1 0 1 0 3 ettor 0 0 1 0 1 2 ettor 0 0 1 1 1 3 ettor 1 1 1 1 1 5 ettor Operationer Rouletthjul! Reproduktion! Föräldrarna väljs slumpmässigt med hänsyn till kromosomutvärdering! Kromosomförändringar! Stokastiskt triggade! Mutationer! Korsningar! Välja ut individer! Rouletthjul! ättre fitnessvärde ger större chans att leva men slump finns kvar! Exempel Kromosom, fitness 4 Kromosom, fitness 10 Kromosom, fitness 5 Kromosom D, fitness 1

Exempel, 1 Exempel, 2 Handelsresandeproblemet 1 5 1 3 4 D 2! Korsning! Två gener. Ta första från första, andra från andra, tredje från första etc och bilda en ny gen. Om elementet redan finns ta nästa. Sluta med samma som start! Mutation! yt slumpmässigt två element! Fitness! Totalavstånd! Starttillstånd D D D D D Exempel, 3 Exempel, 4 Korsa de två första: D D D eftersom som är tredje från första genen redan finns eftersom redan finns Ny gen D Korsa de två sista: D Ny gen: D D D! Mutera första genen slumpmässigt D! Ny population D 1 2 4 D 5 = 12 2 4 D 5 1 = 12 4 D 5 1 2 = 12 D 5 1 2 4 D = 12 3 4 D 2 1 = 10 3 1 2 D 4 = 10 5 D 4 1 1 = 11! ehåll de fyra bästa

Exempel, 5 Exempel, 6! Ny population D 5 1 2 4 D = 12 3 4 D 2 1 = 10 3 1 2 D 4 = 10 5 D 4 1 1 = 11! Korsa två första D D! Korsa två sista D! Mutera första. Slumpen gav andra och tredje staden D D! Ny population D 5 1 2 4 D = 12 3 4 D 2 1 = 10 3 1 2 D 4 = 10 5 D 4 1 1 = 11 D 4 2 1 5 D = 12 4 D 2 1 3 = 10 D 2 1 3 4 D = 10! ehåll de fyra bästa 3 4 D 2 1 = 10 3 1 2 D 4 = 10 4 D 2 1 3 = 10 D 2 1 3 4 D = 10! etc Genetisk programmering Exempel! Genetiska algortimer med program som data! Skapa program som löser given uppgt Hitta ekvation för mätdata Skapa en ekvation räkna ut och jämför med kurvan, t.ex. y = x*x 3 y = x + 4 x 3 y = x etc

GP algoritm Exempel, 1 generera program slumpmässigt kör och utvärdera program med träningsdata while inte tillräckligt bra program välj ut program för reproduktion modiera programmen kör och utvärdera program med träningsdata Wumpus följa väggen Förflyttning och riktning: Norr, Söder, Väster, Öster and return goöster Ex. norr and not bumpöster: return goöster öster and not bumpsöder: return gosöder söder and not bumpväster: return goväster return gonorr norr not and return gosöder bumpöster öster not and return goväster return gonorr bumpsöder söder not bumpväster Exempel, 2 Exempel, 3 1. Skapa initial population, t.ex. 5000 slumpmässigt skapade syntaktiskt korrekta träd and return gonorr norr norr söder return gonorr söder 2. Fitness: Låt agenten starta 10 gånger, varje gång från en ny position. Låt agenten gå 60 steg och räkna antalet unika rutor som angränsar till en vägg and return goväster not bumpväster return gonorr 3. Skapa nya program genom att 1. Låta de 500 bästa leva 2. Skapa ytterligare 4500 nya individer av dessa bästa genom slumpässig korsning and return gonorr and return goväster return gonorr norr norr söder return gonorr söder not bumpväster return goväster return gonorr söder return gonorr

Exempel, 4 eslutsträd söder and 4. Mutera 50 program genom att byta ett delträd mot ett slumpmässigt skapat delträd return goväster not bumpväster return gonorr and return goväster söder bumpöster I en värld med 32 väggrutor får man fram ett perfekt program efter 10 generationer not and väster return gonorr! Skapa en kompakt representation av beslut i en situation beskriven som en mängd egenskaper som påverkar beslutet! Ex om man skall vänta vid en restaurang (Russel & Norvig)! ttribut:! Finns det alternativ i närheten! Finns det en bar att vänta i! Är det helg! Är jag hungrig! Finns det k i restaurangen! Regnar det! Vilken typ av restaurang är det! etc Restaurangexemplet eslutsträdsinlärning Ja lternativ Nej! Skapa optimalt beslutsträd ur en exempelmängd Ja ar Nej Ja Hungrig Nej Initialisera rotnoden med hela exempelmängden while det finns en nod, N, som kan delas: Regn K Nej Ja 0-30 30-60 >60 Väntar Väntar inte for each attribut evaluera delning vid : använd bästa för att dela N Väntar inte Väntar Väntar inte Väntar Väntar inte

Exempel Konvertera numeriska data NMN INKOMST ÅLDER GIFT Marie! 40000 < 40 J Sven! 40000 < 40 J Olle < 40000 < 40 NEJ Eva! 40000! 40 J Uwe < 40000 < 40 NEJ Hans < 40000 < 40 NEJ nne! 40000! 40 J Dela vid ålder Dela vid inkomst < 40 NMN INKOMST GIFT Marie! 40000 J Sven! 40000 J Olle < 40000 NEJ Uwe < 40000 NEJ Hans < 40000 NEJ Måste dela igen! NMN INKOMST ÅLDER GIFT Marie! 40000 < 40 J Sven! 40000 < 40 J Olle < 40000 < 40 NEJ Eva! 40000! 40 J Uwe < 40000 < 40 NEJ Hans < 40000 < 40 NEJ nne! 40000! 40 J! 40 NMN INKOMST GIFT Eva! 40000 J nne! 40000 J NMN INKOMST ÅLDER GIFT Marie! 40000 < 40 J Sven! 40000 < 40 J Olle < 40000 < 40 NEJ Eva! 40000! 40 J Uwe < 40000 < 40 NEJ Hans < 40000 < 40 NEJ nne! 40000! 40 J < 40000 NMN ÅLDER GIFT Olle < 40 NEJ Uwe < 40 NEJ Hans < 40 NEJ! 40000 NMN ÅLDER GIFT Marie < 40 J Sven < 40 J Eva! 40 J nne! 40 J

Information Välja bästa attribut! Hur välja attribut att dela trädet?! Ofta används informationsmått! Information innebär minskad osäkerhet! Exempel! Om man i ett varuhus frågar var skivavdelningen finns och får veta att det finns på våning 1, får man mer information om det finns 6 våningar än om det finns 2 och ingen information om det bara finns en våning.! Utfallet av en händelse med flera lika sannolika möjligheter ger mer information än utfallet av en händelse med färre lika sannolika möjligheter! nvänd förväntad mängd information som återstår vid ett attribut! it information den mängd information som behövs! Informationsteori: en bit information ger ett ja/nej svar på en fråga! Definition, entropi (Shannon) I ( P( v1 ),!, P( vn )) =!" P( vi ) log 2 P( vi ) i= 1 Eftersom P(v i )! 1 blir log 2 (P(v i )) negativ, därför minus n Exempel Entropi för attribut! Musikavdelningen i varuhus med två lika sannolika våningar I(",") = -"log 2 (") - "log 2 (") = -log 2 (") = -(log 2 (1)-log 2 (2)) = 1! 8 lika sannolika våningar I(#,$..,#) = -#log 2 (#) - $ -#log 2 (#) = -log 2 (#) = log 2 (8) = 3! Jämför vanlig datarepresentation. Det behövs tre bit för att representera 8 olika alternativ! Låt:! n b, antal instanser i gren b! n bc, antal instanser i gren b av klass c! n t, totala antalet instanser i alla grenar n ' $ b nbc nbc! %!( log ( " # E ( ) = 2 ) b nt & c nb nb! Exempel n ålder<40 =5 n ålder<40, class=gt =2 n t = 7 NMN INKOMST ÅLDER GIFT Marie! 40000 < 40 J Sven! 40000 < 40 J Olle < 40000 < 40 NEJ Eva! 40000! 40 J Uwe < 40000 < 40 NEJ Hans < 40000 < 40 NEJ nne! 40000! 40 J < 40! 40 NMN INKOMST GIFT NMN INKOMST GIFT Marie! 40000 J Eva! 40000 J Sven! 40000 J nne! 40000 J Olle < 40000 NEJ Uwe < 40000 NEJ Hans < 40000 NEJ

Informationsvinst (ID3/4.5) Starttillstånd! Den information som man vinner om man går ner i gren Vinst ( ) = I( Output )! E( )! Välj det attribut som ger högst vinst! 4/7 är gta! 3/7 är ogta 4 I Output) =! log 7 4 3! log 7 7 3 7 ( 2 2 = 0,985 Ålder! 5 är < 40! 2 gta; 3 ogta 2 2 3 3 I( < 40) =! log! log2 5 5 5 5 2 = NMN INKOMST ÅLDER GIFT Marie! 40000 < 40 J Sven! 40000 < 40 J Olle < 40000 < 40 NEJ Eva! 40000! 40 J Uwe < 40000 < 40 NEJ Hans < 40000 < 40 NEJ nne! 40000! 40 J < 40! 40 NMN INKOMST GIFT NMN INKOMST GIFT Marie! 40000 J Eva! 40000 J Sven! 40000 J nne! 40000 J Olle < 40000 NEJ Uwe < 40000 NEJ Hans < 40000 NEJ 0,971 Ålder, forts.! Entropi 5 7 " 0,971+ 2 7 " 0 = 0,693! Vinst(Ålder)=0,985-0,693=0,292! 2 är % 40! alla gta 2 2 I( " 40) =! log2 = 0 2 2

Inkomst! 3 har < 40000! alla ogta " I=0! 4 har! 40000! alla gta " I=0! Entropi 0! Vinst(Inkomst)=0,985-0=0,985 < 40000 NMN ÅLDER GIFT Olle < 40 NEJ Uwe < 40 NEJ Hans < 40 NEJ NMN INKOMST ÅLDER GIFT Marie! 40000 < 40 J Sven! 40000 < 40 J Olle < 40000 < 40 NEJ Eva! 40000! 40 J Uwe < 40000 < 40 NEJ Hans < 40000 < 40 NEJ nne! 40000! 40 J! 40000 NMN ÅLDER GIFT Marie < 40 J Sven < 40 J Eva! 40 J nne! 40 J Restuarangexemplet, träningsexempel Exempel ttribut Mål Väntar lt ar Helg Hunger K V-tid Regn okat Typ X1 Ja Nej Nej Ja Några 0-10 Nej Ja Fransk Ja X2 Ja Nej Nej Ja Full 30-60 Nej Nej Thai Nej X3 Nej Ja Nej Nej Några 0-10 Nej Nej Kina Ja X4 Ja Nej Ja Ja Full 10-30 Nej Nej Thai Ja X5 Ja Nej Ja Nej Full >60 Nej Ja Fransk Nej X6 Nej Ja Nej Ja Några 0-10 Ja Ja Pizza Ja X7 Nej Ja Nej Nej Ingen 0-10 Ja Nej Kina Nej X8 Nej Nej Nej Ja Några 0-10 Ja Ja Thai Ja X9 Nej Ja Ja Nej Full >60 Ja Nej Kina Nej X10 Ja Ja Ja Ja Full 10-30 Nej Ja Pizza Nej eslutsträd Resultat + x1, x3, x6, x8 - J Default Fransk + - x10 NEJ Några + x4 - x2, x10 TYP + x4 - J Ja Pizza Kina Default KUNDER Full + x4 - x2, x5, x9, x10 HUNGRIG Thai Ja + x4 - x2 HELG Nej Nej + - x5, x9 NEJ + - x2 NEJ Ingen + - x7 NEJ! eslutsträdet använder inte alla attribut! Kan ha funnit okända samband mellan attribut! Om det saknas exempel för ett visst attributvärde så spelar det ingen roll. Returnera något defaultvärde! Om det saknas attribut i en gren där det inte finns ett beslut så saknas det information och fler attribut behövs såvida det inte är fel eller icke-deterministiskt

Hypotesinlärning Hypotesinlärning! Från specika exempel till generell beskrivning! Presenterar såväl positiva som negativa exempel! Positivt exempel som inte matchar leder till en generalisering av modellen (false negativ)! Negativt exempel som matchar ger en specicering av modellen (false positiv) def currentestlearning(exempel): h = hypotes konsistent med första exemplet for each e in exempel: e false positiv: specialisera h så att h konsistent med alla tidigare exempel e false negativ: generalisera h så att h konsistent med alla tidigare exempel ingen konsistent specialisering/generalisering: return Fail Exempel, Winston Positivt exempel båge vänster-om höger-om block Generalisering Nytt positivt exempel båge block vänster-om höger-om generalisera båge triangel vänster-om höger-om triangel block polygon block

Specicering Version Spaces Negativt exempel Stärk modellen med en ny länk båge vänster-om höger-om polygon får-inte-röra-vid! Hypotesinlärning à la Winston måste hålla reda på alla positiva och negativa exempel! Versions Spaces Hittar både den mest specika och den mest generella beskrivning som täcker alla positiva exempel och inget negativt! rbetar med två hypotesmängder:! S: de mest specika hypoteser som täcker alla positiva exempel och inget negativt! G: de mest generella hypoteser som täcker alla positiva exempel och inget negativt Version spaces Version Space-algoritmen G: mest specika generaliseringen S: mest generella speciceringen Tolkningsrymd Om positivt exempel p:! Ta bort de hypoteser ur G som ej matchar p.! Ersätt alla hypoteser i S som ej matchar p med de mest specika generaliseringar som:! matchar p! är mer specika än någon hypotes i G! inte är mer generell än någon hypotes i S Om negativt exempel n:! Ta bort de hypoteser ur S som matchar n.! Ersätt alla hypoteser i G som matchar n med de mest generella specialiseringar som:! inte matchar n! är mer generella än någon hypotes i S! inte är mer specik än någon hypotes i G

Exempel ar Typ Väntetid Väntar X1 Ja Kina <10 Ja X2 Ja Thai %10 Nej X3 Ja Thai <10 Ja X4 Nej Fransk <10 Ja +X1 G: {(?,?,?)} -X2 False negativ, specialisera G: {(?, Kina,?) (?,?, <10)} +X3 False positiv, hypotes bort G: {(?,?, <10)} +X4 Matchar G: {(?,?, <10)} +X4 False positiv, generalisera S: {(?,?, <10)} +X3 False positiv, generalisera S: {(Ja,?, <10)} -X2 Matchar inte, S oförändrad S:{(Ja, Kina, <10)} +X1 S: {(Ja, Kina, <10)}