Modele Obliczeń. Wykład 1 - Wprowadzenie. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski

Podobne dokumenty
Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Obliczenia inspirowane Naturą

O ALGORYTMACH I MASZYNACH TURINGA

Języki, automaty i obliczenia

Imię, nazwisko, nr indeksu

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia

Hierarchia Chomsky ego Maszyna Turinga

PRZEWODNIK PO PRZEDMIOCIE

Matematyka dyskretna Literatura Podstawowa: 1. K.A. Ross, C.R.B. Wright: Matematyka Dyskretna, PWN, 1996 (2006) 2. J. Jaworski, Z. Palka, J.

Maszyna Turinga języki

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

Matematyczne Podstawy Informatyki

Projektowanie i Analiza Algorytmów

Teoria obliczeń czyli czego komputery zrobić nie mogą

PROBLEMY NIEROZSTRZYGALNE

Teoria obliczeń i złożoność obliczeniowa

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

KARTA PRZEDMIOTU. 1. NAZWA PRZEDMIOTU: Struktury danych i algorytmy. 2. KIERUNEK: Matematyka. 3. POZIOM STUDIÓW: I stopnia

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17

Języki, automaty i obliczenia

O ISTOTNYCH OGRANICZENIACH METODY

Efektywność Procedur Obliczeniowych. wykład 5

Zasady analizy algorytmów

1. Analiza algorytmów przypomnienie

KARTA MODUŁU KSZTAŁCENIA

Przykład: Σ = {0, 1} Σ - zbiór wszystkich skończonych ciagów binarnych. L 1 = {0, 00, 000,...,1, 11, 111,... } L 2 = {01, 1010, 001, 11}

Obliczenia inspirowane Naturą

Języki, automaty i obliczenia

Maszyny Turinga. Jerzy Pogonowski. Funkcje rekurencyjne. Zakład Logiki Stosowanej UAM

Alan M. TURING. Matematyk u progu współczesnej informatyki

Kierunek i poziom studiów: Matematyka, studia I stopnia (licencjackie), rok I

Opis efektów kształcenia dla modułu zajęć

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

M T E O T D O ZI Z E E A LG L O G R O Y R TM

Wprowadzenie do złożoności obliczeniowej

Typy algorytmów losowych. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

PRZEWODNIK PO PRZEDMIOCIE

Opisy efektów kształcenia dla modułu

Matematyczne Podstawy Informatyki

Teoretyczne podstawy informatyki

JAO - Wprowadzenie do Gramatyk bezkontekstowych

Jaki język zrozumie automat?

Złożoność obliczeniowa. wykład 1

PRZEWODNIK PO PRZEDMIOCIE

Matematyczne Podstawy Informatyki

ID1SII4. Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne)

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17

Dopełnienie to można wyrazić w następujący sposób:

Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty. Literatura

Statystyka i eksploracja danych

Zaliczenie. Egzamin. lub. Wykład. Zaliczenie. Ćwiczenie. 3 zadania. Projekty. Ocena. Na ocenę

Teoretyczne podstawy informatyki

Algorytmy i struktury danych

IZ2ZSD2 Złożone struktury danych Advanced data structures. Informatyka II stopień ogólnoakademicki niestacjonarne

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.

ID2ZSD2 Złożone struktury danych Advanced data structures. Informatyka II stopień ogólnoakademicki stacjonarne

Języki formalne i automaty Ćwiczenia 9

JAKIEGO RODZAJU NAUKĄ JEST

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

PRZEWODNIK PO PRZEDMIOCIE

Podstawy Informatyki Maszyna Turinga

Logika stosowana. Ćwiczenia Złożoność obliczeniowa problemu spełnialności. Marcin Szczuka. Instytut Informatyki, Uniwersytet Warszawski

OBLICZALNOŚĆ I NIEOBLICZALNOŚĆ

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Bieżący sylabus w semestrze zimowym roku 2016/17

Algorytmy i Struktury Danych

Projektowanie i analiza algorytmów

KARTA MODUŁU KSZTAŁCENIA

KARTA PRZEDMIOTU. 1. NAZWA PRZEDMIOTU: Analiza zespolona. 2. KIERUNEK: Matematyka. 3. POZIOM STUDIÓW: I stopnia 4. ROK/ SEMESTR STUDIÓW: II/4

KARTA PRZEDMIOTU. 1. NAZWA PRZEDMIOTU: Elementy metod obliczeniowych. 2. KIERUNEK: Matematyka. 3. POZIOM STUDIÓW: I stopnia

