Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe...

19
2017-10-18 1 Algorytmika w bioinformatyce Kurs dla kierunku BIOINFORMATYKA 2017/2018 Prowadzący: Prof. Danuta Makowiec [email protected] IFTiA, pok. 353, tel.: 58 523 2466 Motywacja 2 Cztery etapy rekonstrukcji genomu: cięcie DNA na fragmenty tworzenie milionów kopii każdego fragmentu odczytanie każdej pary w każdym fragmencie zestawienie wszystkich fragmentów we właściwym porządku Fragmenty DNA są uzyskiwane poprzez enzymy restrykcyjne Klonowanie Reakcja łańcuchowa polimerazy Techniki sekwencjonowania Macierze DNA Algorytmy bioinformatyki usiłują zrekonstruować oryginalne sekwencje.

Transcript of Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe...

Page 1: Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne 6 Algorytm to zestaw dobrze zdefiniowanych instrukcji, które

2017-10-18

1

Algorytmika w bioinformatyce

Kurs dla kierunku BIOINFORMATYKA 2017/2018 Prowadzący: Prof. Danuta Makowiec [email protected] IFTiA, pok. 353, tel.: 58 523 2466

Motywacja 2

Cztery etapy rekonstrukcji genomu: cięcie DNA na fragmenty tworzenie milionów kopii każdego fragmentu odczytanie każdej pary w każdym fragmencie zestawienie wszystkich fragmentów we właściwym porządku

Fragmenty DNA są uzyskiwane poprzez enzymy restrykcyjne

Klonowanie Reakcja łańcuchowa polimerazy

Techniki sekwencjonowania Macierze DNA

Algorytmy bioinformatyki usiłują zrekonstruować oryginalne sekwencje.

Page 2: Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne 6 Algorytm to zestaw dobrze zdefiniowanych instrukcji, które

2017-10-18

2

Rozkład „jazdy” 3

Wykłady Środy , godz.: 12.15 do 14.00 Na stronie będą sukcesywnie pojawiać się materiały z wykładów

http://www.fizdm.strony.ug.edu.pl/ME/materialy.html

Warunek uzyskania zaliczenia wykładu:

• pozytywne napisanie kolokwium zaliczającego.

• termin kolokwium: 31 stycznia 2018,

godz. 12:15.

Podręczniki 4

http://www.bioalgorithms.info

http://www.cs.unc.edu/~prins/Classes/555/

Schemat omawianych treści: • problem biologiczny • algorytmiczna technika rozwiązania : ćwiczenia audytoryjne • praktyczne kodowanie rozwiązania : laboratoria programistyczne • analiza złożoności

Page 3: Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne 6 Algorytm to zestaw dobrze zdefiniowanych instrukcji, które

2017-10-18

3

A1: PODSTAWOWE TECHNIKI ALGORYTMICZNE

Algorytmika dla bioinformatyki

Prowadzący: Prof. Danuta Makowiec

[email protected]

IFTiA, pok. 353, tel.: 58 523 2466

Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne

6

Algorytm to zestaw dobrze zdefiniowanych instrukcji, które należy wykonać, aby rozwiązać określony problem.

To, co decyduje o jakości algorytmu to jego poprawność i wydajność (złożoność)

Mamy wypracowane różne strategie projektowania algorytmów takie jak na przykład: wyczerpująca, zachłanna , dynamiczna czy rekurencyjna

Mamy wypracowany sposób oceny złożoności algorytmów: analiza asymptotyczna

Page 4: Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne 6 Algorytm to zestaw dobrze zdefiniowanych instrukcji, które

2017-10-18

4

Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne

7

Poprawność algorytmu

Problem kasjera

wydać resztę optymalnie czyli wykorzystując możliwie najmniejszą liczbę monet przy zadanym zestawie monet.

Wydawaj możliwie największą monetę z aktualnej reszty

D. Makowiec: A - Podstawowe techniki algorytmiczne

8

Page 5: Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne 6 Algorytm to zestaw dobrze zdefiniowanych instrukcji, które

2017-10-18

5

strategia zachłanna versus strategia wyczerpująca

Algorytm BetterChange jest niepoprawny. Źle oblicza resztę dla np.: M=40, c=(25 , 20, 10, 5, 1)

Algorytm zawsze poprawny, ale też i zawsze niewydajny

