DNA počítače Řešení NP-úplných problémů za použití DNA počítačů Jaromír Malenko 2001.

Slides:



Advertisements
Podobné prezentace
Grafové algoritmy.
Advertisements

J. Pokorný 1 DOTAZOVACÍ JAZYKY slajdy přednášce DBI006 J. Pokorný MFF UK
Rozhodnutelnost.
Dualita úloh lineárního programování a analýza citlivosti
Třída SIMSET je druhou standardní systémovou třídou, která obsahuje prostředky pro práci se spojovými seznamy. KRUHOVÉ SPOJOVÉ SEZNAMY Spojový seznam –
Pascal - příklady.
Aplikace teorie grafů Základní pojmy teorie grafů
ALGO – Algoritmizace 1. cvičení
Základy informatiky přednášky Kódování.
Varianty Turingova stroje Výpočet funkcí pomocí TS
Genetické algoritmy. V průběhu výpočtu používají náhodné operace. Algoritmus není jednoznačný, může projít více cestami. Nezaručují nalezení řešení.
Principy překladačů Mezikód Jakub Yaghob.
Metody řazení s lineární časovou složitostí
LOGISTICKÉ SYSTÉMY 7/14.
SWI072 Algoritmy komprese dat1 Algoritmy komprese dat Statistické metody komprese dat a Shannon-Fanův kód.
REDUKCE DAT Díváme-li se na soubory jako na text, pak je tento text redundantní. Redundance vyplývá z:  některé fráze nebo slova se opakují  existuje.
Church-Turingova teze Univerzální Turingův stroj Diagonalizace
TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.
ORIENTOVANÉ GRAFY V této části se seznámíme s následujícími pojmy:
Formální jazyky a gramatiky
Abeceda a formální jazyk
METODA KONEČNÝCH PRVKŮ
Sémantická analýza Jakub Yaghob
Příklady jazyků Příklad 1: G=({S}, {0,1}, P, S)
Gramatiky a jazyky Přednáška z předmětu Řízení v komplexních systémech
Algoritmy vyhledávání a řazení
Simulační modely a programové vybavení. Vývoj simulačních programů  Původně pouze strojový kód –Příliš dlouhé, náročné na programátora, obtížné hledání.
JavaScript Podmínky, cykly a pole.
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Pre-algebra Antonín Jančařík.
AUTOMATY Bori · Brkos Formální jazyk {a, b, aa, ab, ba, bb, aaa, aab, aba, abb, baa, bab, bba, bbb} nad abecedou {a, b}
Vztah bezkontextových jazyků a ZA
Regulární výrazy Regulární výrazy představují další možnost popisu regulárních jazyků (právě od nich dostaly své jméno). Definice: Množina všech regulárních.
Aplikační a programové vybavení
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Formální modely výpočtu Tomáš Vaníček Katedra inženýrské informatiky Stavební fakulta ČVUT Thákurova 7, Praha 6 Dejvice, b407
P-těžké, np-těžké a np-úplné problémy
Srovnání Petriho sítí a HDA David Ježek. Vícedimensionální automaty Klasické automaty –nemají metodu jak vyjádřit „pravou“ souběžnost událostí A, B 0.
Zpracování neurčitosti Fuzzy přístupy RNDr. Jiří Dvořák, CSc.
Rozpoznávání v řetězcích
Turingův stroj.
Výpočetní složitost Odhlédneme-li od realizace algoritmu na konkrétním hardwaru a v konkrétním prostředí informačního systému, lze časovou složitost hodnotit.
Úvod do teorie konečných automatů
Automaty a gramatiky.
Mlhavost Fuzzy logika, fuzzy množiny, fuzzy čísla
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Konečné automaty a vyhledávání
Kanonické indexování vrcholů molekulového grafu Molekulový graf: G = (V, E, L, ,  ) Indexování vrcholů molekulového grafu G: bijekce  : V  I I je indexová.
Sylabus V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí: Nelineární úlohy Řešení nelineárních rovnic Numerická integrace Lineární.
Vyhledávání vzorů (template matching)
Les, stromy a kostry Kružnice: sled, který začíná a končí ve stejném vrcholu, ostatní vrcholy jsou různé Souvislý graf: mezi každými dvěma vrcholy existuje.
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce 13 1 / 14 NP-ÚPLNÉ.
Hledání cyklů Komunikační sítě Elektrické obvody Odběr surovin a výrobků v průmyslové výrobě Logistika Chemie ….
Funkce. Funkce - definice Funkce je zobrazení, které každému číslu z podmnožiny množiny reálných čísel R přiřazuje právě jedno reálné číslo. Funkci značíme.
Funkce Lineární funkce a její vlastnosti 2. Funkce − definice Funkce je předpis, který každému číslu z definičního oboru, který je podmnožinou množiny.
Lineární funkce Rozdělení lineárních funkcí Popis jednotlivých funkcí.
Funkce Funkce je zobrazení z jedné číselné množiny do druhé, nejčastěji Buď A a B množiny, f zobrazení. Potom definiční obor a obor hodnot nazveme množiny:
Definiční obor a obor hodnot
Znázornění dopravní sítě grafem a kostra grafu Předmět: Teorie dopravy - cvičení Ing. František Lachnit, Ph.D.
Překladače 5. Syntaktická analýza
Výukový materiál zpracován v rámci projektu
Predikátová logika (1. řádu).
Výpočetní složitost algoritmů
Lineární funkce a její vlastnosti
Gödelova(y) věta(y).
Algoritmizace a datové struktury (14ASD)
Sémantika PL1 Interpretace, modely
Predikátová logika.
Grafy kvadratických funkcí
Grafy kvadratických funkcí
Transkript prezentace:

