Didactische ondersteuning van theoretische informatica

Maat: px
Weergave met pagina beginnen:

Download "Didactische ondersteuning van theoretische informatica"

Transcriptie

1 Didctische ondersteuning vn theoretische informtic Annelotte BOLLEN promotor: Prof. dr. Frnk NEVEN Acdemiejr Eindverhndeling voorgedrgen tot het ekomen vn de grd licentit in de informtic fstudeervrint multimedi

2

3 Voorwoord Je studies fronden is het einde vn een levensfse. An de universiteit gt dit geprd met de grootste opgve die je ls student moet volrengen, nmelijk het mken vn een thesis. Het schrijven vn dit voorwoord is een moment om even stil te stn en chteruit te kijken. Het liep niet steeds vn een leien dkje en ik esef eens te meer dt er nog zoveel te ontdekken vlt, de opleiding omvt slechts het topje vn de ijserg. Alles leren is nmelijk onmogelijk... zeker in een steeds vernieuwende en groeiende opleiding ls informtic. Mr door de rede vorming die een universiteit niedt, ezit ik nu de sis die ik nodig he om te groeien in mijn vk. Tijdens mijn studie he ik, dnkzij de professoren en ssistenten, kennis kunnen vergren vn de verschillende deelgeieden in de informtic. In het ijzonder wil ik mijn promotor ednken voor zijn rd en geduld tijdens het verloop vn mijn thesis. Ik leerde niet lleen over een vkgeied; door de jren heen he ik mezelf kunnen ontplooien en leerde ik de deelgeieden vn het mens-zijn kennen: tl-, communictie- en reltievrdigheden. Hiervoor en ik dnk verschuldigd n l mijn vrienden, in het ijzonder n Kristien, John en Frederik. Zij zorgden mee voor de schitterende tijd die ik in Diepeneek gehd he. Het is dnkzij de levendige discussies, de lnge nchten en de ervring smen te werken met nderen dt ik geworden en wie ik nu en. Zonder de steun en het geduld vn mijn vriend Tom zou ik enkele mnden geleden de hnddoek in de ring heen gegooid. Dnkzij hem en ik echter lijven volhouden en kon ik door het os de omen terug zien. Mr niet lleen drvoor moet ik hem ontzettend ednken. Ook voor het nlezen vn deze thesis en zinvolle ontspnning kon ik steeds op hem rekenen. En ls ltste, mr zeker niet ls minste, wil ik grg mijn ouders ednken. Zij heen me de mogelijkheid geoden om te studeren, zij lijven onvoorwrdelijk in mij geloven en steunen me in lles wt ik doe. Bednkt! Annelotte Bollen 10 ugustus 2005

4 Inhoudsopgve 1 Inleiding Doelstellingen vn het vk Theoretische Informtic Methodisch-didctische sisprincipes Indeling vn de thesis Grmmtic s en prsing Didctische wenken Contextvrije grmmtic Vooreeld Prsing Wt is prsing Het CYK prsing lgoritme Vooreeld CYK prsing in JFLAP Wt is JFLAP? Werkwijze voor CYK prsing in JFLAP Oefeningen Oefening Oefening Besluit Stringutomten en reguliere expressies Didctische wenken Thompson-constructie Vooreeld: Thompson-utomt voor ( ( ) ) Glushkov-constructie Vooreeld: Glushkov-utomt voor ( ( ) ) Expliciete constructie vn Glushkov-utomt voor E = ( ( ) ) Eigenschppen vn de Glushkov-utomt Vergelijking Vn Thompson nr Glushkov Vn Glushkov nr Thompson Geruik vn de twee constructies Besluit

5 4 Boomutomten Didctische wenken Differentitie Integrtie Boomutomten Boomutomt en stringutomt Definitie Vooreeld: oolense formules [13] Toepssing XML en DTD XML: extensile Mrkup Lnguge Equivlentie vn XML DTD s DTD ls oomutomt Onduelzinnig gedefinieerde DTD s Toepssing XPth Stndrd XPth Core XPth Minimle XPth expressies en oomutomten Core XPth en oomutomten Equivlentie vn XPth expressies Besluit Stringutomten en pttern mtching Didctische wenken Wt is pttern mtching Overzicht vn lgoritmen Nïeve oplossingsmethode Knuth Morris Prtt lgoritme (KMP) Het Boyer-Moore lgoritme (BM) Zoeken met een deterministische eindige utomt Forwrd DAWG Mtching lgorithm (Suffix utomton) Reverse Fctor lgorithm Besluit Finite stte dventures Didctische wenken Wt zijn finite stte dventures? Methode Inleiding Level Level Level Level Level Besluit

6 7 XViz, een visulistietool voor XPth Didctische wenken XViz Werkwijze Relties Het progrmm Besluit Besluit vn deze thesis 83 4

7 Hoofdstuk 1 Inleiding 1.1 Doelstellingen vn het vk Theoretische Informtic De term theoretische informtic is de nm die gegeven wordt n het deelgeied vn de informtic dt het meest gemeen heeft met de toegepste wiskunde. Theoretische informtici zijn zij die ezig zijn met het zoeken vn fundmentele oplossingen voor lgemene informticvrgstukken. Het is niet moeilijk om in te zien dt we hier spreken over een zeer uitgereid onderwerp. De studenten vn het tweede chelorjr informtic krijgen een inleiding in de theoretische informtic. Jmmer genoeg ontreekt het veel studenten n motivtie voor deze cursus. Dit komt wrschijnlijk door het strcte niveu, de hoge moeilijkheidsgrd en het ontreken vn een duidelijke link met de prktijk. Deze thesis trcht n de hnd vn didctische sisprincipes de oorzk vn dit proleem te chterhlen en reikt enkele oplossingen n. Vi het trjectoek [1] worden n de leerlingen de doelstellingen vn het vk theoretische informtic meegedeeld. Nst prktische doelstellingen zols toepssingen en implementtie zijn dit de hoofddoelstellingen: 1. De student leert de sisprincipes vn reguliere tlen 2. De student leert de sisprincipes vn context-vrije tlen 3. De student leert de sisprincipes vn eslisrheid en oneslisrheid Bij reguliere tlen krijgen de studenten ook een definitie voor reguliere expressies en de Thompson-constructie. Verder wordt er gesproken over stringtlen en stringutomten. Onder de toepssingen vn context-vrije tlen en grmmtic s vlt ook het CYK prsing lgoritme dt de studenten moeten kennen en kunnen toepssen. 5

8 1.2 Methodisch-didctische sisprincipes Er is heel wt geschreven rond didctiek en de methodiek vn onderwijzen. In het oek Psyhodidctiek en het onderwijs [4] eschrijft Jos Thielemns de elngrijkste methodischdidctische sisprincipes. Dit zijn vuistregels voor de leerkrcht; hij of zij wordt verwcht hier op elk moment in zijn onderwijsprktijk zoveel mogelijk rekening mee te houden. Een opsomming vn deze principes met een korte uitleg: 1. Anschouwelijkheid Om te vermijden dt studenten enkel kunnen prten over de leerstof, zonder deze ooit in werkelijkheid gezien te heen, is het elngrijk dt de leerinhouden zintuiglijk wrneemr voorgesteld worden. Het komt er dus op neer zoveel mogelijk nschouwelijk mteril te geruiken in plts vn verle uitleg. 2. Activiteit Leerlingen moeten ctief etrokken worden ij het leerproces. De leerkrcht fungeert dus ls egeleider en stimultor terwijl hij ook moet zorgen voor een gunstig klimt. 3. Belngstelling De leerkrcht moet de studenten trchten te motiveren en te interesseren voor de leerstof. Dit kn ijvooreeld door vooreelden te geruiken uit hun leefwereld en n te knopen ij hun ervringen. Ook is het elngrijk om de studenten geregeld (tussentijds) successen te lten eleven om hun elngstelling te ehouden. 4. Individulistie en differentitie Er moet rekening gehouden worden met het feit dt geen twee studenten gelijk zijn en dus ook het leerproces verschilt tussen hen. Dit kn op verschillende niveu s: in doelstellingen: minimle en uitreidingsdoelen in elngstelling: leerlingen kiezen zelf een deel teksten uit of een onderwerp voor een project in methodische npk: fwisseling in didctische werkvormen in tempo: ijvooreeld door zelfstndig werk Te vk wordt het hele onderwijsproces fgestemd op de gemiddelde student wrdoor zowel zwkkere ls sterkere studenten tekortgedn worden. 5. Integrtie Kennis moet een geïntegreerd geheel worden en geen smenrpsel vn feiten en weetjes. Door vernden te leggen, verschillende oefeningen te lten mken en te wijzen op de mogelijke toepssingen kn nieuwe kennis geïntegreerd worden met reeds verworven kennis. Deze kennis komt zowel uit dit vk ls uit ndere vkken. 6. Geleidelijkheid Onderwijsdoelstellingen kunnen slechts geleidelijk gereliseerd worden. Werk vn eenvoudige nr complexere doelstellingen en zorg ervoor dt de stp tussen voorkennis en te verwerven kennis niet te groot wordt. 6

9 1.3 Indeling vn de thesis Het eerste deel vn deze thesis, hoofdstuk 2, omvt de ontwikkeling vn een tool die de studenten de kns geeft met ehulp vn vooreelden het CYK prsing lgoritme te doorgronden. De edoeling is het lgoritme te visuliseren (nschouwelijk voor te stellen) en enkele oefeningen voor de studenten n te ieden. Als uitreiding op de Thompson-constructie wordt de Glushkov-constructie eschreven in hoofdstuk 3 en wordt er een vergelijking gemkt tussen deze twee constructies voor utomten vn reguliere expressies. Stringutomten worden uitgereid tot oomutomten in hoofdstuk 4 wrij de rede toepssingsmogelijkheden (XML, DTD, XPth) worden endrukt en uitgelegd n de hnd vn vooreelden. Er wordt in dit hoofdstuk ook nog eens teruggegn nr de eerder geziene Glushkov-constructie en het nut ervn voor de definitie vn onduelzinnige DTD s. In het volgende hoofdstuk (5) vn deze thesis wordt er een link gelegd tussen de theoretische informtic en het vk lgoritmen en dtstructuren. An de hnd vn verschillende lgoritmen wordt duidelijk hoe stringutomten kunnen helpen ij pttern mtching. Het voorltste hoofdstuk eschrijft een lterntieve toepssing vn utomten, formele tlen en erekenrheid: finite stte dventures. Tot slot wordt in hoofdstuk 7 een korte inleiding gegeven tot XViz, een visulistietool voor XPth expressies. Alle hoofdstukken in deze thesis evtten een korte inleiding wrin didctische wenken opgesomd worden. Deze evtten persoonlijke opmerkingen over de huidige cursus, tips voor het nrengen vn de leerstof in de kls en hulpmiddelen voor het motiveren vn de studenten. 7

10 Hoofdstuk 2 Grmmtic s en prsing 2.1 Didctische wenken Zowel ij de theorie vn reguliere tlen en utomten (Hoofdstuk 1 vn Sipser[3]) ls ij grmmtic s (Hoofdstuk 2 vn Sipser[3]) kn de docent de link leggen tussen de ntuurlijke tl en linguïstiek (of progrmmeertlen en hun syntxis) enerzijds en de mthemtische definities vn woord, tl en grmmtic nderzijds. Hierdoor mkt de docent een nknoping ij reeds estnde kennis, dit pst in het integrtieprincipe en kn zorgen voor een sneller inzicht in de nieuwe structuren. Er moet echter steeds op gelet worden dt de studenten ook de strcte, mthemtische termen egrijpen en zich niet lindstren op deze vooreelden of toepssingen. Dit kn door ijvooreeld veel verschillende vooreelden te geven wrij er geen directe link is met de ntuurlijke tl of een progrmmeertl zols een drnkutomt, schuifdeur, vonturen (zie ook hoofdstuk 6),... In dit hndoek wordt er in het eerste hoofdstuk mper gesproken over de ntuurlijke tl of progrmmeertlen, terwijl in de oude cursus [2] zeer veel vooreelden uit de ntuurlijke tl en progrmmeertl werden geruikt. Het is drom ook n te rden een gulden middenweg te zoeken. Zo kn de docent het vooreeld vn progrmmeertlen ls rode drd door de theorie geruiken wrij voor elk nieuw egrip (woord, tl, utomt, reguliere expressie, grmmtic, fleidingsoom,...) een vooreeld gegeven kn worden voor een progrmmeertl die de studenten kennen. De uitwerking vn deze vooreelden is terug te vinden in de oude cursus [2]. In hoofdstuk 6 vn het trjectoek [1] wordt het CYK prsing lgoritme uitgelegd n de studenten. Hierij worden jmmer genoeg enkele sisprincipes overschreden. Als eerste kunnen we zeggen dt de nschouwelijke voorstelling vn het lgoritme ontreekt. Ondnks het stukje pseudo-code dt uitgeschreven werd, is het niet duidelijk voor de student wt er in elke stp vn het lgoritme geeurt, lt stn wt dit etekent voor het prsen. Als oplossing hiervoor gn we in deel vn de thesis een tool implementeren die de studenten meer inzicht moet geven in het CYK prsing lgoritme door de nschouwelijke voorstelling. Het tweede sisprincipe dt overschreden wordt, is dt vn geleidelijkheid. Door het verweven vn de uitleg over CYK prsing, fleidingsomen en expressieomen is het niet meer duidelijk voor de student wt hij n het leren is. De uitleg over expressieomen zou volledig 8

11 los vn de uitleg vn het prsing lgoritme gegeven moeten worden, in een prte sectie. Ook moet ervoor gezorgd worden dt de figuren niet te veel door elkr lopen zodt het overzicht op de cursus ehouden lijft. Op die mnier kn de student eerst leren wt fleidingsomen zijn en hoe deze te vinden, om in een volgende stp te gn kijken nr de expressieomen. Als derde ontreken er opgven wrij de student zelf de fleidingsoom vn een eplde string moet eplen n de hnd vn het lgoritme. De studenten zijn ijgevolg niet ctief ezig met de leerstof. De tool die we gn implementeren helpt ook hierin ngezien de studenten in kortere tijd meer oefeningen kunnen mken. Ook worden enkele vooreeldoefeningen ngereikt. 2.2 Contextvrije grmmtic Een contextvrije grmmtic [6] of CVG estt uit de volgende delen: Een verzmeling T vn terminle symolen Een verzmeling N vn niet-terminle symolen; N en T zijn disjunct Een verzmeling producties vn de vorm: X 0 X 1...X n wrij X 0 N en X i N T voor i = 1,..., n En een strtsymool S N Een string s over T voldoet n de grmmtic ls we s kunnen fleiden uit het strtsymool S met ehulp vn de producties. In elke stp vn de fleiding vervngen we een niet-terminl symool X 0 in de huidige string door de rechterknt X 1...X n vn een productie die X 0 ls linkerknt heeft Vooreeld Beschouw de CVG G = (N, T, P, S) met N = S, A, B, T =, en P de verzmeling vn producties: S S B S A A S A AA B S B BB Een fleiding voor de string wrij de vetgedrukte vrielen telkens herschreven worden volgens een productie uit G hieroven: S B BB SB B B S S B B BB B S S removl of B S S removl of 9

12 2.3 Prsing Wt is prsing Een woord dt voldoet n een contextvrije grmmtic kn grfisch voorgesteld worden met ehulp vn een prse tree of fleidingsoom. Voor een contextvrije grmmtic G = (V, Σ, P, S) en een woord w Σ voldoet de fleidingsoom n: de wortel is geleld met het strtsymool S elke inwendige knoop is geleld met een vriele in V ls een inwendige knoop geleld is met A en n kinderen heeft die vn links nr rechts geleld zijn met B 1...B n, dn moet A B 1...B n een productie zijn in P een met gelelde knoop is het enige kind vn zijn ouder de conctentie vn de lels vn de lderen, vn links nr rechts, is gelijk n w. De fleidingsoom voor de string voor de CVG uit ziet er uit zols in figuur 2.1. S B B B S S Figuur 2.1: Afleidingsoom voor Het CYK prsing lgoritme Het CYK prsing lgoritme [1], genoemd nr Cocke, Younger en Ksmi, is een lgoritme dt voor een gegeven contextvrije grmmtic (CVG) in Chomsky normlvorm (CNF) de fleidingsoom zoekt voor een eplde invoer indien deze invoer voldoet n de grmmtic. Zij G = (V, Σ, P, S) een CVG in CNF. Alle producties vn P zijn dus vn de vorm A BC of A, met A, B en C in V en in Σ. Zij w een woord vn L(G) en zij w = n. Omdt het lege woord niet tot G kn ehoren is n > 0. Voor 1 i j n noteren we nu w ij voor w s deelwoord w[i]...w[j]. Verder zeggen we A in V en voor 1 i j n, dt D[A, i, j] wr is ls A G w ij en onwr nders. Door de vorm vn de producties geldt ls i = j dt D[A, i, j] = D[A, i, i] wr is ls en slechts ls A w[i] tot P ehoort. Als i < j drentegen dn is D[A, i, j] wr ls en slechts ls er een B en C in V estn met A BC een productie vn P en een getl k met i k < j zodt D[B, i, k] en D[C, k + 1, j] eide wr zijn. 10

13 Als we de driedimensionle mtrix D op ovenstnde mnier erekenen, moeten we er steeds voor zorgen dt de componenten ingevuld worden volgens stijgende lengte vn de deelwoorden. Met ndere woorden, dt D[B, i, k] en D[C, k + 1, j] reeds geëvlueerd zijn voor we D[A, i, j] evlueren. Het woord vn lengte n wordt nvrd ls D[S, 1, n] wr is. Om de fleidingsoom te construeren, moeten we nog ijhouden welke producties geruikt worden. Hiervoor mken we de driedimensionle mtrices L,M en R n. Bij een productie A BC evt L[A, i, j] het eerste (linkse) symool in het rechterlid (B), R[A, i, j] evt het rechtse symool (C) en M[A, i, j] evt de positie wr we het woord opsplitsen (k). De erekening vn de mtrices D, L, M en R in pseudo-code is te zien in figuur 2.2. for A in V do egin //initilistie vn de mtrices for i := 1 to n do for j := i to n do D[A,i,j] := flse; //producties vn de vorm A -> for i := 1 to n do if A -> w[i] in P then D[A,i,j] := true end; for j := 2 to n do for i := j - 1 downto 1 do for A ->BC in P do for k := i to j - 1 do if D[B,i,k] nd D[C,k + 1, j] then egin D[A,i,j] := true; L[A,i,j] := B; M[A,i,j] := k; R[A,i,j] := C; end Figuur 2.2: Pseudo code voor de erekening vn D,L,M en R De uiteindelijke fleidingsoom creëren we door eerst de mtrices D, L, M en R te erekenen en vervolgens, ls D[S, 1, n] wr is, recursief een oom te tekenen. Mk hiervoor eerst een knoop m n ls wortel en voer dn de stppen uit op de volgende pgin met ls strtwrden: A = S, i = 1 en j = n. 11

14 1. Lel de knoop m met A 2. Als i = j: mk een nieuwe knoop n ls enige kind vn m lel de knoop n met w[i] 3. Als i j mk twee nieuwe knopen n 1 en n 2 ls kinderen vn m g terug nr 1. voor m = n 1, A = L[A, i, j], i = i en j = M[A, i, j] g terug nr 1. voor m = n 2, A = R[A, i, j], i = M[A, i, j] + 1 en j = j Vooreeld Beschouw het woord en de CVG in CNF met volgende producties: S AB A AC A C B BD B D De eerste for-lus vn het lgoritme zl de mtrices D,L,M en R initiliseren en de unire producties verwerken. Hierdoor worden lle wrden op flse gezet ehlve de volgende: D[A, 1, 1] en D[A, 2, 2] worden true omdt de productie A rechtstreeks toe te pssen is op de eerste en tweede letter vn het woord. Hetzelfde geldt voor D[C,1, 1] en D[C,2, 2] met de productie C. D[B,3, 3] en D[B,4, 4] worden true omdt de productie B rechtstreeks toe te pssen is op de derde en vierde letter vn het woord. Hetzelfde geldt voor D[D, 3, 3] en D[D, 4, 4] met de productie D. Dit kunnen we grfisch voorstellen zols in figuur 2.3. A C A C B D B D Figuur 2.3: Afleidingsoom voor Als we vervolgens het lgoritme verder uitvoeren, worden er nog zes wijzigingen doorgevoerd in de mtrices: i = 1, j = 2 en k = 1 voor de productie A AC: D[A, 1, 2] wordt true met L = A, R = C en M = 1. Dit etekent dt we de productie A AC kunnen toepssen op de string (vn positie 1 tot positie 2 met splitsing n positie 1; dus op en ), rekening houdend met de reeds verwerkte (unire) producties. (figuur 2.4) 12

15 A A C B D B D Figuur 2.4: D[A,1,2] i = 2, j = 3 en k = 2 voor de productie S AB: D[S, 2, 3] wordt true met L = A, R = B en M = 2. Dit etekent dt we de productie S AB kunnen toepssen op de string (vn positie 2 tot positie 3 met splitsing n positie 2; dus op en ), rekening houdend met de reeds verwerkte (unire) producties. (figuur 2.5) S A C A B B D Figuur 2.5: D[S,2,3] i = 1, j = 3 en k = 2 voor de productie S AB: D[S, 1, 3] wordt true met L = A, R = B en M = 2. Dit etekent dt we de productie S AB kunnen toepssen op de string (vn positie 1 tot positie 3 met splitsing n positie 2; dus op en ), rekening houdend met de reeds verwerkte producties. Hierij wordt dus de productie A AC geruikt op. Dit weten we doordt D[A, 1, 2] true is met L = A, R = C en M = 1. (figuur 2.6) S A B B D A C Figuur 2.6: D[S,1,3] 13

16 i = 3, j = 4 en k = 3 voor de productie B BD: D[B,3, 4] wordt true met L = B, R = D en M = 3. Dit etekent dt we de productie B BD kunnen toepssen op de string (vn positie 3 tot positie 4 met splitsing n positie 3; dus op en ), rekening houdend met de reeds verwerkte producties. Hierij worden enkel unire producties geruikt. (figuur 2.7) B A C A C B D Figuur 2.7: D[B,3,4] i = 2, j = 4 en k = 2 voor de productie S AB: D[S, 2, 4] wordt true met L = A, R = B en M = 2. Dit etekent dt we de productie S AB kunnen toepssen op de string (vn positie 2 tot positie 4 met splitsing n positie 2; dus op en ), rekening houdend met de reeds verwerkte producties. Hierij wordt dus de productie B BD geruikt op. Dit weten we doordt D[B,3, 4] true is met L = B, R = D en M = 3. (figuur 2.8) i = 1, j = 4 en k = 2 voor de productie S AB: D[S, 1, 4] wordt true met L = A, R = B en M = 2. Dit etekent dt we de productie S AB kunnen toepssen op de string (vn positie 1 tot positie 4 met splitsing n positie 2; dus op en ), rekening houdend met de reeds verwerkte producties. Hierij wordt dus de productie A AC geruikt op, en B BD geruikt op. Dit weten we doordt D[A, 1, 2] en D[B,3, 4] true zijn. (figuur 2.9) N deze stppen is D[S, 1, 4] dus true en kunnen we zeggen dt de string nvrd werd. De prse tree ziet er uit zols in figuur 2.9. S A C A B B D Figuur 2.8: D[S,2,4] 14