Algorytm mięśniaka

Ile tych możliwie najwiekszych monet można wypłacić

D. Makowiec: A - Podstawowe techniki algorytmiczne

9

Strategia wyczerpująca: kolejno rozważ wszystkie możliwe kombinacje monet

Strategia zachłanna: wydawaj resztę aktualnie największym nominałem

Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne

10

Złożoność algorytmu

Page 6: Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne 6 Algorytm to zestaw dobrze zdefiniowanych instrukcji, które

2017-10-18

6

Problem Fibonacciego ( z roku 1202)

[11]

Algorytm dynami-czny:

11

Algorytm rekuren-cyjny

nn

nF2

51

2

51

5

1Bezpośrednie obliczenie

D. Makowiec: A - Podstawowe techniki algorytmiczne

Problem sortowania D. Makowiec: A - Podstawowe techniki algorytmiczne

12

Definicja: Wejście: dany jest ciąg n elementów A= (A1, A2,…., An) = A[1..n] Wyjście: permutacja ciągu wejściowego A’=A’[1..n] taka, że A’[1] ≤ A’[2] ≤ … ≤ A’[n]

INSERTION_SORT (A[1..n]) for j = 2 to n key = A[j] i = j – 1 while i > 0 and A[i] > key

A[i+1] = A[i] i = i – 1 A[i+1] = key

MET

A K

OD

ALG

OR

YTM

ÓW

Rozważamy n-1 elementów

i-ty pobrany element

porównujemy co najwyżej

(i-1) razy

Przybliżona ilość maksymalnej liczby elementarnych operacji 1+ 2+ 3+…(n-1)= n*(n-1)/2

//pobierz kolejny element A[j]

//wstaw A[j] do posortowanego ciągu A[1..j-1]

Page 7: Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne 6 Algorytm to zestaw dobrze zdefiniowanych instrukcji, które

2017-10-18

7

Analiza wydajności algorytmu 13

Analiza wydajności algorytmu to ocena czasu przetwarzania I tak, czas przebiegu Insertion_Sort zależy od: wielkości danych wejściowych: czy mamy 6 czy 6 milionów liczb do wysortowania ? jakości danych wejściowych: czy są już częściowo posortowane i jak?

ile umownych jednostek czasowych potrzeba na przetworzenie n-elementowego zbioru: analiza najgorszego przypadku: T(n)=max { czas sortowania danych o rozmiarze n} analiza średniego przypadku: T(n)= E { wszystkie możliwe dane o rozmiarze n} analiza najlepszego przypadku: możliwość oszukania się i innych

D. Makowiec: A - Podstawowe techniki algorytmiczne

Analiza asymptotyczna 14

ANALIZA ASYMPTOTYCZNA 1. zignoruj stałe wielkości zależne od maszyny

2. obserwuj jedynie WZROST przebiegu T(n), gdy n →

Sedno algorytmiki

Pomysł na ilościową ocenę wydajności algorytmu:

Definicja notacji asymptotycznej O( ) : Dla danej funkcji g(n) przez O(g(n)) oznaczamy następujący zbiór funkcji: O(g(n))={ f(n): istnieje stała C oraz n0 takie, że 0 ≤ |f(n)| ≤ C |g(n)| dla wszystkich dostatecznie dużych n ≥ n0 } co piszemy f(n)=O(g(n)) Wniosek: Notacja O( ) służy szacowaniu funkcji z góry.

D. Makowiec: A - Podstawowe techniki algorytmiczne

Page 8: Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne 6 Algorytm to zestaw dobrze zdefiniowanych instrukcji, które

2017-10-18

8

Oszacowania asymptotyczne 15

Notacja asymptotyczna

Jak wartości dowolnej funkcji f(n) mają się do wartości znanej funkcji g(n)?

notacja „theta” notacja „duże O” notacja „omega”

D. Makowiec: A - Podstawowe techniki algorytmiczne

A2: PODSTAWOWE TECHNIKI ALGORYTMICZNE

Algorytmika dla bioinformatyki

Prowadzący: Prof. Danuta Makowiec

[email protected]

IFTiA, pok. 353, tel.: 58 523 2466

Page 9: Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne 6 Algorytm to zestaw dobrze zdefiniowanych instrukcji, które

2017-10-18