DNA počítače Řešení NP-úplných problémů za použití DNA počítačů Jaromír Malenko 2001

Experimenty Menmology = MENtal MOlecular bioLOGY Založeny na Filtrovacích modelech Splétajících modelech Operace, kde jsou dvě molekuly DNA oříznuty enzymy tak, že dva vzniklé konce se slepí k sobě a tím vzniknou nové molekuly. Výpočetní modely se nazývají H–systémy. Konstruktivních modelech

SAT problém R. Lipton f=(x 1 v ~x 2 v x 3 ) & (x 2 v x 3 ) & (x 1 v x 3 ) & ~x 3 Řešení je založeno na převedení na grafový problém a skládá se ze 2 fází: Generování všech cest v grafu Hledání pravdivostního ohodnocení, které splňuje formuli

SAT problém Pro formuli s k proměnnými sestrojíme graf Vrcholy v 1,…,v n odpovídají proměnným vrcholy a 0 i, a 1 i odpovídají pravdivostním hodnotám false a true Cesta v i-1 a j i v i znamená, že proměnná x i nabývá hodnoty j, kde 0 = false a 1 = true Cesta z v 0 do v k ukazuje pravdivostní ohodnocení k proměnných x 1,…,x k v0v0 v1v1 v2v2 v k–1 vkvk a01a01 a02a02 a03a03 a 0 k–1 a0ka0k a11a11 a12a12 a13a13 a 1 k–1 a1ka1k

SAT problém – 1. fáze Generování všech cest z v 0 do v k Stejně jako Adleman: uvažujme oligonukleotidy přiřazené vrcholům, a doplňkové posloupnosti přiřazené prefixům a sufixům těchto posloupností Ochlazením posloupnosti zakódují cesty v grafu Vybereme všechny cesty začínající ve v 0 a končící ve v k Graf odpovídá proměnným ne formuli, nemá cykly

SAT problém – 2. fáze Na vstupu dostává zkumavku N 0 Vybere všechny cesty, které splňují první klauzuli a tím vytvoří N 1. Pokračujeme stejným způsobem: Ze zkumavky N i, 0  i  k–1 (splňující prvních i klauzulí) vybereme cesty splňující klauzuli i+1 a vytvoříme zkumavku N i+1 Jestliže zkumavka N k obsahuje nějakou molekulu, je formule splnitelná

SAT problém – příklad f = (x 1 v x 2 ) & (~x 1 v ~x 2 ) Graf: Program: (1)input(N 0 )00, 01, 10, 11 (2)N 1 = +(N 0, a 1 1 )10, 11 (3)N’ 1 = -(N 0, a 1 1 )00, 01 (4)N 2 = +(N’ 1, a 1 2 )01 (5)merge(N 1, N 2 ) = N 3 10, 11, 01 (6)N 4 = +(N 3, a 0 1 )01 (7)N’ 4 = -(N 3, a 0 1 )10, 11 (8)N 5 = +(N’ 4, a 0 2 )10 (9)merge(N 4, N 5 ) = N 6 01, 10 (10)detect(N 6 ) v in v1v1 v out a01a01 a02a02 a11a11 a12a12

Rozšíření filtrovacích metod Filtrovací metody používají následující operace, které mají konstantní čas při paralelním provádění N, N 1,…,N k jsou zkumavky (multimnožiny molekul), S je množina molekul remove(N, S): odstraní ze zkumavky N všechny molekuly obsahující jako podposloupnost aspoň jeden výskyt každého prvku S union({N 1,…,N k }, N): vytvoří zkumavku N spojením zkumavek N 1,…,N k copy(N, {N 1,…,N k }): vytvoří k kopií N označených N 1,…,N k select(N): jestliže je N neprázdná, pak vyber náhodně nějaký prvek z N, jinak vrať empty

Hamiltonská cesta – generování všech permutací Problém: Vygenerujte množinu P n všech permutací množiny {1, 2, …, n} Vstup: Zkumavka N obsahující všechny řetězce tvaru p 1 i 1 p 2 i 2 …p n i n, kde p j je kód pro pozici j a i j  {1, 2, …, n}, pro 1  j  n Algoritmus: for j := 1 to n–1 do begin copy(N, {N 1,…,N n }) for i = 1, 2, …, n paralelně remove(N i, {p j l | l  i}  {p k i | k > j}) union({N 1,…,N n }, N) end P n  N Složitost: O(n)

