(Téměř) ověřená implementace Dijkstrova algortimu
Dijkstra's Algorithm---An (Almost) Verified Implementation
Typ dokumentu
bakalářská prácebachelor thesis
Autor
Jan Kupsa
Vedoucí práce
Knop Dušan
Oponent práce
Jureček Martin
Studijní obor
Informační bezpečnost 2021Studijní program
InformatikaInstituce přidělující hodnost
katedra informační bezpečnostiPráva
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
Zobrazit celý záznamAbstrakt
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.