9

Funkcje ważne dla oszacowań asymptotycznych D. Makowiec: A: podstawowe techniki algorytmiczne

O(n)

nn nnnnnnnnnnnn ,!,2,....,,,,lg,,,,,...,lg,1 43234

O(1)

O(lg n)

Złożoność logaryt-miczna

Złożoność liniowa

O(n2)

Złożoność kwadra-

towa

O(n lg n)

O(2n)

Złożoność wykład-

nicza

Złożoność wielomia-

nowa

O(n!)

Hierarchia ważnych ciągów uporządkowanych w ten sposób, że każdy z nich jest O() od wszystkich ciągów na prawo od niego

17

Różnice pomiędzy funkcjami rosnącymi 18 D. Makowiec: A - Podstawowe techniki

algorytmiczne

Big-O: O(n2) = „oznacza że dana funkcja rośnie nie szybciej niż n2”

Jak długo będziemy czekać na wynik przetwarzania?

Page 10: Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne 6 Algorytm to zestaw dobrze zdefiniowanych instrukcji, które

2017-10-18

10

Wyznaczanie O() 19

ANALIZA ASYMPTOTYCZNA 1. zignoruj stałe wielkości zależne od maszyny 2. obserwuj jedynie WZROST przebiegu T(n), gdy n →

Jak znaleźć funkcję f(n): ilość elementarnych operacji w algorytmie, dla której następnie znajdujemy O() ?

Przykłady: jak ocenić złożoność rozważanych wcześniej algorytmów?

Zliczanie: f(d)< 1+2*d = O(d)

Zliczanie: F(d) <1+ M/c1*M/c2*….*M/cd = O(Md)

D. Makowiec: A - Podstawowe techniki algorytmiczne

Problemy obliczalne i NP-zupełne

Problem jest obliczalny (tractable) jeśli jest rozwiązywalny przez algorytm o złożoności wielomianowej czyli jest O(nk) dla pewnego k Problem jest nieobliczalny (intractable) jeśli nie może być obliczony przez jakikolwiek algorytm o złożoności wielomianowej (ograniczenie dolne jest wykładnicze: (2n) ) Problem NP-zupełny: nie istnieje dowód, że problem jest nieobliczalny

D. Makowiec: A - Podstawowe techniki algorytmiczne

20

Page 11: Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne 6 Algorytm to zestaw dobrze zdefiniowanych instrukcji, które

2017-10-18

11

Strategia rekurencji 21

Strategia rekurencji: rozwiąż problem o rozmiarze n zakładając, że znasz rozwiązanie problemu o rozmiarze mniejszym niż n

„ Wieże Hanoi” (1883)

Oblicz, ile ruchów co najmniej musisz wykonać, aby przenieść wszystkie klocki z patyka 1 na patyk 3, przy czym wolno Ci: brać tylko 1 klocek

kłaść klocek mniejszy na większy

Lucas i legenda wieży Brahmy w Hanoi

D. Makowiec: A - Podstawowe techniki algorytmiczne

https://pl.wikipedia.org/wiki/Wie%C5%BCe_Hanoi

Algorytmika, wykład iV

Danuta Makowiec:

[22]

Oblicz ile ruchów co najmniej musisz wykonać, aby przenieść wszystkie klocki z patyka 1 na patyk 3, przy czym wolno Ci: brać tylko 1 klocek kłaść klocek mniejszy na większy

Przypadek wieży zbudowanej z dwóch klocków

2013-11-04

„ Wieże Hanoi” (1883) – rozwiązanie rekurencyjne D. Makowiec: A - Podstawowe techniki

algorytmiczne

Page 12: Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne 6 Algorytm to zestaw dobrze zdefiniowanych instrukcji, które

2017-10-18

12

Algorytmika, wykład iV

Danuta Makowiec:

[23]

Oblicz ile ruchów co najmniej musisz wykonać, aby przenieść wszystkie klocki z patyka 1 na patyk 3, przy czym wolno Ci: brać tylko 1 klocek kłaść klocek mniejszy na większy

Przypadek wieży zbudowanej z dwóch klocków

2013-11-04

„ Wieże Hanoi” (1883) – rozwiązanie rekurencyjne D. Makowiec: A - Podstawowe techniki

algorytmiczne

Algorytmika, wykład iV

