PA054: Formální modely v systémové biologii David Šafránek 16.4.2010 Pravděpodobnostní model checking CTMC Uvažme množinu AP atomických propozic. Budeme uvažovat CTMC definovaný jako trojici M = S, Q, L kde: • S je konečná množina stavů • Q : S × S → R+ 0 je generující matice • L : S → 2AP je interpretační funkce Pravděpodobnostní model checking CTMC • pro každý stav s ∈ S značíme E(s) = s ∈S Qss ⇒ průměrná čekací doba v s je 1 E(s) • stav s ∈ S je absorbující pokud E(s) = 0 • pravděpodobnost přechodu s → s značíme Pss : Pss = Qss E(s) , E(s) > 0 0, jinak Pravděpodobnostní model checking CTMC Metrický prostor • běh π v CTMC M budeme uvažovat jako konečnou nebo nekonečnou sekvenci s0, t0, s1, t1, ..., kde si ∈ S a ti ∈ R+ t.ž. ∀i. Qsi si+1 > 0; zapisujeme: π = s0 t0 → s1 t1 → · · · • pro konečné běhy π = s0 t0 → s1 t1 → · · · tl−1 → sl navíc předpokládáme sl absorbující Pravděpodobnostní model checking CTMC • pro běh π v CTMC M (π ∈ M) značíme: • π(i) ... itý stav běhu, π(i) = si pro i ≥ 0 • δ(π, i) = ti ... čekací dobu ve stavu si • π(t) ... stav v čase t: π(t) = s0 pokud t < t0, π(i) pokud t ≥ t0 a i nejmenší index t.ž. t ≤ 0≤j≤i tj • pro π = s0, ..., sl uvažujeme δ(π, l) = ∞ a π(t) = sl pro všechna t > t1 + · · · + tl−1 • Path(s) = {π ∈ M|π(0) = s} (metrický prostor) Pravděpodobnostní model checking CTMC Borelovské pole • uvažujme s0, ..., sk ∈ S t.ž. Qsi si+1 > 0, (0 ≤ i < k) • I0, ..., Ik−1 neprázdné (otevřené) intervaly v R+ 0 • C(s0, I0, ..., Ik−1, sk ) značíme množinu jevů zahrnující všechny běhy π ∈ Path(s0) t.ž. π(i) = si (pro i ≤ k) a δ(π, i) ∈ Ii (pro i < k) • F(Path(s)) značíme nejmenší σ-algebru na množině Path(s) zahrnující: • každou sekvenci s0, s1, ..., sk t.ž. s = s0 a Qsi si+1 > 0 (pro 0 ≤ i < k) • každou sekvenci I0, I1, ..., Ik−1 neprázdných intervalů v R+ 0 • pro F(Path(s)) definujeme pravděpodobnostní metriku induktivně: k = 0 : Pr(C(s0)) = 1 k > 0 : Pr(C(s0, I0, ..., Ik−1, sk , I , s ) = = Pr(C(s0, I0, ..., Ik−1, sk )) · P(sk , s ) · (e−E(sk )·a − e−E(sk )·b) kde a = inf I , b = sup I , pro b = ∞ uvažujeme e−λ·∞ = 0 Pravděpodobnostní model checking CTMC Logika CSL – syntax Předpokládejme AP množ. atom. propozic, p ∈ 0, 1 , ∈ {≤, ≥, <, >}. Formule φ je stavovovou formulí CSL pokud: • φ = a, pro lib. a ∈ AP • jsou-li φ1 a φ2 stavové formule CSL, pak: • ¬φ1, φ1 ∧ φ2, φ1 ∨ φ2 jsou stavové formule CSL • S p(φ1) je stavová formule CSL • je-li ϕ běhová formule CSL, pak: • P p(ϕ) je stavovou formulí CSL Formule ϕ je pro lib. t ∈ R+ 0 běhovou formulí CSL pokud: • jsou-li φ1 a φ2 stavové formule CSL, pak: • Xφ1, φ1Uφ2, φ1U≤t φ2 jsou běhové formule CSL Pravděpodobnostní model checking CTMC Logika CSL – sémantika Uvažujme CTMC M = S, Q, L nad množinou atomických propozic AP. Pro S ⊆ S označme: πS (s) = lim t→∞ Pr{π ∈ Path(s)|π(t) ∈ S } Platí πS (s) = s ∈S π{s }(s), definitoricky nechť π∅ = 0. Dále označme Prob(s, ϕ) = Pr{π ∈ Path(s)|π |= ϕ}. Pravděpodobnostní model checking CTMC Logika CSL – sémantika Relace splnitelnosti |= pro stavové formule: • s |= a, pokud a ∈ L(s) • s |= ¬φ, pokud s |= φ • s |= φ1 ∧ φ2, pokud s |= φ1 a s |= φ2 • s |= S p(φ), pokud πSat(φ)(s) ∈ I p • s |= P p(ϕ), pokud Prob(s, ϕ) ∈ I p Značení: • I p = {q ∈ 0, 1 |q p} • Sat(φ) = {s ∈ S|s |= φ} Pravděpodobnostní model checking CTMC Logika CSL – sémantika Relace splnitelnosti |= pro běhové formule: • π |= Xφ, pokud π(1) |= φ • φ1Uφ2, pokud ∃k ≥ 0. π(k) |= φ2 ∧ ∀0 ≤ i < k. π(i) |= φ1 • φ1U≤tφ2, pokud ∃x ∈ 0, t . π(x) |= φ2 ∧ ∀y ∈ 0, x). π(y) |= φ1 Pravděpodobnostní model checking CTMC Logika CSL – další temporální operátory • P p(F≤tφ) = P p(ttU≤tφ) • P≥p(Gφ) = P≤1−p(F¬φ) Pravděpodobnostní model checking CTMC Logika CSL – nástroj PRISM • http://www.prismmodelchecker.org/ • pravděpodobnostní model checking pro DTMC, CTMC • podporuje logiky LTL, PCTL a CSL • transientní a stabilní analýza: • formule tvaru P=?(ϕ) a S=?(φ) • formule tvaru Pmin=?(ϕ) a Pmax=?(ϕ) • enumerace pravděpodobnosti • symbolické algoritmy (vychází z BDD) • výpočetně náročné (zejména pro CTMC) Pravděpodobnostní model checking CTMC Nástroj PRISM - zápis CTMC • jazyk Reactive Modules • podpora datových typů (int, double, ...) • lokální, globální proměnné • paralelní moduly • pojmenované a strážené příkazy (přechody): [label] condition -> rate:(assignement); • (binární) synchronizace shodně pojmenovaných příkazů ⇒ typicky se uvažuje rate jen pro jednu ze synchronizovaných akcí, druhá 1 • podpora výrazů (expressions) ⇒ lze definovat rate závislý na daném stavu Pravděpodobnostní model checking CTMC Nástroj PRISM - zápis CTMC