17 S A B A C B D 2.4 CYK prsing in JFLAP Wt is JFLAP? Figuur 2.9: D[S,1,4] JFLAP [5] is een pkket met grfische tools die geruikt kunnen worden ls hulp ij het leren vn de sisconcepten vn formele tlen en utomtentheorie. Ik werk met de versie vn jnuri 2004, JFLAP In deze versie worden files opgeslgen met ehulp vn XML. Deze versie geruikt Jv 1.4. In JFLAP kunnen we werken met de volgende concepten: Reguliere tlen Voor het voorstellen vn reguliere tlen kunnen we eindige deterministische (EDA) en niet-deterministische (ENDA) utomten, reguliere tlen en reguliere grmmtic s definiëren. We kunnen een ENDA omzetten in een EDA of een minimle EDA. Ook kunnen we de conversie uitvoeren vn ENDA nr reguliere expressie of reguliere grmmtic en terug. Verder kn de geruiker de utomten testen met invoer. Dit kn in één keer, per stp of met meervoudige invoer. Context vrije tlen Voor het eschrijven vn context vrije tlen eschikt JFLAP over twee structuren: de pushdown-utomt en de context vrije grmmtic. Ook voor deze structuren heeft JFLAP conversies voorzien. Zo kn je ijvooreeld een context vrije grmmtic omzetten in Chomsky normlvorm, in een pushdown-utomt of in een LL of LR prse tle. Een pushdown-utomt kn steeds terug omgezet worden in een contextvrije grmmtic. JFLAP evt origineel drie mogelijkheden voor het prsen vn een grmmtic. De optie Brute Force Prse ekijkt elke mogelijke sustitutie vn vrielen en duurt drdoor het lngst. De twee ndere opties, LL(1) en LR(1) prsing, werken met een prse tle die geruikt wordt voor het verwerken vn de invoer. Turing mchines Ook voor Turing mchines zijn er verscheidene mogelijkheden. Omdt dit uiten het ereik vn mijn thesis vlt, g ik hier niet verder op in. 15

18 2.4.2 Werkwijze voor CYK prsing in JFLAP Het invoegen vn een grmmtic is een vn de functionliteiten vn JFLAP. Ik he een module ingevoegd die het mogelijk mkt een grmmtic te prsen met ehulp vn het CYK prsing lgoritme uit prgrf In deze sectie wordt de werkwijze uitgelegd. 1. Grmmtic Als eerste moet de geruiker de grmmtic definiëren wrmee hij wil werken. Hiervoor klikt hij in het strtscherm (figuur 2.10) op Grmmr. Vervolgens worden de producties ingevuld: de linkerknt vn de productie komt in de eerste kolom, het pijltje volgt utomtisch in de tweede kolom, en de rest wordt in de derde kolom ingevuld. Het ntl producties is oneperkt, er wordt utomtisch een nieuwe regel toegevoegd. Als vooreeld heen we in JFLAP de volgende grmmtic ingevuld: (zie ook in figuur 2.11) S ABA B BB A B Figuur 2.10: Strtscherm vn JFLAP Figuur 2.11: Grmmtic invoegen 16

19 2. Chomsky Normlvorm Als de grmmtic is ingevuld, kunnen we hem omzetten in Chomsky normlvorm door in het menu Convert de optie Trnsform Grmmr te kiezen (figuur 2.12). Dit is een stndrdfunctionliteit vn JFLAP. Voor meer uitleg kn het Help -menu gerdpleegd worden. Voor CYK prsing is het voldoende ineens lle stppen uit te voeren ( Do All ) en de grmmtic te exporteren ( Export ) (figuur 2.13). We ekomen dn de volgende grmmtic in CNF: (zie ook figuur 2.14) S AC C BA A B BB B Figuur 2.12: Menukeuze voor omzetten in CNF Figuur 2.13: Omzetten in CNF 17

20 Figuur 2.14: De grmmtic in CNF 3. Scherm Vervolgens kiest de geruiker de optie CYK Prse in het menu Input (figuur 2.15). Dr krijgt hij een nieuw tld te zien wrop de grmmtic linksoven zichtr lijft. Rechtsoven kn de geruiker het te prsen woord ingeven in het veld Input. Beschouw hier ls input. Figuur 2.15: De menukeuze voor CYK prsing 4. Initilistie vn de mtrices Om het prsen te strten, wordt op de Strt -knop geklikt of op return gedrukt n het invoeren vn het woord. Als eerste worden de mtrices D, L, M, en R geïnitiliseerd en de unire producties toegevoegd n de mtrices. In figuur 2.16 zien we linksonder de mtrix D. Angezien het een driedimensionle mtrix is, wordt deze opgesplitst in tweedimensionle mtrices per niet-terminl symool. De eerste mtrix die getoond wordt is dus D[S] indien S het strtsymool is. De wrden vn L, M en R worden lter toegevoegd n de respectieve cellen vn D wr D[A, i, j] true is. De etekenis vn de unire producties kn rechts fgelezen worden in de grfische voorstelling. Voor elk symool in het woord wordt ngegeven vnuit welke non-terminls we dit symool rechtstreeks kunnen ereiken. Deze grfische voorstelling komt overeen met die vn het uitgewerkte vooreeld in sectie

21 Figuur 2.16: N de initilistie 5. Stp voor stp prsen N de initilistie klikt de geruiker herhldelijk op de Step -knop, hierij wordt het prsing lgoritme stp voor stp verdergezet. In de sttuslk ondern kn men de wrde vn de vrielen i en j flezen en kn men zien welke productie net is eschouwd. Indien een stp een wijziging in de mtrices tot gevolg heeft, zl dit ook resulteren in een nieuwe grfische voorstelling. Deze voorstelling estt, net zols in sectie 2.3.3, uit een os wrij de grootste oom overeenkomt met de net ehndelde productie en de kleine omen de in deze stp onereikre symolen zijn. In figuur 2.17 is net de stp uitgevoerd met j = 4, i = 2 en ls productie C BA. Dit houdt in dt men de sustring w[2]..w[4] (met w = in dit vooreeld geeft dt de sustring ) kn prsen door te strten ij een knoop C met ls kinderen B en A. Als we in de tel (C[2, 4]) gn kijken zien we dt er gesplitst moet worden n het derde symool. Dit etekent dn weer dt we vnuit B de sustring kunnen fleiden en vnuit A het symool. Voor knoop A geeft dt een rechtstreekse fleiding, voor knoop B wordt er in de tel B gekeken op de positie vn de sustring ([2, 3]). Hier zien we dt de kinderen B en B zijn, elk met een rechtstreekse fleiding vn het symool. Deze fleiding toont slechts een sustring vn het woord, de eerste letter is nog steeds onereikr. 19

22 Figuur 2.17: N een willekeurige stp 6. Resultt Als het lgoritme kn eslissen over de string, wordt in de sttuslk ondern ngegeven of de string nvrd werd of niet. In gevl vn nvrding kn de geruiker uit de tellen de fleidingsoom trchten f te leiden. Door nog éénml op de Step - knop te klikken, wordt de correcte prse tree getoond. In figuur 2.18 ziet u dt de string nvrd werd door de grmmtic en ziet u de fleidingsoom. Figuur 2.18: Het eindresultt 20

23 2.5 Oefeningen Angezien in de cursus geen enkele oefening werd opgenomen voor het CYK prsing lgoritme worden er hier een pr toegevoegd: Oefening 1 Beschouw de volgende grmmtic: S S B S A A S A AA B S B BB Zet deze grmmtic om in CNF indien nodig en prse de volgende strings met ehulp vn JFLAP: Geef de fleidingsoom indien deze estt, welke woorden worden nvrd? Oefening 2 Beschouw de volgende grmmtic: S AB S BC A AA A B BB B C CC C c Zet deze grmmtic om in CNF indien nodig en prse de volgende strings met ehulp vn JFLAP: cc c c ccc Geef de fleidingsoom indien deze estt, welke woorden worden nvrd? 2.6 Besluit Met de geïmplementeerde uitreiding voor JFLAP kunnen studenten stp per stp het CYK prsing lgoritme doorlopen zonder drij lles op ppier te moeten ijhouden. Hierdoor kunnen ze op korte tijd verschillende vooreelden of herhldelijk hetzelfde vooreeld uitwerken wrdoor ze zelf een eeld kunnen vormen vn het lgoritme. Ook is het mogelijk dt de student zelf de prse-tree heeft erekend zonder tool, en met ehulp vn de tool een zelfcontrole uitvoert. Het progrmm levert de student n de ene knt een tijdswinst op en n de ndere knt is hij of zij ctief etrokken ij het leergeeuren. Het lgoritme wordt eter onthouden ls de student zelf chter de werkwijze kn komen. De visuele voorstelling vn elke stp tijdens het prsen (tussentijdse prse trees) zorgt ook voor meer diepgng. 21

24 Hoofdstuk 3 Stringutomten en reguliere expressies 3.1 Didctische wenken In het hndoek voor het vk theoretische informtic [3] wordt in het eerste hoofdstuk n de lezer uitgelegd hoe hij een utomt kn mken vn een reguliere expressie. Dit lgoritme wordt niet enoemd en komt voor in een ewijs. Studenten die dit ewijs estuderen weten ijgevolg niet dt het hier gt over de Thompson-constructie. Indien lter nr deze constructie verwezen wordt heen de studenten ijgevolg geen nknoping. Verder eschouwen veel studenten ewijzen ls de moeilijkste elementen uit een cursus. Ze zullen geneigd zijn het ewijs, en ijgevolg ook de constructie, slechts oppervlkkig te ekijken en verliezen hun elngstelling. Positief is de nwezigheid vn voldoende vooreelden en hun grfische voorstelling (nschouwelijkheid), lsook de opgve in het trjectoek voor zelf utomten te construeren vn enkele reguliere expressies (ctiviteit). Ook het opsplitsen vn het ewijs in twee richtingen mkt het voor de student eenvoudiger te egrijpen en steunt op het principe vn geleidelijkheid. De rest vn dit hoofdstuk geeft een vergelijking tussen twee verschillende utomten vn reguliere expressies. De Thompson-utomt, die we hieroven reeds vermeld heen, en de Glushkov-utomt. Deze theorie wordt toegepst in sectie op pgin 46. Alles wordt uitgelegd n de hnd vn eenzelfde vooreeld zodt de verschillen tussen de twee utomten duidelijk zichtr zijn. 22

25 3.2 Thompson-constructie In de definitie vn reguliere expressies (zie referenties [2, 3]) wordt niet expliciet vermeld wrom deze expressies juist regulier heten. We weten wel dt een tl regulier heet ls er een utomt estt die deze tl nvrdt. Wt is dn het vernd tussen reguliere tlen en regulieren expressies? Zols we l kunnen vermoeden is een tl lleen regulier ls er een reguliere expressie is die deze tl eschrijft. Ook is de tl die een reguliere expressie eschrijft steeds een reguliere tl. We kunnen dus vn elke reguliere expressie een eindige deterministische utomt mken en vn elke eindige utomt een reguliere expressie. Dit doen we met ehulp vn de Thompson-constructie [7, 9]. Het sisidee vn de Thompson-constructie is het opsplitsen vn de reguliere expressie in minimle deelexpressies die gecomineerd worden met ehulp vn de unie, conctentie en Kleene ster. In figuur 3.1 ziet u deze inductieve constructie die ls resultt een eindige utomt geeft met de volgende eigenschppen: Er is slechts één egintoestnd wruit enkel pijlen vertrekken Er is slechts één eindtoestnd wrin enkel pijlen toekomen Elke toestnd heeft mximl twee inkomende en twee uitgnde pijlen De utomt is ten hoogste drie keer zo groot ls de reguliere expressie De utomt zit vol -trnsities. Figuur 3.1: De Thompson-constructie voor een reguliere expressie E: (.) E = (.) E = (c.) E =, Σ (d.) E = F + G (e.) E = F G en (f.) E = F 23

26 3.2.1 Vooreeld: Thompson-utomt voor ( ( ) ) + We ouwen de utomt voor ( ) + op ls volgt: 1. zie figuur zie figuur ( ) zie figuur ( ) zie figuur ( ( ) ) + zie figuur 3.6 Figuur 3.2: Thompson-utomt voor Figuur 3.3: Thompson-utomt voor Figuur 3.4: Thompson-utomt voor ( ) 24

27 Figuur 3.5: Thompson-utomt voor ( ) Figuur 3.6: Thompson-utomt voor ( ( ) ) + 25

28 3.3 Glushkov-constructie In [8] espreken Brüggemnn Klein en Wood een ndere methode om een reguliere expressie om te zetten in een eindige utomt, de zogenmde Glushkov-constructie [10]. Beschouw volgende definities voor elke tl L: first(l) = { er is een woord w zodnig dt w L} lst(l) = { er is een woord w zodnig dt w L} f ollow(l, ) = { er zijn woorden v, w zodnig dt vw L} voor elk symool voor elke expressie E reiden we deze sets uit tot: first(e) = first(l(e)) enz. en voor elke expressie E: sym(e) is de verzmeling vn lle symolen in de expressie E E is een mrkering vn E wrij elk symool een suscript meekrijgt zodnig dt lle symolen vn E slechts éénml voorkomen Π is de verzmeling vn lle symolen met suscript sym(e ) E t is de nottie voor de expressie zonder suscripts met ook t het symool zonder zijn suscript. Bijvooreeld voor de expressie E = (+) wordt sym(e) = {, }, E = ( ) 2 2 en Π evt onder ndere 1, 2, 1 en 2. Ook kunnen we zeggen dt t 1 = t 2 =. We definiëren de Glushkov-utomt G E = (Q E, Σ, δ E, q I, F E ) vn een expressie E dn ls volgt: Q E = sym(e ) {q I }; De toestnden zijn de symolen vn de expressie met suscripts, uitgereid met een nieuwe egintoestnd q I. δ E (q I, ) = {x x first(e ), x t = } Σ Vnuit de egintoestnd vertrekken er pijlen nr lle toestnden die overeenkomen met een symool dt ls eerste gelezen mg worden. Dit symool, zonder suscript, wordt ls lel n de pijl toegekend. δ E (x, ) = {y y follow(e, x), y t = } x sym(e ) en Σ Voor lle toestnden x (met suscript) en lle symolen (zonder suscript) vertrekt er een pijl met lel vnuit toestnd x nr lle toestnden y die overeenkomen met een symool dt kn volgen op x in E en wrij y t =. F E = lst(e ) {q I } ls L(E) en F E = lst(e ) nders De eindtoestnden komen overeen met de toestnden vn lle symolen wr de expressie op kn eindigen, uitgereid met q I ls de lege string ook nvrd wordt. 26

29 Om de Glushkov-constructie strks te kunnen vergelijken met de Thompson-constructie vn 3.2 gn we deze op gelijkrdige wijze, inductief, definiëren. Deze constructie vn de Glushkov-utomt wordt de Chmprnud-constructie genoemd en is terug te vinden in figuur 3.7 uit [7, 9]. Figuur 3.7: De inductieve constructie vn Chpmprnud vn de Glushkov-mchine voor een reguliere expressie E: (.) E = (.) E = (c.) E =, Σ (d.) E = F +G (e.) E = F G en (f.) E = F Vooreeld: Glushkov-utomt voor ( ( ) ) + We ouwen de utomt voor ( ( ) ) + inductief op. Deze constructie vrgt eigenlijk niet dt we de expressie mrkeren zols dt wel gevrgd wordt ij de niet-inductieve constructie. Toch gn we ook hier eerst de expressie mrkeren. Hierdoor vermijden we dt we ij het smenvoegen vn de deelutomten toestnden moeten hernoemen. Een utomt kn nmelijk geen twee toestnden met dezelfde nm heen. 27

30 We ouwen dus de Glushkov-utomt voor de gemrkeerde expressie E = ( 1 1( 2 2) )+: 1. 1 zie figuur 3.8, 2 is nloog 2. 1 zie figuur 3.9, 2 is nloog zie figuur 3.10, 2 2 nloog 4. ( 2 2) zie figuur ( 2 2) zie figuur ( 1 1( 2 2) ) + zie figuur 3.13 q I 1 Figuur 3.8: Glushkov-utomt voor 1 q I 1 Figuur 3.9: Glushkov-utomt voor 1 q I 1 1 Figuur 3.10: Glushkov-utomt voor 1 1 q I 2 2 Figuur 3.11: Glushkov-utomt voor ( 2 2) 28

31 q I Figuur 3.12: Glushkov-utomt voor 1 1( 2 2) q I Figuur 3.13: Glushkov-utomt voor ( 1 1( 2 2) ) Expliciete constructie vn Glushkov-utomt voor E = ( ( ) )+ Voor de duidelijkheid erekenen we de utomt voor onze vooreeldexpressie ook op nietinductieve wijze. Dit is zols de Glushkov-utomt eerst gedefinieerd werd in dit hoofdstuk met ehulp vn first, lst en follow. E = ( 1 1( 2 2) ) First(E ) = { 1, 1 } Lst(E ) = { 1, 2 } Follow(E, 1 ) = { 2, 2 } Follow(E, 2 ) = { 2, 2 } Follow(E, 1 ) = { 1, 1 } Follow(E, 2 ) = { 2, 2 } 29

32 Glushkov-utomt G = (Q,Σ, δ, q I, F) met: Q = sym(e ) {q I } = {q I, 1, 2, 1, 2 } δ(q I, ) = {x x first(e ), x t = } Σ δ(q I, ) = { 1 } δ(q I, ) = { 1 } δ(x, ) = {y y follow(e, x), y t = } x sym(e ) en Σ δ( 1, ) = { 2 } δ( 1, ) = { 2 } δ( 1, ) = { 1 } δ( 1, ) = { 1 } δ( 2, ) = { 2 } δ( 2, ) = { 2 } δ( 2, ) = { 2 } δ( 2, ) = { 2 } F = lst(e ) {q I } ls L(E) en F = lst(e ) nders F = {q I, 1, 2 } Angezien dit een vrij eenvoudige reguliere expressie is, kunnen we de elementen vn f irst, lst en f ollow door oservtie uit de expressie hlen. Als de expressie lnger en/of meer ingewikkeld is, zl dit niet meer zo voor de hnd liggen. In [9] wordt er een methode ngereikt om deze verzmelingen in polynomile tijd te erekenen, inductief op de lengte vn de expressie. Drij wordt geruik gemkt vn de prse tree voor de expressie (zie 2.3). We gn hier niet verder in op deze constructie ngezien we l een methode esproken heen om de Glushkov-utomt inductief te erekenen wrij deze verzmelingen niet meer nodig zijn Eigenschppen vn de Glushkov-utomt Als we de Glushkov-utomt en zijn constructie ekijken kunnen we volgende eigenschppen noteren: Er is slechts één egintoestnd wruit enkel pijlen vertrekken Er zijn geen stille overgngen Voor elke toestnd q heen de inkomende pijlen steeds hetzelfde lel De grootte vn de Glushkov-mchine is in het slechtste gevl kwdrtisch ten opzichte vn de lengte vn de reguliere expressie De Glushkov-utomt evt geen -trnsities 30

33 3.4 Vergelijking In de vorige secties eschreven we twee verschillende lgoritmen om vn een gegeven reguliere expressie een eindige utomt te mken. Alhoewel de resulterende utomten op het eerste zicht heel verschillend zijn, kunnen we vn elke Thompson-utomt de overeenkomstige Glushkov-utomt fleiden. Ook kunnen we de Thompson-utomt vinden met ehulp vn de Glushkov-fleiding. Merk drvoor in de eerste plts op dt zowel de Thompson ls de Glushkov-utomt homogene utomten zijn, dt wil zeggen dt in elke toestnd enkel pijlen met een en hetzelfde lel kunnen innenkomen. Het vernd tussen deze twee constructies wordt ook uitgelegd in de litertuur [7, 9] Vn Thompson nr Glushkov Als we de Thompson-utomt estuderen, emerken we de vele stille overgngen of - trnsities. In de Glushkov-constructie drentegen vinden we geen enkele stille overgng. Drom zoeken we een methode om deze stille overgngen te verwijderen. Angezien een Thompson-utomt homogeen is zullen de knopen wrin -trnsities nkomen (-knoop) ook verwijderd mogen worden (er komt nmelijk geen enkele pijl meer in n, deze toestnden zijn dus onereikr). Het verwijderen vn deze knopen en pijlen komt er op neer elke innenkomende pijl vn een -knoop rechtstreeks te verinden met lle uitgnde pijlen, zols ook zichtr is in figuur Let wel op wnneer de verwijderde -knoop een eindtoestnd ws, dn worden lle toestnden vn wruit we deze knoop konden ereiken, ook eindtoestnden. Figuur 3.14: De elimintie vn trnsities en -knopen Wnneer we deze elimintie toepssen op een Thompson-utomt zodt er geen stille overgngen meer voorkomen, merken we dt we exct de Glushkov-utomt ekomen (op de enming vn toestnden n). Dit wordt ewezen in [7]. Vooreeld Pssen we deze elimintie toe op de Thompson-utomt vn op pgin 24, ekomen we de Glushkov-utomt vn op pgin 27 mits hernoemen vn de toestnden. 31

34 3.4.2 Vn Glushkov nr Thompson Kunnen we dn ook een mnier vinden om vn de Glushkov-utomt nr de Thompsonutomt te gn? In tegenstelling tot de vorige constructie moeten we hierij informtie (pijlen en toestnden) toevoegen n de utomt in plts vn verwijderen. Dit is echter niet zo evident mr in [7] heen ze een oplossing gevonden. In plts vn de Glushkovutomt vn de reguliere expressie uit te reiden, gn ze eerst de reguliere expressie zelf uitreiden om vervolgens de Glushkov-utomt vn deze uitgereide expressie te construeren. Zij τ een nieuw symool dt nog niet in het lfet Σ zit, de τ-uitreiding vn een reguliere expressie E over Σ is dn een reguliere expressie E τ over Σ {τ} met (inductief): E τ = if E = E τ = τ if E = E τ = if E = E τ = ((τ F τ ) + (τ G τ )) τ if E = F + G E τ = (F τ τ) G τ if E = F G E τ = ((τ F τ ) ) τ if E = F E τ = (F τ ) if E = (F) Indien we deze uitreiding toepssen op de reguliere expressie en vervolgens de τ vervngen door zl de resulterende Glushkov-utomt exct gelijk zijn n de Thompson-utomt voor de originele reguliere expressie. Vooreeld Beschouw de reguliere expressie ( ( ) ) + die we ook geruikten ls vooreeld voor de Thompson (3.2.1) en Glushkov (3.3.1) constructies. Uit deze expressie kunnen we de τ-uitreiding ls volgt fleiden: ( ( ) ) + ( ( ) ) + τ (τ( ( ) ) + ττ)τ (τ(( )τ (( )τ) ) + ττ)τ (τ(((τ) τ)τ (((τ) τ)τ) ) + ττ)τ (τ(((τ) τ)τ (τ((τ) τ)τ) τ) + ττ)τ (τ((((τ) τ)τ)τ(τ((τ) τ)τ) τ) + ττ)τ (τ((τ) τττ(τ(τ) ττ) τ) + ττ)τ E = en E = en E = E = F + G E = F G twee ml met F = en G = E = F twee ml met F = E = F met F = (((τ) τ)τ) E = F G overtollige hkjes verwijderen 32