Prawdopodobieństwo i statystyka

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Języki formalne i automaty Ćwiczenia 7

Maszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność

Kierunek: Informatyka. Przedmiot:

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Maszyna Turinga (Algorytmy Część III)

Grafy i sieci w informatyce - opis przedmiotu

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2015/2016. Forma studiów: Stacjonarne Kod kierunku: 11.

KARTA KURSU. Algorytmy, struktury danych i techniki programowania. Algorithms, Data Structures and Programming Techniques

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Informatyka 1. Złożoność obliczeniowa

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

KARTA KURSU. Kod Punktacja ECTS* 2

Załącznik 2. Symbol efektu obszarowego. Kierunkowe efekty uczenia się (wiedza, umiejętności, kompetencje) dla całego programu kształcenia

Tomasz M. Gwizdałła 2012/13

Klasyczne i kwantowe podejście do teorii automatów i języków formalnych p.1/33

Zadanie 1. Czy prawdziwa jest następująca implikacja? Jeśli L A jest językiem regularnym, to regularnym językiem jest też. A = (A, Q, q I, F, δ)

PRZEWODNIK PO PRZEDMIOCIE

Matematyczne Podstawy Informatyki

Języki formalne i automaty Ćwiczenia 1

CZYM SĄ OBLICZENIA NAT A URALNE?

Fizyka komputerowa(ii)

Efektywność algorytmów

Struktura danych. Sposób uporządkowania informacji w komputerze.

przedmiot kierunkowy (podstawowy / kierunkowy / inny HES) obowiązkowy (obowiązkowy / nieobowiązkowy) polski semestr I

Sylabus modułu: Matematyczne podstawy informatyki (kod modułu:03-mo2n-12-mpln)

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Projektowanie i analiza algorytmów

Transkrypt:

Modele Obliczeń Wykład 1 - Wprowadzenie Marcin Szczuka Instytut Matematyki, Uniwersytet Warszawski Wykład fakultatywny w semestrze zimowym 2014/2015 Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 1 / 22

Outline 1 Podstawowe informacje 2 Plan wykładu 3 Wprowadzenie do teorii obliczeń Języki formalne 4 Obliczalność i złożoność obliczeniowa 5 Literatura Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 2 / 22

Informacje podstawowe Prowadzący: dr Marcin Szczuka - szczuka@mimuw.edu.pl Konsultacje (tymczasowo?) w środy 10:15 12:00 pokój 1240 tel. 5544124 Zajęcia: Wykład - wtorki 8:30 w sali 5820 Ćwiczenia - wtorki 10:15 w sali 5820 UWAGA: chciałbym zamienić kolejność ćwiczeń i wykładu! Informacje dodatkowe Strona WWW zajęć (chwilowo prawie pusta) www.mimuw.edu.pl/~szczuka/modobl/ Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 3 / 22

Tryb i warunki zaliczania przedmiotu Wykład Ocena końcowa i zaliczenie zajęć jest wynikiem egzaminu pisemnego. Na wynik ostateczny ma także wpływ ocena z ćwiczeń. Ćwiczenia Ocena z ćwiczeń jest ustalana na podstawie zadania (zadań) zaliczeniowego. Zadanie zaliczeniowe będzie wymagało wykorzystania w praktyce wiedzy z zajęć. Potrzebna może się okazać podstawowa sprawność programistyczna. Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 4 / 22

Outline 1 Podstawowe informacje 2 Plan wykładu 3 Wprowadzenie do teorii obliczeń Języki formalne 4 Obliczalność i złożoność obliczeniowa 5 Literatura Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 5 / 22

Plan wykładu Część I - klasyczna teoria obliczeń 1 Wprowadzenie do teorii obliczeń. 2 Podstawowe modele - automat skończony i maszyna Turinga. 3 Model RAM, funkcje rekurencyjne i obliczalne. 4 Równoważność modeli, teza Churcha i jej konsekwencje. 5 Złożoność obliczeniowa, zadania trudne obliczeniowo. 6 Algorytmy aproksymacyjne i heurystyki. Część II - niestandardowe modele obliczeń 1 Algorytmy randomizowane, symulowane wyżarzanie i maszyny Boltzmanna. 2 Algorytmy genetyczne i programowanie ewolucyjne. 3 Modele sieci neuronowych: wsteczna propagacja, pamięci asocjacyjne i sieci samoorganizujące. 4 Nowe idee (jeśli czas pozwoli) : komputery kwantowe i molekularne, obliczenia na DNA. Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 6 / 22