Hamiltonská cesta Problém: Rozhodněte, zda zadaný graf G=(V, E) s n vrcholy obsahuje Hamiltonskou cestu Vstup: Zkumavka P n vyprodukovaná předchozím algoritmem. Číslo i na pozici p k v nějaké permutaci z P n je interpretováno takto: řetězec reprezentuje možné řešení problému, kde je vrchol i navštíven v kroku k. Algoritmus: for 2  i  n–1 a j, k takové, že (j, k)  E paralelně remove(P n, {jp ik k}) select(P n ) Složitost: O(1)

Výstup Adlemanův experiment – odpovědi ano, ne přečíst operací detect (někdy select) Isomorfismu grafů – booleovská odpověď Generování všech permutací množiny – museli jsme zkonstruovat množinu molekul Maximální klika – ptáme se na číslo Efektivním sekvenčním zpracováním může být výstupem algoritmu libovolná informace Hamiltonovská cesta – ptáme se nejen, zda nějaká cesta existuje, ale v kladném případě i na explicitní ukázání cesty nebo všech cest

Maximální klika Předpokládáme graf G=(V, E), který má n vrcholů označených čísly 0, 1, …, n–1. Podmnožiny vrcholů jsou označeny binárními čísly délky n. 1. Množina všech možných množin vrcholů je reprezentována množinou všech binárních řetězců délky n. Této množině říkáme úplná datová banka. 2. Sestrojíme doplňkový graf ke grafu G. 3. Z banky odstraníme řetězce obsahující spojení v doplňkovém grafu. Zbývající řetězce odpovídají všem klikám v původním grafu. 4. Klika s největším počtem 1 určuje největší kliku.

DNA počítače Společná vlastnost Vygenerovat velkou množinu možných řešení Filtrovat tuto množinu, dokud nezůstane jen řešení

2D zobecnění Operace denaturace není postačující k tomu, abychom dostali sílu Turingových strojů Buňkové automaty Charakterizují všechny počítačově vyčíslitelné jazyky = Chomského gramatiky typu 0 = Turingovy stroje Blokové buňkové automaty (podle W. Winfree)

Blokové buňkové automaty – reprezentace Obousměrná nekonečná páska Abeceda V, # symbol, stop symbol Množina přepisovacích pravidel tvaru ab  cd Používány paralelně V každém kroku jsou všechny symboly na pásce přepsány s následujícím omezením: při přechodu z jednoho kroku do dalšího je místo použití pravidel posunuto o jednu pozici Výpočet začíná z počáteční konfigurace Výpočet končí v prvním kroku, kdy se na pásce objeví stop symbol – konfigurace v takovém kroku je výsledkem výpočtu

Blokové buňkové automaty – kódování pravidel Založeno na struktuře DNA Nazývá se DAE (Double-crossover, Antiparallel helical strands with an Even number of half-turns between crossovers) Pevná rovinná struktura, 4 volné lepivé konce xyz 5’5’ dz’u’b’ y’v’ a’w’x’c uvw 5’5’ 5’5’ 5’5’ 5’5’ 3’ y’ v’ x’ w’u’ z’ d b’ c a’ xyz wvu 3’ 5’5’ 5’5’ c a’ d b’b’

Blokové buňkové automaty – kódování pásky Počáteční obsah pásky: #aabab# Reprezentace za použití DAE bloků: Schematická reprezentace: #aabab# aabab## #abb##aa#

Blokové buňkové automaty – výpočet Struktury Ponechány ve výpočtu volně Přilepí se na odpovídající místa (kódovány doplňky) – simulace odpovídajících instrukcí Začne se sestrojovat koberec – každá řada reprezentuje jednu úroveň výpočtu Příklad: aa  ba, ba  ab, b#  aa, ##  ## #abb##aa# # #’#’#’#’ #b a’ a ab b’a’ aa b’#’#’#’#’ #

Blokové buňkové automaty – poznámky Symboly jsou v dalším kroku posunuty o jednu pozici oproti předcházejícímu místu Zvláštní symbol stop je kódován rozlišitelnými lepivými konci DAE struktury, které mohou být snadno rozpoznány Např. obarvení řešení na zadanou barvu (modrou) Když se výpočet zastaví, poslední řada DAE struktury reprezentuje výstup Jak oddělit a přečíst poslední řadu je biochemický problém

Blokové buňkové automaty – shrnutí procedury 1. Vyjádříme problém pomocí BBA 2. Vytvoříme počáteční molekulu, která reprezentuje počáteční pásku automatu 3. Vytvoříme DAE struktury odpovídající instrukcím 4. Smícháme molekuly vytvořené v krocích 2 a 3 dohromady 5. Až řešení „zmodrá“, oddělíme první řetězec s koncovým symbolem 6. Přečteme výsledek procházením řetězce získaného v kroku 5

Blokové buňkové automaty – komentáře Zatím jen malé velikosti Výpočet je plně paralelní BA pracují paralelně Denaturace probíhá paralelně Je sice nutno použít velké množství DNA, ale v každém kroku známe celou historii výpočtu Teoreticky výpočet nepotřebuje žádnou energii Oprava chyb, vyrobení počátečních molekul a přečtení vyžaduje velké množství energie