35 Wrij we voor de duidelijkheid F G schrijven ls FG vn het moment we de uitreiding heen toegepst op het product. Pssen we vervolgens op deze uitgereide reguliere expressie de Glushkov-constructie toe, dn krijgen we exct de Thompson-utomt voor de originele reguliere expressie ( ( ) ) +. Deze wordt getoond in figuur 3.6 op pgin Geruik vn de twee constructies Kenmerkend voor Thompson-utomten is de nwezigheid vn -trnsities. Een Thompsonutomt is een eindige niet-deterministische utomt met -trnsities, of een EN DA. Deze utomten zijn niet eenvoudig te implementeren ngezien het ereiken vn de eindtoestnd fhngt vn het volgen vn de juiste -trnsities. Deze constructie is echter zeer geschikt voor didctisch geruik ngezien het een eenvoudige constructie is die grfisch zeer duidelijk voor te stellen is. Glushkov-utomten drentegen evtten geen -trnsities en zijn drdoor eter geschikt voor implementtie. Ze zijn echter minder geschikt ls didctisch vooreeld omwille vn de meer wiskundige endering vn de constructie. 3.5 Besluit De Thompson en Glushkov-constructies zijn twee lgoritmen om een reguliere expressie om te zetten in een utomt. Ondnks de mogelijkheid vi de ene constructie de ndere utomt te ekomen heen ze niet dezelfde utomt ls resultt. Zo zien we ijvooreeld dt de Thompson-utomt ltijd groter of gelijk is n de Glushkov-utomt, ngezien we enkel toestnden elimineren en niet ijmken om de Glushkov-utomt te ereiken. Anderzijds is de Thompson-utomt eperkt tot drieml de grootte vn de reguliere expressie en de Glushkov tot het kwdrt vn de grootte. Hierdoor kunnen we fleiden dt, voor expressies met lengte groter ls drie, de Glushkov-utomt ook steeds kleiner is ls drie ml de lengte vn de reguliere expressie. Om eplde eigenschppen vn de reguliere expressie te chterhlen, is het soms nodig de Glushkov-utomt te construeren. Zo eplt het l dn niet deterministisch zijn vn de Glushkov-utomt of een reguliere expressie l dn niet one-unmiguous is (zie ook sectie 4.3.5). Met de resultten in dit hoofdstuk heen we een lterntieve mnier gevonden voor de erekening vn de Glushkov-utomt. Indien de expressie unmiguous is, kunnen we de Glushkov-utomt zelfs in lineire tijd erekenen. 33

36 Hoofdstuk 4 Boomutomten 4.1 Didctische wenken Differentitie De technologie stt niet stil. Er worden constnt nieuwe technieken ontwikkeld en vereteringen doorgevoerd in estnde technologiën. Bij het schrijven vn deze thesis zijn sommige onderwerpen misschien zelfs l verouderd. De stringutomten die gisteren ngeleerd werden zijn vndg misschien nog nuttig mr worden morgen weer vervngen door oomutomten. Boomutomten lijken momenteel l vn groot nut voor het modelleren vn reltief nieuwe tekstformten zols XML en zullen lter zeker nog meer toepssingen krijgen. In het informticonderwijs stn docenten voor de opdrcht deze nieuwe ontwikkelingen n te leren n de studenten zonder reeds estnde cursussen en onderwerpen te schrppen. Oude technieken zijn nmelijk een goede sis om op verder te ouwen en zullen ook niet zomr verdwijnen. Mr hierdoor gn cursussen ntuurlijk lijven groeien en verhoogt de studietijd per vk. Dit geeft de docent echter een idele kns om n differentitie te doen. Alle studenten krijgen dezelfde sis mr ndt deze sis gezien is, kn de docent de keuze n de student lten. Dit kn enerzijds innen éń vk in één jr geeuren door de student ls opdrcht een ntl topics te lten estuderen uit een lijst opgesteld door de docent (keuzeonderwerp). Anderzijds kunnen uitreidingen gegeven worden in een keuzevk het jr of semester n het sisvk, wrdoor studenten enkel dieper ingn op onderwerpen in het door hun gekozen domein. Ntuurlijk zijn ook projecten en groepswerken idele methoden om studenten n verschillende onderwerpen te lten werken Integrtie De theorie vn oomutomten steunt in de eerste plts op het vk Theoretische Informtic. Mr ls we nr de mogelijke toepssingen ervn kijken, komen we in het vrwter vn Technologie vn Multimedisystemen en -softwre [12]. Dit onderwerp iedt docenten vn eide vkken de mogelijkheid de kennis vn hun studenten eter te integreren. Studenten zijn nogl snel geneigd om in vkjes te lijven denken en zullen niet snel vernden en mogelijke toepssingen zien tussen kennis uit twee verschillende vkken. 34

37 Voor intergrtie tussen twee verschillende vkken is het wel zeer elngrijk dt docenten overleg plegen. Hierdoor kunnen inconsistenties vermeden worden. Ook moet er duidelijk gesteld worden welke voorkennis uit welke vkken gehld kn worden, en wnneer de vkken gegeven worden. Indien er ijvooreeld gesteund wordt op kennis uit een vk vn twee jr ervoor, is het misschien n te rden deze eerst op te frissen voorleer er verder op te ouwen. 4.2 Boomutomten Boomutomt en stringutomt Een oomutomt (tree utomton) is een uitreiding vn een eindige cceptor (finite stte utomton). Een eindige cceptor ereikt een nieuwe toestnd vnuit één stt met het lezen vn één term (krkter) en eslist over de ccepttie vn een woord of string. Een oomutomt ereikt echter een nieuwe toestnd vnuit meerdere toestnden en leest meerdere termen tegelijk in. Een oomutomt eslist over de ccepttie vn een oom. Net zols ij string utomten estn er deterministische en niet-deterministische oomutomten. Een nieuw verschijnsel is het estn vn ottom-up en top-down utomten. Het verschil zit in het doorlopen vn de oom; een ottom-up utomt leest een oom vnuit de lderen nr de wortel terwijl een top-down utomt zl vertrekken vn de wortel. Verder estn er ook two-wy oomutomten wrij er zowel omhoog (scending of ottom-up) ls omlg (descending of top-down) gewerkt kn worden.[18]. Zols in [12] eschreven, kunnen we een XML estnd voorstellen ls een oom. Deze omen zijn geen inire omen ngezien elke knoop meerdere kinderen kn heen, het ntl kinderen per knoop kn verschillen en we vk niet eens weten hoeveel kinderen een knoop uiteindelijk zl evtten. De oplossing hiervoor is het geruik vn unrnked trees [16]. Bij unrnked trees kunnen de knopen een onepld ntl kinderen heen. In deze tekst spreken we enkel vn oomutomten voor unrnked trees Definitie Een niet-deterministische ottom-up oomutomt (NBTA) [17] is een tupel B = (Q, Σ, δ, F) met: Q: een eindige verzmeling toestnden Σ: een eindig lfet F Q: een verzmeling eindtoestnden δ: een functie Q Σ 2 Q zodt δ(q, ) een reguliere string tl over Q is voor elke Σ en q Q. 35

38 De semntiek vn de utomt B op een oom t, genoteerd ls δ (t), is inductief gedefinieerd: ls t slechts estt uit 1 knoop (een ld) met lel dn is δ (t) gelijk n {q ε δ(q, )} ls t een oom is met in de wortel en t 1,..., t n ls kinderen (zols in Figuur 4.1) dn is δ (t) gelijk n {q q 1 δ (t 1 ),..., q n δ (t n ) en q 1,..., q n δ(q, )}. t 1... t n Figuur 4.1: De oom t Een oom t over het lfet Σ wordt nvrd door de utomt B ls δ (t) F. Vervolgens kunnen we zeggen dt een oomutomt B deterministisch is ls voor lle Σ en q, q Q, q q geldt dt δ(q, ) δ(q, ) =. Net ls ij utomten over woorden zijn twee oomutomten equivlent ls ze dezelfde tl nvrden. We kunnen dus het volgende noteren: De oomutomten M1 en M2 zijn equivlent ls en slechts ls L(M1) = L(M2). Uit [19] weten we verder nog dt de tl, nvrd door een oom, een oomtl is en dt oomtlen gesloten zijn onder unie, complement en doorsnede Vooreeld: oolense formules [13] Beschouwen we het lfet Σ = {0, 1,, } en omen wrij 0 en 1 enkel in de lderen mogen voorkomen en en enkel in de knopen die geen ld zijn. Deze omen stellen oolense formules voor. We kunnen nu een oomutomt B definiëren dt exct deze omen nvrdt: B = {Q,Σ, δ, F } wrij Q = {0, 1}, Σ = {0, 1,, }, F = {1} en: δ(0, 0) = ε δ(1, 1) = ε δ(0, 1) = δ(1, 0) = δ(1, ) = 1 δ(0, ) = 0 δ(0, ) = (0 + 1) 0(0 + 1) δ(1, ) = (0 + 1) 1(0 + 1) 36

39 Deze utomt geeft het lel 1 (0) n lderen met lel 1 (0). Een knoop met lel ( ) krijgt het lel 1 (0) ls lle kinderen vn de knoop het lel 1 (0) heen. Deze utomt ccepteert een oom ls het lel vn de wortel 1 is. Zie ook Figuur 4.2 en Figuur 4.3. Voor de duidelijkheid, enkel in de eerste twee trnsities δ(0, 0) = ε en δ(1, 1) = ε worden de 0 en 1 uit het lfet geruikt (ls tweede prmeter), de ndere 0-en en 1-en zijn de toestnden 0 en Figuur 4.2: Een oom onder het lfet Σ vn Figuur 4.3: Een ccepterende run vn de utomt vn Toepssing XML en DTD XML: extensile Mrkup Lnguge XML of extensile Mrkup Lnguge [11, 12] is een eenvoudig tekstformt fgeleid vn SGML (ISO 8879). XML verindt tekst met de etekenis (structuur en soort inhoud) ervn. De etekenis vn tekst wordt weergegeven in tgs, vergelijkr met HTML. Een tg estt uit twee delen: een strt-tg ijvooreeld <titel> en een eind-tg </titel>. Zo kunnen we de titel vn deze prgrf ls volgt eschrijven: <titel>xml: extensile Mrkup Lnguge</titel> Als er niets tussen de tgs komt te stn, kunnen we de twee tgs comineren: <titel/>. Deze tgs worden element-tgs genoemd en ze definiëren de mrkup. Er zijn geen stndrd tgs, dus mogen we zelf de nm en etekenis vn een tg kiezen. Net zols ij HTML kunnen tgs genest worden. Bijvooreeld: <?XML version="1.0"?> <uteur> <voornm>annelotte</voornm> <chternm>bollen</chternm> </uteur> 37

40 De eerste regel <?XML version="1.0"?> moet steeds ovenn in het document voorkomen, nders he je geen geldig XML document. We kunnen een XML document ook voorstellen ls een oom. De tekst tussen de tgs komt dn telkens in de lderen vn de oom. De ndere knopen of nodes zijn de element-tgs. De oom vn het ovenstnde vooreeld kn ekeken worden in figuur 4.4. uteur Voornm Annelotte Achternm Bollen Figuur 4.4: Vooreeld vn een XML document voorgesteld ls oom Element-tgs kunnen ook ttriuten evtten, een eetje zols rgumenten n een functie kunnen doorgegeven worden. Attriuten specifiëren we innen de tg, ijvooreeld: <uteur geslcht="vrouw">... </uteur> We moeten zelf eplen of iets ls ttriuut meegegeven wordt of dt we het tussen elementtgs willen zetten. Attriuten geruiken we norml gezien enkel voor informtie die we n de element-tg willen toevoegen mr die we niet expliciet willen tonen n de geruiker. In XML kunnen we ook mcro s definiëren voor veelgeruikte tekst of verwijzen nr ndere stukken tekst. Dit doen we door een entity te definiëren. Een entity reference of verwijzing egint steeds met een mpersnd (&) en eindigt met een puntkomm (;). Als de volgende entity gedefinieerd is, kunnen we ernr verwijzen met: &luc;. Hierdoor wordt &luc; vervngen door Limurgs Universitir Centrum. <!ENTITY luc "Limurgs Universitir Centrum"> Om commentr op te nemen in een XML document, pltsen we dit tussen <!-- en -->. Verder kn een XML-estnd ook processing instructies, CDATA secties en document type declrtions (DTD) evtten. Een goed gestructureerd (well-formed) XML document moet n de volgende vereisten voldoen: De resulterende oom heeft slechts een wortel; er is dus een unieke element-tg die ls root fungeert. De tgs moeten gelnceerd zijn. Dit wil zeggen dt er voor elke strt-tg een eind-tg moet zijn. De tgs moeten goed genest zijn, net zols hkjes ij wiskundige formules. Attriuten (zowel tekst ls getllen) moeten tussen quotes stn zols: <uteur geslcht="vrouw">... <\uteur> 38

41 De gereserveerde tekens >, < en & mogen niet geruikt worden in gewone tekst of ttriuten, indien we dit wel wensen, werken met een CDATA sectie, dr wordt echter niet dieper op ingegn. Er zijn vijf voorgedefinieerde referenties: dit geeft c dit geeft R &tm; dit geeft TM &ecute; dit geeft é &nsp; dit geeft (een sptie dus) Equivlentie vn XML Indien we werken met een grote dtse vn XML-estnden moet er een mogelijkheid zijn om n te gn of twee estnden l dn niet equivlent zijn. Het kn nmelijk geeuren dt eplde systemen de volgorde vn ttriuten of de structuur vn een entiteit npssen zonder dt drdoor de inhoud verndert. De estnden zijn dus niet identiek mr stellen wel dezelfde dt voor. Voor dit doeleinde is er een specifictie ontwikkeld door de XML Signture werkgroep vn het W3C consortium [22]. Deze specifictie eschrijft een methode om een fysische voorstelling te mken vn een XMLestnd; de cnonische vorm ofwel cnonische XML. Als twee XML-estnden dezelfde cnonische vorm heen, zijn ze logisch equivlent. We moeten er wel rekening mee houden dt er enkel een ls-dn reltie eschreven wordt en geen ls-en-slechts-ls. Het kn dus voorkomen dt estnden wel equivlent zijn mr niet dezelfde cnonische vorm heen. Dit komt door pplictiespecifieke wijzigingen die kunnen voorkomen mr niet verlgemeend kunnen worden. Denk hierij ijvooreeld n de voorstelling vn een kleur: <color>lck</color> en <color>rg(0,0,0)</color>. Cnonische XML-estnden zijn nog steeds well formed XMLestnden en kunnen ook ls oom voorgesteld worden. Indien we willen testen of een XML-estnd een nder estnd omvt, zullen we ook eerst de estnden in hun cnonische vorm noteren. Vervolgens stellen we ze voor ls oom en controleren we of de ene oom l dn niet een sutree is vn de ndere. De sutree eplt in dt gevl het XML-estnd dt volledig eschreven wordt door het ndere. De detils vn cnonistie voor de geïnteresseerde lezer stn op [22], ls illustrtie het vooreeld met volgend XML-estnd: 39

42 <?xml version="1.0"?> <ook lnguge="english" code="sip1997"> <!-- comment --> <dte ></dte> <title> Introduction to the theory of computtion </title> <uthors> <uthor> <nme> Sipser </nme> <first_nme> Michel </first_nme> </uthor> </uthors> <keywords> computtion utomt </keywords> </ook> De cnonische vorm vn dit estnd is: <ook code="sip1997" lnguge="english"> <dte></dte> <title> Introduction to the theory of computtion </title> <uthors> <uthor> <nme> Sipser </nme> <first_nme> Michel </first_nme> </uthor> </uthors> <keywords> computtion utomt </keywords> </ook> Merk op dt de XML declrtie, commentr en nutteloze whitespces verdwenen zijn. Men kn ook opteren de commentr te ehouden. Dit noemt men de commented cnonicl form. Verder worden ttriuten (en eventuele nmespces) lfetisch opgesomd. Het volgende XML-estnd heeft een ndere cnonische vorm (het ttriuut lnguge is nmelijk verdwenen) en is dus niet equivlent met het eerste: <?xml version="1.0"?> <ook code="sip1997"> <!-- comment --> <dte /> <title> Introduction to the theory of computtion </title> <uthors> <uthor> <nme> Sipser </nme> <first_nme> Michel </first_nme> </uthor> </uthors> <keywords> computtion utomt </keywords> </ook> 40

43 Als we vn eide cnonische voorstellingen de oom ekijken (zie figuren 4.5 en 4.6), merken we dt de tweede oom een sutree is vn de eerste. Hierdoor kunnen we dn ook esluiten dt het eerste XML-estnd het tweede omvt. Het tweede estnd rengt ons geen nieuwe of gewijzigde informtie n. q ook q code q lnguge q dte q title q uthors q keywords q dt q dt q dt q dt q uthor q dt q nme q dt q first nme q dt Figuur 4.5: Boomvoorstelling vn het eerste XML-estnd q ook q code q dte q title q uthors q keywords q dt q dt q dt q uthor q dt q nme q dt q first nme q dt Figuur 4.6: Boomvoorstelling vn het tweede XML-estnd DTD s We kunnen regels opleggen wrn een XML-estnd moet voldoen. In de vorige prgrf esprken we reeds de goed gestructureerde of well-formed estnden. Nu gn we een stp verder. An de hnd vn een DTD of Document Type Definition [12] gn we extr regels opleggen wrn een XML document moet voldoen. Het ngn of een document n de ijehorende DTD voldoet, noemen we vlideren. De DTD kn opgenomen zijn in het XMLestnd of in een fzonderlijk estnd stn wrnr verwezen wordt in het XML-estnd. Een DTD legt eperkingen op voor: Element nmen Attriuut nmen en wrden De volgorde vn elementen De nesting vn elementen 41

