Automaten en berekenbaarheid (B-KUL-G0P84A)

6 studiepuntenNederlands65 urenEerste semesterUitgesloten voor examencontract
POC Informatica

Berekenen is de transformatie van een gegeven input naar een verwachte output en staat centraal in de informatica. Een belangrijk aspect van de relatie tussen het gegeven en het berekende is de moeilijkheidsgraad van het tot stand brengen van die relatie. Deze cursus heeft als belangrijkste doel aan de student begrip bij te brengen van de verschillende graden van moeilijkheid van bepaalde berekeningen. Dat gebeurt door een hierarchie van problemen (of talen) te beschrijven met daarbij horend de minimale machinerie die nodig is om die berekeningen te doen. De student moet op het einde van de cursus technieken meester zijn om te beslissen of een gegeven probleem behoort tot een bepaalde klasse. Verder moet er genoeg inzicht zijn om te kunnen bepalen dat een gegeven probleem niet oplosbaar is met een machine (bv. halting probleem, maar ook diverse andere theorien die eigenschappen vastleggen voor klassen van programmas). Verder moet de student inzicht krijgen in de equivalentie van verschillende berekeningsformalismen. De student moet kunnen gebruik maken van tools die een berekeningswijze voor een probleem genereren.

Deze cursus steunt op kennis van programmeren, formele logica, complexiteitstheorie en een inleiding tot automaten.

Dit opleidingsonderdeel is identiek aan de volgende opleidingsonderdelen:
X0D48A : Automaten en berekenbaarheid

Onderwijsleeractiviteiten

4.8 sp. Automaten en berekenbaarheid (B-KUL-G0P84a)

4.8 studiepuntenNederlandsWerkvorm: College39 urenEerste semester
POC Informatica

Automaten en talen (10 u.)
Taal – grammatica – BNF
- Reguliere – context vrije taal
- FSA – push-down automaat – Turing (*)
- Samenstelling van automaten (en verband met programmacompositie)
- Verband met parsing
 
Berekenbaarheid (6 u.)
Recursieve functies
- Berekenbare functies
- Beslisbare talen
 
Rekenen met herschrijfsystemen (8 u.)
Lambda-calculus
- Horn-clausus
 
Rekenen volgens andere paradigmas (2 u.)
Quantum computing
- Ant computing
- Dna computing
- …
 
Meer gedetailleerd zullen de volgende topics aan bod komen:
finite state automata reguliere grammaticas reguliere talen; stelling van Kleene; het "pumping" lemma voor reguliere talen; beslisbaarheid van de eindigheid van reguliere talen; invariantie onder unie, complement, doorsnede, concatenatie, repetitie; minimisatie van een FSA; het product van FSAs; van een niet-deterministische naar een deterministische FSA; transducers m.b.v. FSAs; kracht van een FSA: (optelling – niet vermenigvuldiging); andere formalismen (bijvoorbeeld neurale netten); context vrije grammatica; equivalente grammaticas (Chomsky normal form, Greibach normal form); het "pumping" lemma voor context vrije talen; ambigue grammar – derivatie; beslisbaarheid van de eindigheid van reguliere talen;
invariantie onder unie, complement, doorsnede, concatenatie, repetitie; LR(k); deterministische en niet-deterministische PDA; berekenbare functies; recursieve functies; simpele/algemene recursieve functies (met mogelijke motivatie uit arithmetizatie van TMs); partiele/totale recursieve functies; recursieve verzamelingen; equivalente TM met varianten (multitape …); universele TM; halting probleem; andere onbeslisbare problemen; de berekenbare reele getallen; definitie van lineair begrensde automaat – context sensitieve taal; er bestaat een context sensitieve taal die niet context vrij is; definitie van herschrijfsysteem; berekeningskracht; definieren van functies m.b.v. een herschrijfsysteem; lambda-calculus, reductie, conversie; recursieve functies; reductiestrategie; Horn clause logica, resolutie; selectiestrategie; vragen over beslisbaarheid en eindigheid in dit kader.
Bedoeling is een eerder oppervlakkige, intuitieve behandeling van de andere paradigmas.

