Finding individual keys in a master-key system
Identifikace vlastních klíčů v systému generálního a hlavních klíčů
Date
Authors
Supervisors
Reviewers
Editors
Other contributors
Journal Title
Journal ISSN
Volume Title
Publisher
České vysoké učení technické v Praze
Czech Technical University in Prague
Czech Technical University in Prague
Abstract
Řešením systému klíčů a zámků rozumíme fyzickou výrobu klíče a blokování v zámku. Návrh řešení musí odpovídat podmínkám, jenž jsou dané zákazníkem a říkají nám, jaké klíče otvírají které zámky v systému. Nalezení takového řešení je až na určitou třídu diagonálních lock-chartů, jak ukazuje relevantní literatura, dokázaný NP-úplný problém. Tato práce se zabývá převodem obecného zadání z této třídy na onu určitou třídu, jenž jsme schopni řešit polynomiální časovou složitostí. Práce nejprve formalizuje problém a představuje čtenáři základní vhled do notace lock-chartů. Poté se snaží najít vhodný převod úlohy hledání vlastního lock-chartu do třídy problému P, kde zkouší aplikovat převody do bipartitních grafů anebo převody pomocí teorie množin. Ukazuje, že problém lze převést na třídu P jen pro určité typy zadání lock-chartu. V praktické části pak představuje několik algoritmů s přidanými parametry, kterými práce zkouší různé přístupy k nalezení maximálního řešení. Uvádí algoritmy konečné a optimální jako je třeba SAT nebo různé stromové prohledávací struktury a algoritmy heuristické jako je metoda biklastrování a hladová kritéria. Práce ukazuje, že kombinací heuristických a optimálních algoritmů dosahujeme velmi dobrých výsledků v hledání vlastního lock-chartu.
Lock-chart solving (also known as general and master key solving) is a process for designing mechanical keys and locks so that every key can open and be blocked in a certain user-defined system of locks. Solving this problem is proven as NP-hard problem except a class of diagonal lock-charts. Known literature shows that diagonal lock-chart can be solved in polynomial time. This study goal is to extract diagonal lock-chart from general assigmennt. Study formalizes problem and introduces basic insight into lock-chart notations. Then it will try to find suitable conversion of eigen lock-chart to a problem from P class. There are several ways of doing it from conversion to biparte graph to conversion by set theory, but none of them are applicable to general type of lock-chart. In the practical chapters, the study introduces several algorithms with additional parameters, which examine different approaches of finding maximal binary diagonal. It introduces finity and optimal algorithms such as SAT solvers or two tree-search based procedures and also shows heuristic algorithms such as biclustering method and three greedy criterias. This thesis shows, that combination of heuristic and optimal algorithms can achieve very good results in finding eigen lock-chart.
Lock-chart solving (also known as general and master key solving) is a process for designing mechanical keys and locks so that every key can open and be blocked in a certain user-defined system of locks. Solving this problem is proven as NP-hard problem except a class of diagonal lock-charts. Known literature shows that diagonal lock-chart can be solved in polynomial time. This study goal is to extract diagonal lock-chart from general assigmennt. Study formalizes problem and introduces basic insight into lock-chart notations. Then it will try to find suitable conversion of eigen lock-chart to a problem from P class. There are several ways of doing it from conversion to biparte graph to conversion by set theory, but none of them are applicable to general type of lock-chart. In the practical chapters, the study introduces several algorithms with additional parameters, which examine different approaches of finding maximal binary diagonal. It introduces finity and optimal algorithms such as SAT solvers or two tree-search based procedures and also shows heuristic algorithms such as biclustering method and three greedy criterias. This thesis shows, that combination of heuristic and optimal algorithms can achieve very good results in finding eigen lock-chart.