44 Elementen worden gedefinieerd met volgende syntx: <!ELEMENT element_nme content_model> element nme Verwijst nr de nm vn de element-tg die je wilt definiëren en de mogelijke vorm vn de sutree onder het element wordt epld door content model. Dit kn gewone tekst zijn (textul content: #PCDATA, EMPTY of ANY) of een gecomineerde inhoud heen zols tekst, nmen vn elementen die onder dit element kunnen voorkomen, nmen vn prmeters en cominties hiervn. Deze gecomineerde inhoud kn men uitdrukken ls (cfr. reguliere expressies 1 ): E Er moet exct 1 keer het element E voorkomen in de sutree (1 keer) E? Er kn mximl 1 keer het element E voorkomen in de sutree (0 of 1 keer) E+ Er moet minstens 1 keer het element E voorkomen in de sutree (1 of meer keer) E* E kn voorkomen, en het ntl keer is onepld in de sutree (0 of meer keer) E1 E2 E1 of E2 moet voorkomen in de sutree E1,E2 E1 en E2 moeten in deze volgorde voorkomen in de sutree (het zijn dus silings) Als E1 of E2 vn het type #PCDATA is, mg men geen AND comintie mken (E1,E2) en ij een OR comintie (E1 E2) moet men er steeds voor zorgen dt het element met#pcdata-type eerst komt (E1 in dit gevl). De syntx voor ttriuten ziet eruit ls: <!ATTLIST element_nme ttriute_nme vlues defult_vlue> Element nme verwijst nr het element wrvoor we de prmeters willen eplen. Verder wordt de nm vn het ttriuut, de mogelijke wrden en eventueel een defult wrde gedefinieerd. De ltste drie delen mogen herhld worden indien een element meerdere ttriuten heeft. De mogelijke types voor ttriuten zijn: CDATA String zonder < en zonder. ID Unieke ID. IDREF Een referentie nr een ID. 1 content model wordt epld door een reguliere expressie 42

45 IDREFS Een serie referenties, gescheiden door spties. NMTOKEN Een legle nmtoken; dit is een geldige XML nm. NMTOKENS Een serie nmtokens, gescheiden door spties. ENTITY Een entity die gedeclreerd is in de DTD. ENTITIES Een serie entities, gescheiden door spties. NOTATION Een nottie type dt gedeclreerd is in de DTD, dit formt wordt niet door de XML processor verwerkt. Opsomming Een opsomming vn mogelijke wrden, door de geruiker gedefinieerd. We kunnen ttriuten op vier verschillende mnieren declreren: #REQUIRED Er moet een wrde n het ttriuut gegeven worden. #IMPLIED De XML processor moet expliciet n de pplictie vermelden dt er geen wrde is ingevuld. #FIXED De wrde die n het ttriuut toegekend wordt, moet de defult wrde zijn. Defult wrde Als er een defult wrde gegeven is, zl deze geruikt worden ls het ttriuut niet geruikt werd in de desetreffende tg. Anders wordt de opgegeven wrde geruikt. Uitgewerkt vooreeld Hieronder stt een vooreeld vn een DTD die informtie over een oek evt. Elk oek heeft een ID die ls ttriuut gedefinieerd is. Een oek kn meerdere uteurs heen mr slechts één dtum en titel. Ook is er een element keywords opgenomen wrin een willekeurige string vn sleutelwoorden kn stn. De sleutelwoorden in deze DTD worden echter steeds in zijn geheel eschouwd en niet woord per woord. Indien men de sleutelwoorden prt wil opsln zou men keywords moeten definiëren zols uthors. Ook moet een nieuw element <!ELEMENT keyword (#PCDATA)> gedefinieerd worden. 43

46 <!DOCTYPE ook [ <!ELEMENT ook (dte, title, uthors, keywords)> <!ATTLIST ook code ID #REQUIRED> <!ELEMENT dte (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT uthors (uthor+)> <!ELEMENT uthor (nme, first_nme)> <!ELEMENT nme (#PCDATA)> <!ELEMENT first_nme (#PCDATA)> <!ELEMENT keywords (#PCDATA)*> ]> Het onderstnde XML document is een vooreeld vn een geldig XML document voor ovenstnde DTD. <?xml version="1.0"?> <ook code="sip1997"> <dte> 1997 </dte> <title> Introduction to the theory of computtion </title> <uthors> <uthor> <nme> Sipser </nme> <first_nme> Michel </first_nme> </uthor> </uthors> <keywords> computtion utomt </keywords> </ook> Beide vooreelden zijn uitgelijnd ter verduidelijking voor de lezer. Newlines en spties worden echter genegeerd door progrmm s die met XML en DTD werken DTD ls oomutomt Als we teruggn nr de eerder esproken XML-estnden kunnen we zeggen dt de DTD de trnsitieregels vn de oomutomt eplt en dt we kunnen testen of een XML-estnd n een DTD voldoet door de utomt erop los te lten. Het is te ewijzen [13] dt elke DTD uitdrukr is door middel vn een oomutomt. Het voorstellen vn een XML-estnd ls oom is reeds esproken in sectie Er werd echter nog niet gesproken over ttriuten. Willen we een XML-estnd met ttriuten in de elementen voorstellen ls oom, dn kunnen we op verschillende mnieren te werk gn. De mkkelijkste mnier, die ook voor dit werk geruikt wordt, is het ehndelen vn een ttriuut ls een element. Angezien ontwerpers vrij zijn om te eplen of ze iets ls ttriuut of ls element meegeven, houdt dit geen verlies vn functionliteit in. Een ndere mnier ws elke element-knoop twee kinderen te geven: één met lle ttriuten en één met lle elementen. Hierdoor mken we de oom ntuurlijk weer een stp dieper. Referenties worden voorlopig genegeerd. 44

47 We gn zo te werk: eschouw een DTD S vn de vorm: <!ELEMENT l 1 c 1 > <!ELEMENT l 2 c 2 >... <!ELEMENT l k c k > Hierij zijn l 1,..., l k lels en c 1,..., c k reguliere expressies over de verzmeling vn vermelde lels plus de dttypes (deze worden lgemeen genoteerd ls dt ). We willen nu een oomutomt Λ S = (Q, δ, F) construeren over het lfet Σ S ={l 1,..., l k, dt} die lle geldige XML-estnden nvrdt. 1. In de verzmeling vn lle toestnden Q pltsen we een toestnd q x voor lle x Σ S 2. F = Q, tenzij we weten wt de wortel vn het estnd is, geruiken we de toestnd die nr de wortel verwijst. 3. voor elke declrtie <!ELEMENT l c > voegen we een trnsitie δ(q l, l) = c toe met c de reguliere expressie c wrij lle lels x vervngen zijn door de respectieve toestnden q x. Let op, in c moet elk dttype vervngen zijn door dt, in c wordt dit dn q dt. 4. We voegen een trnsitie l(q dt, dt) = toe. 5. Alle ndere trnsities l(q, ) met zijn leeg. Uitgewerkt vooreeld We gn de DTD vn omzetten in een oomutomt B = (Q,Σ, δ, F). Denk ern dt ttriuten ls elementen ehndeld worden! Q = {q ook, q code, q dte, q title, q uthors, q uthor, q nme, q first nme, q keywords, q dt } Σ = {ook, code, dte, title, uthors, uthor, nme, first nme, keywords, dt} F = {q ook } δ = (lle niet vermelde trnsities zijn ) δ(q ook, ook) = q code q dte q title q uthors q keywords δ(q code, code) = q dt δ(q dte, dte) = q dt δ(q title, title) = q dt δ(q uthors, uthors) = q uthor + δ(q uthor, uthor) = q nme q first nme δ(q nme, nme) = q dt δ(q first nme, first nme) = q dt δ(q keywords, keywords) = q dt δ(q dt, dt) = {ε} 45

48 Bemerk dt niet lleen q dt toestnd kn zijn vn een ld, mr ook q keywords omwille vn de in de reguliere expressie n de rechterknt. Deze utomt nvrdt een oom ls de toestnd vn de wortel gelijk is n q ook. Het is duidelijk dt elke DTD uitdrukr is door middel vn een oomutomt. In figuur 4.7 ziet u het XML-estnd vn én figuur 4.8 lt een geldige run zien vn onze utomt op deze oom. ook code dte title uthors keywords Sip Introduction to... uthor computtion utomt nme Sipser first nme Michel Figuur 4.7: De oomstructuur vn het XML-estnd in q ook q code q dte q title q uthors q keywords q dt q dt q dt q uthor q dt q nme q dt q first nme q dt Figuur 4.8: Geldige run vn een utomt vn de DTD in Onduelzinnig gedefinieerde DTD s Voor comptiiliteit met SGML wordt in de XML specifictie [11] nog een extr eis gesteld n DTD s: het is noodzkelijk dt DTD s deterministisch gedefinieerd worden. Deterministische DTD s worden epld door deterministische of niet-migue reguliere expressies. Een tl kn op verschillende mnieren voorgesteld worden met een reguliere expressie mr een reguliere expressie eplt slechts één tl. Indien we een woord willen prsen volgens een reguliere expressie, moeten we weten met welk symool vn de expressie een symool uit het woord overeenkomt. Beschouw ijvooreeld de expressie ( + ). Indien we een woord prsen en we stellen dt een eplde letter uit het woord overeenkomt met de tweede in de expressie, weten we dt er geen enkele meer mg voorkomen in het woord. Mr hoe eplen we juist met welke uit de expressie een in het woord overeenkomt? Deze prolemtiek wordt esproken door Brüggemnn Klein en Wood in [8]. 46

49 In het rtikel worden symolen op twee mnieren gemtcht, met of zonder vooruit te kijken nr de rest vn het woord. Als we elk symool op slechts één mnier kunnen mtchen, spreken we vn een niet-migue (unmiguous) reguliere expressie. Indien er meerdere mogelijkheden zijn om een symool te mtchen, spreken we vn een migue (miguous) reguliere expressie. Indien we kunnen mtchen zonder nr de rest vn het woord te kijken, dus één symool per keer ekijken en niet vooruit kijken, wordt er gesproken vn one-unmiguous reguliere expressies. Bijvooreeld: [8] ( + ) is migu wnt: geef elk symool een positie ls suscript zodt de verschillen duidelijk zijn: ( 1 +) 2 3 eschouw het woord, dit woord kn gemtcht worden ls: 1 1 2, en ls dus op drie verschillende mnieren ( 1 + ) 2 is niet migu mr men moet vooruit kunnen kijken, deze expressie is dus niet one-unmiguous ( ) is one-unmiguous Merk op dt deze drie reguliere expressies steeds dezelfde tl eschrijven. Brüggemnn Klein en Wood geruiken de definitie uit the Stndrd Generlized Mrkup Lnguge (SGML) ls sis voor hun definitie vn one-unmiguous expressions. Deze definitie houden we n, ngezien we net op zoek zijn nr comptiiliteit tussen DTD s en SGML. Een expressie E is one-unmiguous ls en slechts ls, voor lle woorden u, v, w over Π en lle symolen x, y Π, geldt dt ls uxv, uyw L(E ) en x y dn x t y t. Een tl is one-unmiguous ls er een one-unmiguous expressie estt die deze tl eschrijft. Wrij Π de verzmeling is vn elementen vn het lfet wrn een suscript is toegevoegd. Het toevoegen vn suscripts n een expressie noemen we mrkeren of mrking, E is de gemrkeerde versie vn E wrij elk gemrkeerd symool mximl één keer voorkomt. Het omgekeerde vn mrkeren is het lten vllen vn mrkeringen, nottie E t, ijvooreeld x t 1 = x. L(E ) is de tl voortgercht door de gemrkeerde reguliere expressie E. In hoofdstuk 3 over stringutomten en reguliere expressies werden twee methodes esproken om vn een reguliere expressie een eindige utomt te mken. Eén vn deze methodes ws de Glushkov-constructie wrij geruik gemkt werd vn de drie verzmelingen first(l), lst(l) en follow(l, ). Geruiken we deze verzmelingen zols gedefinieerd in 3.3 op pgin 26, dn zijn volgende sttements eenvoudig n te gn. [8] 47

50 Voor elke gemrkeerde expressie E een woord x 1...x n over Π tot de tl vn E ehoort ls en slechts ls: x 1 first(e) x n lst(e) x i+1 follow(e, x i ) voor lle i tussen 1 en n Een expressie E is dn one-unmiguous ls en slechts ls: x, y first(e ): ls x y dn x t x t en z symool vn E en x, y follow(e, z): ls x y dn x t x t Als we dit ltste sttement lngs de constructie vn een Glushkov-utomt leggen, kunnen we fleiden dt een reguliere expressie one-unmiguous is ls en slechts ls de Glushkovutomt deterministisch is. Vooreeld Beschouwen we de Glushkov-utomten vn volgende reguliere expressies: (+) is migu, de Glushkov-utomt in figuur 4.9 is duidelijk niet-deterministisch, vnuit enkele toestnden vertrekken meerdere pijlen met hetzelfde lel. ( 1 +) 2 is niet migu mr ook niet one-unmiguous, figuur 4.10, vnuit toestnd 1 vertrekken twee pijlen met lel. ( ) is one-unmiguous, zie figuur 4.11, hierin ziet u een deterministische utomt (vnuit elke toestnd vertrekken juist twee pijlen, een met lel en een met lel. 1 q I Figuur 4.9: Glushkov-utomt voor ( )

51 1 q I 2 1 Figuur 4.10: Glushkov-utomt voor ( ) 2 q I Toepssing XPth Stndrd XPth Figuur 4.11: Glushkov-utomt voor 1 1( 2 2) XPth [12] is een querytl om delen vn een XML-estnd zols elementen en ttriuten te vinden. Zo kn men met ehulp vn XPth ijvooreeld lle oeken opvrgen vn een eplde uteur in een XML-estnd dt iliotheekgegevens evt. Voor XPth expressies te lezen, eschouwen we het XML-estnd ls een oom. We nvigeren steeds vnuit een context; dt wil zeggen we eginnen ij een eplde knoop en het gevonden ntwoord hngt ook steeds f vn het vertrekpunt. Een XPth expressie wordt ls volgt opgeouwd: 1. Bepl de richting (xis) vn nvigtie door de oom in reltie tot de huidige positie. Hierij kn er gekozen worden uit: self: dit stt voor de huidige knoop child: l de rechtstreekse kinderen descendnt: lle fstmmelingen prent: de knoop wr deze knoop een rechtstreeks kind vn is ncestor: lle voorouders ttriute: een ttriuut vn de huidige knoop nmespce: selecteert lle nmespce knopen vn de huidige knoop following-siling: selecteert lle ndere kinderen vn de ouder vn deze knoop die n de huidige knoop komen preceding-siling: lle silings vn deze knoop die hem voorfgn 49

52 following: lle knopen uit het document die n deze knoop komen en er geen fstmmeling vn zijn preceding: lle voorgnde knopen mr niet de voorouders descendnt-or-self: de huidige knoop en l zijn fstmmelingen ncestor-or-self: de huidige knoop en zijn voorouders Voor de duidelijkheid: ncestor, descendnt, following, preceding en self zijn disjuncte verzmelingen vn knopen en smen evtten zij lle knopen uit het estnd. 2. Bepl het type of de nm vn knoop die we zoeken (node test). Hiervoor kn gekozen worden uit voor lle knopen, E voor een element met de nm E, node() voor knopen, text() voor tekst elementen, comment() voor commentren en processing instruction(). 3. Vrg uiteindelijk, op sis vn de inhoud of ndere eigenschppen vn de verzmeling nodes, wt we willen weten (predicte). Dit wordt gedn met een oolense of numerieke expressie tussen hoekhken. Ook voor dit onderdeel vn een XPth expressie estn er een ntl voorgedefinieerde functies. Hier worden er enkele opgenoemd: count(node-set): geeft het ntl knopen in de verzmeling contins(string,string): evt de eerste string de tweede string? string(oject): geeft een string weer die het oject voorstelt Smengevoegd geruiken we de volgende syntxis: xis :: Nodetest[predicte] XPth expressies kunnen l snel lnge uitdrukkingen worden. Drom werden er een reeks fkortingen ingevoerd. Zo mg men ijvooreeld de xis child:: gewoon weglten, descendnt-or-self:: wordt vervngen door //, ttriute self::node() wordt. en prent::node() wordt... Uitgewerkt vooreeld Beschouwen we het XML-estnd in figuur 4.12, dn kunnen we ijvooreeld de volgende XPth expressies schrijven: // [following siling :: kitchen] selecteert lle knopen (living en reception in dit gevl) die vóór de keuken stn in het estnd. Als eerste ekijken we de xis (descendnt or self); ls we de wortel vn de oom ls context node nemen zou dit etekenen dt we tussen lle knopen zoeken. Drdoor is // wrschijnlijk de meest geruikte xis. De node test is ; hierdoor worden lle soorten knopen ekeken. Het predikt f ollowing siling :: kitchen eplt uiteindelijk de voorwrden n welke de knoop moet voldoen om ls resultt ehouden te worden: één vn de volgende roers vn de knoop moet kitchen zijn. count(// [prent :: upstirs]) telt het ntl kmers op de ovenverdieping ofwel het ntl knopen dt ls ouder upstirs heeft. 50

53 /upstirs/ geeft lle kinderen vn de knoop upstirs ls we eginnen ij de wortel. Indien je hier de count() functie rondzet geeft deze hetzelfde resultt ls het vorige vooreeld. // [description = luxurious ] geeft lle knopen terug die een description knoop heen met de tekst luxurious. //description[prent :: throom] geeft de eschrijving vn de dkmer. De node test description eplt hier dt we tussen lle description knopen zoeken. house upstirs downstirs edroom throom plyroom living reception kitchen description description description description description description luxurious clen, white ig wrm right functionl Figuur 4.12: Een XML-estnd Core XPth Omdt het estuderen vn lle specten vn XPth een voltijdse ezigheid zou zijn, eperken veel rtikels zich tot CORE XPth [13, 14]; een strctie vn de ondervrgingstl die enkel de kern vn de zk ehndelt. Hierij lten we de verschillende functienroepen en erekeningen chterwege en seren we ons op de sewegingen en filters. Syntx en semntiek De syntx vn Core XPth is gedefinieerd door de volgende grmmtic: Core XPth Expressie κ ::= π /π κ κ pd expressie π ::= α :: θ α :: θ[] π/π sewegingen α ::= self β β β + sisssen β ::= leltests θ ::= l 1... l k filterexpressies ::= κ not nd or Hierij veronderstellen we dt Λ = l 1,..., l k en de sewegingen genoteerd worden zols in tel

54 Core XPth + + self + + XPth ncestor-or-self ncestor prent preceding-siling self following-siling child descendnt descendnt-or-self Tel 4.1: Nottie voor de xis Angezien we werken op de oomstructuur vn XML-estnden geven we eerst de definitie vn een oom: Een oom is een tupel (N, E, S, L) wrij: N de verzmeling vn knopen is; E N N de ouder-vn reltie tussen de knopen uitdrukt; S N N de linker-roer-vn reltie uitdrukt; L : N Λ de lelingsfunctie is die elke knoop met zijn lel ssocieert.// Net zols een gewone XPth expressie selecteert Core XPth knopen in de oom vertrekkende vn een context knoop. Hierdoor kunnen we stellen dt een Core XPth expressie een inire reltie κ(t) definieert op de knopen vn een oom t, wrij (n, n ) κ(t) ls en slechts ls n geselecteerd wordt door de expressie κ vnuit n. Filterexpressies in een expressie resulteren in een oolense wrde; ze geven true in een eplde knoop ls we er knopen uit kunnen ereiken die n de filter voldoen, zoniet wordt f lse gegeven. We geruiken de volgende nottie voor een filterexpressie c die true is in knoop n vn oom t: (t, n) = c. De semntiek vn Core XPth kunnen we dn ls volgt definiëren: [13] Zij t = (N, E, S, L) een oom. We schrijven N l voor de verzmeling knopen vn t die geleld zijn met l. Vervolgens schrijven we R + voor de trnsitieve sluiting vn een inire reltie R, R voor de reflexief-trnsitieve sluiting vn R en R 1 voor het invers vn R. De semntiek is dn inductief gedefinieerd ls: 1. Evlutie vn Core XPth en pd expressies (α :: θ)(t) := {(n, n ) (n, n ) α(t) en n N θ } (α :: θ[])(t) := {(n, n ) (n, n ) α(t), n N θ en (t, n ) = } (π 1 /π 2 )(t) := {(n, n ) n : (n, n ) π 1 (t) en (n, n ) π 2 (t)} (/π)(t) := {(root, n ) (root, n ) π(t)} (κ 1 κ 2 )(t) := κ 1 (t) κ 2 (t) 2. Evlutie vn sewegingen en sisssen self(t) := {(n, n) n N l } (t) := S (t) := S 1 (t) := E (t) := E 1 (β + )(t) := β(t) + (β )(t) := β(t) 52

55 3. Evlutie vn filterexpressies (t, n) = π n : (n, n ) π(t) (t, n) = 1 nd 2 (t, n) = 1 en (t, n) = 2 (t, n) = c 1 or c 2 (t, n) = c 1 of (t, n) = c 2 (t, n) = not c (t, n) = c Vooreelden vn Core XPth expressies Als we de oom vn eschouwen, kunnen we volgende Core XPth expressies formuleren met (voor zover mogelijk) dezelfde etekenis ls voordien: :: [ + :: kitchen] :: [ :: upstirs] De functie count estt niet in Core XPth! / :: upstirs/ :: :: [description = luxurious ] Deze expressie kunnen we niet nr Core XPth vertlen omdt we de gegevens vn de description knopen heen weggelten. :: description[ + :: throom] Evlutie vn een Core XPth expressie Willen we nu de eerste expressie evlueren, dn zullen we de oom uit definiëren ls een tupel t = (N, E, S, L). Voor de leesrheid zullen we de lderen vn de oom chterwege lten. De verzmelingen N, E, S en L worden dn: N = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} E = {(1, 2), (1, 3), (2, 4), (2, 5), (2, 6), (3, 7), (3, 8), (3, 9),(4, 10),(5, 11),(6, 12),(7, 13), (8, 14),(9, 15)} S = {(2, 3), (4, 5), (5, 6), (7, 8), (8, 9)} L = {(1, house), (2, upstirs), (3, downstirs), (4, edroom),(5, throom), (6, plyroom),(7, living),(8, reception),(9, kitchen),(10, description),(11, description), (12, description),(13, description),(14, description),(15, description)} Vervolgens zullen we :: [ + :: kitchen] stp voor stp evlueren op t: 53

56 ( :: [ + :: kitchen])(t) + :: kitchen is vn de vorm α :: θ met α = + en θ = kitchen, noem deze expressie ( :: [])(t) hierin herkennen we (α :: θ[])(t) met α = en θ = deze expressie evlueren we met ehulp vn de tweede evlutieregel: (α :: θ[])(t) := {(n, n ) (n, n ) α(t), n N θ en (t, n ) = } {(n, n ) (n, n ) (t) en n N en (t, n ) = } weglten vn n N en evlutie vn {(n, n ) (n, n ) E (t) en (t, n ) = } evlutie vn met ehulp vn de eerste evlutieregel: (α :: θ)(t) := {(n, n ) (n, n ) α(t) en n N θ } {(n, n ) (n, n ) E (t) en n : (n, n ) {(m, m ) (m, m ) + (t) en m N kitchen }} evlutie vn + {(n, n ) (n, n ) E (t) en n : (n, n ) {(m, m ) (m, m ) S + (t) en m N kitchen }} vereenvoudigen {(n, n ) (n, n ) E (t) en n : (n, n ) S + (t) en n N kitchen } invullen in N kitchen zit enkel knoop 9, drdoor is n = 9 ls n = 9 dn is n {7, 8} (8 is linker roer vn 9 en 7 is linker roer vn 8) ls n = 7 dn is n {1, 3} (3 is ouder vn 7 en 1 is voorouder) ook ls n = 8 is n {1, 3} (3 is ouder vn 8 en 1 is voorouder) dn zijn de mogelijke koppels (n, n ): {(1,7),(1,8),(3,7),(3,8)} Minimle XPth expressies en oomutomten In het rtikel vn Schwentick [20] wordt een methode eschreven om utomten te definiëren voor XPth frgmenten. XPth frgmenten zijn eenvoudige XPth expressies met eperkte syntx en worden ngeduid met XP(L) wrij L een lijst is vn de toegelten componenten. XP(/, //) is ijvooreeld het XPth frgment wrij enkel child en descendnt zijn toegelten. Willen we voor een XP(/, //) expressie p een utomt A definiëren, doen we dit ls: A doorloopt t vn de wortel nr de lderen en selecteert hierij niet-deterministisch een pd. Op dit pd wordt voor elke knoop v de verste positie in p erekend die overeenkomt met het pd vn de wortel tot v. Deze positie wordt ls toestnd n de knoop gegeven. Knopen die niet op het pd liggen, krijgen ls toestnd s. s en de toestnd vn de ltste positie in p worden ls eindtoestnd gemrkeerd. De utomt ccepteert een oom t ls er een run is wrij in de lderen vn t enkel ccepterende toestnden voorkomen. Merk op dt men hier veronderstelt dt de context wrin de expressie uitgevoerd wordt steeds de wortel vn de oom is en dt de selectieknoop de ltste knoop in het pd wordt. 54

57 Indien de ltste knoop in het pd geen ld vn de oom is, zullen lle knopen eronder de toestnd s krijgen. Deze omen worden dus ook nvrd. Ook wordt hier geruik gemkt vn een top-down eschrijving vn de utomt terwijl we in deze tekst steeds oomutomten ottom-up heen gedefinieerd. Voor de duidelijkheid zullen we in de vooreelden de top-down utomt noteren ls een ottom-up utomt. Bijvooreeld: voor p = ////d met t zols in figuur 4.13 zl de utomt A1 gedefinieerd worden ls: Q 1 = {s, s 0, s, s, s d } Merk op dt het geruik vn deze eenvoudige nmen voor de toestnden enkel mogelijk is omdt er geen enkel symool duel geruikt wordt in de expressie. Voor ndere expressies kn s x worden geruikt met x de positie in de expressie wr we ons evinden. Σ = {,, c, d} F 1 = s 0 Indien de wortel toestnd s 0 heeft wordt de oom nvrd De trnsitiefunctie δ ls: δ 1 (s 0, root) = s s s Dit wil zeggen dt een knoop enkel het lel s 0 krijgt ls één vn de kinderen het lel s heeft en de ndere lleml s. δ 1 (s, ) = s s s δ 1 (s, ) = s s d s δ 1 (s d, d) = s s s d s δ 1 (s d, x) = s s d s voor lle x Σ en x d δ 1 (s, x) = s voor lle x Σ Deze utomt zl lle omen nvrden wrvn er een run estt die de wortel het lel s 0 geeft. Figuur 4.14 toont een ccepterende run op t. root c c d c c Figuur 4.13: De oom t 55

58 root : s 0 : s : s c : s c : s : s : s : s d : s d c : s c : s Figuur 4.14: Een geldige run op de oom t Core XPth en oomutomten In [13] wordt ewezen (Stelling 1.39) dt elke Core XPth expressie gesimuleerd kn worden door middel vn een oomutomt. In het ewijs wordt er vertrokken vn eenvoudige utomten voor simpele XPth expressies die gecomineerd worden tot utomten voor complexere expressies. Voor deze cominties worden er constructies op oomutomten eschreven zols sustitutie, unie, doorsnede, verschil en complement. Ook wordt er ngetoond dt de klsse vn de reguliere oomtlen gesloten is onder deze constructies. Het uitschrijven vn utomten voor Core XPth expressies kn heel wt tijd vergen. Als vooreeld strten we met een utomt voor de expressie + :: : (merk op dt de context en selectieknoop ij deze expressie steeds gelijk zijn) Beschouw de (ottom-up) oomutomt A1 = (Q,Σ, δ, F) met ls toestnden q voor knopen met het lel, q voor de context/selectie knoop en q voor niet-relevnte knopen. Lt vervolgens ook q true de toestnd worden vn lle knopen n wrvn de toestnden vn de kinderen voldoen n q q q q q met q Q. Dit wil zeggen dt tussen de kinderen vn n zowel de contextknoop ls een knoop met lel zitten, en de -knoop zit meer nr rechts. Dn nvrdt deze utomt omen die voldoen n de expressie + :: ls er een knoop geleld is met q true. Op dezelfde mnier definiëren we een utomt A2 die :: simuleert: δ(q true, x) = y ls x een overlijnde knoop is en y een onderlijnde knoop of ls x = y q nders Deze utomt nvrdt een oom ls er een knoop is met het lel q true Vervolgens kijken we nr de expressie :: [ + :: ]: De utomt A die deze expressie simuleert, construeren we zo dt: L(A) = L(A2) L(A1 ). Wrij A1 de utomt is die omen nvrdt wrin de context/selectie knoop vn A1 een selectieknoop is en één vn de ndere knopen gemrkeerd wordt ls contextknoop. Voor meer uitleg verwijs ik nr [13] ij het ewijs vn Stelling

59 4.4.5 Equivlentie vn XPth expressies Om inclusie vn XPth expressies n te tonen, kunnen we zeggen dt een expressie κ 1 een deel is vn expressie κ 2 ls er geen enkel element is vn κ 1 dt niet in κ 2 zit. Dit is ook de methode die Schwentick geruikt in zijn rtikel [20] voor XPth expressies in nwezigheid vn een DTD: eerst construeren we twee oomutomten, één voor κ 1 en één voor κ 2. Dit is steeds mogelijk (zie sectie en [13]). Dn nemen we het complement vn de tweede utomt, dit geeft een utomt voor lle omen die niet n κ 2 voldoen ( κ 2 ). Vervolgens plkken we deze utomten chter elkr met de product constructie en ekomen we een utomt dt lle tegenvooreelden vn de inclusie nvrdt. Indien de uiteindelijke utomt dn een niet-lege set omen nvrdt die voldoen n de DTD, is κ 1 κ 2. Om n te kijken of de omen n een DTD voldoen, kunnen we zols in sectie ook een utomt definiëren. We kunnen dn de reeds gevonden utomt uitreiden tot een utomt voor κ 1, κ 2 en de DTD. Dit doen we door het product vn de drie utomten te erekenen. Om te kijken of een tl, nvrd door een oomutomt, l dn niet leeg is, wordt de lezer doorverwezen nr [13]. Determiniseren Om het complement vn een utomt B = (Q, δ, F) te erekenen, moet er eerst voor gezorgd worden dt B een deterministische utomt is. Het determiniseren vn een utomt wordt uitgelegd in [13] ij de constructies op oomutomten en werkt ls volgt. Zij B 1 = (Q 1, δ 1, F 1 ) een niet-deterministische oomutomt. We construeren een deterministische oomutomt B = (Q, δ, F) die dezelfde tl nvrdt ls A 1. Q is de verzmeling vn lle mogelijke deelverzmelingen vn Q 1 F evt lle deelverzmelingen vn Q 1 die een element vn F 1 evtten voor elke toestnd R Q, elk woord R 1..R k Q en elk symool σ Σ definiëren we de trnsitie δ(r, σ) zodnig dt: R 1..R k δ(r, σ) R = {q Q 1 q 1 R 1,.., q k R k : q 1..q k δ(q, σ)} Mken we nu geruik vn de sustitutie f(q) = {S S Q 1 en q S}, dn krijgen we: δ(r, σ) = f(δ 1 (q, σ)) q R q Q 1 R f(δ 1 (q, σ)) 57

60 We moeten voor een gegeven σ Σ op elke trnsitie δ 1 (q, σ) in de utomt de sustitutie toepssen. Dn nemen we de doorsnede (respectief unie) vn lle sustituties vn trnsities met q R (respectief (q Q 1 R). Het verschil vn deze twee verzmelingen (doorsnede - unie) is de nieuwe trnsitie δ(r, σ). Angezien we werken met oomutomten kunnen we zeggen dt voor elke q Q 1 en x Σ geldt dt δ(q, x) een reguliere tl is over Q 1. Reguliere tlen zijn gesloten onder unie, doorsnede, verschil en sustituties. Bijgevolg is δ(r, σ) ook een reguliere tl. Het determiniseren vn een utomt heeft wel ls ndeel dt de nieuwe utomt exponentieel groter is dn de originele utomt. Uitrekenen vn een sustitutie De sustituties in de erekening vn de deterministische utomt zijn, in het gevl vn oomutomten, steeds sustituties op reguliere tlen. We ekijken een vooreeld om een eter eeld te heen op de resultten. Dit uitgewerkte vooreeld stt verder in dit hoofdstuk. Bekijk de sustitutie f(q) = {S S Q 1 en q S} voor de vooreeldtrnsitie δ(q, x) = q 0 q 1q 0 vn een oomutomt wrij de reguliere tl wordt voorgesteld ls een reguliere expressie E over toestnden. f(δ(q, x)) = f(q 0 q 1q 0 ) = f(e) Als we deze trnsitie willen uitrekenen, komen we l snel uit n een oneindige erekening. f(q 0 q 1q 0 ) = {f(q 1), f(q 0 q 1 ), f(q 0 q 1 q 0 ), f(q 0 q 0 q 1 ),...} Om dit op te lossen, ekijken we de utomt B 1 die de reguliere tl E herkent en herschrijven we die utomt tot een utomt die de tl f(e) nvrd. Merk op dt q 0 en q 1 nu symolen uit het lfet zijn, drom nemen we cijfers ls toestnden. B 1 : Q 1 = {0, 1} met 0 ls egintoestnd en 1 ls eindtoestnd We nemen ls lfet Σ 1 = {q 0, q 1 } δ 1 (0, q 0 ) = 0 δ 1 (1, q 0 ) = 1 δ 1 (0, q 1 ) = 1 58

61 De utomt B 2 die f(l(b1)) nvrdt, wordt dn: Q 2 = {0, 1} met 0 ls egintoestnd en 1 ls eindtoestnd De verzmeling toestnden, egin- en eindtoestnden lijven gelijk het lfet Σ 2 = {, {q 0 }, {q 1 }, {q 0, q 1 }} evt lle deelverzmelingen vn Σ 1 Voor elke trnsitie δ(t, σ) = t in B 1 en elke σ f(σ) voegen we een trnsitie δ 2 (t, σ ) = t toe: δ 2 (0, {q 0 }) = 0 δ 2 (0, {q 0, q 1 }) = 0 δ 2 (1, {q 0 }) = 1 δ 2 (1, {q 0, q 1 }) = 1 δ 2 (0, {q 1 }) = 1 δ 2 (0, {q 0, q 1 }) = 1 Bestuderen we deze utomt, merken we dt deze de volgende tl nvrdt: ({q 0 } {q 0, q 1 }) ({q 1 } {q 0, q 1 }) ({q 0 } {q 0, q 1 }). Hierin herkennen we de oorspronkelijke vorm vn de reguliere expressie, wrij elk symool q vervngen is door de conjunctie vn de elementen vn de sustitutie f(q) = {S S Q 1 en q S} vn q. Dit noteren we verder ls f(q 0 ) f(q 1 )f(q 0 ). Hieruit esluiten we dt voor een reguliere expressie r = r 1...r n de sustitutie gelijk is n: f(r) = f(r 1 )...f(r n ). Vooreeld voor equivlentie vn XPth expressies Zij p = ////d en q = //c met de oom t ls in figuur In het vooreeld uit heen we reeds een eenvoudige utomt geconstrueerd voor de XPth expressie p = ////d, we heen deze A1 genoemd met Q1 de verzmeling toestnden en F1 de ccepterende toestnden. Voor q kunnen we een gelijkrdige utomt A2 mken ls: Q2 = {q, q 0, q c } We geruiken ndere toestnden ls ij A1 om strks de productconstructie te verduidelijken Σ = {,, c, d} F2 = {q 0 } δ 2 (q 0, root) = q q c q δ 2 (q c, c) = q q q c q δ 2 (q c, x) = q q c q voor lle x Σ met x c en x root δ 2 (q, x) = q voor lle x Σ 59

62 Nu gn we A2 determiniseren tot een utomt A2 ls: Q2 = {, {q 0 }, {q c }, {q }, {q 0, q c }, {q c, q }, {q 0, q }, {q 0, q c, q }} Alle mogelijke deelverzmelingen vn Q2 F2 = {{q 0 }, {q 0, q c }, {q 0, q }, {q 0, q c, q }} Alle deelverzmelingen vn Q2 die elementen vn F2 evtten Vervolgens erekenen we δ(r, x) voor elke R Q en x Σ ls: δ 2 (R, x) = q R f(δ 2(q, x)) q Q 2 R f(δ 2(q, x)) δ 2 ({q 0}, root) = f(δ 2 (q 0, root)) (f(δ 2 (q, root)) f(δ 2 (q c, root))) = f(q ) f(q c )f(q ) (f(q ) ) = f(q ) ({q c } {q c, q 0 })f(q ) δ 2 ({q }, root) = ({q } {q, q 0 }) δ 2 ({q }, c) = f(q ) ({q } {q, q 0 })f(q ) δ 2 ({q }, x) = ({q } {q, q 0 }) x Σ, x root, x c δ 2 ({q c}, c) = f(q ) ({q c } {q c, q 0 })f(q ) δ 2 ({q c}, x) = f(q ) ({q c } {q c, q 0 })f(q ) x Σ, x root, x c δ 2 ({q 0, q }, root) = f(δ 2 (q 0, root)) f(δ 2 (q, root)) f(δ 2 (q c, root)) = f(q ) f(q c )f(q ) f(q ) = f(q ) ({q, q c } {q, q c, q 0 })f(q ) δ 2 ({q c, q }, c) = f(q ) ({q, q c } {q, q c, q 0 })f(q ) δ 2 ({q c, q }, x) = f(q ) ({q, q c } {q, q c, q 0 })f(q ) x Σ, x root, x c Nu heen we een deterministische utomt A2 wrvn we het complement kunnen nemen. De utomt A2 heeft dezelfde verzmeling toestnden en dezelfde trnsities ls A2. De verzmeling eindtoestnden wordt echter Q2 F2 : F2 = {, {q c }, {q }, {q c, q }} Nu we eindelijk een utomt heen voor q kunnen we terug nr het proleem vn de inclusie. We eschouwen de utomten A1 en A2. Vervolgens comineren we deze twee utomten tot één utomt met ehulp vn constructie uit [19]. De nieuwe utomt wordt dn: Q = Q1 Q2 De toestnden worden koppels (s, q) vn toestnden. Σ = {,, c, d} F = F1 F2 δ((s, q), x) = (s 1, q 1 )...(s n, q n ) met s 1...s n (respectief q1...q n ) de toestnden die de kinderen vn een knoop met lel x krijgen vn A1 (respectief A2 ) ls de ouder het lel s (respectief q) heeft. Voor elke knoop in een oom krijgen we dus een koppel (s, q) toestnden wrij s de toestnd is verkregen vn A1 en q de toestnd vn A2. 60

63 root : (s 0, {q 0, q }) : (s, {q c, q }) c : (s, {q c, q }) c : (s, {q c, q }) : (s, {q }) : (s, {q c, q }) : (s, {q }) : (s, {q c, q }) d : (s d, {q c, q }) c : (s, {q c, q }) c : (s, {q c, q }) Figuur 4.15: Een run op de oom t Deze utomt nvrdt vervolgens lle omen wrvn de lderen toestnden heen in F. Als we onze oom t uit 4.13 testen met ehulp vn deze utomt, krijgen we ls mogelijke run (ngezien A1 niet-deterministisch is) de run uit figuur We heen nu een utomt geconstrueerd die lle omen nvrdt, die wel n p mr niet n q voldoen. Op gelijkrdige wijze kunnen we deze utomt vermenigvuldigen met een utomt voor een DTD. Op die mnier ekomen we een utomt die lle tegenvooreelden nvrdt die voldoen n de DTD. 4.5 Besluit In de cursus theoretische informtic voor het tweede chelorjr informtic is er geen ruimte om oomutomten op te nemen zonder ndere leerstof weg te lten. De docent heeft de keuze deze leerstof n te ieden ls keuzeonderwerp of in een keuzevk. Verder is het elngrijk dt er overleg is tussen de docenten vn verschillende vkken zodt onderlinge integrtie en geleidelijkheid gegrndeerd kunnen worden. Hierij denken we in de eerste plts n de cursus Technologie vn Multimedisystemen en -softwre [?, XMLcursus]r de student kennismkt met XML en XPth. In dit hoofdstuk heen we eerst oomutomten gedefinieerd. Vervolgens heen we gekeken op welke mnier oomutomten kunnen helpen ij het geruik vn XML, DTD s en XPth. We heen ngetoond dt we oomutomten kunnen geruiken voor het vlideren vn XML omen wrij we de DTD omzetten in een oomutomt. Hierij heen we, voor het onduelzinnig definiëren vn DTD s, ook geruik gemkt vn one-unmiguous reguliere expressies. We testen of een reguliere expressie one-unmiguous is door geruik te mken vn de Glushkov-constructie vn hoofdstuk 3. Als ltste heen we oomutomten voor XPth expressies gedefinieerd en heen we deze oomutomten geruikt om te kijken of twee XPth expressies equivlent zijn. 61

64 Hoofdstuk 5 Stringutomten en pttern mtching 5.1 Didctische wenken In de cursus lgoritmen en dtstructuren vn het tweede chelorjr informtic stn verschillende zoeklgoritmen. Deze lgoritmen zoeken de positie vn een krkter in een string. Een uitreiding op deze lgoritmen zijn zoeklgoritmen voor een reeks krkters (een ptroon) in een string of tekst. Deze lgoritmen worden pttern mtching lgoritmen genoemd. Er estn een ntl pttern mtching lgoritmen op sis vn stringutomten. Dit is ijgevolg een ngewezen onderwerp om de leerstof uit de cursus lgoritmen en dtstructuren te integreren met theoretische informtic. Het is de keuze vn de docenten in welk (keuze)vk deze leerstof gegeven wordt. De docent kn de studenten ctief ezighouden door deze lgoritmen ls zelfstudie n te ieden. Angezien er ook pttern mtching lgoritmen estn die niet geseerd zijn op de utomtentheorie kunnen we gn differentiëren. De lgoritmen in dit hoofdstuk ieden we n n studenten die gekozen heen voor meer theoretische informtic. De ndere studenten krijgen pttern mtching lgoritmen zonder utomten. 5.2 Wt is pttern mtching Tekstverwerkingsprogrmm s ieden de geruikers de mogelijkheid op zoek te gn nr een epld woord in de tekst, virusscnners zoeken de hndtekening vn een virus in de (inire) code vn een estnd, zoekmchines op het internet geven lle pgin s weer wrin een eplde tekst voorkomt en zelfs dtses wrin DNA strings worden opgeslgen ieden de mogelijkheid te zoeken nr een eplde DNA string. Al deze vooreelden zijn toepssingen vn hetzelfde principe: pttern mtching. Pttern mtching of string mtching is het proces om te eplen of en wr een eplde string (het ptroon) voorkomt in een ndere string (een tekst). Er estn verschillende lgoritmen om dit te doen: de meest ekende zijn het nïeve lgoritme, Knuth-Morris-Prtt (KMP) en Boyer-Moore (BM). We kunnen deze zoeklgoritmen indelen op sis vn de enodigde 62

65 geheugenruimte, de snelheid wrmee ze werken of het ntl noodzkelijke krktervergelijkingen om de locties te vinden wr een ptroon voorkomt. Ook zijn er lgoritmen die in een preprocessing stp eplde gegevens uit het ptroon dn wel uit de tekst hlen. En sommige lgoritmen vergelijken het ptroon vn links nr rechts en ndere vn rechts nr links. In dit hoofdstuk geven we een overzicht vn KMP, BM en enkele interessnte pttern mtching lgoritmen die geruik mken vn utomten. Drij mken we de volgende fsprken: Het ptroon x = x 0...x m 1 en de tekst y = y 0...y n 1 zijn strings in het Ltijnse lfet of een deelverzmeling ervn, het ptroon heeft lengte m en de tekst heeft lengte n Het lfet heeft σ symolen We zoeken op welke positie(s) x voorkomt in y, de edoeling is dus lle voorkomens vn x in y terug te vinden en niet enkel het eerste. Vooreelden gn uit vn x = en y = met het lfet {,, c} De eschrijving vn de lgoritmen en hun complexiteit zijn terug te vinden in [28], voor het KMP lgoritme is ook [27] geruikt. 5.3 Overzicht vn lgoritmen Nïeve oplossingsmethode Een zeer voor de hnd liggende, doch nïeve methode om een ptroon te zoeken in een tekst is het flopen vn lle verschillende mogelijke posities vn het ptroon in de tekst. Zoeken we ijvooreeld het ptroon in de tekst, kunnen we de werkwijze uitschrijven zols in figuur Figuur 5.1: Nïef zoeken vn in 63

66 Voor elke letter vn de tekst wordt er gekeken of deze overeenkomt met de eerste letter vn het ptroon. Indien dit het gevl is, vergelijken we de volgende letter vn de tekst en het ptroon tot het einde vn het ptroon ereikt is (mtch gevonden) of er een mismtch optreedt. Complexiteit Dit lgoritme heeft tijdscomplexiteit O(mn) en er worden 2n krktervergelijkingen verwcht Knuth Morris Prtt lgoritme (KMP) Het nïeve lgoritme doet vk onnodige vergelijkingen. Zo weten we ijvooreeld in stp 10 in figuur 5.1 l dt y[3] en y[4] zijn, en is het dus nutteloos deze nog te vergelijken met (de eerste letter vn ons ptroon) zols in stp 11 en 12. We zouden eigenlijk onmiddellijk kunnen overschkelen nr stp 13 wr y[5] gemtcht wordt. Dit is net wt het lgoritme vn Knuth-Morris-Prtt (KMP) doet. Hiervoor wordt er eerst gekeken op welke mnier het ptroon overlpt met een deelptroon. Beschouw ijvooreeld dezelfde stp uit het nïeve lgoritme: 10. Op dit moment zijn we een deelptroon tegengekomen in de tekst. Nu gn we ekijken op welke mnier het ptroon kn overlppen met dit deelptroon. verschuiving = 1 verschuiving = 2 verschuiving = 3 De mximle overlpping in dit vooreeld is vn lengte 1, enkel de suffix vn het deelptroon is een prefix vn het ptroon. Dit wil zeggen dt we ps drie (lengte deelptroon min lengte overlpping) posities verder een mogelijk voorkomen vn het ptroon kunnen vinden, we zullen dus drie iterties verder springen. Om de overlp te erekenen heen we enkel het ptroon p en het deelptroon nodig. Het deelptroon is volledig epld door zijn lengte. Voor lle mogelijke posities kn de overlp volledig vóór het pttern mtching lgoritme erekend worden. Als vereenvoudiging kunnen we een tel O definiëren met O[j] de lengte vn overlpping vn het ptroon en het deelptroon P[0..j]. Voor ekomen we dn de volgende tel: i x[i] O[i]

67 Nu kunnen we nog een optimlistie toepssen op het lgoritme. Als we een overlpping tegenkomen en we sln hierdoor een (ntl) iterties over, eginnen we in de volgende ronde met het vergelijken vn de krkters wrvn we reeds weten dt ze overeenkomen ngezien ze net de overlp eplen. Bijgevolg mogen we net zoveel krkters oversln ls de lengte vn de overlp. Complexiteit Dit lgoritme heeft nog steeds een geneste herhlingsstructuur, dus kunnen we ons fvrgen of het wel een optimlisering is ten opzichte vn het nïeve lgoritme. Een ndere estudering [29] wijst echter uit dt de tijdscomplexiteit vn het KMP lgoritme O(n) is met mximl 2n vergelijkingen. Er moet wel nog rekening gehouden worden met de erekening vn de overlp tel, deze erekening geeurt in O(m) tijdscomplexiteit. Hierdoor is de totle tijdscomplexiteit in O(m + n). De tijdscomplexiteit kn erekend worden door te tellen hoe vk we de vergelijking y[i+j] == x[j] uitvoeren. Deze vergelijkingen splitsen we op in twee groepen: de vergelijkingen die wr teruggeven (positieve vergelijkingen) en de vergelijkingen die onwr teruggeven (negtieve). Als een vergelijking positief is, kennen we de wrde vn y[i + j]. In volgende iterties zullen we dn over deze y[i+j] heen springen ls er een overlp gevonden werd of zl de vergelijking y[i + j] == x[j] onwr teruggeven. Voor elke mogelijke positie vn y[] zl er dus slechts een positieve vergelijking voorkomen, ijgevolg komen er slechts n positieve vergelijkingen voor. An de ndere knt kn er in de innenste lus slechts éénml een negtieve vergelijking voorkomen ngezien dit de lus freekt. In totl kunnen er dus slechts n (eigenlijk n m) negtieve vergelijkingen voorkomen. Het gehele lgoritme mkt dus mximl 2n vergelijkingen en werkt in tijd O(n), een duidelijke veretering. KMP en utomtentheorie Als we het voorgnde lgoritme ekijken, kunnen we er zeer eenvoudig een utomt vn mken [29]. Een strttoestnd q 0, toestnden q 1...q m met m = de lengte vn het ptroon en de overgngen zijn epld ls: Vnuit toestnd q i gn we nr toestnd q i+1 ls we de letter gelezen heen die overeenkomt met de i-de letter vn het ptroon We gn terug nr een vorige toestnd ls er een ndere letter gelezen werd, de toestnd wr we terecht komen, komt overeen met de overlp en we lezen de ltst gelezen letter opnieuw in. Deze utomt ccepteert een string ls de ltste toestnd (q m ) ereikt wordt. De visulistie in figuur 5.2 mkt lles duidelijker. Bij het lezen vn een verkeerd krkter wordt er telkens teruggegn nr de eerste toestnd tenzij er overlp ws. In dit vooreeld is er overlp ij het ereiken vn toestnd q 4 en wordt er teruggegn nr toestnd q 1 omdt er slechts een overlp vn één krkter is. 65

68 lles nders nders nders q0 q1 q2 q3 q4 q5 nders nders Figuur 5.2: KMP Automt voor het ptroon Merk op dt er ook overlp is ij toestnd q 5. Hoewel het hele ptroon reeds gevonden is, kunnen we door de pijl vn q 5 nr q 1 zorgen dt lle voorkomens vn het ptroon gezocht worden, zelfs ls ze elkr overlppen. We endrukken wel dt het zeer ongewoon is dt eplde krkters opnieuw ingelezen moeten worden ls we terugkeren nr een vorige toestnd Het Boyer-Moore lgoritme (BM) In tegenstelling tot het KMP lgoritme vergelijkt het BM lgoritme eerst het ltste symool vn het ptroon om vervolgens het voorltste symool te vergelijken, het ptroon wordt dus vn links nr rechts lngs de tekst geschoven en innen het ptroon worden de symolen vn rechts nr links vergeleken met de tekst. Indien we een verkeerd symool tegenkomen, schuiven we het ptroon door nr rechts. Het BM lgoritme wordt eschouwd ls het efficiëntste lgoritme voor de meeste toepssingen. Beschouwen we de situtie wrij een verkeerd symool gevonden wordt op x[i], we weten dn dt y[i + j] x[i] mr lle volgende symolen wel mtchen (x[i m 1] = y[i + j j + m 1]). Noem deze string u, u is een suffix vn x. Dn wordt in het BM lgoritme het ptroon verschoven met het mximum vn de twee shift functies good-suffixshift en d chrcter shift. De good-suffix-shift verschuift het ptroon zodnig dt de u die we vonden in y overeenkomt met het meest rechtse voorkomen vn u in x dt wordt voorfgegn door een nder symool ls x[i] de lngste suffix vn u gelijk ligt met een prefix vn x De d-chrcter-shift: zl het krkter y[i + j] uitlijnen met het meest rechtse voorkomen vn dt krkter in x. indien y[i + j] niet meer voorkomt in x wordt het eerste krkter vn x uitgelijnd met y[i + j + 1]. 66

69 Voor ons vooreeld geeft dit de volgende tellen: Good-suffix-shift: i gs[i] Bd-chrcter-shift: (telt vn rechts nr links mr slt het ltste symool over) c c c[c] Zoeken we dn in de tekst dn ekomen we de volgende stppen: 1. mismtch shift y 2 = mx(gs[i], c[](m 1) + i) met i = 4 2. mismtch shift y 2 = mx(gs[i], c[](m 1) + i) met i = 4 3. mtch we kijken nr het volgende symool 4. mismtch shift y 1 = mx(gs[i], c[](m 1) + i) met i = 3 5. mtchen tot we mismtch tegenkomen of het ptroon herkend is 6. BAABB BAABB het ptroon is gevonden shift y 4 = gs[0] Complexiteit: De tel good-suffix-shift wordt in m erekeningen opgesteld, één voor elke letter vn het ptroon. De d-chrcter-shift tel heeft een wrde nodig voor elke letter vn het lfet. Als we stellen dt het lfet uit σ krkters estt kunnen we zeggen dt deze tel in O(σ) tijd erekend wordt. De hele preprocessing stp geeurt dn in tijd O(m + σ). Het zoeken zelf geeurt in O(mn) mr er worden slechts 3n krktervergelijkingen verwcht indien we zoeken nr een niet-periodisch ptroon. Het snelste dt dit lgoritme loopt, is O(n/m). Dit is het solute minimum dt een lgoritme nodig heeft indien er enkel preprocessing is vn het ptroon. 67

70 5.3.4 Zoeken met een deterministische eindige utomt In sectie heen we het KMP lgoritme gesimuleerd met een utomt. Er zijn echter nog ndere mnieren om een utomt op te stellen zodt deze een ptroon in een tekst herkent. Beschouwen we de volgende utomt: de verzmeling toestnden Q = q 0 q m, indien we in toestnd q i zijn heen we de prefix x[0i 1] herkend vn het ptroon q 0 is de egintoestnd voor lle 0 < i < m 1 is er een pijl vn q i nr q i + 1 met x[i + 1] ls lel verder zijn er terugkerende pijlen vn q i nr q j met lel (uit het lfet) ls x[0j 1] de lngste suffix is vn x[0i 1] die ook een prefix is vn x q m is de ccepterende toestnd We verduidelijken met een vooreeld: x =, m = 5 Q = q 0, q 1, q 2, q 3, q 4, q 5 met q 0 ls egintoestnd en q 5 ls ccepterende toestnd. De pijl vn q 0 nr q 1 heeft lel (x[0]), q 1 nr q 2 heeft lel (x[2]), en zo verder. Voor elk symool dt niet in het ptroon voorkomt, vertrekt er uit elke toestnd een pijl nr q 0, deze tekenen we voor het overzichtelijk te houden niet uit. Nu erekenen we de lngste suffix voor elke mogelijke letter: Indien we in toestnd q 1 zitten, heen we reeds de string gemtcht. Als we een inlezen kunnen we zeggen dt de suffix vn de lngste suffix is die ook een prefix is vn x, vndr dt we een lus toevoegen nr q 1. In toestnd q 2 gn we verder ij een en terug nr q 0 ij het lezen vn een symool dt niet in het ptroon voorkomt, mr ls we een lezen kunnen we weerl zeggen dt de lngste suffix is vn die een prefix is vn x, we tekenen dus een pijl vn q 2 nr q 1. Indien we zo verder gn, ekomen we de utomt zols in figuur 5.3. Complexiteit: De utomt kn opgesteld worden in O(m + σ) tijdscomplexiteit. Eénml we de utomt heen, kunnen we in O(n) tijd het woord zoeken in de tekst (indien we veronderstellen dt de utomt is opgeslgen in een direct ccess tle). Vergelijking met KMP utomt: In tegenstelling tot het KMP utomt, moet ij deze utomt geen enkel krkter opnieuw gelezen worden. Hierdoor kunnen we zeggen dt elk krkter uit de tekst mximl 1 keer vergeleken zl worden met een krkter uit het ptroon. Dit uit zich in een snellere zoektijd. Angezien het opstellen vn de utomt nu wel meer tijd nodig heeft, is het geruik vn deze utomt enkel nuttig indien we hetzelfde ptroon in meerdere teksten moeten zoeken. 68

71 Figuur 5.3: Zoeken met ehulp vn een deterministische eindige utomt Forwrd DAWG Mtching lgorithm (Suffix utomton) Dit lgoritme mkt geruik vn de zogenmde kleinste suffix utomt (smllest suffix utomton), de kleinste utomt die lleen die fctoren (deelstrings) vn een string nvrdt die puur suffix zijn vn die string. Dus de suffix-utomt vn het woord w nvrdt lle strings u wrvoor geldt dt er een string v estt over het lfet zodt vu = w. Voor het vooreeld krijgen we de suffix utomt vn figuur Figuur 5.4: Forwrd DAWG Mtching lgorithm (Suffix utomton) In deze utomt komt een toestnd q i soms overeen met verschillende mogelijke pden vn q 0 nr q i mr emerk dt l deze pden een ndere lengte heen (dit volgt rechtstreeks uit de constructie vn de utomt). Op elk pd kunnen we een string lezen in de lels vn de pijlen, we kunnen een pd dn ook zien ls een string. Verder worden er in de preprocessing stp twee functies uitgeschreven in een tel: voor elke toestnd q in de suffix utomt is length(q) de fstnd vn het lngste pd vn q 0 nr q voor elke toestnd q in de suffix utomt is S[q] de suffix link vn p, dit is de toestnd wrin men terechtkomt ls men de lngste suffix vn het lngste pd nr q neemt en vervolgens de krkters vn deze suffix inleest vertrekkende ij q 0, wrij p q. Indien p = q nemen we een kortere suffix en volgen weer het pd. 69

72 Voor het vooreeldje en de hieroven eschreven suffix utomt krijgen we ijvooreeld S[3] = 4 wnt: in toestnd 3 lezen we het pd ls lngste pd de lngste suffix is mr ls we deze volgen komen we vnuit q 0 terug in toestnd 3 uit dn ekijken we suffix, hierij komen we vnuit de strtpositie q 0 in toestnd 4 deze toestnd is dus de suffix link voor toestnd 3 De volledige tellen worden dn: i S[i] length[i] Het zoeken vn een ptroon in een tekst geeurt vervolgens door het sequentieel inlezen vn de symolen vn de tekst in de utomt. Indien er geen pijl vertrekt met het juiste lel vernderen we de huidige toestnd q nr de toestnd S[q], we volgen dus de suffix link. Bij het strten en ls we geen pijl kunnen volgen, zetten we een teller op 0 die toeneemt telkens we in een nieuwe toestnd komen (dus ook ls we de suffix link instellen ls huidige toestnd). Indien we in de eindtoestnd 1 komen wordt er nr deze teller gekeken. Is deze gelijk n de lengte vn het ptroon, heen we een volledig voorkomen vn dit ptroon gevonden. Het zoeken vn in gt dn ls volgt: zijn. 1. teller 0 0 We strten in toestnd 0 met de teller op N het lezen vn zitten we in toestnd 1 met de teller op 1, nu lezen we en gn nr toestnd vnuit toestnd 2 vertrekt geen pijl met lel dus wordt de huidige toestnd de suffix link vn toestnd 2: S[2] = 4, merk ook op dt de teller is ngepst suffix link: S[5] = 1 1 Er zijn eigenlijk meerdere eindtoestnden, mr enkel één, q 6, wrij het volledige ptroon gelezen kn 70

73 suffix link: S[5] = We zitten in toestnd 6 en de teller is gelijk n de lengte vn het ptroon, we heen dus een mtch gevonden! De suffix link vn 6 is 1, dit is de toestnd wrin we verder zouden gn indien de tekst lnger ws. Opmerking: Indien we in de tekst een symool tegenkomen dt niet in het ptroon geruikt wordt, eginnen we terug in q 0 en zetten we de teller op 0, we lezen dn gewoon het volgende symool. Complexiteit: Het opstellen vn het suffix utomt kn in een tijd lineir met de lengte vn het ptroon = O(m) en er worden n krktervergelijkingen uitgevoerd Reverse Fctor lgorithm Het reverse fctor lgoritme geruikt net ls het vorige lgoritme de kleinste suffix utomt, mr hier wordt de utomt geconstrueerd voor het inverse vn het ptroon. Dt wil zeggen dt ls het ptroon is we in dit gevl de kleinste suffix utomt vn zullen definiëren. Deze utomt ziet er uit ls in figuur Figuur 5.5: Reverse Fctor lgorithm 71

74 Voor de rest vn het lgoritme strten we in toestnd q 0 en eschouwen ls eerste het symool op positie m 1 en dn verder nr links. We volgen de utomt tot we een krkter tegenkomen wr geen pijl voor voorzien is. Ondertussen houden we een teller ij die weergeeft hoe lng het pd is in de utomt vn q 0 tot de ltste eindtoestnd die we tegenkwmen. Indien we geen pijl meer kunnen volgen, schuiven we net zoveel door in de tekst ls de lengte vn het ptroon min de wrde vn de teller. We zetten de toestnd terug op q 0, de teller op 0 en volgen terug de utomt. Indien we op een epld moment m gemtchte symolen zijn tegengekomen weten we dt deze het ptroon voorstellen. In plts vn de teller op dt moment n te pssen (we zitten immers in een eindtoestnd), gn we de huidige wrde vn de teller geruiken om de shift te erekenen (m teller). Het zoeken verloopt dn ls volgt, we strten in q 0 : 1. We lezen de letter in die vetgedrukt stt, de toestnd wrin we terecht komen noteren we onder de letter en we onderlijnen eindtoestnden. We volgen de utomt tot we geen geldige trnsitie meer vinden In toestnd 6 vinden we geen pijl met het lel, de eerste eindtoestnd die we tegen komen (vn rechts nr links) is toestnd 6, dit is de derde toestnd, ijgevolg gn we 5 3 = 2 (lengte ptroon lengte tot n eindtoestnd) posities doorschuiven en strten we terug in toestnd N het lezen vn en vinden we geen trnsitie voor in toestnd 6, ditml is de shift gelijk n We heen vijf krkters kunnen mtchen, dit is de lngst mogelijke suffix vn het ptroon nmelijk het ptroon zelf. De ltste shift komt voorij het einde vn de tekst uit dus we mogen stoppen. Complexiteit Het opstellen vn de utomt duurt even lng ls ij het forwrd DAWG lgoritme (O(m)) en het zoeken geeurt in tijd O(mn). 5.4 Besluit Met deze lgoritmen heen we voorl willen ntonen dt de toepssingsmogelijkheden vn stringutomten verder gn ls de theoretische informtic. Onderwerpen zols pttern mtching zijn uitermte geschikt voor integrtie en differentitie. Ook is het een idel onderwerp om de studenten door middel vn zelfstudie ctief te lten studeren. 72

75 Hoofdstuk 6 Finite stte dventures 6.1 Didctische wenken In de inleiding (Hoofdstuk 1) heen we reeds vermeld dt studenten vk niet gemotiveerd zijn voor het vk theoretische informtic. In dit hoofdstuk geruiken we een cretief vooreeld om n de studenten duidelijk te mken wt de Chomsky-hiërrchie is. Door de inleiding te geven in de vorm vn een verhl kn de docent de ndcht vn de leerlingen trekken en tegelijk de opdrcht schetsen. Het opsplitsen vn de vonturen in levels is enerzijds nodig voor de link te leggen met de Chomsky-hiërrchie mr helpt nderzijds ook voor het geleidelijk verwezenlijken vn de onderwijsdoelstellingen. De docent moet er wel over wken dt lle nodige voorkennis reeds gegeven is. De studenten moeten kennis heen vn eindige utomten, de doorsnede vn utomten, pushdownutomten, petri netten, two-counter mchines en de Chomsky-hiërrchie. In de huidige cursus theoretische informtic ([1]) ontreken echter petri netten, two-counter mchines en de Chomsky-hiërrchie. Desondnks lijft dit een interessnt vooreeld om de interesse vn de studenten te wekken. De docent kn zich ijvooreeld eperken tot de levels 0, 1 en Wt zijn finite stte dventures? Finite stte dventures of FSA s werden uitgevonden in Duitslnd n de universiteit vn München. Wilfried Bruer geruikte ze in zijn cursus theoretische informtic in de zomer vn Deze cursus ws heleml gericht op chelor studenten in hun tweede jr. Een eschrijving vinden we in [30] en [31]. FSA s zijn vooreelden die geruikt kunnen worden ij het nleren vn onderwerpen zols utomten, reguliere en contextvrije tlen en Chomsky-hiërrchie. Ze zijn ontworpen om de studenten ctief ij de leerstof te etrekken en werken motiverend. 73

76 6.3 Methode Inleiding Als inleiding tot de leerstof wordt er eerst een verhltje verteld over het vontuur dt de docenten en studenten zullen eleven. Het vontuur speelt zich f in de wereld vn de grote rivier wr we etoverde deuren, mgische ogen en sleutels tegenkomen op de zoektocht nr schtten. Er is echter ook het gevr vn drken die enkel verslgen kunnen worden met een zwrd. Gelukkig krijgen de vonturiers ook een krt mee wrop lle gevren en voorwerpen stn. Deze krt is een niet-deterministische eindige utomt wrij de trnsities symolen heen die stn voor lles wt we onderweg kunnen tegenkomen. Deze symolen kunnen we ook noteren ls letters en zijn het lfet vn de utomt. Een vooreeld vn een dergelijke krt stt in figuur 6.1. Het lfet is Σ = { } d (drgon / drk), s (sword / zwrd), (rch / oog), r (river / rivier), g (gte / deur), t (tresure / scht), k (key / sleutel) Als we een pijl volgen wrij we een voorwerp tegenkomen, noteren we de letter vn dit voorwerp. Zo krijgen we ij het wndelen door de wereld een reeks letters die het pd eplen dt we gevolgd heen. Om vonturen moeilijker te mken, zullen er eisen gesteld worden n het pd. Deze eisen eplen wnneer een pd geldig is en n welke voorwrden een eplde trnsitie gevolgd kn worden. Avonturen worden epld door een krt en door de lijst vn voorwrden. Afhnkelijk vn de moeilijkheidsgrd vn de vonturen komen ze terecht in een level tussen 0 en 4. 74

77 Figuur 6.1: Een vooreeld FSA krt Level 0 In het lgste level moeten de vonturiers een weg vinden die egint op het strtpunt vn de krt en eindigt in een eindpunt op de krt. Er worden verder geen voorwrden gesteld n het pd. De vonturier kn dus gewoon door deuren lopen en lngs drken. Het vontuur komt met ndere woorden overeen met het zoeken vn een geldig pd in de eindige utomt M die de krt voorstelt. De verzmeling vn geldige pden evt lle mogelijke wegen die de vonturiers nr de overwinning leiden. Deze verzmeling is de tl, nvrd door de utomt of L(M). We noteren de tl vn een vontuur vn level 0 ls L(A 0 ) = L(M). Als we deze vonturen willen pltsen in de Chomsky-hiërrchie komen we terecht ij de reguliere tlen of Chomsky type 3. Dit komt doordt de tl, nvrd door een eindige utomt, ltijd een reguliere tl is. Voor vonturen vn level 0 kunnen we in tijd O(n 2 ) eslissen of het vontuur oplosr is, wrij n gelijk is n het ntl toestnden in de krt M. Dit komt nmelijk overeen met het zoeken nr de nwezigheid vn een geldig pd in een utomt M met n toestnden (en dus mximl n 2 pijlen) Level 1 Nu mken we de vonturen moeilijker. De vonturier kn slechts door een deur indien hij een sleutel in zijn ezit heeft. Eens een sleutel gevonden, kn deze voor lle deuren geruikt worden. Verder kunnen we slechts voorij een drk indien we een zwrd heen gevonden op onze weg. Als lterntief mogen we ook in een rivier springen ndt we door een drk in rnd zijn gezet. De ltste eis voor het slgen vn het vontuur is het verzmelen vn minstens twee schtten. 75

78 Figuur 6.2: De utomten voor ogen (G), drken (D) en schtten (S) Al deze eisen kunnen we voorstellen met ehulp vn eindige utomten. In figuur 6.2 zien we deze utomten die we G, D en T genoemd heen. Het vontuur evt nu enerzijds de krt-utomt M en nderzijds de drie utomten G, D en T. Om een oplossing te vinden moet een geldig pd (een woord) op de krt stn (in L(M)) en n de drie ndere voorwrden voldoen (in L(G) en in L(D) en in L(T)). De resulterende tl vn het vontuur is de doorsnede vn de vier tlen L(A 1 ) = L(M) L(G) L(D) L(T). Als we weten dt de doorsnede vn reguliere tlen ook regulier is, kunnen we esluiten dt ook vonturen vn level 1 vn Chomsky type 3 zijn. Verder kunnen we zeggen dt een utomt vn niveu 1 eslisr is in tijd O(n 4 ) ngezien het nemen vn de doorsnede vn twee utomten in tijd O(n 4 ) kn, met n het ntl toestnden vn de grootste utomt Level 2 Om het geheel weer een stpje moeilijker te mken, gn sleutels verdwijnen vn het moment we ze geruikt heen. We kunnen dus net zo vk een deur door ls dt we sleutels heen wnt n ons vlt een deur steeds terug in het slot. Deze voorwrde kunnen we niet meer voorstellen met een eindige utomt 1. Wel kunnen we deze voorwrde voorstellen ls een zogenmde Keller-utomt of pushdown-utomt. Hierij pushen we lle gevonden sleutels op een stck en voor elke deur die we psseren, poppen we één sleutel vn de stck. Deze pushdown-utomt noemen we G en stt in figuur 6.3. De tl, nvrd door deze pushdown-utomt, voldoet n onze nieuwe voorwrde. Avonturen vn deze moeilijkheidsgrd heen oplossingen in de doorsnede vn de tlen vn de krt (M) enerzijds en de voorwrden G, D en T nderzijds. L(A 2 ) = L(M) L(G ) L(D) L(T). De tl, nvrd door de pushdown-utomt G, is een contextvrije tl. Deze tl is niet regulier ngezien we hem niet kunnen voorstellen met een eindige utomt. De ndere utomten (M, D en T) zijn eindige utomten en nvrden reguliere tlen. Deze zijn ook steeds contextvrij. De doorsnede vn contextvrije tlen is ook contextvrij. We kunnen dus zeggen dt vonturen vn level 2 vn Chomsky type 2 zijn. Het is in tijd O(n 3 ) eslisr of vonturen vn dit level een oplossing heen. 1 Dit wordt in [30] ewezen met ehulp vn het pumping lemm voor reguliere tlen. 76

79 Figuur 6.3: De pushdown-utomt voor G Level 3 In deze moeilijkheidsklsse gn we niet lleen de sleutels tellen mr ook de zwrden. We kunnen een zwrd vnf nu slechts één keer geruiken om een drk te versln mr ls we terug ij deze drk zouden elnden, is hij weer strijdlustig. Indien we geen zwrd heen om een drk te versln, kunnen we nog steeds in een rivier springen. Als we deze nieuwe voorwrde willen modeleren, emerken we dt pushdown-utomten niet meer voldoende zijn 2. In plts vn utomten kunnen we wel geruik mken vn de theorie vn Petri-netten om n te tonen dt vonturen vn level 3 nog steeds eslisr zijn. De lezer wordt verwezen nr [30, 31] voor de werkwijze. In de Chomsky-hiërrchie horen vonturen vn level 3 tot de ctegorie vn recursief opsomre tlen (Chomsky 0), in dit gevl eslisr Level 4 De hoogste moeilijkheidsgrd is level 4. Hierij kn de vonturier geen rivier overzwemmen met een zwrd in de hnd en kn hij niet onder een oog doorlopen ls hij een sleutel in zijn ezit heeft. Om deze vonturen op te lossen kunnen we ijvooreeld geruik mken vn two-counter mchines wrij er getest kn worden of een eplde teller op nul stt lvorens een trnsitie te mogen mken. Deze vonturen zijn recursief opsomre tlen (Chomsky 0) wrvn het niet eslisr is of ze oplosr zijn. 2 Te ewijzen met het pumping lemm voor contextvrije tlen, zie [30] 77

80 6.4 Besluit Finite stte dventures zijn interessnt ls vooreeld ij het nleren vn utomten en de Chomsky-hiërrchie. Studenten leren spelenderwijs dt het vinden vn een oplossing voor een vontuur moeilijker wordt fhnkelijk vn de eisen die er gesteld worden. Er moet wel over gewkt worden dt studenten deze vonturen niet rechtstreeks gelijkstellen n utomten. Een vontuur estt nmelijk over een eindige utomt enerzijds en de lijst vn voorwrden nderzijds. Zols de uteurs vn het rtikel [30] reeds heen ngehld, regeren studenten zeer positief over FSA s. Het is een leuk lterntief voor zowel de studenten ls de docenten. 78

81 Hoofdstuk 7 XViz, een visulistietool voor XPth 7.1 Didctische wenken XViz is een mogelijkheid die de docenten kunnen ngrijpen om het nleren vn XPth expressies te vergemkkelijken. Deze tool kn helpen ij het grfische voorstellen vn XPth expressies en de relties ncestor/descendnt en continment. De studenten kunnen een reeks expressies ingeven en in de resulterende grf de relties tussen de expressies flezen. De studenten zullen hierdoor een eter egrip heen vn deze relties en XPth expressies. 7.2 XViz Ben Hndy en Dn Suciu ontwikkelden XViz ls tool voor dtse dministrtors. Het moet hen helpen routinetken uit te voeren zols dtse tuning, performnce deugging en vergelijking tussen versies. Door de visuele voorstelling in een grf en de duidelijke zichtre relties voorouder/fstmmeling (ncestor/descendnt) en continment kunnen in een oogopslg kenmerken vn XPth expressies fgelezen worden. De etekenis vn deze relties voor XPth worden verklrd in Werkwijze XViz vertrekt vn een XQuery worklod, een eindige set vn XQueries, in een.xqueryestnd. Hieruit worden lle XPth expressies gehld die vervolgens in een nieuw.epsestnd ls grf uitgetekend worden. Elke knoop komt overeen met een XPth expressie in de worklod (of een prefix ervn) en lle pijlen stn voor relties tussen de expressies. Volle lijnen worden getekend tussen ncestor en descendnt en stippellijnen tonen continment n. 79

82 Vooreeld Beschouwen we de worklod zols getoond in figuur 7.1 dn krijgen we ls uitvoer de grf vn figuur 7.2. Figuur 7.1: Een vooreeld worklod Figuur 7.2: Resultt vn XViz op de worklod in figuur 7.1 Hierij zien we dt voor de expressie // eerst de knoop voor de deelexpressie / getekend wordt met een volle lijn (vn voorouder nr fstmmeling) nr de knoop die // voorstelt (/ //). ///c En ///d zijn hier dn weer fstmmelingen vn terwijl lle resultten vn de expressie //[c = 6] ook in de resultten vn // zitten (// ///[c = 6]). De geruiker krijgt nu ook zicht op de eerst onduidelijke relties tussen ///d, //[c = 6] en //[c = 6]/d. 80

83 7.2.2 Relties Continment en ncestor/descendnt relties worden semntisch ekeken, de geruikte lgoritmen voor het eplen vn deze relties zijn dus onfhnkelijk vn de geruikte syntctische nottie. Duiden we met p een XPth expressie n en met t een XML oom, dn stt p(t) voor de set vn knopen die het resultt zijn vn de evlutie vn p op t. Hierij nemen we n dt elke evlutie in de wortel vn de oom strt. Duiden we knopen in t n met x, y,... dn zeggen we dt x y ls x een voorvder (ncestor) is vn y. Ancestor/descendnt ( ) Voor XPth expressies kunnen we de ncestor/descendnt reltie definiëren ls volgt: de expressie p is een ncestor vn p ls voor lle omen t en voor lle knopen y vn p(t) geldt dt er een knoop x uit p (t) estt die een voorvder is vn y ofwel: p p XML oom t en y p(t) : x p (t) : x y Continment ( ) We zeggen dt een XPth expressie p de expressie p evt ls voor lle omen t geldt dt de set knopen die p (t) teruggeeft lle knopen vn p(t) evt ofwel: p p XML oom t : p (t) p(t) We kunnen de continment reltie en de ncestor/descendnt reltie reduceren nr elkr ls volgt: p p p // p p p p / p// Equivlentie ( ) We kunnen de definitie vn equivlentie vn XPth expressies fleiden vn de definitie vn continment: p p p p en p p Wrij eender welke nme-tg kn zijn die niet voorkomt in p Het progrmm N het lezen vn deze pper [32] ws het een teleurstelling te ontdekken dt er twee jr lter geen werkende versie te vinden is. Op de wesite vn Dn Suciu n de universiteit vn Wshington wordt de progrmmcode vn het XViz project ter eschikking gesteld. Deze gf n compiltie echter geen resultten ij het uitvoeren vn het vooreeld zols het in de tekst uitgelegd stt. Ook n het estuderen vn de code is het niet gelukt om uitvoer te verkrijgen. 81

84 7.3 Besluit XViz is een zeer interessnte tool voor zowel dtse dministrtors ls studenten ij het werken met XPth expressies. In een oogopslg worden nders moeilijk zichtre relties tussen XPth expressies getoond wrdoor de dtse eheerder zijn opdrcht kn vereenvoudigen en de student een eter inzicht verwerft in XPth. 82

85 Hoofdstuk 8 Besluit vn deze thesis We heen ngetoond dt het elngrijk is voor docenten om steeds de didctische sisprincipes in het oog te houden. We heen verschillende onderwerpen uit de cursus theoretische informtic esproken lsook enkele mogelijke uitreidingen. Verschillende vn deze uitreidingen kunnen enkel gereliseerd worden door integrtie vn de theoretische informtic met een nder vk uit het curriculum informtic. De uitreiding vn de tool JFLAP iedt studenten een nschouwelijk eeld vn het CYK prsing lgoritme en de ngeoden oefeningen zorgen ervoor dt de studenten ctief ezig lijven. Ook XViz is een tool die de docenten kn helpen ij het duidelijker voorstellen vn de theorie, in dit gevl XPth expressies. De vergelijking tussen de Thomspon- en Glushkov-utomten zorgt voor een etere integrtie vn de nwezige kennis (Thompson) en te verwerven kennis (Glushkov). De toepssingen op oomutomten én de pttern mtching lgoritmes, die geruik mken vn stringutomten, zijn goede vooreelden vn de integrtie vn onderwerpen vn verschillende vkken. Deze topics zijn idel om in een keuzevk n te ieden. Zo kn er gedifferentieerd worden tussen studenten zich willen verdiepen in de theoretische informtic en de studenten die enkel een minimle sis moeten meekrijgen. Een zeer interessnte mnier om elngstelling te wekken voor de onderwerpen die ngeoden worden in de cursus is het vooreeld vn finite stte dventures. Studenten leren spelenderwijs dt het vinden vn een oplossing voor een vontuur moeilijker wordt fhnkelijk vn de eisen die er gesteld worden. Deze npk steunt ook op het principe vn de geleidelijkheid. 83

86 Biliogrfie [1] F. Neven: Trjectoek Theoretische Informtic, Limurgs Universitir Centrum, [2] M. Gyssens: Cursus Theoretische Informtic, Limurgs Universitir Centrum, [3] M. Sipser: Introduction to the theory of computtion, PWS Pulishing Compny, [4] J. Tielemns: Psyhodidctiek en het onderwijs, Grnt Leuven, [5] JFLAP. Beschikr op: rodger/tools/jflap [6] J. Vn Den Bussche: Cursus Compilers en progrmmeeromgevingen, Limurgs Universitir Centrum, [7] D. Gimmresi, J.-L. Ponty, D. Wood: A reexmintion of the Glushkov nd Thompson constructions, unpulished mnuscript, 1998 [8] A. Brüggemnn-Klein, D. Wood: One-unmiguous regulr lnguges, Informtion nd Computtion, v.140 n.2, p , Fe. 1, [9] W. Jns, W. Jnssen: Seminrie dtses: One-unmiguous reguliere tlen, trnsntionle Universiteit Limurg, novemer [10] V.M. Glushkov: The strct theory of utomt, Russin Mthemticl Surveys, 16:1-53, [11] W3C: XML specifictie. Beschikr op: [12] K. Luyten: Inleiding tot XML en nverwnte specificties, Technologie vn Multimedisystemen en -softwre, Limurgs Universitir Centrum, [13] M. Gyssens en S. Vnsummeren: Sylys logic en dtses, Hoofdstuk 3 XPth, Limurgs Universitir Centrum, [14] G. Gottlo, C. Koch, R. Pichler: Efficient Algorithms for Processing XPth Queries, VLDB 2002: [15] S. Vnsummeren: Type inferentie in XML, de reltionele lger en XDuce, Thesis, Limurgs Universitir Centrum, [16] F. Neven: Automt Theory for XML Reserchers, SIGMOD Record 31(3): (2002). [17] F. Neven: Design nd Anlysis of Query Lnguges for Structured Documents (A Forml nd Logicl Approch), PhD thesis, Limurgs Universitir Centrum,

87 [18] A. Brüggemnn-Klein, M. Murt, nd D. Wood: Regulr tree lnguges over non-rnked lphets, Unpulished mnuscript, [19] H. Comon, M. Duchet, R. Gilleron, F. Jcquemrd, D. Lugiez, S. Tison nd M. Tommsi: Tree utomt techniques nd pplictions, chpter 1, Hndoek eschikr op: [20] T. Schwentick: XPth query continment, SIGMOD Record 33(1): , [21] P. Linz: An Introduction To Forml Lnguges And Automt, Hndook, third edition, [22] J. Boyer: Cnonicl XML, Version 1.0, Mrch Beschikr op: [23] D.R.Rymond, F.W.Tomp, nd D.Wood: From Dt Representtion to Dt Model: Met-Semntic Issues in the Evolution of SGML, Computer Stndrds & Interfces, 18 (1996), [24] G. Miklu, D. Suciu: Continment nd equivlence for n XPth frgment, Proceedings of the twenty-first ACM SIGMOD-SIGACT-SIGART symposium on Principles of dtse systems, June 03-05, 2002, Mdison, Wisconsin. [25] F. Neven: Automt, Logic, nd XML, J.C.Brdfield(Ed.): Computer Science Logic, Lecture notes in computer science, 2-26, Springer-Verlg, [26] Ntionl institute of stndrds nd technology: Dictionry of Algorithms nd Dt Structures. Beschikr op: [27] B.W. Wtson: Cursus oject georiënteerd progrmmeren, Multiple Keyword Exct Pttern Mtching. Beschikr op: wtson/2r080/opdrcht/2r080 Opdrcht.htm [28] C. Chrrs nd T. Lecroq: Hnook of exct string mtching lgorithms, King s College London Pulictions, [29] D. Eppstein: Design nd nlysis of lgorithms, lecture notes, Beschikr op: eppstein/161/ html [30] W. Bruer, M. Holzer, B. König nd S. Schwoon: The theory of finite stte dventures, EATCS Bulletin, 79: , Ferury [31] M. Meeser: Eine Komplexitätstheorie von Adventure-Spielen, Seminr Perlen der Theoretischen Informtik AG Meyer uf der Heide, Wintersemester 2004/2005. [32] B. Hndy nd D. Suciu: XViz: A tool for visulising XPth expressions, Z. Bellhsne, A.B. Chudhri, E. Rhm, M. Rys nd R. Unlnd (Eds.), Dtse nd XML technologies, Lecture notes in computer science, , Springer,

In dit hoofdstuk introduceren we de hoofdrolspelers van het college: eindige automaten.

In dit hoofdstuk introduceren we de hoofdrolspelers van het college: eindige automaten. 9 2 Eindige utomten In dit hoofdstuk introduceren we de hoofdrolspelers vn het college: eindige utomten. 2.1 Deterministische eindige utomten We eginnen met een vooreeld. Vooreeld 2.1 Beschouw het volgende

Nadere informatie

Het kwadraat van een tweeterm a+b. (a+b)²

Het kwadraat van een tweeterm a+b. (a+b)² Merkwrdig producten: Het kwdrt vn een tweeterm + (+)² Even herhlen Wnneer een getl of een lettervorm met zichzelf vermenigvuldigd wordt, dn duid je dt n door dt getl of die lettervorm één keer te schrijven

Nadere informatie

Werkblad TI-83: Over de hoofdstelling van de integraalrekening

Werkblad TI-83: Over de hoofdstelling van de integraalrekening Werkld TI-8: Over de hoofdstelling vn de integrlrekening. Inleiding We ekijken chtereenvolgens in onderstnde figuren telkens de grfiek vn een functie f met in het intervl [; ]. f ( ) = f ( ) = + y = 5

Nadere informatie

Reguliere Expressies en Automaten: Overzicht

Reguliere Expressies en Automaten: Overzicht Reguliere Expressies en Automten: Overzicht Alfetten Tekenrijtjes over een lfet Tlen over een lfet Reguliere Uitdrukkingen Reguliere Operties Herkenners voor Reguliere Ptronen Deterministische utomten

Nadere informatie

Opdrachten bij hoofdstuk 2

Opdrachten bij hoofdstuk 2 Opdrchten ij hoofdstuk 2 2.1 Het vullen vn je portfolio In hoofdstuk 2 he je gezien op welke mnier je de informtie kunt verzmelen. An de hnd vn die informtie kun je de producten mken wrmee jij je portfolio

Nadere informatie

Bekijk onderstaand algoritme recalg. Bepaal recalg(5) en laat zien hoe u het antwoord hebt verkregen.

Bekijk onderstaand algoritme recalg. Bepaal recalg(5) en laat zien hoe u het antwoord hebt verkregen. Vooreeldtentmen 1 Tentmen Dtstructuren en lgoritmen (T641 en T6741) OPGAVE 1 c d Bekijk onderstnd lgoritme recalg. Bepl recalg() en lt zien hoe u het ntwoord het verkregen. Wt erekent recalg in het lgemeen?

Nadere informatie

opgaven formele structuren procesalgebra

opgaven formele structuren procesalgebra opgven formele struturen proeslger Opgve 1. (opgve 3.3.7 op p.97 vn het ditt 2005) Een mier moet vn links voor onder nr rehts hter oven op een kuus, met ties (rehts), (hter), en (oven). Uitwerking vn opgve

Nadere informatie

HOOFDSTUK 1 BASISBEGRIPPEN

HOOFDSTUK 1 BASISBEGRIPPEN I - 1 HOOFDSTUK 1 BASISBEGRIPPEN 1.1. Het egrip krcht 1.1.1. Definitie vn krcht Een stoffelijk punt is een punt wrn een zekere mss toegekend wordt. Dit punt is meestl de voorstellende vn een lichm. Zo

Nadere informatie

Hoofdstuk 2: Bewerkingen in R

Hoofdstuk 2: Bewerkingen in R Werkoek Alger (cursus voor 5u wiskunde) Hoofdstuk : Rekenen in R Nm:. Hoofdstuk : Bewerkingen in R - 7 Kls:... 1. Optellen, ftrekken, vermenigvuldigen en delen in R (oek pg 15): Som: 1. vn twee getllen

Nadere informatie

INTERVIEWEN 1 SITUATIE

INTERVIEWEN 1 SITUATIE INTERVIEWEN drs. W. Bontenl 1 SITUATIE Een interview vlt te omshrijven ls een gesprek tussen één of meerdere personen - de interviewers - en een ndere persoon (of diverse nderen) - de geïnterviewden -

Nadere informatie

Het reëel getal b is een derdewortel van het reëel getal a c. Een getal en zijn derdewortel hebben hetzelfde toestandsteken.

Het reëel getal b is een derdewortel van het reëel getal a c. Een getal en zijn derdewortel hebben hetzelfde toestandsteken. Werkoek Alger (cursus voor 5u wiskunde) Hoofdstuk : Rekenen in R Nm:. 1. Derdewortel vn een reëel getl (oek pg 7) Een derdewortel vn het reëel getl is dus een getl wrvn de derdemcht gelijk is n. Vooreelden:

Nadere informatie

Zelfstudie practicum 1

Zelfstudie practicum 1 Zelfstudie prtium 1 1.8 Gegeven is de volgende expressie:. () Geef de wrheidstel vn deze expressie. () Minimliseer de gegeven expressie. () Geef een poort implementtie vn de expressie vn onderdeel ().

Nadere informatie

edatenq is een toepassing die de ondernemingen de mogelijkheid biedt om hun statistische aangiften in te vullen en door te sturen via internet.

edatenq is een toepassing die de ondernemingen de mogelijkheid biedt om hun statistische aangiften in te vullen en door te sturen via internet. Hndleiding edatenq Mndelijkse enquête toerisme en hotelwezen Inleiding edatenq is een toepssing die de ondernemingen de mogelijkheid iedt om hun sttistische ngiften in te vullen en door te sturen vi internet.

Nadere informatie

Inhoud leereenheid 13. Integreren. Introductie 125. Leerkern 126. Samenvatting 149. Zelftoets 150

Inhoud leereenheid 13. Integreren. Introductie 125. Leerkern 126. Samenvatting 149. Zelftoets 150 Inhoud leereenheid 3 Integreren Introductie 5 Leerkern 6 Integrl ls oppervlkte 6 De functie ls fgeleide vn zijn oppervlktefunctie 3 3 Primitieven 33 4 Beplde en oneplde integrl 35 5 Oneigenlijke integrlen

Nadere informatie

Getallenverzamelingen

Getallenverzamelingen Getllenverzmelingen Getllenverzmelingen Ntuurlijke getllen Het getlegrip heeft zih wrshijnlijk ontwikkeld op een wijze die overeenkomt met de mnier wrop u zelf de getllen geleerd het. De sis is het tellen.

Nadere informatie

1.3 Wortels. x x 36 6 = x = 1.5 Breuken. teller teller noemer noemer. Delen: vermenigvuldig met het omgekeerde.

1.3 Wortels. x x 36 6 = x = 1.5 Breuken. teller teller noemer noemer. Delen: vermenigvuldig met het omgekeerde. Voorereidende opgven Stoomursus Tips: Mk de volgende opgven het liefst voorin in één vn de A4-shriften die je gt geruiken tijdens de ursus. Als een som niet lukt, werk hem dn uit tot wr je kunt en g verder

Nadere informatie

gefragmenteerde bestanden Bestand Bestand Bestand Bestand Bestand a Bestand a Bestand a Bestand a Bestand Bestand Bestand Bestand c Bestand a

gefragmenteerde bestanden Bestand Bestand Bestand Bestand Bestand a Bestand a Bestand a Bestand a Bestand Bestand Bestand Bestand c Bestand a Terrorisme, dgelijks het onderwerp in de medi. Er kn niet omheen gekeken worden, de komende jren zl de strijd tegen terreurorgnisties ls IS en DAESH het onderwerp vn gesprek vormen. Tl vn nslgen werden

Nadere informatie

Snelstartgids Access Online: Betalingen en Rapportage

Snelstartgids Access Online: Betalingen en Rapportage Snelstrtgids Access Online: Betlingen en Rpportge Snel op weg met Access Online Voor het geruik vn de pplictie De meest geruikte functies in overzichtelijke stppen Snelstrtgids Access Online: Betlingen

Nadere informatie

Hoofdstuk 0: algebraïsche formules

Hoofdstuk 0: algebraïsche formules Hoofdstuk 0: lgebrïsche formules Dit hoofdstuk hoort bij het eerste college infinitesimlrekening op 3 september 2009. Alle gegevens over de cursus zijn te vinden op http://www.mth.uu.nl/people/hogend/inf.html

Nadere informatie

edatenq is een toepassing die de ondernemingen de mogelijkheid biedt om hun statistische aangiften in te vullen en door te sturen via internet.

edatenq is een toepassing die de ondernemingen de mogelijkheid biedt om hun statistische aangiften in te vullen en door te sturen via internet. Inleiding edatenq is een toepssing die de ondernemingen de mogelijkheid iedt om hun sttistishe ngiften in te vullen en door te sturen vi internet. Het etreft een door de FOD Eonomie volledig eveiligde

Nadere informatie

Voorbereidend Wetenschappelijk Onderwijs Tijdvak 1 Donderdag 20 mei 13.30 16.30 uur

Voorbereidend Wetenschappelijk Onderwijs Tijdvak 1 Donderdag 20 mei 13.30 16.30 uur Wiskunde B Profi Exmen VWO Voorereidend Wetenschppelijk Onderwijs Tijdvk Donderdg 20 mei 3.30 6.30 uur 9 99 Dit exmen estt uit 5 vrgen. Voor elk vrgnummer is ngegeven hoeveel punten met een goed ntwoord

Nadere informatie

6.0 INTRO. 1 a Bekijk de sommen hiernaast en ga na of ze kloppen. 1 2 0 3 = 2 2 3 1 4 = 2 3 4 2 5 = 2 4 5 3 6 = 2 5 6 4 7 = 2...

6.0 INTRO. 1 a Bekijk de sommen hiernaast en ga na of ze kloppen. 1 2 0 3 = 2 2 3 1 4 = 2 3 4 2 5 = 2 4 5 3 6 = 2 5 6 4 7 = 2... 113 6.0 INTRO 1 Bekijk de sommen hiernst en g n of ze kloppen. Schrijf de twee volgende sommen uit de rij op en controleer of deze ook ls uitkomst 2 heen. c Schrijf twee sommen op die veel verder in de

Nadere informatie

6.4 Rekenen met evenwichtsreacties

6.4 Rekenen met evenwichtsreacties 6.4 Rekenen met evenwihtsreties An de hnd vn een reeks vooreelden zullen we het rekenwerk ehndelen n evenwihtsreties. Vooreeld 6.2 We estuderen het gsevenwiht: A(g) + B(g) C(g) + D(g) In een ruimte vn

Nadere informatie

Werkkaarten GIGO 1184 Elektriciteit Set

Werkkaarten GIGO 1184 Elektriciteit Set Werkkrten GIGO 1184 Elektriiteit Set PMOT 2006 1 Informtie voor de leerkrht Elektriiteit is één vn de ndhtsgeieden ij de nieuwe kerndoelen voor ntuur en tehniek: 42 De leerlingen leren onderzoek doen n

Nadere informatie

11 Wiskundige denkactiviteiten: digitale bijlage

11 Wiskundige denkactiviteiten: digitale bijlage Wiskundige denkctiviteiten: digitle ijlge Suggesties voor opdrchten wrij de leerlingen uitgedgd worden wiskundige denkctiviteiten te ontplooien. De opdrchten heen de volgende structuur. In de kop stn chtereenvolgend:

Nadere informatie

Voorbereidende opgaven Kerstvakantiecursus

Voorbereidende opgaven Kerstvakantiecursus Voorbereidende opgven Kerstvkntiecursus Tips: Mk de volgende opgven het liefst voorin in één vn de A4-schriften die je gt gebruiken tijdens de cursus. Als een som niet lukt, kijk dn even in het beknopt

Nadere informatie

Breuken en verhoudingen

Breuken en verhoudingen WISKUNDE IN DE BOUW Breuken en verhoudingen Leerdoelen N het estuderen vn dit hoofdstuk moet je in stt zijn om: te rekenen met reuken en verhoudingen; reuken toe te pssen in erekeningen vn onder ndere

Nadere informatie

1.3 Wortels. = a b c. x = 1.5 Breuken. teller teller. noemer noemer. Delen: vermenigvuldig met het omgekeerde.

1.3 Wortels. = a b c. x = 1.5 Breuken. teller teller. noemer noemer. Delen: vermenigvuldig met het omgekeerde. Voorereidende opgven Kerstvkntieursus Tips: MEER DAN 0 JAAR ERVARING Mk de volgende opgven het liefst voorin in één vn de A-shriften die je gt geruiken tijdens de ursus. Als een som niet lukt, werk hem

Nadere informatie

Hoofdstuk 2 DE STELLING VAN PYTHAGORAS

Hoofdstuk 2 DE STELLING VAN PYTHAGORAS Hoofdstuk DE STELLING VAN PYTHAGORAS INHOUD. De stelling vn Pythgors formuleren 98. Meetkundige voorstellingen 06. De stelling vn Pythgors ewijzen 09. Rekenen met Pythgors. Construties.6 Pythgors in de

Nadere informatie

Hoofdstuk 8 Beslissen onder risico en onzekerheid

Hoofdstuk 8 Beslissen onder risico en onzekerheid Hoofdstuk 8 Beslissen onder risico en onzekerheid 8.5 Tectronis Tectronis, een friknt vn elektronic, kn vn een nder edrijf een éénjrige licentie verkrijgen voor de fricge vn product A, B of C. Deze producten

Nadere informatie

Pak jouw passer en maak de afstand tussen de passerpunten 3 cm.

Pak jouw passer en maak de afstand tussen de passerpunten 3 cm. Psser en irkel Verkennen Opgve 1 Op de foto hiernst wordt met ehulp vn een psser een irkel getekend. Pk jouw psser en mk de fstnd tussen de psserpunten 3 m. Teken een punt M en zet drin de stlen punt vn

Nadere informatie

Voorbereidende opgaven Stoomcursus

Voorbereidende opgaven Stoomcursus Voorereidende opgven Stoomcursus Tips: MEER DAN 0 JAAR ERVARING Dit document estt uit twee delen: de voorereidende opgven en een overzicht met lgerïsche vrdigheden. Mk de volgende opgven het liefst voorin

Nadere informatie

Praktische Opdracht Lineair Programmeren V5

Praktische Opdracht Lineair Programmeren V5 Prktische Opdrcht Lineir Progrmmeren V5 Bij deze prktische opdrcht g je n het werk met een ntl prolemen die je door middel vn Lineir Progrmmeren kunt oplossen. Je werkt lleen of in tweetllen. De prktische

Nadere informatie

Moderne wiskunde: berekenen zwaartepunt vwo B

Moderne wiskunde: berekenen zwaartepunt vwo B Moderne wiskunde: erekenen zwrtepunt vwo B In de edities 7 en 8 ws er in de slotdelen vn VWO B ruimte genomen voor een prgrf over het erekenen vn een zwrtepunt. In de negende editie is er voor gekozen

Nadere informatie

Inhoud college 7 Basiswiskunde

Inhoud college 7 Basiswiskunde Inhoud college 7 Bsiswiskunde 3.3 De ntuurlijke logritme en de exponentiële functie (zie college 6) 5.1/3 Introductie Integrlen 5.4 Eigenschppen vn de eplde integrl 5.5 De hoofdstelling vn Clculus 2.10

Nadere informatie

De formule van het opslagpercentage voor alle producten luidt:

De formule van het opslagpercentage voor alle producten luidt: 4.3 Verkoopprijs erekenen Om een product of een dienst met winst te verkopen, moet je eerst goed weten wt de kosten zijn. Als je dt weet, dn kun je de verkoopprijs eplen. Kosten De kostprijs vn een product

Nadere informatie

Henk Pijls Korteweg-de Vries Instituut voor Wiskunde Universiteit van Amsterdam

Henk Pijls Korteweg-de Vries Instituut voor Wiskunde Universiteit van Amsterdam Jn vn de Crts Henk Pijls De kromme gevormd door de toppen vn de prolen door drie gegeven punten NAW 5/9 nr. mrt 08 9 Jn vn de Crts Korteweg-de Vries Instituut voor Wiskunde Universiteit vn Amsterdm [email protected]

Nadere informatie

JOB-monitor 2016 Vragenlijst

JOB-monitor 2016 Vragenlijst JOB-monitor 2016 Vrgenlijst (versie met wijzigingen t.o.v. 2014) JOB in smenwerking met ReserchNed 2015 JOB. Geen vn de mterilen die onderdeel uitmken vn de JOB-monitor 2016 mogen zonder voorfgnde schriftelijke

Nadere informatie

Wat doen we met de vuile was?

Wat doen we met de vuile was? Door Jn de Wrd Wt doen we met de vuile ws? Inleiding Gechte medewerkers, Ons edrijf komt de ltste tijd hels nogl negtief in het nieuws. Sommigen vn jullie mken zich lijkr schuldig n het [1] vn de vuile

Nadere informatie

GBK Leden profiel beheer

GBK Leden profiel beheer GBK Leden profiel eheer Op de nieuwe GBK site kn het eigen leden profiel ijgehouden worden. Op dit profiel kn iogrfische informtie worden ingevoerd, werk kn n een portfolio worden toegevoegd, er kunnen

Nadere informatie

De oppervlakte van de rechthoek uit de vorige opgave hangt van dezelfde variabelen af.

De oppervlakte van de rechthoek uit de vorige opgave hangt van dezelfde variabelen af. Opgve 1 Vn twee korte en twee lnge luifers is een rehthoek geleg. Omt je geen fmetingen weet hngt e omtrek vn eze rehthoek f vn twee vrielen, nmelijk lengtekorteluif er en lengtelngeluif er. Welke formule

Nadere informatie

Aanzet 1 tot een document van parate kennis en vaardigheden wiskunde 1 ste graad

Aanzet 1 tot een document van parate kennis en vaardigheden wiskunde 1 ste graad Anzet 1 tot een document vn prte kennis en vrdigheden wiskunde 1 ste grd 1. TAALVAARDIGHEID BINNEN WISKUNDE ) Begrippen uit de getllenleer Bewerking Symool optelling + ftrekking vermenigvuldiging deling

Nadere informatie

REKENEN MACHTEN MET. 5N4p EEBII 2013 GGHM

REKENEN MACHTEN MET. 5N4p EEBII 2013 GGHM REKENEN MET MACHTEN Np EEBII 0 GGHM Inhoud Herhlin: Eponentiele roei... Netieve Mchten... Geroken mchten... Etr Oefeninen... 9 Hoere-mchts functies... 0 Overzicht vn de reels... Herhlin: Eponentiële roei

Nadere informatie

Opgave 1 Stel je eens een getal voor, bijvoorbeeld: 504,76. a b c

Opgave 1 Stel je eens een getal voor, bijvoorbeeld: 504,76. a b c Opgve 1 Stel je eens een getl voor, ijvooreeld: 504,76. Wt zijn de ijfers vn dit getl? Hoeveel is elk vn die ijfers wrd? Wt etekent de komm? Opgve 2 Bekijk het getl 6102,543. d e Hoeveel ijfers hter de

Nadere informatie

Routeplanning middels stochastische koeling

Routeplanning middels stochastische koeling Routeplnning middels stochstische koeling Modellenprcticum 2008 Stochstische koeling of Simulted nneling is een combintorisch optimlistielgoritme dt redelijke resultten geeft in ingewikkelde situties.

Nadere informatie

Praktische opdracht Optimaliseren van verpakkingen Inleidende opgaven

Praktische opdracht Optimaliseren van verpakkingen Inleidende opgaven Prktische opdrcht Optimliseren vn verpkkingen Inleidende opgven V, WB Opgve 1 2 Gegeven is de functie f ( x) = 9 x. Op de grfiek vn f ligt een punt P ( p; f ( p)) met 3 < p < 0. De projectie vn P op de

Nadere informatie

Voorbereidende opgaven Stoomcursus

Voorbereidende opgaven Stoomcursus Voorereidende opgven Stoomcursus Tips: Mk de volgende opgven het liefst voorin in één vn de A4-schriften die je gt geruiken tijdens de cursus. Als een som niet lukt, kijk dn even in het eknopt overzicht

Nadere informatie

Bijlage agendapunt 7: Inhoudelijke planning overlegtafels 2015

Bijlage agendapunt 7: Inhoudelijke planning overlegtafels 2015 Bijlge gendpunt 7: Inhoudelijke plnning overlegtfels 2015 In de Ontwikkelgend (ijlge 5 ij de Deelovereenkomst mtwerkvoorziening egeleiding 18+) zijn 7 them s en 31 suthem s opgenomen die in 2015 tijdens

Nadere informatie

1 Vlaamse Wiskunde Olympiade 1987-1988 : Eerste Ronde.

1 Vlaamse Wiskunde Olympiade 1987-1988 : Eerste Ronde. Vlmse Wiskunde Olympide 987-988 : Eerste Ronde De eerste ronde estt steeds uit 0 meerkeuzevrgen, opgemkt door de jury vn VWO Het quoteringssysteem werkt ls volgt: een deelnemer strt met 0 punten, per goed

Nadere informatie

1a Een hoeveelheid stof kan maar op één manier veranderen. Hoe?

1a Een hoeveelheid stof kan maar op één manier veranderen. Hoe? Oefenopgven over Stoffen en Mterilen Uitwerking en ntwoord op elke opgve stt n de ltste opgve. Gegevens kunnen worden opgezoht in de tellen hterin. Als de zwrteftor niet vermeld is mg je 9,81 N/kg nemen.

Nadere informatie

Discrete Wiskunde. D. Bruin J.M. Jansen

Discrete Wiskunde. D. Bruin J.M. Jansen Discrete Wiskunde D. Bruin J.M. Jnsen Opleiding Hogere Informtic Noordelijke Hogeschool Leeuwrden Nederlndse defensie cdemie, fculteit militire wetenschppen Juni 1999 + oktoer 2013 Discrete Wiskunde 2

Nadere informatie

Merkwaardige producten en ontbinden in factoren

Merkwaardige producten en ontbinden in factoren 6 Merkwrdige producten en ontinden in fctoren Dit kun je l 1 een mcht tot een mcht verheffen eentermen vermenigvuldigen 3 eentermen delen 4 veeltermen vermenigvuldigen 5 een veelterm delen door een eenterm

Nadere informatie

Continuïteit en Nulpunten

Continuïteit en Nulpunten Continuïteit en Nulpunten 1 1 Inleiding Continuïteit en Nulpunten In de wiskunde wordt heel vk gebruik gemkt vn begrippen ls functie, functievoorschrift, grfiek, Voor een gedetilleerde inleiding vn deze

Nadere informatie

De tijdens de training aangeboden ski-imitaties gebruiken we zowel als middel maar ook als doel.

De tijdens de training aangeboden ski-imitaties gebruiken we zowel als middel maar ook als doel. 15 Ski-eroics Hoofdstuk 15, Pgin 1 vn 5 15.1 Inleiding Het is elngrijk om SneeuwFit triningen gevrieerd te houden. Proeer het nod vn ctiviteiten zo verschillend mogelijk te houden. Een vooreeld hiervn

Nadere informatie

KATHOLIEKE UNIVERSITEIT LEUVEN SUBFACULTEIT ECONOMIE EN BEDRIJFSWETENSCHAPPEN HUB HANDELSWETENSCHAPPEN

KATHOLIEKE UNIVERSITEIT LEUVEN SUBFACULTEIT ECONOMIE EN BEDRIJFSWETENSCHAPPEN HUB HANDELSWETENSCHAPPEN KATHOLIEKE UNIVERSITEIT LEUVEN SUBFACULTEIT ECONOMIE EN BEDRIJFSWETENSCHAPPEN HUB HANDELSWETENSCHAPPEN ELEMENTAIR ALGEBRAÏSCH REKENEN Een zelfhulpgids voor letterrekenen Rekenregels Uitgewerkte voorbeelden

Nadere informatie

Kennismaken. Wie zitten er bij jou in de klas? 4. Welke afspraken maak jij met je klas? 8

Kennismaken. Wie zitten er bij jou in de klas? 4. Welke afspraken maak jij met je klas? 8 Kennismken 1 2 + + Wie zitten er bij jou in de kls? 4 Welke fsprken mk jij met je kls? 8 Plusopdrcht 11 Thuisopdrcht 12 Meesterproef bij dit hoofdstuk 74 Help je klsgenoot met kennismken! Een nieuw schooljr,

Nadere informatie

Automaten & Complexiteit (X )

Automaten & Complexiteit (X ) Automten & Complexiteit (X 401049) Eigenschppen vn reguliere tlen Jeroen Keiren [email protected] VU University Amsterdm 9 Februri 2015 Reguliere tlen Vorig college: De volgende beweringen zijn equivlent:

Nadere informatie

a = 1 b = 0 k = 1 ax + b = lim f(x) lim

a = 1 b = 0 k = 1 ax + b = lim f(x) lim BURGERLIJK INGENIEUR ARCHTECT - JULI 2 BLZ /8. De functie fx) = e kx + x + met, en k R en k < heeft een schuine symptoot y = x voor x + en voldoet n de vergelijking Bepl, en k. D fx))) 2 + D fx)) 2) +

