(Téměř) ověřená implementace Dijkstrova algortimu
Dijkstra's Algorithm---An (Almost) Verified Implementation
Type of document
bakalářská prácebachelor thesis
Author
Jan Kupsa
Supervisor
Knop Dušan
Opponent
Jureček Martin
Field of study
Informační bezpečnost 2021Study program
InformatikaInstitutions assigning rank
katedra informační bezpečnostiRights
A university thesis is a work protected by the Copyright Act. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one?s own expense. The use of thesis should be in compliance with the Copyright Act http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf and the citation ethics http://knihovny.cvut.cz/vychova/vskp.htmlVysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf a citační etikou http://knihovny.cvut.cz/vychova/vskp.html
Metadata
Show full item recordAbstract
Tato práce se zabývá využitím formální verifikace pro zajištění bezpečnosti a správnosti implementace Dijkstrova algoritmu. Text je strukturován na sedm kapitol, které seznámí čtenáře s teorií grafů, problémemnejkratší cesty, Hoarovou logikou a frameworkem Frama-c, který slouží k analýze programů napsaných v jazyce C. Dále tento text vysvětlí využití interních pluginů na formální ověření a také jak správně přidat anotace ze specifikačního jazyka ANSI/ISO do zdrojového kódu. Výsledek této práce je ověřená implementace Dijkstrova algoritmu řešící problém nejkratší cesty z jednoho zdroje. This thesis explores the application of formal verification to ensure the security and correctness of the implementation of Dijkstra's algorithm. The text is structured into seven chapters that will introduce the reader to graph theory, the shortest path problem, Hoare logic and the Frama-c framework for analysis of programs written in the C language. It will explain the internal plugins and their use in formal verification, as well as how to properly annotate source code using the ANSI/ISO Specification Language. The result of this thesis is a verified implementation Dijkstra's algorithm for solving the single source shortest path problem.