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.

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

Embed Size (px)

Citation preview

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.