Nadere informatie

Inhoudsopgave. Inhoud

Inhoudsopgave. Inhoud sopgve 1 Ptronen... 3 2 Vergelijk: tegelptronen... 4 3 Regulier versus context-vrij... 5 4 Lettergrepen: tl met één hnd... 6 5 Bouwpln voor lettergrepen... 7 6 Tlspel met lettergreepstructuur... 8 7 Spiegelwoorden...

Nadere informatie

HOEVEEL KEREN WIJ UIT? 5.1 Keren we altijd alles uit? WANNEER KEREN WIJ NIET UIT? WAT DOEN WIJ BIJ FRAUDE? 9.1 Wat zijn de gevolgen van fraude?

HOEVEEL KEREN WIJ UIT? 5.1 Keren we altijd alles uit? WANNEER KEREN WIJ NIET UIT? WAT DOEN WIJ BIJ FRAUDE? 9.1 Wat zijn de gevolgen van fraude? VOORWAARDEN Overlijdensrisicoverzekering Delt Lloyd Levensverzekering NV Amsterdm MODEL 2401 U wilt uw finnciële zken goed geregeld heen. Ook ij overlijden. Drom het u een overlijdensrisicoverzekering

Nadere informatie

Route F - Desert. kangoeroerat

Route F - Desert. kangoeroerat Route F - Desert Voor deze route, moet je eerst nr de Bush. Dr moet je even zoeken nr de tunnel die nr de Desert leidt. Geruik onderstnd krtje voor de Desert. Begin ij nummer 1. 1 Kngoeroertten Kngoeroertten