Cursustekst van de docent, uitgegeven door studentencursusdienst, en vrij op het net te vinden.

De studenten bereiden een stuk uit de cursus voor en hebben tijdens de les
de gelegenheid om vragen te stellen. Occasioneel geeft de docent een
klassiek hoorcollege.

De oefeningen worden aangeboden in de vorm van take-home opdrachten
die de student dient te maken voor de zitting: tijdens de zitting
worden de gemaakte opdrachten besproken in groep.
De opdrachten hebben als bedoeling de student te leren de theorie toe te passen passen op problemen.

1.2 sp. Automaten en berekenbaarheid: oefeningen en practica (B-KUL-G0P85a)

1.2 studiepuntenNederlandsWerkvorm: Opdracht26 urenEerste semester
POC Informatica

De oefenzittingen hebben tot doel de begrippen en algoritmen uit de
hoorcolleges beter te laten begrijpen door de theoretische leerstof
toe te passen in concrete opdrachten. De student leert ook
verschillende onderdelen van de cursus samen te voegen om nieuwe
resultaten te verkrijgen. De invulling hiervan bestaat uit
    - uit een beschrijving van een taal een NFA of Reguliere Expressie voor die taal maken
    - van een operatie op talen bepalen of die operatie inwendig is in de reguliere talen
    - omzetten van een NFA op een DFA op concrete voorbeelden uitwerken
    - varianten van NFA's en DFA's en bewijzen dat ze even krachtig zijn
    - bewijzen dat sommige talen niet regulier zijn door toepassen
van het pompend lemma voor reguliere talen
    - van een operatie op talen bepalen of die operatie inwendig is in de contextvrije talen
    - de contextvrije grammatica geven van een taal gespeficieerd in verzamelingnotatie
    - de PDA construeren voor een gegeven contextvrije taal
    - omzetten van een CFG naar zijn Chomsky-normaalvorm
    - bewijzen dat een gegeven taal contextvrij is of het tegendeel
    - varianten van PDA's met identieke berekeneningskracht
    - varianten van Turingmachines die zwakker of even sterk zijn
    - aantonen dat gegeven talen beslisbaar/herkenbaar zijn
    - toepassen van de notie van (Turing)reduceerbaarheid
    - bewijzen dat gegeven functies (mu-)recursief zijn
    - inoefenen conversieregels van de lambda-calculus
 

De oefeningen worden aangeboden in de vorm van take-home opdrachten
die de student dient te maken voor de zitting: tijdens de zitting worden de gemaakte opdrachten besproken in groep.

Zelfde als voor het vak.

De oefeningen worden aangeboden in de vorm van take-home opdrachten
die de student dient te maken voor de zitting: tijdens de zitting worden de gemaakte opdrachten besproken in groep.

Evaluatieactiviteiten

Evaluatie: Automaten en berekenbaarheid (B-KUL-G2P84a)

Type : Partiële of permanente evaluatie met examen tijdens de examenperiode
Evaluatievorm : Mondeling, Schriftelijk
Vraagvormen : Open vragen, Gesloten vragen
Leermateriaal : Geen


Het examen gaat over de theorie in de cursustekst. Varianten van
constructies en stellingen kunnen gevraagd worden om verder inzicht en
vaardigheid in het toepassen van de theorie na te gaan. De opdrachten
tijdens het jaar zijn daarbij een richtlijn.
In twee oefenzittingen krijgen de studenten de kans om schriftelijk en
individueel een opdracht te maken die telkens op 3/20 punten staat.
Die punten worden overgedragen naar de 2de examenkans zonder
mogelijkheid die opnieuw te behalen.
Wie niet slaagt voor het examen tijdens de examenperiode kan niet
slagen voor het vak.
 

In twee oefenzittingen krijgen de studenten de kans om schriftelijk en
individueel een opdracht te maken die telkens op 3/20 punten staat.
Die punten worden overgedragen naar de 2de examenkans zonder
mogelijkheid die opnieuw te behalen.
Wie niet slaagt voor het examen tijdens de examenperiode kan niet
slagen voor het vak.