Vyhněte se katastrofám pomocí výpočetní matematiky Stefan Ratschan Ústav informatiky Akademie věd ČR Stefan Ratschan Vyhněte se katastrofám 1 / 29
x. x 2 = 2
Kvíz x. x 2 = 2 x. x 2 7 p q x. x 2 + px + q = 0 x y. x 2 + y 2 1 = 0 x y = 0 Existuje algoritmus, který umí vždy správně odpovědět? Stefan Ratschan Vyhněte se katastrofám 3 / 29
Upřesnění úlohy Logické symboly: Logické spojky:,, Kvantifikátory:, Signatura: Predikáty: =, Funkční symboly: +, Konstanty: 0, 1 Otázka: Existuje algoritmus s následující specifikací? Vstup: formule s výše uvedenými symboly Výstup: ano, pokud formule platí v reálných číslech, ne, jinak. Odpověd : později... Stefan Ratschan Vyhněte se katastrofám 4 / 29
... a zatím něco úplně jiného...
Co to má společného?
Model Based Design Xcos demo Obyčejné diferenciální rovnice +... Zjednodušení: soustava diferenciálních rovnic ẋ = F (x), přičemž F : R n R n Obvyklý problém: počáteční úloha, např. ( ) 0 x(0) = 0 Podmínka určí jednoznačné řešení. Ale: systém se bude používat v různých situacích!, tj. množina počátečních stavů. Stefan Ratschan Vyhněte se katastrofám 9 / 29
Úloha verifikace bezpečnosti ẋ = F (x), přičemž F : R n R n Init: množina počátečních stavů Unsafe: množina nebezpečných stavů Ověř: Nemůže se stát, že systém začíná v počátečním stavu a dosáhne nebezpečného stavu. Formálně: x : R 0 R n, t R 0. x(0) Init, ẋ = F (x), x(t) Unsafe Jak na to? Tradiční metoda: testování Opakovaně: Zvol počáteční stav x(0) Init, vyřeš počáteční úlohu Problém: Délka testů? Kolik testů? Testování může najít chybu ale nikdy nemůže zaručit bezpečnost systému. Stefan Ratschan Vyhněte se katastrofám 10 / 29
Verifikace bezpečnosti Spolehlivější metoda? Pozorování: Není důležité kdy se katastrofa stane. Ignorujeme časovou osu. Znázornění v stavovém prostoru. Dále: ẋ = F (x), přičemž F : R 2 R 2 Stefan Ratschan Vyhněte se katastrofám 11 / 29
Znázornění v stavovém prostoru: příklad vektorového pole 5 4 3 2 1 0-1 -2-3 -4-5 -2.5-2 -1.5-1 -0.5 0 0.5 1 1.5 2 2.5 F : R 2 R 2 Stefan Ratschan Vyhněte se katastrofám 12 / 29
Úloha verifikace bezpečnosti 5 4 3 2 1 0-1 -2-3 -4-5 -2.5-2 -1.5-1 -0.5 Init: množina počátečních stavů 0 0.5 1 1.5 2 2.5 Unsafe: množina nebezpečných stavů Stefan Ratschan Vyhněte se katastrofám 13 / 29
Úloha verifikace bezpečnosti 5 4 3 2 1 0-1 -2-3 -4-5 -2.5-2 -1.5-1 -0.5 0 0.5 1 1.5 2 2.5 Ověř: Nemůže se stát, že systém začíná v počátečním stavu a dosáhne nebezpečného stavu. Stefan Ratschan Vyhněte se katastrofám 14 / 29
Úloha verifikace bezpečnosti: testování 5 4 3 2 1 0-1 -2-3 -4-5 -2.5-2 -1.5-1 -0.5 0 0.5 1 1.5 2 2.5 Známý problém: Délka testů? Kolik testů? Co si můžeme z testů naučit? Odpuzující množina? Stefan Ratschan Vyhněte se katastrofám 15 / 29
Certifikát bezpečnosti 5 4 3 2 1 0-1 -2-3 -4-5 -2.5-2 -1.5-1 -0.5 0 0.5 1 1.5 2 2.5 Stefan Ratschan Vyhněte se katastrofám 16 / 29
Jak reprezentovat certifikát? 5 4 3 2 1 0-1 -2-3 -4-5 -2.5-2 -1.5-1 -0.5 0 0.5 1 1.5 2 2.5 Nulová množina {x V (x) = 0} určité spojité funkce V. Jak dosáhnout aby certifikát oddělil počáteční od nebezpečných stavů? Stefan Ratschan Vyhněte se katastrofám 17 / 29
Jak reprezentovat certifikát? 5 4 3 2 1 0-1 -2-3 -4-5 -2.5-2 -1.5-1 -0.5 0 0.5 1 1.5 2 2.5 V je negativní na množině Init, pozitivní na množině Unsafe Jak dosáhnout, abychom se nedostali z negativní části do pozitivní? Stefan Ratschan Vyhněte se katastrofám 18 / 29
Jak reprezentovat certifikát? 5 4 3 2 1 0-1 -2-3 -4-5 -2.5-2 -1.5-1 -0.5 0 0.5 1 1.5 2 2.5 Na bodech, kde V je nula, klesá ve směru vektorového pole Stefan Ratschan Vyhněte se katastrofám 19 / 29
Reprezentace certifikátu: souhrn 5 4 3 2 1 0-1 -2-3 -4-5 -2.5-2 -1.5-1 -0.5 0 0.5 1 1.5 2 2.5 Chceme spojitě diferencovatelnou funkci V tak, že V je negativní na množině Init, pozitivní na množině Unsafe na bodech, kde V je nula, klesá ve směru vektorového pole Stefan Ratschan Vyhněte se katastrofám 20 / 29
Formalizace úlohy Pro danou n-dimenzionální obyčejnou diferenciální rovnici ẋ = F (x), přičemž F : R n R n, a kartézský součin intervalů B R n, najdi spojitě diferencovatelnou funkci V : R n R takovou, aby x Init. V (x) 0, x Unsafe. V (x) 0, x B. V (x) = 0 F V (x) < 0, kde F V (x) značí derivaci ve směru vektorového pole V (x) T F (x) v bodě x. Problém: obrovský prohledávací prostor: funkce Stefan Ratschan Vyhněte se katastrofám 21 / 29
Prohledávací prostor? 5 4 3 2 1 0-1 -2-3 -4-5 -2.5-2 -1.5-1 -0.5 0 0.5 1 1.5 2 2.5 Jak zmenšit prohledávací prostor? 5 4 3 2 1 0-1 -2-3 -4-5 - Parametrické funkce, např.: {p 1 x 2 + p 2 xy + p 3 y 2 (p 1, p 2, p 3 ) R 3 }. Stefan Ratschan Vyhněte se katastrofám 22 / 29
Formalizace problému v menším prohledávacím prostoru Původní formulaci: Najdi funkci V : R n R tak, že x Init. V (x) 0. x Unsafe. V (x) 0. x B. V (x) = 0 f V (x) < 0, Vyhledávací prostor zúžený z R n R na {p 1 x 2 + p 2 xy + p 3 y 2 (p 1, p 2, p 3 ) R 3 }: Najdi (p 1, p 2, p 3 ) R 3 s.t. x Init. p 1 x 2 + p 2 xy + p 3 y 2 0 x Unsafe. p 1 x 2 + p 2 xy + p 3 y 2 0 x B. p 1 x 2 + p 2 xy + p 3 y 2 = 0 f p 1 x 2 + p 2 xy + p 3 y 2 < 0 Stefan Ratschan Vyhněte se katastrofám 23 / 29
Obecně Nejen p 1 x 2 + p 2 xy + p 3 y 2, ale libovolný polynom V (p, x) s parametrickými koeficienty p R k. Pro danou n-dimenzionální obyčejnou diferenciální rovnici ẋ = F (x), přičemž F : R n R n je spojitě diferencovatelná, a kartézský součin intervalů B R n, najdi p R k tak, že??? x Init. V (p, x) 0, x Unsafe. V (p, x) 0, x B. V (p, x) = 0 f V (p, x) < 0. Stefan Ratschan Vyhněte se katastrofám 24 / 29
Výslední formuli p x Init. V (p, x) 0 x Unsafe. V (p, x) 0 x B. V (p, x) = 0 f V (p, x) < 0 Stefan Ratschan Vyhněte se katastrofám 25 / 29
Rozhodnutelnost teorie reálných čísel Logické symboly: Logické spojky:,, Kvantifikátory:, Signatura: Předikáty: =, Funkční symboly: +, Konstanty: 0, 1 Otázka: Existuje algoritmus s následující specifikací? Vstup: formule s výše uvedenými symboly Výstup: ano, pokud formule platí v reálných číslech, ne, jinak. Odpověd : Dobrá zpráva: Takový algoritmus existuje (Tarski: 30. léta 20. století) Špatná zpráva: čas pro realistickou úlohu verifikace bezpečnosti 100000000000000000000000000000000... let Stefan Ratschan Vyhněte se katastrofám 26 / 29
Účinné algoritmy QEPCAD demo RSolver demo Současný výzkum: využití struktury formule p x Init. V (p, x) 0 x Unsafe. V (p, x) 0 x B. V (p, x) = 0 f V (p, x) < 0 Zejména: koeficienty se vyskytují v polynomech lineárně (např. p 1 x 2 + p 2 xy + p 3 y 2 ) Stefan Ratschan Vyhněte se katastrofám 27 / 29
Závěr Místo testování, tj. opakovaní řešení počátečních úloh: analýza globálního chování Až donedávna akademická ruční záležitost Dnes: automatizace Příklady témat prací: http://www.cs.cas.cz/~ratschan/theses/cz/topics.html http://www.cs.cas.cz/~ratschan/theses/en/topics.html Stefan Ratschan Vyhněte se katastrofám 28 / 29
Literature I Alonzo Church. An unsolvable problem of elementary number theory. Am. J. Math., 58:345 363, 1936. A. M. Turing. On computable numbers, with an application to the Entscheidungsproblem. Proceedings of the London Mathematical Society, s2-42(1):230 265, 1937. Stefan Ratschan Vyhněte se katastrofám 29 / 29