Nadere informatie

Lijn, lijnstuk, punt. Verkennen. Uitleg. Opgave 1

Lijn, lijnstuk, punt. Verkennen. Uitleg. Opgave 1 Lijn, lijnstuk, punt Verkennen Opgve 1 Je ziet hier een pltje vn spoorrils vn een modelspoorn. De rils zijn evestigd op dwrsliggers. Hoe liggen de rils ten opziht vn elkr? Hoe liggen de dwrsliggers ten

Nadere informatie

Nieuwe internet radio eigenschap

Nieuwe internet radio eigenschap XXXXX XXXXX XXXXX /XW-SMA3/XW-SMA4 Nieuwe internet rdio eigenschp EN NL Deze drdloze luidspreker is ontworpen om te genieten vn Pndor*/internetrdio. Om nr Pndor/internetrdio te kunnen luisteren, kn het

Nadere informatie

Rapportage Enquête ondergrondse afvalinzameling Zaltbommel

Rapportage Enquête ondergrondse afvalinzameling Zaltbommel Rpportge Enquête ondergrondse fvlinzmeling Zltommel Enquête ondergrondse fvlinzmeling Zltommel VERSIEBEHEER Versie Sttus Dtum Opsteller Wijzigingen Goedkeuring Door Dtum 0.1 onept 4-11-09 VERSPREIDING

