Archived
1
Fork 0
This repository has been archived on 2025-04-09. You can view files and clone it, but cannot push or open issues or pull requests.
phd-thesis/content-other/summary.tex
2019-05-22 21:36:19 +02:00

52 lines
No EOL
2.9 KiB
TeX

\project thesis
\startcomponent summary
\startchapter
[title={Summary},
reference=chap:summary-en]
Bla
\stopchapter
\language[nl]
\startchapter
[title={Samenvatting},
reference=chap:summary-nl]
Het {\it leren van automaten} speelt een steeds grotere rol bij de verificatie van software.
Tijdens het leren, verkent een leeralgoritme het gedrag van software.
Dit gaat in principe volledig automatisch, en het algoritme pakt vanzelf interessante eigenschappen op van de software.
Het is hiermee mogelijk een redelijk precies model te maken van de werking van het stukje software dat we onder de loep nemen.
Fouten en onverwacht gedrag van software kunnen hiermee worden blootgelegd.
In dit proefschrift kijken we in eerste instantie naar technieken voor testgeneratie.
Deze zijn nodig om het leeralgoritme een handje te helpen.
Na het automatisch verkennen van gedrag, formuleert het leeralgoritme namelijk een hypothese die de software nog niet goed genoeg modelleert.
Om de hypothese te verfijnen en verder te leren, hebben we tests nodig.
{\it Effici\"entie} staat hierbij centraal: we willen zo min mogelijk testen, want dat kost tijd.
Aan de andere kant moeten we wel {\it volledig testen:}
als er een discrepantie is tussen het geleerde model en de software, dan willen we die met een test kunnen aanwijzen.
In de eerste paar hoofdstukken laten we zien hoe testen van automaten te werk gaat.
We geven een theoretisch kader om verschillende, bestaande {\it $n$-volledige testgeneratiemethodes} te vergelijken.
Op grond hiervan beschrijven we een nieuw, effici\"ent algoritme.
Dit nieuwe algoritme staat centraal bij een industri\"ele casus waarin we een model van complexe printer-software van Oc\'e leren.
We laten ook zien hoe een van de deelproblemen -- het {\it onderscheiden van toestanden} met zo kort mogelijke invoer -- effici\"ent kan worden opgelost.
Het tweede thema in dit proefschrift is de theorie van formele talen en automaten met {\it oneindige alfabetten}.
Ook dit is zinnig voor het leren van automaten.
Software, en in het bijzonder internet-communicatie-protocollen, maken namelijk vaak gebruik van \quotation{identifiers} om bijvoorbeeld verschillende gebruikers te onderscheiden.
Het liefst nemen we oneindig veel van zulke identifiers aan, aangezien we niet weten hoeveel er nodig zijn voor het leren van de automaat.
We laten zien hoe we de leeralgoritmes gemakkelijk kunnen veralgemeniseren naar oneindige alfabetten door gebruik te maken van {\it nominale verzamelingen}.
In het bijzonder kunnen we hiermee registerautomaten leren.
Vervolgens werken we de theorie van nominale automaten verder uit.
We laten zien hoe je deze structuren effici\"ent kan implementeren.
En we geven een speciale klasse van nominale automaten die een veel kleinere representatie hebben.
Dit zou gebruikt kunnen worden om zulke automaten sneller te leren.
\stopchapter
\language[en]
\stopcomponent