Danuta Makowiec:

[24]

Oblicz ile ruchów co najmniej musisz wykonać, aby przenieść wszystkie klocki z patyka 1 na patyk 3, przy czym wolno Ci: brać tylko 1 klocek kłaść klocek mniejszy na większy

Przypadek wieży zbudowanej z trzech klocków

2013-11-04

„ Wieże Hanoi” (1883) – rozwiązanie rekurencyjne D. Makowiec: A - Podstawowe techniki

algorytmiczne

Page 13: Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne 6 Algorytm to zestaw dobrze zdefiniowanych instrukcji, które

2017-10-18

13

Algorytmika, wykład iV

Danuta Makowiec:

[25]

Przypadek wieży zbudowanej z trzech klocków

Oblicz ile ruchów co najmniej musisz wykonać, aby przenieść wszystkie klocki z patyka 1 na patyk 3, przy czym wolno Ci: brać tylko 1 klocek kłaść klocek mniejszy na większy

2013-11-04

„ Wieże Hanoi” (1883) – rozwiązanie rekurencyjne

Przenieśliśmy wieżę dwu-klockową z patyka 1 na patyk 2 korzystając z patyka 3. Przenieśliśmy największy klocek na jego miejsce patyk 3.

D. Makowiec: A - Podstawowe techniki algorytmiczne

Algorytmika, wykład iV

Danuta Makowiec:

[26]

Przypadek wieży zbudowanej z trzech klocków

Oblicz ile ruchów co najmniej musisz wykonać, aby przenieść wszystkie klocki z patyka 1 na patyk 3, przy czym wolno Ci: brać tylko 1 klocek kłaść klocek mniejszy na większy

2013-11-04

„ Wieże Hanoi” (1883) – rozwiązanie rekurencyjne

Page 14: Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne 6 Algorytm to zestaw dobrze zdefiniowanych instrukcji, które

2017-10-18

14

Algorytmika, wykład iV

Danuta Makowiec:

[27]

Przypadek wieży zbudowanej z trzech klocków

A co jeśli wieża zbudowana jest jest z 4 i więcej klocków?

Oblicz ile ruchów co najmniej musisz wykonać, aby przenieść wszystkie klocki z patyka 1 na patyk 3, przy czym wolno Ci: brać tylko 1 klocek kłaść klocek mniejszy na większy

2013-11-04

„ Wieże Hanoi” (1883) – rozwiązanie rekurencyjne

Przenieśliśmy wieżę dwu-klockową z patyka 2 na patyk 3 korzystając patyka 1

Strategia rekurencji D. Makowiec: A - złożoność obliczeniowa 28

Strategia rekurencji: rozwiąż dany problem zakładając, że znasz rozwiązanie jego prostszej wersji

„ Wieże Hanoi” (1883)

Oblicz, ile ruchów co najmniej musisz wykonać, aby przenieść wszystkie klocki z patyka 1 na patyk 3, przy czym wolno Ci: brać tylko 1 klocek

kłaść klocek mniejszy na większy

A co jeśli wieża zbudowana jest jest z 4 i więcej klocków?

Page 15: Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne 6 Algorytm to zestaw dobrze zdefiniowanych instrukcji, które

2017-10-18

15

Strategia rekurencji 29

Strategia rekurencji: rozwiąż dany problem zakładając, że znasz rozwiązanie jego prostszej wersji

„ Wieże Hanoi” (1883)

Oblicz, ile ruchów co najmniej musisz wykonać, aby przenieść wszystkie klocki z patyka 1 na patyk 3, przy czym wolno Ci: brać tylko 1 klocek

kłaść klocek mniejszy na większy

Lucas i legenda wieży Brahmy w Hanoi

D. Makowiec: A - Podstawowe techniki algorytmiczne

Algorytmika, wykład iV

2013-11-04

„ Wieże Hanoi” (1883) – przykład algorytmu rekukencyjnego

Ile ruchów trzeba wykonać?

D. Makowiec: A - Podstawowe techniki algorytmiczne

Czy to dużo?

1 dysk 1 ruch 2 dyski 3 ruchy 3 dyski 7 ruchów 4 dyski 15 ruchów 5 dysków 31 ruchów …………………………………………….. ……………………………………………… 20 dysków 1 048 575 ruchów 32 dyski 4 294 967 295 ruchów 64 dyski 18 446 744 073 709 551 615