Nadere informatie

1. Differentiaalvergelijkingen

1. Differentiaalvergelijkingen Differentilvergelijkingen Vn discreet nr continu We estuderen de evolutie vn de evolking vn een lnd met 5 miljoen inwoners Stel u n het ntl inwoners n n jr, met n een discrete vriele We heen enkel informtie

Nadere informatie

Krommen en oppervlakken in de ruimte

Krommen en oppervlakken in de ruimte (HOOFDSTUK 60, uit College Mthemtis, door Frnk Ares, Jr. nd Philip A. Shmidt, Shum s Series, MGrw-Hill, New York; dit is de voorereiding voor een uit te geven Nederlndse vertling). Krommen en oppervlkken

Nadere informatie

Riante bouwkavel met ruime bebouwingsmogelijkheden

Riante bouwkavel met ruime bebouwingsmogelijkheden Rinte ouwkvel met ruime eouwingsmogelijkheden gelegen n de krkteristieke strt Berg te Nuenen Koopprijs 682.000,00 v.o.n. Groot 1.748 m² 1. Algemene eschrijving Op een prchtige plek, nij het centrum vn

Nadere informatie

3 Snijpunten. Verkennen. Uitleg

3 Snijpunten. Verkennen. Uitleg 3 Snijpunten Verkennen Meetkunde Snijpunten Inleiding Verkennen Bentwoord de vrgen bij Verkennen. Mk ook de constructie in GeoGebr. Gebruik eventueel het progrmm om de snijpunten voor je te berekenen ls

