Dank en samenvatting
This commit is contained in:
parent
1a2e988bdf
commit
b1741793ba
3 changed files with 56 additions and 30 deletions
|
@ -8,15 +8,14 @@
|
||||||
Foremost, I would like to thank my supervisors.
|
Foremost, I would like to thank my supervisors.
|
||||||
Having three of them ensured that there was always enough ideas to work on, theory to understand, papers to review, seminars to attend, and chats to have.
|
Having three of them ensured that there was always enough ideas to work on, theory to understand, papers to review, seminars to attend, and chats to have.
|
||||||
Frits, thank you for being a very motivating supervisor, pushing creativity, and being only a few meters away.
|
Frits, thank you for being a very motivating supervisor, pushing creativity, and being only a few meters away.
|
||||||
It started with a small puzzle (trying whether a certain test algorithm would help a learning case study), which was a great, hands-on start of my PhD.
|
It started with a small puzzle (trying a certain test algorithm to help with a case study), which was a great, hands-on start of my Ph.D..
|
||||||
You introduced me to the field of model learning in a way which showcases both the theoretical and practical aspects.
|
You introduced me to the field of model learning in a way which showcases both the theoretical and practical aspects.
|
||||||
|
|
||||||
Alexandra, thank you for inviting me to London, Caribbean islands, hidden cocktail clubs, and the best food.
|
Alexandra, thank you for inviting me to London, Caribbean islands, hidden cocktail clubs, and the best food.
|
||||||
You introduced me to abstract reasoning about state machines, the coalgebraic way.
|
You introduced me to abstract reasoning about state machines, the coalgebraic way.
|
||||||
Although not directly shown in this thesis, this way of thinking has helped and you pushed me to pursuit clear reasoning.
|
Although not directly shown in this thesis, this way of thinking has helped and you pushed me to pursuit clear reasoning.
|
||||||
Besides the theoretical things I've learned, you've also taught me many personal lessons inside and outside of academia.
|
Besides the theoretical things I've learned, you have also taught me many personal lessons inside and outside of academia.
|
||||||
And thanks for leaving me with Daniela and Matteo, when you went on sabbatical.
|
And thanks for leaving me with Daniela and Matteo, who introduced me to nominal techniques, while you were on sabbatical.
|
||||||
They have introduced me to nominal techniques, which I found a lot of fun.
|
|
||||||
|
|
||||||
Bas, thanks for broadening my understanding of the topics touched upon in this thesis.
|
Bas, thanks for broadening my understanding of the topics touched upon in this thesis.
|
||||||
Unfortunately, we have no papers together, but the connections you showed to logic, computational learning, and computability theory have influenced the thesis nevertheless.
|
Unfortunately, we have no papers together, but the connections you showed to logic, computational learning, and computability theory have influenced the thesis nevertheless.
|
||||||
|
@ -44,10 +43,9 @@ Special thanks go to Ingrid, for helping with the often-overlooked, but very imp
|
||||||
|
|
||||||
Doing a Ph.D. would not be complete without a good amount of playing kicker, having {\nl borrels\en}, and eating cakes at the iCIS institute.
|
Doing a Ph.D. would not be complete without a good amount of playing kicker, having {\nl borrels\en}, and eating cakes at the iCIS institute.
|
||||||
Thanks to all of you, Markus, Bram, Marc, Sam, Bas, Joost, Dan, Giso, Baris, Simone, Manxia, Leon, Jacopo, Gabriel, Paulus, Marcos, Bas, and Henning.
|
Thanks to all of you, Markus, Bram, Marc, Sam, Bas, Joost, Dan, Giso, Baris, Simone, Manxia, Leon, Jacopo, Gabriel, Paulus, Marcos, Bas, and Henning.
|
||||||
\footnote[random]{In no particular order. (I have randomised this list.)}
|
\footnote[random]{In no particular order. This lists are randomised.}
|
||||||
|
|
||||||
Thanks to people I have met across the channel (which hopefully will remain part of the EU): Benni, Nath, Kareem, Rueben, Louis, Borja, Fred, Tobias, Paul, Gerco, and Carsten,
|
Thanks to people I have met across the channel (which hopefully will remain part of the EU): Benni, Nath, Kareem, Rueben, Louis, Borja, Fred, Tobias, Paul, Gerco, and Carsten,
|
||||||
\note[random]
|
|
||||||
for the theoretical adventure, but also for joining me to {\it Phonox} and other parties in London.
|
for the theoretical adventure, but also for joining me to {\it Phonox} and other parties in London.
|
||||||
I am especially thankful to Matteo and Emanuela for hosting me many times and for Hillary and Justin for accommodating me for three months each.
|
I am especially thankful to Matteo and Emanuela for hosting me many times and for Hillary and Justin for accommodating me for three months each.
|
||||||
|
|
||||||
|
@ -55,20 +53,19 @@ I had a lot of fun at the IPA events.
|
||||||
I'm very thankful for Tim and Loek for organising these events.
|
I'm very thankful for Tim and Loek for organising these events.
|
||||||
Special thanks to Nico and Priyanka for organising a Halloween social event with me.
|
Special thanks to Nico and Priyanka for organising a Halloween social event with me.
|
||||||
Also thanks to all the participants in the IPA events, you made it a lot of fun!
|
Also thanks to all the participants in the IPA events, you made it a lot of fun!
|
||||||
|
|
||||||
My gratitude extends to all the people I have met at summer schools and conferences.
|
My gratitude extends to all the people I have met at summer schools and conferences.
|
||||||
I had a lot of fun learning about different cultures, languages, and different ways of doing research.
|
I had a lot of fun learning about different cultures, languages, and different ways of doing research.
|
||||||
Hope we meet again!
|
Hope we meet again!
|
||||||
|
|
||||||
I would also like to thanks other friends, for hosting me, cooking excellent dinners, or otherwise having fun with me.
|
I would also like to thanks all my friends, for hosting me, cooking excellent dinners, or otherwise having fun with me, thank you, Edo, Gabe, Saskia, Stijn, Sandra, Geert, Nick, Marco, Carmen, and Wesley.
|
||||||
Thanks, Gabe, Edo, Nick, Geert, Carmen, Marlon, Hannah, Wouter, Dennis,
|
Thanks to Marlon, Hannah, Wouter, Dennis, and others from \#RU for {\nl borrels\en} and jams.
|
||||||
???
|
Thanks to Ragnar, Julian, Jeroen, Vincent, and others from the BAPC for algorithmic fun.
|
||||||
Hash ru???
|
|
||||||
|
|
||||||
Familie
|
|
||||||
|
|
||||||
Tessa
|
|
||||||
|
|
||||||
|
Thanks to my parents, Kees and Irene, and my brother, David, for visiting me in {\nl Nijmegen\en} a few times.
|
||||||
|
My gratitude extends to my family in law, Ine, Wim, Jolien and Jesse.
|
||||||
|
My final words of praise go to Tessa, my wife, I am very happy to have you on my side.
|
||||||
|
You inspire me in many ways, and I enjoy doing all the fun stuff we do.
|
||||||
|
Thank you a lot.
|
||||||
|
|
||||||
|
|
||||||
\stopchapter
|
\stopchapter
|
||||||
|
|
|
@ -5,14 +5,14 @@
|
||||||
[title={Curriculum Vitae},
|
[title={Curriculum Vitae},
|
||||||
reference=chap:curriculum-vitae]
|
reference=chap:curriculum-vitae]
|
||||||
|
|
||||||
Joshua Moerman was born in 1991 in Utrecht, the Netherlands.
|
Joshua Moerman was born in 1991 in {\nl Utrecht\en}, the Netherlands.
|
||||||
After doing gymnasium at the Christiaan Huygens College in Eindhoven (2003 -- 2009), he did a double bachelor programme in {\it mathematics} and {\it computer science} at the Radboud University in Nijmegen.
|
After graduating {\nl gymnasium\en} at the {\nl Christiaan Huygens College\en} in {\nl Eindhoven\en}, 2009, he followed a double bachelor programme in {\it mathematics} and {\it computer science} at the Radboud University in {\nl Nijmegen\en}.
|
||||||
In 2013, he obtained both bachelors {\it summa cum laude} and continued with a master in mathematics.
|
In 2013, he obtained both bachelors {\it summa cum laude} and continued with a master in mathematics.
|
||||||
He obtained the degree of Master of Science {\it summa cum laude} in Mathematics in 2015, with a specialisation in algebra and topology.
|
He obtained the degree of Master of Science in Mathematics {\it summa cum laude} in 2015, with a specialisation in algebra and topology.
|
||||||
|
|
||||||
In February 2015, he started his Ph.D. under supervision of Frits Vaandrader, Sebastiaan Terwijn, and Alexandra Silva.
|
In February 2015, he started his Ph.D. research under supervision of Frits Vaandrager, Sebastiaan Terwijn, and Alexandra Silva.
|
||||||
This was a joint project with the computer science institute (iCIS) and the mathematics departement (IMAPP) of the Radboud University.
|
This was a joint project between the computer science institute (iCIS) and the mathematics departement (part of IMAPP) of the Radboud University.
|
||||||
During the four years of his Ph.D., he spent a total of six months at University College London, UK.
|
During the four years of his Ph.D. research, he spent a total of six months at the University College London, UK.
|
||||||
|
|
||||||
As of April 2019, Joshua works as a postdoctoral researcher in the group of Joost-Pieter Katoen at the RWTH Aachen, Germany.
|
As of April 2019, Joshua works as a postdoctoral researcher in the group of Joost-Pieter Katoen at the RWTH Aachen, Germany.
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,6 @@
|
||||||
\project thesis
|
\project thesis
|
||||||
\startcomponent summary
|
\startcomponent summary
|
||||||
|
|
||||||
\startchapter
|
|
||||||
[title={Summary},
|
|
||||||
reference=chap:summary-en]
|
|
||||||
|
|
||||||
Bla
|
|
||||||
|
|
||||||
|
|
||||||
\stopchapter
|
|
||||||
\language[nl]
|
\language[nl]
|
||||||
\startchapter
|
\startchapter
|
||||||
[title={Samenvatting},
|
[title={Samenvatting},
|
||||||
|
@ -20,7 +12,7 @@ Dit gaat in principe volledig automatisch, en het algoritme pakt vanzelf interes
|
||||||
Het is hiermee mogelijk een redelijk precies model te maken van de werking van het stukje software dat we onder de loep nemen.
|
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.
|
Fouten en onverwacht gedrag van software kunnen hiermee worden blootgelegd.
|
||||||
|
|
||||||
In dit proefschrift kijken we in eerste instantie naar technieken voor testgeneratie.
|
In dit proefschrift kijken we in eerste instantie naar technieken voor {\it testgeneratie}.
|
||||||
Deze zijn nodig om het leeralgoritme een handje te helpen.
|
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.
|
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.
|
Om de hypothese te verfijnen en verder te leren, hebben we tests nodig.
|
||||||
|
@ -49,4 +41,41 @@ Dit zou gebruikt kunnen worden om zulke automaten sneller te leren.
|
||||||
|
|
||||||
\stopchapter
|
\stopchapter
|
||||||
\language[en]
|
\language[en]
|
||||||
|
\startchapter
|
||||||
|
[title={Summary},
|
||||||
|
reference=chap:summary-en]
|
||||||
|
|
||||||
|
{\it Automata learning} plays a more and more prominent role in the field of software verification.
|
||||||
|
Learning algorithms are able to automatically explore the behaviour of software.
|
||||||
|
By revealing interesting properties of the software, these algorithms can create models the, otherwise unknown, software.
|
||||||
|
These learned models can, in turn, be inspected and analysed, which often leads to finding bugs and inconsistencies in the software.
|
||||||
|
|
||||||
|
An important tool which we need when learning software is {\it test generation.}
|
||||||
|
This is the topic of the first part of this thesis.
|
||||||
|
After the learning algorithm has learned a model and constructed a hypothesis, test generation methods are used to validate this hypothesis.
|
||||||
|
{\it Efficiency} is key: we want to test as little as possible, as testing may take valuable time.
|
||||||
|
However, our tests have to be {\it complete:} if the hypothesis fails to model the software well, we better have a test which shows this discrepancy.
|
||||||
|
|
||||||
|
The first few chapters explain black box testing of automata.
|
||||||
|
We present a theoretical framework in which we can compare existing {\it $n$-complete test generation methods.}
|
||||||
|
From this comparison, we are able to define a new, efficient algorithm.
|
||||||
|
In an industrial case study on embedded printer software, we show that this new algorithm works well for finding counterexamples in the hypothesis.
|
||||||
|
Besides the test generation, we show that one of the subproblems -- finding the shortest sequences to separate states -- can be solved very efficiently.
|
||||||
|
|
||||||
|
The second part of this thesis is on the theory of formal languages and automata with {\it infinite alphabets}.
|
||||||
|
This, too, is discussed in the context of automata learning.
|
||||||
|
Many pieces of software make use of identifiers or sequence numbers.
|
||||||
|
These are used, for example, in order to distinguish differen users or messages.
|
||||||
|
Ideally, we would like to model such systems with infinitely many identifiers, as we do not know beforehand how many of them will be used.
|
||||||
|
|
||||||
|
Using the theory of {\it nominal sets}, we show that learning algorithms can easily be generalised to automata with infinite alphabets.
|
||||||
|
In particular, this shows that we can learn register automata.
|
||||||
|
Furthermore, we deepen the theory of nominal sets.
|
||||||
|
First, we show that, in a special case, these sets can be implemented in an efficient way.
|
||||||
|
Second, we give a subclass of nominal automata which allow for a much smaller representation.
|
||||||
|
This could be useful for learning such automata more quickly.
|
||||||
|
|
||||||
|
\stopchapter
|
||||||
|
|
||||||
|
|
||||||
\stopcomponent
|
\stopcomponent
|
Reference in a new issue