PROJECTEN 2 - Projectdossier

advertisement
1 Situering AI
1.1 Branches
logical AI
What a program knows about the world in general the facts of the specific situation in
which it must act, and its goals are all represented by sentences of some mathematical
logical language. The program decides what to do by inferring that certain actions are
appropriate for achieving its goals.
search
AI programs often examine large numbers of possibilities, e.g. moves in a chess game
or inferences by a theorem proving program. Discoveries are continually made about
how to do this more efficiently in various domains.
pattern recognition
When a program makes observations of some kind, it is often programmed to compare
what it sees with a pattern.
representation
Facts about the world have to be represented in some way. Usually languages of
mathematical logic are used.
inference
common sense knowledge and reasoning
This is the area in which AI is farthest from human-level
learning from experience
Programs do that. The approaches to AI based on connectionism and neural nets
specialize in that.
planning
Planning programs start with general facts about the world (especially facts about the
effects of actions), facts about the particular situation and a statement of a goal. From
these, they generate a strategy for achieving the goal. In the most common cases, the
strategy is just a sequence of actions.
epistemology
This is a study of the kinds of knowledge that are required for solving problems in the
world.
ontology
Ontology is the study of the kinds of things that exist. In AI, the programs and
sentences deal with various kinds of objects, and we study what these kinds are and
what their basic properties are. Emphasis on ontology begins in the 1990s.
heuristics
A heuristic is a way of trying to discover something or an idea imbedded in a program.
The term is used variously in AI. Heuristic functions are used in some approaches to
search to measure how far a node in a search tree seems to be from a goal. Heuristic
predicates that compare two nodes in a search tree to see if one is better than the other,
i.e. constitutes an advance toward the goal, may be more useful. [My opinion].
genetic programming
Genetic programming is a technique for getting programs to solve a task by mating
random Lisp programs and selecting fittest in millions of generations.
1.2 Applications of AI
game playing
speech recognition
understanding natural language
Just getting a sequence of words into a computer is not enough. Parsing sentences is
not enough either. The computer has to be provided with an understanding of the
domain the text is about, and this is presently possible only for very limited domains.
computer vision
The world is composed of three-dimensional objects, but the inputs to the human eye
and computers' TV cameras are two dimensional. Some useful programs can work
solely in two dimensions, but full computer vision requires partial three-dimensional
information that is not just a set of two-dimensional views. At present there are only
limited ways of representing three-dimensional information directly, and they are not
as good as what humans evidently use.
expert systems
A ``knowledge engineer'' interviews experts in a certain domain and tries to embody
their knowledge in a computer program for carrying out some task.
heuristic classification
One of the most feasible kinds of expert system given the present knowledge of AI is
to put some information in one of a fixed set of categories using several sources of
information. An example is advising whether to accept a proposed credit card
purchase. Information is available about the owner of the credit card, his record of
payment and also about the item he is buying and about the establishment from which
he is buying it (e.g., about whether there have been previous credit card frauds at this
establishment).
2 Kennissystemen
2.1 Kennis en technologie
kennistechnologie bespreken als we het over systemen, methoden en technieken hebben die
op een of andere manier kennis gebruiken om nieuwe problemen op te lossen.
Zodra systemen functioneren, wordt al snel geaccepteerd dat ze functioneren zoals ze zijn en
verdwijnt al snel naar de achtergrond het feit dat dat komt omdat er een heleboel kennis in is
opgenomen. Een eenvoudige calculator of handrekenmachine gebruikt voor het bepalen van
bijvoorbeeld logaritmes geavanceerde wiskundige kennis, maar dat vinden we ondertussen
niet meer dan normaal en we zullen zo’n apparaat daarom niet snel ‘intelligent’ noemen.
Kennistechnologie wordt altijd toegepast in een bepaald domein. Bij de
bibliotheekadministratie wordt het domein gevormd door alle informatie over boeken,
bibliotheekgebruikers en procedures die te maken hebben met het uitlenen van de boeken. Bij
de besturing van stoplichten horen tot het domein de kennis over de wegen die op het
kruispunt uitkomen, de doorstroomsnelheden van het verkeer, enzovoorts. En bij een
spellingcorrector horen woordenlijsten en de grammatica tot het domein. De kennis die te
maken heeft met het domein waarop het systeem functioneert, wordt kortweg domeinkennis
genoemd. Kennis nodig om de systemen te laten functioneren of te gebruiken, behoort niet tot
de domeinkennis.
Wat behoort tot de domeinkennis van de volgende systemen? En wat niet?
– de automatische piloot van een Boeing 747
kennis over het berekenen van de te vliegen route, gegeven de actuele positie, de bestemming en de
weersituatie, of kennis over het gedrag van het vliegtuig bij verschillende weersomstandigheden als het wordt
bestuurd, bijvoorbeeld bij koerswijzigingen of stijgen en landen. De kennis nodig om de boordcomputers te
laten functioneren, of allerlei informatie over het bedienen van onderdelen van het vliegtuig behoort niet tot de
domeinkennis van de automatische piloot.
– een systeem voor de bepaling van de inkomstenbelasting van particulieren
is kennis over de wijze waarop de berekeningen moeten worden uitgevoerd om tot een vaststelling van de
belasting te komen, maar ook kennis omtrent allerlei geldende regelingen en voorwaarden op grond waarvan
bepaalde posten al dan niet mogen worden opgevoerd. Ook kennis omtrent de methode hoe je tot een (voor
particulieren) zo voordelig mogelijke invulling van het belastingformulier kunt komen behoort tot de
domeinkennis. Hoe de berekeningen precies uitgevoerd worden behoort niet tot de domeinkennis, evenmin als
de methoden van registratie of opslag.
– een computerschaakprogramma.
Bij een computerschaakprogramma hoort de kennis over de toegestane zetten van de stukken tot de
domeinkennis, evenals kennis over strategieën, sterke openingen en eindspelen. Niet tot de domeinkennis
behoort de kennis over de representatie van verschillende spelsituaties in de computer of wijze waarop de
verschillende eindspelen in de computer zijn opgeslagen.
2.2
Expertsystemen
Expertsystemen omvatten kennis van een bepaald domein en kunnen daarmee
redeneren om nieuwe conclusies te trekken, op soortgelijke wijze als menselijke experts
dat doen. De kennis bestaat niet alleen uit de feiten uit het betreffende domein, maar
bestaat ook uit de wijze waarop daarmee geredeneerd wordt. Een menselijke expert,
bijvoorbeeld een gespecialiseerde arts, kent een heleboel feiten uit het vakgebied. Maar
meer nog dan de kennis van die feiten alleen, weet weet de expert met die kennis om te
gaan en in nieuwe situaties toe te passen of zich dingen af te vragen en eventueel nader
te onderzoeken. In expertsystemen wordt geprobeerd op soortgelijke wijze kennis op te
slaan en ermee te redeneren als een menselijke expert dat doet. In expertsystemen is de
kennis van een bepaald domein op een duidelijke wijze ondergebracht. Ze bevatten een
deelsysteem waarin allerlei feitenkennis is ondergebracht samen met de regels en
methoden die voorschrijven hoe met die kennis moet worden omgesprongen. Dit
deelsysteem bevat de domeinspecifieke kennis en wordt de kennisbank (Engels:
knowledge base) genoemd. Daarnaast bevatten expertsystemen een mechanisme, het
inferentiemechanisme, dat de domeinspecifieke kennis manipuleert, afhankelijk van de
vragen die (via de gebruikers-interface) aan het systeem gesteld worden of de taken die
het moet verrichten. Door de combinatie van de domeinspecifieke kennis en het daarvan
onafhankelijke inferentiemechanisme zijn expertsystemen in staat over nieuwe situaties
te redeneren en relevante conclusies te trekken of uitspraken te doen.
Expertsystemen behoren tot de meest succesvolle toepassingen van het onderzoek op
het gebied van de kunstmatige intelligentie. Typische voorbeelden zijn te vinden in de
verzekeringswereld, bijvoorbeeld bij de acceptatie van nieuwe polissen. Een polis van een
specifieke klant wordt geaccepteerd als aan een aantal voorwaarden is voldaan. Deze
voorwaarden bestaan uit een aantal regels die betrekking hebben op verschillende
situaties. De regels zijn de domeinspecifieke kennis. Van een nieuwe aanvraag kan door
het systeem worden beoordeeld of het aan de voorwaarden voldoet. Na eventueel
aanvullende vragen zal het systeem uiteindelijk met een advies komen. Het gebruik van
expertsystemen in dit soort situaties maakt het mogelijk dat snel een advies kan worden
verstrekt dat in overeenstemming is met de binnen het bedrijf geldende en vastgelegde
regels.
2.3 Neurale netwerken
In expertsystemen is in de kennisbank op een herkenbare wijze kennis ondergebracht en
wordt er op een volgbare wijze mee geredeneerd. In neurale netwerken is dat niet het geval.
Neurale netwerken worden dan ook toegepast in situaties waarin het niet mogelijk is feiten en
verklaringen te gebruiken, zoals bij expertsystemen.
De achterliggende idee bij neurale netwerken is dat kennis wordt verkregen door leren:
mensen leren doordat ze zien welke effecten of resultaten horen bij welke oorzaken. Een kind
leert letters en woorden door er vele malen mee geconfronteerd te worden en kan dan
vervolgens in nieuwe situaties die kennis gebruiken. Een kind heeft daarmee de verbinding
leren leggen tussen een bepaald plaatje (het tekentje voor de letter) en de betekenis of de
klank van die letter. Op soortgelijke wijze heeft het de verbinding leren leggen tussen
woorden (rijtjes letters) en de dingen die ze voorstellen (bij het rijtje letters ‘p a a r d’ hoort
een beest met vier poten, een grote kop en een lange staart). Er is dus steeds sprake van een
verbinding (in de wiskunde wordt dat een functie of afbeelding genoemd): bij een bepaalde
invoer hoort een bepaalde uitvoer. Door leren kan een mens zich die afbeelding eigen maken.
Neurale netwerken zijn systemen die op soortgelijke wijze leren en die in
computerprogramma’s kunnen worden geïmplementeerd. Ze worden getraind op een aantal
voorbeeldsituaties en kunnen dan in nieuwe situaties zelf conclusies trekken. Zo zijn er
neurale netwerken ontwikkeld voor het herkennen van menselijke handschriften. De invoer is
dan een stukje handgeschreven tekst en de uitvoer een verder bewerkbare tekst, bijvoorbeeld
in ASCII-code. De posterijen maken gebruik van dit soort systemen om een grote hoeveelheid
sorteerwerk geautomatiseerd te laten verlopen.
De interne structuur van neurale netwerken is gebaseerd op ideeën over de werking van de
menselijke hersenen en ze ontlenen er ook hun naam aan (zie figuur 1.2.2). In neurale
netwerken worden grote hoeveelheden eenvoudige berekeningen uitgevoerd. Hoe die worden
uitgevoerd, wordt vastgelegd tijdens de leerfase. Het resultaat is dat bij een bepaalde invoer
steeds een bepaalde uitvoer hoort.
2.4
Datamining
In sommige situaties is er een zeer grote hoeveelheid gegevens beschikbaar en men wil
daarin dan verbanden ontdekken. Het kan bijvoorbeeld gaan om gegevens van klanten in
supermarkten waarvan is bijgehouden wat voor producten ze kopen in bepaalde
vestigingen, om financiële gegevens van burgers in verband met belastingen en
subsidies, om gegevens over verkeersintensiteiten en opstoppingen op de wegen of om
gegevens over het reisgedrag van reizigers met het openbaar vervoer. Gewone
statistische methoden geven dan vaak al enig beeld van samenhang, maar veel blijft
verborgen in de grote hoeveelheid gegevens.
Onder de naam ‘data mining’ of ‘knowledge discovery’ zijn technieken ontwikkeld die
kennis kunnen ontsluiten die op andere manieren verborgen blijft in de enorme
gegevensbestanden.
Zodra een organisatie kennis bloot kan leggen die in haar gegevensbestanden zit, kan ze
er rekening mee houden en beter of efficiënter werken. Organisaties die moeten waken
over de juistheid van de besteding van overheidsgelden, zijn er bij gebaat als ze door
data-mining-technieken kunnen achterhalen of frauduleuze personen typische
kenmerken hebben, zodat er met een grotere kans op succes naar gespeurd kan worden.
Ontwikkelaars van het verkeersbeleid zijn zeer geïnteresseerd in alle mogelijke factoren
die het verkeersverloop bepalen of in de reisroutes die passagiers volgen. Meer kennis
kan enorme besparingen opleveren bij het aanleggen van wegen of wijzigen van het
openbaar vervoer.
De hoeveelheid gegevens die op veel plekken wordt verzameld, neemt snel toe. Om
kennis te ontsluiten in die grote hoeveelheden gegevens, moeten alle gegevens op een
toegankelijke wijze beschikbaar zijn. Vaak is dit al een enorme klus en een belangrijk
deel van het werk. Vervolgens worden ze geanalyseerd met speciale algoritmes waarmee
gezocht wordt naar veelvoorkomende patronen. Daarna kan gepoogd worden de kennis
die hieruit volgt, nader te interpreteren en toe te passen.
2.5
Intelligent Agents
In essentie zijn het computerprogramma's die een zekere mate van autonomie hebben,
in staat zijn te leren en intelligent gedrag vertonen. Een voorbeeld zijn agents die voor
een gebruiker het world wide web afspeuren naar informatie die voor de gebruiker
interessant kan zijn. Zo'n agent analyseert het gedrag van de gebruiker en leidt daaruit
af wat de interesses zijn. Vervolgens onderneemt de agent zelfstandig actie om relevante
informatie te vinden en informeert de gebruiker daarover. Uiteraard zal een gebruiker
eerst zelf bepalen of die gebruik wil maken van een dergelijke dienstverlening, en zal
eventueel ook andere zaken vooraf vastleggen of aanpassen in de periode dat de agent
actief is. Agents zijn feitelijk computerprogramma’s, maar kenmerkend is dat ze een
zekere autonomiteit bezitten en intelligent gedrag vertonen. Dat laatste is vaak in de
agent ingebouwd door er een klein expertsysteem in op te nemen. De grens tussen
agents en expertsystemen is niet altijd even duidelijk. Soms zijn expertsystemen zo
groot dat de globale besturing problematisch wordt. Dergelijke systemen kunnen dan
uiteengerafeld worden tot kleinere processen die uitgevoerd worden door afzonderlijke
autonome agents. Op die manier ontstaan zogeheten intelligent multi agent systems.
Van groot belang blijkt daarbij te zijn hoe de communicatie tussen de verschillende
agents verloopt. Multi agent systemen worden bijvoorbeeld toegepast bij het beheer van
grote elektriciteitsnetwerken, waarbij de verschillende beheersfuncties bij verschillende
agents worden ondergebracht.
Zelfstandig functionerende agents worden soms ontworpen om een soort makelaarsrol te
vervullen. Dergelijke agents (broker agents) brengen vragers en aanbieders van
producten of diensten op het internet met elkaar in contact. Een ander voorbeeld is
bekend van een elektriciteitsmaatschappij die individueel met iedere klant wil
onderhandelen over de leveringsvoorwaarden. De onderhandelingen met iedere klant
werden door een agent gedaan die een expertsysteem bevat met kennis over
voorwaarden, mogelijkheden en onderhandelingsstrategieën.
De ontwikkelingen met betrekking tot agents zijn op dit moment (1999) nog volop in
ontwikkeling, maar de komende jaren kan een enorme vooruitgang worden verwacht,
onder andere door de mogelijkheden die het world wide web biedt voor agents om actief
te zijn. Binnen deze cursus zal er nauwelijks expliciet aandacht aan geschonken worden,
maar belangrijke onderdelen van de kennistechnologie worden vaak ook in intelligent
agents toegepast.
2.6
Kennis, Kennissystemen, Kennistechnologie
In voorgaande subparagrafen is een aantal systemen behandeld die kennis hebben in
een bepaald domein en die kennis kunnen toepassen voor het oplossen van problemen,
het geven van adviezen of het ondernemen van acties. Ze hebben tot doel kennis te
achterhalen, vast te leggen of ermee te redeneren en zo in zekere mate intelligent
gedrag te vertonen. Het geheel aan methoden en technieken om dergelijke systemen te
ontwikkelen, zullen we kennistechnologie noemen.
Wat kennis precies is, hebben we overigens niet vastgelegd. In de literatuur zijn vele
verschillende definities in omloop. Die hebben allemaal gemeen dat zij kennis van
informatie of gegevens onderscheiden door aan kennis een zekere doelgerichtheid of het
vermogen om problemen op te lossen toe te kennen. Voor het vervolg van deze cursus is
het niet noodzakelijk een precieze definitie van kennis te hebben die niet ter discussie
staat. Wel zal in de volgende hoofdstukken gaandeweg duidelijk worden welke soorten
kennis in de kennistechnologie kunnen worden toegepast om problemen van diverse aard
op te lossen.
We hebben aangegeven wat we onder kennistechnologie verstaan. De invulling daarvan
is redelijk algemeen geaccepteerd. Ook is er in het algemeen redelijk overeenstemming
over wat er onder expertsystemen wordt verstaan. De term kennissystemen hebben we
tot nu toe echter vermeden. De reden daarvoor is dat het begrip kennissysteem voor
velen een verschillende inhoud heeft. Sommigen noemen expertsystemen ook
kennissystemen, anderen maken een nadrukkelijk onderscheid daartussen en verstaan
onder expertsystemen systemen waarin de kennis van menselijke experts is opgenomen,
terwijl in kennissystemen ook kennis uit (hand)boeken of andere bronnen voor kan
komen. Ook de termen kennisgebaseerde systemen of kennisintensieve
informatiesystemen komen voor.
3 Intelligent Agents
3.1 agents
An agent is anything that can be viewed as perceiving its environment through sensors and
acting upon that environment through actuators
Percept sequence: an agent’s percept sequence is the complete history of everything the agent
has ever perceived. We use the term percept to refer to the agent’s perceptual inputs at any
given instant.
3.2 Rationality
Wat rationeel is op elk ogenblik hangt af van 4 dingen:
- Performance measure that defines the criterion of success
- The agent’s prior knowledge of the environment.
- The actions that the agent can perform
- The agent’s percept sequence to date.
3.3 Rational agent
For each possible percept sequence, a rational agent should select an action that is expected to
maximize its performance measure, given the evidence provided by the percept sequence and
whatever built-in knowledge the agent has.
Agents can perform actions in order to modify future percepts so as to obtain useful
information (information gathering, exploration)
An agent is autonomous if its behavior is determined by its own experience (with ability to
learn and adapt)
3.4 Performance, Environment, Actuators, Sensors (PEAS)
wat? kunnen toepassen/beschrijven voor geziene voorbeelden en in nieuwe gevallen.
3.5 Eigenschappen van taakomgevingen
Wat is een taakomgeving?
Dat is het ‘probleem’ waarvoor een rationele agent de ‘oplossing’ is.
Er zijn verschillende typen van taakomgevingen
3.5.1
Fully observable (vs partially observable)
Een agent’s sensors geeft hem access tot de complete staat van de omgeving op elk punt in de
tijd.
3.5.2
Single agent (vs multiagent)
Spreekt voor zich. 1 agent (een kruiswoordraadsel oplossen) multiagent (chess spelen). Maar
MOET een agent A (taxi chauffeur bvb) een object B (een andere wagen) als een agent zien?
Dan moet er gekeken worden of de B object zijn performance maximized op basis van A zijn
performance measure. Chess is een vb van een competititeve multiagent omgeving omdat een
agent B zijn performance zal maximaliseren, wat, door de regels van chess, a zijn
performance minimaliseert. Maar bvb in het verkeer, waar ze zullen botsingen vermijden, is
er dus sprake van een samenwerkende multiagent environment
3.5.3
Deterministisch (vs stochastisch)
De volgende staat van de omgeving is volledig bepaald door de huidige staat en de actie die
wordt uitgevoerd door de agent. (als de omgeving deterministisch is behalve voor de acties
van andere agents, dan is die strategisch)
3.5.4
Episodisch (vs sequentieel)
De agent’s experience is ingedeeld in atomische ‘episodes’ (elke episode bestaat uit de agent
perceiving en daarna het uitvoeren van een enkele actie), en de keuze van actie in elke episode
hangt enkel af van de episode zelf.
3.5.5
Statisch vs dynamisch
Als de omgeving kan vervanderen terwijl een agent aan het delibireren is, dan zeggen we dat
de omgeving dynamisch is. Anders is het statisch. Statisch is makkelijk mee om te gaan
omdat de agent niet de wereld moet blijven bekijken terwijl het een actie kiest en het moet
ook niet denken aan de tijd die loopt. Als de omgeving zichzelf niet veranderd door de tijd
heen maar de agent zijn performance score wel, dan is het semidynamisch. Taxi driving is
duidelijk dynamisch.
3.5.6
Discreet vs continuous
Discrete/continuous verschil is van toepassing op de staat vd omgeving, hoe tijd behandelt
word en tot de percepts en acties van de agent.
3.5.7
Gekend of ongekend
Deze onderscheid hangt af van de kennis over de “laws of physics” van de omgeving. Als het
een gekende omgeving is, is de uitkoms duidelijk anders zal de agent de omgeving moeten
leren kennen.
3.6 Structuur van agents
Het is de taak van AI om een agent programma te ontwerpen dat de agent function (het
mappen van percepts in acties) te implementeren. We nemen aan dat dit programma zal
gerund worden op een soort computer machine met phisische sensors en actuators. Dit
noement de de architecture. Dus:
Agent = architecture + program
Er zijn 4 agent types te onderscheiden
- Simple reflex agents
- Model-based reflex agents
- Goal-based agents
- Utility based agents.
3.6.1
Simple reflex agents
Deze agent selecteert acties op basis van de huidige percept en negeert de rest van de
perceptgeschiedenis. (enkel in fully observable environments)
3.7 Samenvatting (H2 russel en Norvig)
Een agent is iets dat waarneemt en acties uitvoert in een omgeving. De agent function
specifieerd de acties genomen door de agent als antwoord op gelijk welke waarneming
sequentie.
De performance measure evalueert het gedrag van een agent in een omgeving. Een rationele
agent werkt zodat hij deze performance measure maximaliseert
Een task environment specificatie bevat de performance measure, the external envoronment,
de actuators en de sensors (PEAS). In een ontwerp van een agent moet de eerste stap altijd
zijn de omgeving zo goed mogelijk te beschrijven of meegeven.
Simple reflex agents reageren direct op een waarneming, waar model)based reflex agents hun
interne staat houden om de aspecten van de wereld die niet evident zijn te waarnemen. Goalbased agents werken om hun goals te behalen en utility-based agents proberen hun eigen
verwachte ‘happiness’ te maximaliseren.
Elke agent kan zijn performance verbeteren door te leren
4 Search
4.1 Agoritme problem solving agent
Function SIMPLE-PROGRAM-SOLVING-AGENT(percept) returns an actions
Persistent: seq, an action sequence, initially empty
State, some description of the current world state
Goal, a goal, initially null
Problem, een problem formulatie
State <- UPDATE-STATE(state, percept)
If seq is empty then
Goal <- FORMULATE-GOAL(state)
Problem <- FORMULATE-PROBLEM(state,goal)
Seq <- SEARCH(problem)
If seq = failure then return a null action
Action <- FIRST(seq)
Seq <- REST(seq)
4.2 Formuleren van het doel
goal formulation is de eerste stap in problem solving.
4.3
5 delen van een problem
- Initiele staat waarin de agent begint
- Een beschrijving van mogelijke acties die de agent kan doen
- Een beschrijving wat elke actie doet
- Goal test
- Path costs functionde agent kies een cost functie dat zin eigen performance measure
reflecteert.
Een optimale oplossing heft het laagste path cost van alle mogelijke oplossingen.
4.4 Abstractie
Het process dat details verwijdert van een representatie noemen we abstractie.
4.5
Figuur 3.7
4.6 Voorbeelden van problemen
Zie boek
4.7
-
Op welke criteria worden zoekalgoritmes beoordeeld
Volledigheid (completeness): is er een garantie dat het algoritme een oplossing zal
vinden als er 1 is?
Optimalisatie: vind de strategy de optimale oplossing?
Time complexiteit: hoelang duurt het voor een oplossing te vinden?
Space (ruimte) complexiteit: hoeveel geheugen is er nodig voor de zoekfunctie uit te
voeren
Tijd en ruimte complexiteiten zijn gewogen in termen van:
- B: maximum branching factor van de zoekboom
- D: diepte van de laagste-kost oplossing
- M: maximum diepte van de state space (kan oneindig zijn)
4.8
Wat zijn de resultaten voor de uniforme zoekstrategieen; definities
(omschrijvingen) te kennen.
4.8.1
Breadth-first search
BF-search is een eenvoudige strategy in wihch the root node is expanded first, then all the
successors of the root node are expanded next, then their successors, and so on. Algemeen
gezien zijn alle nodes bezocht op een gegeven diepte in de boom alvorens de volgende onder
de loep worden genomen
4.8.2
Uninform-cost search
Deze is vergelijkbaar met BF search maar het kiest de laagste kost-node. Zie boek voor prent
van routenaar bucharest, zeer goed uitgelegt in text
Uniform-cost wordt dus geleid door path costs, eerder dan diepte.
4.8.3
Depth-first search
DF-search always expands the deepest node in the current frontier of the search tree.
Gaat altijd dieptste node bekijken dus eigenlijk in 3.12 bij a zal het gaan: A – B – D – E –B –
C–F–G
Deze strategie i niet toepasbaar bij oneindige dieptes en loops. De tijdskost is enorm groot als
m (max diepte) veel groter is dan d (de optimale diepte) omdat er veel tijd verloren gaat naar
die maximum dieptes te kijken
4.8.4
Depth-limited search
Dit is hetzelfde als depth-first maar er wordt een diepte limit ( / ) opgelegd.
Dit wil zeggen dat nodes op diepte / geen successors hebben.
Depth limited is er gekomen dankzij de fail van depth-first search waar er een oneindige depth
is. Zo faalt deze niet in oneindige d situaties.
Maar natuurlijk als je l < d (optimale diepte) dan zit je met slecht resultaat.
4.8.5
Iterative deepening search
Dit zoekt de beste diepte limit op een iteratieve manier. Totals er een opl is gevonden, dat is
dan ook de lowest-cost diepte
Zie volgende prent:
4.9 Leg uit: bidirectioneel zoeken.
Bij bidirectional search wil je 2 zoekopdrachten tegelijk runnen. 1 die van de initiele state
vooruit zoekt en een die vanaf de goal achteruit zoekt.
4.10 Definitie van informed (heuristisch) search
Een informed search strategie is een dat probleem-specifieke kennis gebruikt achter de
definitie van het probleem zelf. Het weet dus op voorhand al meer kennis dan de initiele state.
5 Semantic web (web 3.0)
5.1 Leg de essentiële verschillen uit tussen het klassieke www en web 3.0.
Huidige web:
- +- 200 miljoen websites
- Gemaakt in HTML
- Enkel leesbaar voor mensen
- Moeilijk doorzoekbaar
- 15 jaar oud
Semantic web:
- Initiatief van W3C
- WWW begrijpbaar maken voor machines
- Alles toegankelijk
- Evolueerbaar
- Minimalistisch houden
5.2 Definitie ontologie + voorbeeld geven
Een ontologie is een datamodel dat een verzameling begrippen binnen een bepaald domein
(aka Thesaurus) alsook de relaties tussen deze begrippen voorstelt
Vb: een afbeelding beschrijven met betekenisvollere woorden.
5.3
Semantische netwerken... een voorbeeld kunnen geven en bespreken
(uitleggen wat de delen zijn)
Friend Of A Friend
Friend Of A Friend is een ontology die personen, hun activiteiten en hun relaties beschrijft die
leesbaar is door een machine. Iedereen kan dus zichzelf beschrijven met FOAF en het laat
mensen toe om sociale netwerken te beschrijven zonder een gecentraliseerde database.
FOAF is een extensie van RDF en is gedefinieerd met OWL. Machines kunnen FOAF
gebruiken om bv mensen te vinden of om bv te weten te komen hoeveel mensen er tot een
bepaalde groep behoren. Elk FOAF profiel heeft een unieke herkenning, bv een email adres of
een URI naar de weblog van die persoon.
Voorbeeld van een persoon in FOAF
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<foaf:Person rdf:about="#JM">
<foaf:name>Jeroen Merckx</foaf:name>
<foaf:mbox rdf:resource="mailto:[email protected]" />
<foaf:homepage rdf:resource="http://www.vangrondin2006.be/" />
<foaf:nick>Gaskonijn</foaf:nick>
<foaf:depiction
rdf:resource="http://www.imageshack.us/aus_img_small.jpg" />
<foaf:interest>
<rdf:Description rdf:about="http://www.wikimedia.org"
rdfs:label="Wikipedia" />
</foaf:interest>
<foaf:knows>
<foaf:Person>
<foaf:name>Glenn Van Cauter</foaf:name>
</foaf:Person>
</foaf:knows>
</foaf:Person>
</rdf:RDF>
De bovenstaande code is een voorbeeld van een FOAF profile.
6 Genetische algoritmen
6.1 Geef een algemeen schema van een genetisch algoritme
Initialiseer populatie
Evalueer populatie
while not klaar do
Selecteer ouders
Genereer met crossover kinderen
Muteer kinderen
Evalueer kinderen
Bepaal nieuwe populatie
return beste element uit populatie
Genetische algoritmen (GAs) zijn een vorm van reinforcement
leren, waarbij gewerkt wordt met beloningen en
straffen in plaats van met de “goede antwoorden”.
Een GA heeft een populatie met kandidaat-oplossingen (individuen
of chromosomen) voor het betreffende probleem.
Deze worden met elkaar (en zichzelf) gecombineerd tot hopelijk
betere oplossingen. Essentieel is een fitness-functie
die de kwaliteit van oplossingen beoordeelt.
7 PROJECT OEFENINGEN EN ANTWOORDEN
Download