Page 16: Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne 6 Algorytm to zestaw dobrze zdefiniowanych instrukcji, które

2017-10-18

16

Algorytmika, wykład iV

Rzędy wielkości 31 D. Makowiec: A - Podstawowe techniki

algorytmiczne

Nauczka: Sensowne porównania liczb to tylko takie, które są tego samego rzędu

Drzewo rekurencji – metoda szacowania złożoności algorytmów rekurencyjnych

32

HT(n,…)

HT(n-1,…) HT(n-1,…)

HT(n-2,…) HT(n-2,…) HT(n-2,…) HT(n-2,…)

HT(1,…) HT(1,…) HT(1,…) HT(1,…) HT(1,…) HT(1,…)

Czas obliczeń: T(n) =2*T(n-1) +c =4*T(n-2) +c =2i *T(n-i) +c =2n-1*T(1) +c =O(2n)

D. Makowiec: A - Podstawowe techniki algorytmiczne

Page 17: Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne 6 Algorytm to zestaw dobrze zdefiniowanych instrukcji, które

2017-10-18

17

Gdzie jest telefon? D. Makowiec: A - Podstawowe techniki algorytmiczne

34

Podstawowe techniki projektowania algorytmów

• Algorytm wyczerpujący (exhaustive lub brute-force) systematyczne sprawdzenie wszystkich możliwości

• Algorytm podziału i ograniczeń (branch-and-bound ) wyeliminowanie szeregu opcji algorytmu wyczerpującego

• Algorytm zachłanny (greedy) iteracyjne tworzenie rozwiązania w oparciu o aktualnie atrakcyjne alternatywy

• Algorytm dynamiczny (dynamic programming) składanie rozwiązań mniejszych problemów by uzyskać rozwiązanie problemu większego.

• Algorytm dziel-i-zwyciężaj ( divide-conquer-combine) rozkładanie problemu większego na mniejsze, które umiemy rozwiązać

• Algorytm maszynowego uczenia się (machine learning) korzysta z wiedzy zgromadzonej w poprzednich tego typu zdarzeniach

• Algorytm losowy (randomized, Monte Carlo ) realizacja algorytmu związana jest z eksperymentem losowym

Monte Carlo

wyczerpujący

zachłanny

D. Makowiec: A - Podstawowe techniki algorytmiczne

35

Page 18: Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne 6 Algorytm to zestaw dobrze zdefiniowanych instrukcji, które

2017-10-18

18

Programowanie dynamiczne

Bob Gra ROCKS: w każdym ruchu każdy gracz musi zdjąć albo 1 klocek z dowolnie wybranego stosu albo po 1 klocku z każdego stosu Wygrywa ten, kto zdejmuje ostatni klocek. Zaczyna Alicja.

Alicja

Czy istnieje tu strategia zwyciężania? Czy Alicja, jako startująca, ma jakieś korzyści?

36 D. Makowiec: A - Podstawowe techniki

algorytmiczne

Więcej informacji : rozdział 1 i 2 z podręcznika

Programowanie dynamiczne

Bob

Gra ROCKS: w każdym ruchu każdy gracz musi zdjąć albo 1 klocek z dowolnie wybranego stosu albo po 1 klocku z każdego stosu Wygrywa ten, kto zdejmuje ostatni klocek. Zaczyna Alicja.

Alicja

A: B:

Strategia zwycięstwa: ^ - ściągnij klocek z A < - ściągnij klocek z B \ - ściągnij oba klocki * - poddaj się

A B

37 D. Makowiec: A - Podstawowe techniki

algorytmiczne

Page 19: Algorytmika w bioinformatyce - fizdm.strony.ug.edu.pl · Algorytmika D. Makowiec: A - Podstawowe techniki algorytmiczne 6 Algorytm to zestaw dobrze zdefiniowanych instrukcji, które

2017-10-18

19

Programowanie dynamiczne

B: A:

38 D. Makowiec: A - Podstawowe techniki

algorytmiczne

Rozwiązanie powstaje z rozwiązania problemów mniejszych, przy czym w odróżnieniu od strategii rekurencyjnej, rozwiązanie problemów mniejszych składają się iteracyjnie na rozwiązanie problemu większego.