Formele Talen en Berekenbaarheid
|
najaar 2025
|
|
|
Laatste nieuws
(30.10.2025)
Huiswerkopgave 1 is nagekeken.
De beoordelingen zijn naar alle studenten gestuurd.
De cijfers staan in
Brightspace.
Formele Talen en Berekenbaarheid (FTB) is een verplicht tweedejaars vak
in de bachelor Informatica van de Universiteit Leiden.
Het wordt dit jaar voor het eerst gegeven, en zal in dit
overgangsjaar
een combinatie van onderwerpen uit de `oude' vakken
Automata Theory
en Computability behandelen.
Mocht je het vak dit jaar niet halen, dan moet je in het voorjaar van 2026
het vak Automaten volgen en in het najaar van 2026 dit vak (Formele Talen
en Berekenbaarheid) in zijn definiteve vorm.
Praktische informate
Docent (voor de hoorcolleges): Rudy van Vliet
te vinden op: kamer BM.2.03 van het Gorlaeus
telefoon: 071-527 2876
email: rvvliet(at)liacs(dot)nl
Assistenten (voor de werkcolleges en huiswerkopgaven):
Simon van Prooijen, Eef Witteveen en Lucas Zuurmond
Algemeen emailadres assistenten:
...(at)liacs(dot)leidenuniv(dot)nl (wordt nog geregeld)
Onderwijsvorm: per week in principe twee uur hoorcollege
en twee uur werkcollege, allemaal on-campus.
Collegetijden:
-
hoorcollege op maandag, 11.00-12.45 in zaal BW.0.40
in het Gorlaeus
-
werkcollege op donderdag, 11.00-12.45,
in wisselende zalen in het Gorlaeus
(kijk in
MyTimeTable,
we doen een speurtocht!)
van 3 september t/m 11 december 2025.
Alleen het eerste hoorcollege is niet op maandag 1 maar op woensdag 3 september.
Zelfde tijd, zelfde zaal.
En in de week van 20-24 oktober zijn er helemaal geen colleges FTB.
Er komt geen livestream van de colleges.
We bekijken nog of het mogelijk is om de hoorcolleges op te nemen en
achteraf (na twee weken) beschikbaar te maken.
Je kunt sowieso ook terugkijken naar de hoorcolleges
Automata Theory
en
Computability
van vorig jaar. Maar bedenk dat we bij FTB niet aan alle onderwerpen toe
kunnen komen.
Studielast
Met het behalen van dit vak verdient u 6 EC. Het niveau van het vak wordt
aangeduid als `200'.
Aanbevolen voorkennis
Foundations of Computer Science
Beschrijving
De theorie van Automaten, Formele Talen en Berekenbaarheid vormt een
van de hoekstenen van de Theoretische Informatica, omdat ze ons in staat
stelt om precies te kunnen spreken over wat een berekening is,
of de complexiteit van een algoritme, of wanneer een probleem op te lossen
is. Een automaat is een wiskundig model om (formele) talen vast te leggen.
Formele talen op hun beurt kunnen bijvoorbeeld berekeningen,
programmeertalen of complexe systemen beschrijven.
Het eenvoudigste type automaat is de eindige automaat, een machine die
alleen een toestand bij kan houden, maar verder geen geheugen heeft.
Een eindige automaat legt een algoritme vast om te bepalen of een string
tot een taal behoort. Talen die geaccepteerd worden door eindige automaten,
heten reguliere talen. Reguliere talen kunnen gegenereerd worden door
reguliere grammatica's en beschreven worden door reguliere expressies.
We behandelen algoritmes om het ene formalisme om te zetten in het andere.
Wanneer we een beperkte vorm van extern geheugen aan de eindige automaat
toevoegen, in de vorm van een stapel, ontstaat de stapelautomaat,
een krachtiger concept. Stapelautomaten accepteren context-vrije talen.
Deze worden gegenereerd door context-vrije grammatica's, die ook
een cruciale rol spelen in de definitie van programmeertalen.
Stapelautomaten op hun beurt zijn belangrijk in het ontwerp van compilers.
De derde klasse van talen die we bestuderen, zijn de recursief opsombare
talen. Die kunnen geaccepteerd worden door Turingmachines. Turingmachines
vormen het meest algemene model van berekenbaarheid. Ze maken gebruik
van een tape, voor invoer en uitvoer en als werkgeheugen. Ze zijn in staat
om alle soorten algoritmes uit te voeren.
Als een beslissingsprobleem niet door een Turingmachine kan worden opgelost,
heet dat probleem onbeslisbaar. We behandelen diverse concrete onbeslisbare
problemen, en gebruiken reducties om de onbeslisbaarheid van het ene
probleem af te leiden uit die van het andere probleem.
Voor de reguliere talen en de context-vrije talen bespreken we pomplemma's,
die laten zien dat bepaalde talen juist niet door een automaat kunnen worden
herkend. We vergelijken voor alle types automaten en machines
de deterministische en niet-deterministische varianten. Verder verkennen
we algoritmes die van beschrijvingen van eenvoudige talen meer complexe
talen maken, de zogenaamde afsluitingseigenschappen.
Voor globale informatie over het vak in studiejaar 2025-2026
wordt men verwezen naar de
algemene webpagina
in de studiegids.
Leerdoelen
Na afloop van dit vak zijn studenten in staat om:
-
een eindige automaat voor een gegeven taal te ontwerpen
en eindige automaten te interpreteren
-
een reguliere expressie voor een gegeven taal te ontwerpen
en reguliere expressies te interpreteren
-
een context-vrije grammatica voor een gegeven taal te ontwerpen
en context-vrije grammatica's te interpreteren
-
een stapelautomaat voor een gegeven taal te ontwerpen
en stapelautomaten te interpreteren
-
een Turingmachine voor een gegeven taal of functie te ontwerpen
en Turingmachines te interpreteren
-
de (on)beslisbaarheid van problemen aan te tonen en reducties toe te passen
-
definities te reproduceren en toe te passen van, o.a., bovenstaande concepten
-
constructies te beschrijven en toe te passen, o.a.,
-
tussen eindige automaten en reguliere expressies
-
tussen eindige automaten en reguliere grammatica's
-
tussen context-vrije grammatica's en stapelautomaten
-
eenvoudige eigenschappen te bewijzen en toe te passen, zoals
afsluitingseigenschappen en pomplemma's
Toetsing
Vier huiswerkopgaven in de loop van het semester en een schriftelijk tentamen
aan het eind van het semester. Het minimumcijfer voor de huiswerkopgaven
is 0, het minimumcijfer voor het tentamen is 1. De huiswerkopgaven zijn niet
verplicht, en kennen dan ook geen herkansing. Ze tellen wel mee voor
het eindcijfer. Het tentamencijfer dient minstens 5.5 te zijn. In dat geval
wordt het eindcijfer berekend als een gewogen gemiddelde van
het tentamencijfer (70%) en het gemiddelde van de huiswerkopgaven (30%).
Als dit gewogen gemiddelde lager is dan 5.5, is het eindcijfer toch een 6.
Als het tentamencijfer lager is dan 5.5, is het eindcijfer gelijk aan
het (onvoldoende) tentamencijfer.
Deelcijfers voor huiswerk en/of tentamen
van vergelijkbare vakken in eerdere jaren kunnen niet worden meegenomen
naar het nieuwe jaar.
Exams
Er zijn twee tentamens gepland, allebei on-campus:
Eerste tentamen:
vrijdag 9 januari 2026, 09.00-12.00, in Lecture Hall (schotel) C4/5.
Hertentamen:
(onder voorbehoud)
donderdag 26 maart 2026, 09.00-12.00, in zalen Gorlaeus BW.0.20 en BW.0.29.
De cijfers van de tentamens zullen gepubliceerd worden in
Brightspace.
Zorg dus dat je je aanmeldt voor de cursus in Brightspace.
Vragenuur
Indien daar belangstelling voor bestaat, kan er een vragenuur voor
het (eerste) tentamen worden ingepland.
Daarbij kun je dan de vragen stellen die opgekomen zijn bij
het leren voor het tentamen.
Huiswerkopgaven
In de loop van het semester worden vier huiswerkopgaven
opgegeven. Samen tellen deze voor 30% van het eindcijfer.
De huiswerkopgaven moeten individueel gemaakt worden.
Wanneer blijkt dat studenten teveel hebben samengewerkt voor hun oplossing,
zullen de (voor een enkele oplossing) verdiende punten worden gedeeld door
het aantal betrokken studenten. In bijzondere gevallen kan ook
een melding worden gedaan bij de examencommissie.
In dat geval wordt de beoordeling van
de opgave voor die studenten opgeschort, in afwachting van een oordeel
van de examencommissie.
Oplossingen voor de huiswerkopgaven dienen op of voor de deadline ingeleverd
te worden. Vaak zal dit ongeveer twee weken na publicatie van de opgave
zijn.
Haal je die deadline niet, dan heeft het in principe geen zin meer om
je oplossing in te leveren. Dat wil zeggen: je verdient er geen punten meer
voor.
Het is niet verplicht om de huiswerkopgaven te maken. Het is echter wel
verstandig om dat te doen. Immers: (1) het is een nuttige oefening voor
het tentamen, (2) als je een of meer huiswerkopgaven mist, krijg je een 0
voor die opgaven, en dat kan je eindcijfer negatief be-invloeden.
Je kunt je oplossingen voor de huiswerkopgaven in Brightspace inleveren.
De cijfers voor de huiswerkopgave zullen ook gepubliceerd worden in
Brightspace.
Zorg dus dat je je aanmeldt voor de cursus in Brightspace.
Resultaten voor de huiswerkopgaven van vergelijkbare vakken
uit een eerder studiejaar zijn dit jaar niet meer geldig.
Als de huiswerkopgaven beschikbaar zijn, zullen ze hieronder gepubliceerd
worden.
Inmiddels is beschikbaar:
Als je eindige automaten digitaal wil teken, kun je gebruik maken van de
Finite State Machine Designer.
Mocht de notatie hierbij afwijken van de notatie die wij in het vak
gebruiken, maak dat dan expliciet als je je oplossing voor de huiswerkopgave
inlevert.
Literatuur
John C. Martin,
Introduction to Languages and the Theory of Computation,
4th edition, McGraw Hill, 2010/2011.
Twee keer de 4e editie: de Amerikaanse editie (ISBN-13: 978-0073191461)
en de internationale editie (ISBN-13: 978-007-128942-9)
Er is een
lijst met errata
bij dit boek beschikbaar.
Heeft u zelf (andere) foutjes in het boek ontdekt, meld het dan aan
de docent. Dan kunnen die ook in de lijst worden opgenomen.
Dit boek schijnt niet meer in de winkel te liggen.
Online kun je misschien nog een tweedehands exemplaar vinden.
In een eerder jaar heeft de docent voor het vak Automata Theory
een (klein) stukje
dictaat
geschreven, onder andere over het pomplemma voor reguliere talen.
Tentamenstof
De tentamenstof is in grote lijnen
-
de stof die tijdens de colleges wordt
behandeld uit het boek van John Martin,
-
met de bijbehorende opgaven.
Een compleet, gedetailleerd overzicht van de tentamenstof,
komt na het laatste college op deze site.
N.B:
Vaak bestaan er verschillende constructies om hetzelfde doel te bereiken.
Het internet staat er vol mee.
Voor de huiswerkopgaven en het tentamen is het van belang om de constructies
te gebruiken die we bij dit vak hebben behandeld. Anders kunnen punten worden
afgetrokken.
Opmerkingen:
Begrippen, notaties en technieken behandeld bij het vak
Foundations of Computer Science, in het bijzonder inductie,
worden bekend
verondersteld. Je moet in staat zijn ze ook bij dit vak te gebruiken.
Behandelde stof, opgaven en slides
Voor wie door omstandigheden een hoorcollege of werkcollege
moet missen,
houden we per week bij welke stof en opgaven we hebben behandeld.
U vindt dit overzicht
hier
(bijgewerkt t/m hoorcollege van 3 november 2025).
De slides die tijdens de colleges gebruikt worden,
worden voor elk college hieronder gepubliceerd.
N.B:
De slides zijn niet bedoeld ter vervanging van het boek.
Het kan dus lastig zijn om de stof puur met behulp van de slides,
zonder het boek, te begrijpen.
N.B.2:
Om gemakkelijk naar eerdere definities/resultaten/plaatjes te
kunnen verwijzen tijdens het college, worden slides regelmatig hergebruikt.
Er zitten dus nogal wat dubbele slides bij.
-
Woensdag 3 september 2025,
slides hoorcollege 1
praktische informatie, talen, eindige automaten
-
Donderdag 4 september 2025,
slides werkcollege 1
-
Maandag 8 september 2025,
slides hoorcollege 2
eindige automaten, afsluitingseigenschappen, pomplemma voor reguliere talen
-
Donderdag 11 september 2025,
slides werkcollege 2
-
Maandag 15 september 2025,
slides hoorcollege 3
pomplemma voor reguliere talen, niet-deterministische eindige automaten
-
Donderdag 18 september 2025,
slides werkcollege 3
-
Maandag 22 september 2025,
slides hoorcollege 4
verwijderen van niet-determinisme uit NFA,
reguliere talen, reguliere expressies
-
Donderdag 25 september 2025,
slides werkcollege 4
-
Maandag 29 september 2025,
slides hoorcollege 5
reguliere expressies,
van reguliere expressie naar eindige automaat en terug,
context-vrije grammatica's
-
Donderdag 2 oktober 2025,
slides werkcollege 5
-
Maandag 6 oktober 2025,
slides hoorcollege 6
reguliere operaties op context-vrije grammatica's,
reguliere grammatica's
-
Donderdag 9 oktober 2025,
slides werkcollege 6
-
Maandag 13 oktober 2025,
slides hoorcollege 7
afsluitingseigenschappen,
(on-)dubbelzinnigheid, stapelautomaten
-
Donderdag 16 oktober 2025,
slides werkcollege 7
-
Maandag 27 oktober 2025,
slides hoorcollege 8
stapelautomaten, deterministische stapelautomaten
-
Donderdag 30 oktober 2025,
slides werkcollege 8
-
Maandag 3 november 2025,
slides hoorcollege 9
van context-vrije grammatica's naar stapelautomaten (top-down en bottom-up)
-
Donderdag 6 november 2025,
slides werkcollege 9
Antwoorden bij opgaven
Van een deel van de opgaven uit het boek zijn nette uitwerkingen
beschikbaar.
Deze vindt u hieronder.
-
Antwoorden bij opgaven uit
Hoofdstuk 1
(bijgewerkt, 4 September, 2024)
-
Antwoorden bij opgaven uit
Hoofdstuk 2
(bijgewerkt, 19 November, 2024)
-
Antwoorden bij opgaven uit
Hoofdstuk 3
(bijgewerkt, 13 December, 2024)
-
Antwoorden bij opgaven uit
Hoofdstuk 4
(bijgewerkt, 18 November, 2024)
-
Antwoorden bij opgaven uit
Hoofdstuk 5
(bijgewerkt, 2 December, 2024)
-
Antwoorden bij opgaven uit
Hoofdstuk 6
-
Antwoorden bij opgaven uit
Hoofdstuk 7
-
Antwoorden bij opgaven uit
Hoofdstuk 8
-
Antwoorden bij opgaven uit
Hoofdstuk 9
Achterin het boek staan ook nog antwoorden van een aantal opgaven.
Oude tentamens:
Tja, dit vak wordt voor het eerst gegeven. Er zijn dus nog geen oude
tentamens beschikbaar. Je kunt wel kijken bij de twee voorganger vakken
Automata Theory
en Computability.
Maar bedenk dat we bij FTB niet alle stof uit die twee vakken kunnen
behandelen. Niet alle opgaven uit de oude tentamens van die vakken zullen
daarom nu tot de tentamenstof behoren.
Vragen en opmerkingen kunt u sturen naar:
Rudy van Vliet;
rvvliet(at)liacs(dot)nl
Laatste wijziging: 3 november 2025
- https://www.liacs.leidenuniv.nl/~vlietrvan1/ftb/
|