Outline 1 Podstawowe informacje 2 Plan wykładu 3 Wprowadzenie do teorii obliczeń Języki formalne 4 Obliczalność i złożoność obliczeniowa 5 Literatura Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 7 / 22

Czym są modele obliczeń? Matematyka obliczeniowa vs. matematyka obliczeń. Jak opisać proces obliczania? Czym jest obliczenie? Co to jest algorytm? Co można, a czego nie da się policzyć przy współczesnym stanie wiedzy? Jak dużo kosztuje obliczenie i czy można ten koszt ograniczyć? Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 8 / 22

Obliczenie jako funkcja W teorii obliczeń mamy do czynienia z zadaniami skończonymi (dyskretnymi). Jeżeli zatem przyjmiemy, że wszystkie możliwe konfiguracje wejściowe i wszystkie możliwe konfiguracje wyjściowe ponumerujemy liczbami naturalnymi, to obliczenie jest funkcją: f : N N Pytanie: Jak wygląda klasa funkcji naturalnych, którą jesteśmy w stanie zrealizować za pomocą współczesnych komputerów? Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 9 / 22

Outline 1 Podstawowe informacje 2 Plan wykładu 3 Wprowadzenie do teorii obliczeń Języki formalne 4 Obliczalność i złożoność obliczeniowa 5 Literatura Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 10 / 22

Reprezentacja obliczeń - języki fomalne Najbardziej powszechny sposób reprezentowania problemów z zakresu teorii obliczeń polega na zastosowaniu opisu za pomocą języków formalnych. Zagadnienie wykonania obliczenia w tym ujęciu sprowadza się do odpowiedzi na pytanie: Czy jesteśmy w stanie sprawdzić czy podane słowo (ciąg znaków) należy do języka? Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 11 / 22

Języki formalne bardziej formalnie Alfabet Σ dowolny zbiór znaków wykorzystywanych w danym języku, np.: B = {0, 1} - alfabet dla systemu dwójkowego; C = {0, 1,..., 9} - alfabet dla systemu dziesiętnego; A = {a, b,..., z} - alfabet łaciński wspólny dla wielu języków europejskich. Słowo nad alfabetem Σ dowolny ciąg symboli z alfabetu Σ. Σ n zbiór słów o długości dokładnie n nad alfabetem Σ. Σ 0 = {ɛ}. Słowo ɛ nazywamy słowem pustym. Σ - zbiór wszystkich skończonych słów nad alfabetem Σ Σ = Σ n Pytanie: Jaką moc ma zbiór Σ? n=0 Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 12 / 22

Język, gramatyka i obliczenie Językiem nad alfabetem Σ nazywamy dowolny podzbiór L Σ czyli zbiór słów nad alfabetem Σ. Język można zadać explicite, przez wyliczenie wszystkich należących do niego słów. W praktyce języki zadaje się przez podanie zbioru reguł dla tworzenia słów. Taki zbiór reguł nazywamy gramatyką (formalną). W przypadku języków formalnych interesuje nas odpowiedź na pytanie: Czy dane słowo w Σ należy do języka L Σ? W rzeczywistości znacznie bardziej interesuje nas odpowiedź na równoważne, ale inaczej postawione pytanie: Jak skonstruować funkcję f L : Σ {0, 1} (algorytm obliczający tę funkcję), która dla zadanego słowa w Σ zwraca 1 gdy słowo w należy do języka L Σ i 0 w przeciwnym przypadku? Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 13 / 22

Zadanie rozpoznawania języka Problem decyzyjny: czy język jest rozpoznawalny? Dane: Język L Σ Szukane: Algorytm obliczający funkcję f L : Σ {0, 1} taką, że f L (w) = 1 w L. Trudność problemu rozpoznawania Nie każdy język jest równie łatwy (trudny) do rozpoznania. Na przykład dla dowolnej liczby l N zapisanej w systemie dwójkowym (lub dziesiętnym) sprawdź czy: l jest parzysta; l jest podzielna przez 13; l jest pierwsza. Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 14 / 22

Outline 1 Podstawowe informacje 2 Plan wykładu 3 Wprowadzenie do teorii obliczeń Języki formalne 4 Obliczalność i złożoność obliczeniowa 5 Literatura Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 15 / 22