Nadere informatie

Examen VWO. wiskunde B1,2 (nieuwe stijl)

Examen VWO. wiskunde B1,2 (nieuwe stijl) wiskunde 1,2 (nieuwe stijl) Exmen VWO Voorbereidend Wetenschppelijk Onderwijs Tijdvk 1 insdg 25 mei 13.30 16.30 uur 20 04 Voor dit exmen zijn mximl 86 punten te behlen; het exmen bestt uit 18 vrgen. Voor

Nadere informatie

Hoofdstuk 5: Vergelijkingen van de

Hoofdstuk 5: Vergelijkingen van de Werkoek Alger (ursus voor 5u wiskunde) Hoofdstuk 5 : Vergelijkingen vn de e grd met één onekende Nm:. Hoofdstuk 5: Vergelijkingen vn de - 45 - e grd met één onekende. Instp (oek pg 7). Vn een rehthoek

Nadere informatie

Assertiviteit. Agressiviteit

Assertiviteit. Agressiviteit ASSERTIVITEIT drs. M.F. Serrurier Shepper 1 SITUATIE Assertiviteit is een zelfewuste, psyhishe weerrheid wrdoor u in stt ent op te komen voor uw eigen elngen en uiting te geven n uw gevoelens, wensen en

Nadere informatie

Natuurlijke getallen op een getallenas en in een assenstelsel

Natuurlijke getallen op een getallenas en in een assenstelsel Turf het ntl fouten en zet de resultten in een tel. Vlmingen Nederlnders resultt ntl resultt ntl 9 9 en nder tlstelsel U Ontijfer de volgende hiërogliefen met ehulp vn het overziht op p. in het leerwerkoek.........................

Nadere informatie

Hoofdstuk 4 : Ongelijkheden

Hoofdstuk 4 : Ongelijkheden Werkoek Alger (cursus voor u wiskunde) hoofdstuk : Oplossen ongelijkheden vn e gr met on in Nm:. Hoofdstuk : Ongelijkheden - -. Ongelijkheden Vul in met of : 0,... 0,07 we zeggen dt 0,... is dn 0,07 -,...

Nadere informatie

Nakomelingen van rendieren kunnen een paar uur na de geboorte al met de kudde meerennen. Zijn rendieren nestvlieders of nestblijvers?

Nakomelingen van rendieren kunnen een paar uur na de geboorte al met de kudde meerennen. Zijn rendieren nestvlieders of nestblijvers? Route A 1 Bosrendieren en korstmossen Rendieren zijn de enige herten wrvn zowel mnnetjes ls vrouwtjes een gewei drgen. Vroeger dcht men dt het gewei geruikt werd om sneeuw weg te schuiven zodt ze ij het

Nadere informatie

Erasmus MC Junior Med School

Erasmus MC Junior Med School Ersmus MC Desiderius School vn begrijpen nr beslissen Ersmus MC Junior Med School 2012-2013 De rts-onderzoekers vn morgen Het progrmm Dit progrmm loopt prllel n VWO-5 en -6 en bestt uit vier onderdelen:

Nadere informatie

Rekenregels van machten

Rekenregels van machten 4 Rekenregels vn mchten Dit kun je l 1 mchten met een ntuurlijke exponent berekenen mchten met een gehele exponent berekenen 3 terminologie in verbnd met de mchtsverheffing correct gebruiken Test jezelf

Nadere informatie

Ontleden? Leuk! Inleiding. Opzet van deze lesbrief. Door Henk Jongsma, hoofdauteur Op Niveau tweede fase

Ontleden? Leuk! Inleiding. Opzet van deze lesbrief. Door Henk Jongsma, hoofdauteur Op Niveau tweede fase Door Henk Jongsm, hoofduteur Op Niveu tweede fse Ontleden? Leuk! Inleiding Lstig soms, dt ontleden. Denk je net een regel te egrijpen, kom je weer een uitzondering tegen. En ls je denkt die uitzondering

Nadere informatie

Inhoudsopgave LES 1: NAAR SCHOOL LES 2: VRIJE TIJD LES 3: THUIS LES 4: NEDERLAND LES 5: TOEKOMST 126

Inhoudsopgave LES 1: NAAR SCHOOL LES 2: VRIJE TIJD LES 3: THUIS LES 4: NEDERLAND LES 5: TOEKOMST 126 Inhoudsopgve LES 1: NAAR SCHOOL 8 1 Wt is het huiswerk? 8 2 Onderwijs voor iedereen 14 3 Een nieuw rooster 20 4 N schooltijd 26 Woorden 32 LES 2: VRIJE TIJD 36 1 Een ijntje 36 2 Zijn jongeren tevreden

Nadere informatie

Parate kennis wiskunde

Parate kennis wiskunde Heilige Mgdcollege Dendermonde Prte kennis wiskunde 4 Lt A Lt B Wet A Wet B Ec C Vkgroep wiskunde Hemco Dit document is edoeld ls smenvtting vn wt ls prte kennis wordt ngenomen ij nvng vn het tweede jr

Nadere informatie

Datastructuren en algoritmen Uitwerkingen voorbeeldserie huiswerkopgaven

Datastructuren en algoritmen Uitwerkingen voorbeeldserie huiswerkopgaven OPGAVE 1 5 punten 5 punten Geseerd op opgve C-4.11 uit het tekstoek (lz. 185). G er vn uit dt polynomen worden opgeslgen in rrys, dt wil zeggen dt coëfficiënt i wordt opgeslgen ls rry-element met index

Nadere informatie

Welke van de volgende beweringen over de kromme snavel is of welke zijn juist voor jonge flamingo's? Maak het hokje met een juiste bewering zwart.

Welke van de volgende beweringen over de kromme snavel is of welke zijn juist voor jonge flamingo's? Maak het hokje met een juiste bewering zwart. Route I 1 Flmingo's Flmingo's zeven met hun kromme snvel voedsel uit het wter. Jonge flmingo's heen een rehte snvel. De jonge dieren zeven niet zelf voedsel uit het wter, mr worden door de ouders gevoerd.

Nadere informatie

Wiskunde voor 2 havo. Deel 1. Versie 2013. Samensteller

Wiskunde voor 2 havo. Deel 1. Versie 2013. Samensteller Wiskunde voor 2 hvo Deel 1 Versie 2013 Smensteller 2013 Het uteursreht op dit lesmteril erust ij Stihting Mth4All. Mth4All is derhlve de rehtheende zols edoeld in de hieronder vermelde retive ommons lientie.

Nadere informatie