Obliczalność i złożoność obliczeniowa Obliczalność Istnieją klasy zadań (języków, funkcji), o których wiadomo, że nie dadzą się w ogólności policzyć dla każdej konfiguracji danych wejściowych. Takie problemy (języki, funkcje) nazywamy nieobliczalnymi. Złożoność obliczeniowa Możemy charakteryzować różne rodzaje obliczeń (algorytmów, funkcji, języków) poprzez szacowanie kosztu czasowego (liczby elementarnych kroków w algorytmie) i pamięciowego (rozmiaru struktur danych, które musimy przechowywać) w stosunku do rozmiaru danych wejściowych. Charakterystyki złożoności przeważnie biorą pod uwagę rodzaj zależności (np. wielomianowy) między rozmiarem danych wejściowych, a rozmiarem (kosztem) obliczenia. Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 16 / 22

Obliczalność Pytanie: Jakie klasy funkcji (zadań, języków) można obliczyć korzystając z istniejących środków technicznych? Klasa funkcji praktycznie obliczalnych jest zawarta w klasie funkcji rekurencyjnych. Istnieją funkcje rekurencyjne, kórych obliczanie w praktyce przekracza nasze możliwości (funkcja Ackermanna, funkcja Sudana). W tym sensie są praktycznie nieobliczalne. Istnieją zadania, które zachowują się jeszcze gorzej. Nieobliczalne algorytmicznie funkcje są zwykle związane z problemami nierozstrzygalnymi. Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 17 / 22

Złożoność obliczeniowa Interesuje nas przede wszystkim złożoność czasowa, czyli liczba elementarnych kroków potrzebnych do wykonania obliczenia w zależności od rozmiaru danych wejściowych. Możemy wyróżnić kilka podstawowych typów zadań: Bardzo proste i proste złożoność stała, logarytmiczna, liniowa,... Względnie proste złożoność wielomianowa. Trudne, ale nie beznadziejne złożoność co najwyżej wykładnicza. Beznadziejne złożoność co najmniej wykładnicza. W przypadkach trudnych (ale nie beznadziejnych) możemy się posiłkować algorytmami aproksymacyjnymi, heurystykami i niestandardowymi modelami obliczeń. Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 18 / 22

Dzialania w sytuacjach trudnych Zadania, w których koszt czasowy jest co najwyżej wykładniczy będą nas szczególnie interesować. Będziemy badać własności tej klasy problemów. Czasem będziemy skłonni pójść na ustępstwa, pozwalając algorytmowi zwracać nieoptymalne (ale dopuszczalne) rozwiązania, w zamian za znaczące ograniczenie kosztu. Będziemy się także zajmować różnorodnymi nieklasycznymi modelami obliczeń, które pozwalają otrzymywać pożądane efekty przy wykorzystaniu np. inspiracji płynącej z nauk przyrodniczych (genetyka, neurofizjologia). Te modele jednak, są znacznie mniej regularne i trudniejsze do kompletnego opisania. Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 19 / 22

Outline 1 Podstawowe informacje 2 Plan wykładu 3 Wprowadzenie do teorii obliczeń Języki formalne 4 Obliczalność i złożoność obliczeniowa 5 Literatura Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 20 / 22

Literatura T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein Wprowadzenie do algorytmów (nowe wydanie) WNT, Warszawa, 2004. J.E. Hopcroft, J.D. Ullman Wprowadzenie do teorii automatów, języków i obliczeń. Wydawnictwo Naukowe PWN, Warszawa, 2003. C.H. Papadimitriou: Złożoność obliczeniowa. WNT, Warszawa, 2002. Z. Michalewicz: Algorytmy genetyczne + struktury danych = programy ewolucyjne. Wydanie 3, WNT, Warszawa, 2003. D.E. Goldberg: Algorytmy genetyczne i ich zastosowania. WNT, Warszawa, 2003. Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 21 / 22

Literatura c.d. S. Osowski Sieci neuronowe w ujęciu algorytmicznym. WNT, Warszawa, 1996. J. Hertz, A. Krogh, R.G. Palmer Wstęp do teorii obliczeń neuronowych. WNT, Warszawa, 1993. Ponadto bardzo wiele innych książek, artykułów i notatek do wykładów dostępnych w bibliotece i (przede wszystkim) w Internecie. Należy tylko brać poprawkę na różnorodność metod opisu używanych w zagadnieniach algorytmiki i złożoności obliczeniowej. Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 22 / 22