Modele algorytmiczne Maszyny proste, obwody logiczne. Spis treści. Plan wykładu spotkania tydzień po tygodniu
|
|
- Jadwiga Wróblewska
- 8 lat temu
- Przeglądów:
Transkrypt
1 , obwody logiczne, obwody logiczne soba prowadząca wykład i ćwiczenia: dr inż. Marek Sawerwain Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski M.Sawerwain@issi.uz.zgora.pl tel. (praca) : , pok. 328a -2, ul. prof. Z.Szafrana 2, Zielona Góra statnia zmiana: 8 listopada 2012 V1.1 1/ 55, obwody logiczne Spis treści Wprowadzenie Plan wykładu iologiczny model obliczeniowy Model obliczeń biologicznych/molekularnych Najważniejsze rezultaty Filtrujący model równoległy Maszyna licznikowa gdy trzeba coś policzyć co ma przecinek Złożoność obliczeniowa RM Już za tydzień na wykładzie V1.1 2/ 55 Wprowadzenie Plan wykładu Plan wykładu spotkania tydzień po tygodniu (1) Informacje o wykładzie, poprawność algorytmów (2) Poprawność algorytmów logika Hoarego (3) naliza złożoności kodu wysokiego i niskiego poziomu (4) maszyny proste, obwody logiczne (5) maszyna Turinga oraz rachunek lambda (6) utomaty deterministyczne (7) utomaty niedeterministyczne (8) Gramatyki regularne i bezkontekstowe V1.1 3/ 55 Wprowadzenie Plan wykładu Plan wykładu spotkania tydzień po tygodniu (9) Gramatyki i automaty ze stosem (10) lgorytmy równoległe (11) Klasy złożoności obliczeniowej (12) Pamięć logarytmiczna i wielomianowa (13) Problemy NP-zupełne (14) Wstęp do obliczeń kwantowych (15) Wybrane algorytmy kwantowe V1.1 4/ 55
2 , obwody logiczne Wprowadzenie Plan wykładu Plan wykładu 1. Model obliczeniowy 1.1 Przykłady modeli obliczeniowych 1.2 Hipoteza hurcha-turinga 2. iologiczny model obliczeń 2.1 na czym bazuje model biologiczny, 2.2 przykładowe modele, 2.3 permutacje i ścieżka Hamiltona. 3. bwody obliczeniowe: 3.1 bramki logiczne, 3.2 obwody logiczne, 3.3 uniwersalny zestaw bramek, 3.4 odwracalne obwody logiczne. 4. : 4.1 Maszyna licznikowa, 4.2, 4.3 Złożoność obliczeniowa. V1.1 5/ 55, obwody logiczne Wprowadzenie Plan wykładu Przydatne materiały Materiały wykorzystane podczas tworzenia tego wykładu, a także przydatne do dalszych studiów: 1. jak zwykle smerf Ważniak, służy pomocą: 2. Harel D., Rzecz o istocie informatyki, WNT, 2000, 3. symulator maszyny RM: 4. książka obejmująca zagadnienia biologicznego modelu obliczeniowego: Martyn mos, Theoretical and Experimental DN omputation, Springer-Verlag erlin Heidelberg, 2005, 5. a model kwantowy będzie omawiany na ostatnich wykładach. V1.1 6/ 55, obwody logiczne Przykładowe modele obliczeniowe: 1. maszyna Turinga (.Turing), 2. rachunek lambda (.hurch), 3. funkcje rekurencyjne (S.Kleene) 4. automaty, 5. obwody logiczne, 6. model biologiczny, 7. model kwantowy. ktualnie uważa się iż wszystkie modele są tak samo silne, w sensie rozwiązywania problemów, tzn. nie istnieje problem, który można rozwiązać w modelu ale nie można w pozostałych modelach. W przypadku modeli kwantowego i biologicznego, istnieją przykłady problemów, które można rozwiązać szybciej niż w pozostałych modelach. V1.1 7/ 55, obwody logiczne przykłady Trzy ważne modele obliczeń: Deterministyczny automat skończony jest opisany przez skończoną liczbę stanów i skończoną liczbę dopuszczalnych przejść pomiędzy podanymi stanami. Niektóre ze stanów oznacza się jako tzw. stany akceptujące. Wejściowy ciąg symboli jest odczytywany kolejno symbol po symbolu, oraz po odczytaniu każdego (I) symbolu wykonywane jest przejście do innego stanu. Po odczytaniu ostatniego symbolu, jeśli maszyna przejdzie do stanu akceptującego, to uważa się iż ciąg symboli został poprawnie rozpoznany. utomat ze stosem analogiczny jak poprzednio, jednakże nowym elementem jest dodanym stos, na którym można zapisać dowolną ilość symboli. W każdym (II) przejściu dodatkowo należy określić, czy nowy symbol powinien zostać zapisany na stosie bądź też odczytany z wierzchołka stosu. Maszyna Turinga idea podobna do automatu skończonego, jednakże dodano (III) nieskończoną taśmę, na której maszyna może zapisywać i odczytywać symbole, przemieszczając się po niej w lewą bądź w prawą stronę. V1.1 8/ 55
3 , obwody logiczne Hipoteza hurcha-turinga nim przejdziemy do przykładów modeli hoć istnieje wiele modeli obliczeniowych, to wszystkie mają pewną wspólną cechę: Hipoteza hurcha-turinga Każdy problem algorytmiczny, dla którego można znaleźć algorytm, i podać implementację tego algorytmu w dowolnym języku (modelu obliczeniowym), i realizować jego wykonanie na dowolnym komputerze przy nieograniczonych zasobach czasu oraz pamięci jest także rozwiązywalny przez maszynę Turinga. Powyższą hipotezę, można też podać w krótszej wersji: Hipoteza hurcha-turinga Każdy problem, który może być intuicyjnie uznany za obliczalny, jest rozwiązywalny przez maszynę Turinga. V1.1 9/ 55 iologiczny model obliczeniowy iologiczny model obliczeniowy materiał dodatkowy V1.1 10/ 55 iologiczny model obliczeniowy Łańcuch DN Łańcuch DN jest zbudowany z czterech zasad azotowych, adeniny i guaniny G (zasady purynowe) oraz cytozyny i tyminy T (zasady pirymidynowe), w przypadku niektórych wirusów zamiast tyminy występuje uracyl U. Zasady tworzą następujące pary: Struktura chemiczna DN: -T (-U) G- T- (U-) -G peracje wykonywane na łańcuchach DN to: synteza, rozplatanie, splatanie, łączenie łańcuchów. V1.1 11/ 55 Model obliczeń biologicznych/molekularnych Przykłady modeli obliczeń molekularnych ztery podstawowe (naturalne) modele obliczeń molekularnych: model filtrujący (filtering model), model łączący (splicing model), model konstruktywny (constructive model), model membranowy (membrane model), model p-systemów (odmiana modelu membranowego). V1.1 12/ 55
4 Najważniejsze rezultaty Najważniejsze rezultaty Problem io kroki Nitki DN Directed Hamiltonian path (n) n! ontact network satisfiability (s) 2 n ircuit satisfiability (s) 2 n MX-ircuit-Satisfiability (s) 2 n Regular-ircuit-Satisfiability (s) 2 n 1-tape NTM (t) 2 N ircuit satisfiability via 1-NTM Θ(s 2 ) 2 n ellular utomata 1 t S PSPE (S) 2 2S Polynomial Hierarchy (s) 2 n znaczenia: n liczba wierzchołków, zmiennych, s liczba bramek, t czas, N liczba bitów niedeterministycznych, S wielkość przestrzeni, V1.1 13/ 55 Filtrujący model równoległy Filtrujący model równoległy Podstawowe równoległe operacje w modelu filtrującym: remove(u, {S i }) operacja usuwa ze zbioru U dowolny łańcuch znaków zawierający co najmniej jedno wystąpienie podciągu S i, union({u i }, U) operacja tworzy zbiór U będący sumą wszystkich zbiorów U i, copy(u, {U i }) operacja powiela zbiór U na U i kopii, select(u) operacja losowo wybiera element ze zbioru U, jeśli zbiór U jest pusty, to zwrócony zostanie pusty element. V1.1 14/ 55 Filtrujący model równoległy, obwody logiczne Generowanie permutacji Utworzenie zbioru P n zawierającego wszystkie permutacje liczb całkowitych {1, 2,..., n}. Wejście: Zbiór U zawierający wszystkie łańcuchy o postaci p 1 i 1 p 2 i 2... p n i n, gdzie j, p j jednoznacznie określa pozycję j dla każdego i j w 1, 2,..., n. znacza to że każdy ciąg znaków składa się z n liczb całkowitych z wieloma wystąpieniami tej samej liczby całkowitej. 1: for j = 1 to n - 1 do do 2: copy(u, {U 1, U 2,..., U n }) 3: for i = 1, 2,..., n and all k > j do in parallel 4: remove(u i, {p j i, p k i}) 5: end for 6: union({u 1, U 2,..., U n }, U) 7: end for 8: P n := U Złożoność: (n) dla czasu równoległego. V1.1 15/ 55 Filtrujący model równoległy Ścieżka Hamiltona Wejście: Zbiór wejściowy U oraz zbiór P n wszystkich permutacji liczb całkowitych od 1 do n podobnie jak w przypadku permutacji. Liczba i na pozycji p k w jednej z otrzymanych permutacji posiada następującą interpretację: łańcuch znaków reprezentuje jedno z rozwiązań, gdzie wierzchołek i jest odwiedzany w kroku k. 1: for 2 i n 1 and j, k such that (j, k) / E do in parallel 2: remove(u, {jp i k}) 3: end for 4: select(u) Złożoność: Stały czas równoległy w zależności od P n. V1.1 16/ 55
5 bwody obliczeniowe albo obwody logiczne V1.1 17/ 55 Istnieje alfabet = {0, 1}, dla którego obwody logiczne obliczają funkcje {0, 1} n {0, 1} m. Podstawowe elementy, czyli bramki logiczne jakie są używane w obwodach są reprezentowane przez następujące funkcje: 1. : 2, (bramka koniunkcji) zdefiniowana przez warunek (x 1, x 2 ) = 1 x 1 = x 2 = 1, 2. : 2, (bramka alternatywy) określona przez warunek (x 1, x 2 ) = 0 x 1 = x 2 = 0, 3. :, (bramka negacji) zdefiniowana przez relację x = 1 x. Uzupełnieniem może być bramka alternatywy wykluczającej (XR): 1. : 2, (bramka XR) zdefiniowana przez warunek (x 1, x 2 ) = 1 x 1 = 0, x 2 = 1 x 1 = 1, x 2 = 0. V1.1 18/ 55 ramki logiczne Przykłady symboli dla kilku bramek logicznych: R2 ND2 NT NR2 NND2 XR2 1 FNUT 2 V1.1 19/ 55 Podstawowe bramki logiczne Trzy podstawowe bramki logiczne do budowy obwodów logicznych: R2 ND2 NT R ND NT V1.1 20/ 55
6 bwód logiczny bwód logiczny jest reprezentowany przez skierowany graf acykliczny, gdzie węzły zawierają zmiennej wejściowe, zmienne wyjściowe oraz bramki logiczne. W dowolnym węźle wejściowym nie krawędzi przychodzących, i podobnie w dowolnym węźle wyjściowym nie ma krawędzi wychodzących. W przypadku obwodów logicznych krawędzie grafu są nazywane także połączeniami. Liczba węzłów w danym obwodzie determinuje także złożoność obwodu logicznego. bwód logiczny o n zmiennych wejściowych oznaczonych x 1, x 2,..., x n i m wyjściowych y 1, y 2,..., y n w określa funkcję n m, gdzie zarówno dane wejściowe oraz wyjściowe są kodowane za pomocą wartości zero oraz jedność, a każda funkcja podstawowa, jak funkcja koniunkcji, alternatywy oraz negacji jest obliczana przez odpowiednie bramki. V1.1 21/ 55 Półsumator jako funkcja 2 2 Półsumator można potraktować jako funkcję f : 2 2, określoną w następujący sposób: 1. f (0, 0) = (0, 0), 2. f (0, 1) = (0, 1), 3. f (1, 0) = (0, 1), 4. f (1, 1) = (1, 0). gólnie f (x 1, x 2 ) = (y 1, y 2 ) oraz y 1 = (x 1 + x 2 ) mod 2, a wartość y 2 reprezentuje bit przeniesienia, y 2 = (x 1 x 2 ). V1.1 22/ 55 Półsumator XR2 output carry ND2 Tabela prawdy dla półsumatora, oraz bity wejściowe, natomiast to wartość sumy natomiast oznacza bit przeniesienia V1.1 23/ 55 Jednobitowy pełny sumator output carry 1 DDR DDR R2 pis działania sumatora jednobitowego: = 1, = + ( ) 1 także tabela prawdy: V1.1 24/ 55
7 1/2 + 1 = "4 bits full adder" (0) (3:0) (3:0) (0) Full dder (3:0) (0) Pełny czterobitowy układ sumujący, zbudowanych pełnych sumatorów jednobitowych, oznacza przeniesienie, oraz to wartości bitowe, które są dodawane. (1) (1) (2) (2) Full dder Full dder (1) (2) (3) (3) Full dder (3) V1.1 25/ 55 Zestawy bramek uniwersalnych Tw. E.Posta o zupełnym zbiorze funkcji logicznych Dowolna funkcja n m może zostać obliczona za pomocą obwodu logicznego zbudowanego z bramek koniunkcji, alternatywy oraz negacji. Szkic dowodu: Zbiór bramek S nazywamy uniwersalnym, jeżeli wszystkie funkcje n m mogą być zrealizowane za pomocą bramek ze zbioru S. Należy pokazać że and, or, not jest uniwersalnym zestawem bramek. Po pierwsze wszystkie funkcje n m są obliczalne ponieważ można utworzyć m pomocniczych funkcji obliczających wartość pojedynczego bitu. Łatwo wykazać iż wartość funkcji a : x 1 x 2 x 3 wynosi 0 jeśli x 1 = x 2 = x 3 = 0, co można rozszerzyć na dowolną ilość zmiennych. nalogicznie funkcja b : x 1 x 2 x 3 przyjmuje 1, jeśli x 1 = x 2 = x 3 = 1. V1.1 26/ 55, obwody logiczne Zestawy bramek uniwersalnych Szkic dowodu cd: Dla każdego a = (a 1, a 2,..., a n ) n można określić funkcję M a taką, że M a (x 1, x 2,..., x n ) = φ 1 (x 1 ) φ 2 (x 2 )... φ n (x n ), gdzie φ i (x i ) = 1, jeśli a i = 0 oraz φ i (x i ) = x i, jeśli a i = 1. o oznacza iż funkcja M a może zostać skonstruowana za pomocą bramek and oraz not. Wiadomo też z poprzedniego przykładu M a (x 1, x 2,..., x n ) = 1 i ψ i (x i ) = 1. Ponieważ, { xi, jeśli a φ i (x i ) = i = 1, x i, jeśli a i = 0, a więc φ i (x i ) = 1 x i = a i. Pozwala to stwierdzić, że M a jest funkcją charakterystyczną zbioru {a} : M a (x) = 1 x = a. Stosując funkcje charakterystyczne M a łatwo skonstruować dowolną funkcję f : f = M a1 M a2... M ak, gdzie elementy a 1, a 2,..., a k ze zbioru n przyjmują wartość 1 dla danej f. V1.1 27/ 55, obwody logiczne ramki odwracalne ramki odwracalne realizują funkcje n n, liczba bitów wejściowych i wyjściowych jest taka sama. Istnieje (2 n )! bramek odwracalnych. Przykład bramki odwracalnej tzw. bramki Toffoliego T : 3 3, gdzie T (x 1, x 2, x 3 ) = (x 1, x 2, x 3 x 1 x 2 ). dwa pierwsze bity pozostawiane są bez mian, natomiast bit trzeci jest negowany, jeśli dwa pierwsze przyjmują wartość 1. X X X X Y Y Y Y Z X XY Z Z XY Z (a) (b) V1.1 28/ 55
8 bwody odwracalne bwód odwracalny, to obwód logiczny złożony z bramek odwracalnych, taki obwód także jest zdolny do realizacji funkcji logicznych, co więcej, także istnieją uniwersalne zbiory bramek, wiadomo także iż: 1. bramki negacji są odwracalne, 2. choć bramki koniunkcji nie są odwracalne, to można je za symulować za pomocą bramki T, w następujący sposób: T (x 1, x 2, 0) = (x 1, x 2, x 1 x 2 ) 3. korzystając z prawa x 1 x 2 = ( x 1 x 2 ), to bramkę alternatywy można zastąpić koniunkcją oraz negacją, 4. wyjście zwielokrotnione może być symulowane za pomocą NT : (x 1, x 2 ) = (x 1, x 1 x 2 2) w następujący sposób NT (x 1, 0) = (x 1, x 1 ). ramka Toffoliego jest uniwersalną bramką odwracalną. V1.1 29/ 55 bwody odwracalne przykłady Półsumator jako obwód odwracalny (zastosowano bramkę NT oraz X (bramka negacji)): a a b x NT(a b) Schemat obwodu, dla pełnego sumatora, gdzie nie następuje modyfikacja badanych stanów a i b: a a b X X b 0 c 0 d Wadą jest konieczność stosowania dodatkowego bitu który decyduje o przywróceniu poprawnej wartości dla bitu b. V1.1 30/ 55, obwody logiczne V1.1 31/ 55 Maszyna licznikowa Definicja maszyny licznikowej Maszyna licznikowa jest oparta o cztery typy instrukcji. Pierwsza to przypisanie zera do zmiennej: X 0 albo x:=0. Drugi typ instrukcji to zwiększenie wartości zmiennej o jedność i przypisanie wyniku do tej samej bądź innej zmiennej: X Y + 1 Dopełnieniem tego typu instrukcji jest zmniejszenie wartości o jedność: X Y 1 statnim typem instrukcji jest instrukcja skoku, jeśli zmienna jest równa zeru: jeśli X = 0 skocz-do ETY. Jeśli w programie nie ma etykiety o podanej nazwie, to program przerwie działanie. Koniec nastąpi również, gdy zostanie wykonana ostatnia instrukcja w programie. V1.1 32/ 55
9 Maszyna licznikowa Dodawanie liczb 1: Z := 0; 2: _liczymy_dalej: 3: if Y = 0 then goto _prawie_koniec; 4: X := X + 1; 5: Y := Y - 1; 6: if Z = 0 then goto _liczymy_dalej; 7: _prawie_koniec: 8: Z := X + 1; 9: Z := Z - 1; V1.1 33/ 55 Maszyna licznikowa dejmowanie liczb 1: Z := 0; 2: _liczymy_dalej: 3: if Y = 0 then goto _prawie_koniec; 4: X := X - 1; 5: Y := Y - 1; 6: if Z = 0 then goto _liczymy_dalej; 7: _prawie_koniec 8: Z := X + 1; 9: Z := Z - 1; V1.1 34/ 55 Maszyna licznikowa Mnożenie dwóch liczb 1: U := 0; 2: Z := 0; 3: _: 4: if X = 0 then goto _L; 5: X := X - 1; 6: V := Y + 1; 7: V := V - 1; 8: _: 9: if V = 0 then goto _; 10: V := V - 1; 11: Z := Z + 1; 12: if U = 0 then goto _; V1.1 35/ 55, obwody logiczne Maszynę o dostępie swobodnym (Random ccess Machine RM) została zaproponowana w połowie lat czterdziestych XX wieku przez Johna von Neumanna we współpracy z Johnem Williamem Mauchly i J. Presper Eckertem. powstała jako narzędzie edukacje a celem było zrozumieniu zasad działania pierwszych maszyn elektronowych tj. maszyn EDV oraz ENI. Główne elementy maszyny RM 1. taśma wejściowa (LI ), z której odczytywane są dane wejściowe, 2. taśma wyjściowej (L), gdzie umieszczane są wyniki, 3. pamięć o dostępie swobodnym, poszczególne komórki są adresowane przez i, i = 0, 1, 2,..., wartość z i-tej komórki to c i albo c(i). 4. lista n instrukcji stanowiąca program, umieszczone w odrębnej przestrzeni niż RM, Π = (π 1, π 2,..., π n. ) Istniej też licznik rozkazów, wskazujący aktualnie wykonywaną instrukcję. V1.1 36/ 55
10 Schemat maszyny RM Lista wejściowa... kumulator Licznik rozkazów Program Pamięć operacyjna Lista wyjściowa V1.1 37/ 55 Instrukcje maszyny RM W skład ciągu instrukcji programu Π wchodzą min. następujące operacje: LD op RED op STRE op WRITE op DD op SU op MULT op DIV op JUMP ety JFTZ ety JZER ety HLT gdzie op może przyjmować postać: 1. liczby całkowitej DD =3, 2. wartości adresującej pamięć RM MULT 3, 3. wartości adresującej pamięć RM pośrednio DIV *5. Natomiast instrukcja JUMP ety, oznacza przesunięcie licznika instrukcji do wskazanej etykiety. V1.1 38/ 55 Techniki adresowania dresowanie natychmiastowe 10 load =10 c0 c1 c2 c3 c4 c5 c6... dresowanie bezpośrednie load c0 c1 c2 c3 c4 c5 c6... dresowanie pośrednie load c0 c1 c2 c3 c4 c5 c6... V1.1 39/ 55, obwody logiczne Spis instrukcji maszyny RM LP. Instrukcja Znacznie 1 LD =a c(0) a LD n c(0) c(n) LD *n c(0) c(c(n)) 2 STRE n c(n) c(0) STRE *n c(c(n)) c(0) 3 DD =a c(0) c(0) + a DD n c(0) c(0) + c(n) DD *n c(0) c(0) + c(c(n)) 4 SU =a c(0) c(0) a 5 MULT =a c(0) c(0) a 6 DIV =a c(0) c(0) div a 7 RED n c(0) LI i RED *n c(c(n)) LI i 8 WRITE =a L i a WRITE n L i c(n) WRITE *n L i c(c(n)) 9 JUMP ety II ety 10 JFTZ ety if c(0) > 0 then II ety 11 JMPZ ety if c(0) = 0 then II ety 12 HLT zatrzymanie pracy maszyny V1.1 40/ 55
11 Największy wspólny dzielnik f u n c t i o n gcd ( a : i n t e g e r ; b : i n t e g e r ) : i n t e g e r ; v a r c : i n t e g e r ; b e g i n w h i l e b <> 0 do b e g i n i f a >= b then a := a b e l s e b e g i n c := b ; b := a ; a := c ; end ; end ; gcd := a ; end ; V1.1 41/ 55 Największy wspólny dzielnik początek. i n s i z e 20. o u t s i z e 20. r a m s i z e 20. i n l i s t 8,6,0,0. s t a r t read 1 read 2 4 : l o a d 2 jmpz 19 sub 1 j o t z 12 l o a d 1 sub 2 s t o r e 1 jump : l o a d 2 V1.1 42/ 55 Największy wspólny dzielnik koniec s t o r e 3 l o a d 1 s t o r e 2 l o a d 3 s t o r e 1 jump : w r i t e 1 h a l t. end V1.1 43/ 55 Wartość 5 n read 1 ; o d c z y t a n i e n l o a d 1 ; i z a p i s do akumulatora jmpz L2 ; j e ś l i n=0 i d z i e m y do L2 l o a d =5 ; podstawa L1 : s t o r e 2 ; wynik c z ę ś c i o w y l o a d 1 ; l i c z n i k p ę t l i sub =1 ; z m n i e j s z e n i e l i c z n i k a s t o r e 1 ; p ę t l i jmpz L3 l o a d 2 ; wynik c z ę ś c i o w y mult =5 ; j e s t mnożony p r z e z p i ę ć jump L1 ; skok na początek p ę t l i mnożącej L2 : w r i t e =1 ; wynik gdy wykładnik równy zero h a l t L3 : w r i t e 2 ; wynik gdy wykładnik większy od zera h a l t V1.1 44/ 55
12 , obwody logiczne Wartość n n z wykładu M.Szczuka/MIMUW/Model bliczeń Zadanie to obliczenie wartości funkcji (n) = n n, i jeśli n = 0 to f (0) = n. Program napisany w języku wysokiego poziomu przedstawia się następująco: c (1):= n ; i f ( n = 0) r e t u r n 0 ; e l s e b e g i n c (2):= c ( 1 ) ; c (3):= c ( 1 ) 1 ; while c ( 3 ) > 0 do b e g i n c ( 2 ) = c ( 2 ) c ( 1 ) ; c ( 3 ) = c ( 3 ) 1 ; end ; r e t u r n c ( 2 ) ; end ; V1.1 45/ 55, obwody logiczne Wartość n n Za wykładem M.Szczuka/MIMUW/Model bliczeń.. s i z e 20,20,20. i n l i s t 4,0,0,0. s t a r t read 1 ; wczytanie n do c ( 1 ) l o a d 1 ; w c z y t a n i e n do ; akumulatora j o t z pos ; i f ( c ( 1 ) = 0 ) w r i t e =0 ; then r e t u r n ( 0 ) jump e n d i f ; skok na koniec programu pos : l o a d 1 ; e l s e c ( 1 ) = n do ; akumulatora s t o r e 2 ; c ( 2 ) := c ( 1 ) sub =1 ; c ( 0 ) := c ( 0 ) 1 s t o r e 3 ; c ( 3 ) := c ( 1 ) 1 V1.1 46/ 55 Wartość n n w h i l e : l o a d 3 ; c ( 3 ) do akumulatora j o t z c o n t i n u e ; w h i l e c ( 3 ) > 0 jump endwhile ; gdy c ( 3 ) = 0 zakoncz continue : load 2 ; c ( 2 ) do akumulatora mult 1 ; c ( 0 ) := c ( 2 ) c ( 1 ) s t o r e 2 ; c ( 2 ) := c ( 2 ) c ( 1 ) l o a d 3 ; c ( 0 ) := c ( 2 ) sub =1 ; c ( 0 ) := c ( 0 ) 1 s t o r e 3 ; c ( 3 ) := c ( 3 ) 1 endwhile : w r i t e 2 ; r e t u r n ( r2 ) e n d i f : h a l t ; k o n i e c programu. end V1.1 47/ 55 Suma elementów na liście wejściowej początek. i n s i z e 20. o u t s i z e 20. r a m s i z e 20. i n l i s t 1 0, 1, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1 0. s t a r t read 1 read 2 read 3 read 4 l o a d 1 add 2 V1.1 48/ 55
13 Suma elementów na liście wejściowej i koniec p e t l a 1 : sub 2 s t o r e 1 jmpz k o n i e c read 3 l o a d 3 add 4 s t o r e 4 l o a d 1 jump p e t l a 1 koniec : w r i t e 4 h a l t. end V1.1 49/ 55 Silnia wg. maszyny RM Początek,. i n s i z e 20. o u t s i z e 20. r a m s i z e 20. i n l i s t 10,1,1,1. s t a r t read 1 read 2 read 3 read 4 l o a d 1 V1.1 50/ 55 Silnia wg. maszyny RM oraz główna część p e t l a 1 : s t o r e 1 jmpz k o n i e c l o a d 3 mult 4 s t o r e 4 l o a d 3 add 2 s t o r e 3 l o a d 1 sub 2 jump p e t l a 1 koniec : w r i t e 4 h a l t. end V1.1 51/ 55, obwody logiczne gdy trzeba coś policzyć co ma przecinek P = πr 2 Program do obliczania wartości pola koła dla maszyny RM:. i n s i z e 20. o u t s i z e 20. r a m s i z e 20. i n l i s t 5,314,100,0. s t a r t read 0 read 1 read 2 mult 0 mult 1 w r i t e 0 d i v 2 w r i t e 0 h a l t. end V1.1 52/ 55
14 Złożoność obliczeniowa RM Złożoność obliczeniowa RM Model maszyny RM jest dość nierealistyczny, gdyż należy podkreślić że posiadamy nieskończenie (ale przeliczalnie) wiele rejestrów, które są w stanie przechowywać dowolnie duże liczby całkowite, bez wskazywania dodatkowych kosztów dotyczących: odczytu, zapisu oraz realizacji przetwarzania. Dlatego bardziej realne oszacowanie złożoności obliczeniowej wymaga określenia kosztu wykonywania poszczególnych operacji. Koszty te są uzależnione od rozmiaru argumentu. Przyjmuje się, że koszt przetworzenia liczby całkowitej n jest równy jej długości w zapisie pozycyjnym i wynosi log n. Przykłady dla wybranych instrukcji RM: 1. add 2 2 log(c(0)) + log(c(1)) 2. mult =4 2 log(c(0)) + 2 bin=11 3. load *5 log(c(3)) + log(c(c(3))) 4. store 7 log(c(0)) + 3 bin=111 V1.1 53/ 55 Złożoność obliczeniowa RM Złożoność obliczeniową RM można łatwo określić jako sumę kosztów wszystkich wykonanych instrukcji w danym programie Π. Natomiast złożoność pamięciową, czyli jaki obszar pamięci RM został wykorzystany podczas pracy programu można zapisać w następujący sposób: max P log( c(i) ), i gdzie P to licznik instrukcji w maszynie RM. Przykładowo realizacja funkcji n n dla maszyny RM posiada następujące złożoności: 1. (n 2 log n) złożoność czasowa, 2. (n log n) złożoność pamięciowa. V1.1 54/ 55 Już za tydzień na wykładzie W następnym tygodniu między innymi: 1. Maszyna Turinga 2. Uniwersalność maszyny Turinga 3. Rachunek lambda 4. Logika i liczby w rachunku lambda 5. Rekurencja w rachunki lambda punkty stałe 6. Kombinatory Dziękuje za uwagę!!! V1.1 55/ 55
Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer
Realizacja algorytmu przez komputer Wstęp do informatyki Wykład UniwersytetWrocławski 0 Tydzień temu: opis algorytmu w języku zrozumiałym dla człowieka: schemat blokowy, pseudokod. Dziś: schemat logiczny
Bardziej szczegółowoStruktura i działanie jednostki centralnej
Struktura i działanie jednostki centralnej ALU Jednostka sterująca Rejestry Zadania procesora: Pobieranie rozkazów; Interpretowanie rozkazów; Pobieranie danych Przetwarzanie danych Zapisywanie danych magistrala
Bardziej szczegółowoObliczenia inspirowane Naturą
Obliczenia inspirowane Naturą Wykład 01 Modele obliczeń Jarosław Miszczak IITiS PAN Gliwice 05/10/2016 1 / 33 1 2 3 4 5 6 2 / 33 Co to znaczy obliczać? Co to znaczy obliczać? Deterministyczna maszyna Turinga
Bardziej szczegółowoJęzyki, automaty i obliczenia
Języki, automaty i obliczenia Wykład 10: Maszyny Turinga Sławomir Lasota Uniwersytet Warszawski 29 kwietnia 2015 Plan Maszyny Turinga (Niedeterministyczna) maszyna Turinga M = (A, Q, q 0, F, T, B, δ) A
Bardziej szczegółowoZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW
ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW MASZYNY O DOSTEPIE SWOBODNYM (RAM) Bartosz Zieliński Katedra Fizyki Teoretycznej i Informatyki Zima 2011-2012 INSTRUKCJE MASZYNY RAM Instrukcja Argument Znaczenie READ
Bardziej szczegółowoObliczenia inspirowane Naturą
Obliczenia inspirowane Naturą Wykład 01 Od maszyn Turinga do automatów komórkowych Jarosław Miszczak IITiS PAN Gliwice 03/03/2016 1 / 16 1 2 3 Krótka historia Znaczenie 2 / 16 Czego dowiedzieliśmy się
Bardziej szczegółowoArchitektura komputerów Wykład 2
Architektura komputerów Wykład 2 Jan Kazimirski 1 Elementy techniki cyfrowej 2 Plan wykładu Algebra Boole'a Podstawowe układy cyfrowe bramki Układy kombinacyjne Układy sekwencyjne 3 Algebra Boole'a Stosowana
Bardziej szczegółowoArytmetyka liczb binarnych
Wartość dwójkowej liczby stałoprzecinkowej Wartość dziesiętna stałoprzecinkowej liczby binarnej Arytmetyka liczb binarnych b n-1...b 1 b 0,b -1 b -2...b -m = b n-1 2 n-1 +... + b 1 2 1 + b 0 2 0 + b -1
Bardziej szczegółowoPodstawowe operacje arytmetyczne i logiczne dla liczb binarnych
1 Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie
Bardziej szczegółowoInformacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia
Informacja w perspektywie obliczeniowej Informacje, liczby i obliczenia Cztery punkty odniesienia (dla pojęcia informacji) ŚWIAT ontologia fizyka UMYSŁ psychologia epistemologia JĘZYK lingwistyka nauki
Bardziej szczegółowoModele Obliczeń. Wykład 3 - Maszyny RAM i funkcje rekurencyjne. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski
Modele Obliczeń Wykład 3 - Maszyny RAM i funkcje rekurencyjne Marcin Szczuka Instytut Matematyki, Uniwersytet Warszawski Wykład fakultatywny w semestrze zimowym 2008/2009 Marcin Szczuka (MIMUW) Modele
Bardziej szczegółowoPROBLEMY NIEROZSTRZYGALNE
PROBLEMY NIEROZSTRZYGALNE Zestaw 1: T Przykład - problem domina T Czy podanym zestawem kafelków można pokryć dowolny płaski obszar zachowując odpowiedniość kolorów na styku kafelków? (dysponujemy nieograniczoną
Bardziej szczegółowoArchitektura komputerów wer. 7
Architektura komputerów wer. 7 Wojciech Myszka 2013-10-29 19:47:07 +0100 Karty perforowane Kalkulator IBM 601, 1931 IBM 601 kalkulator Maszyna czytała dwie liczby z karty, mnożyła je przez siebie i wynik
Bardziej szczegółowoZłożoność obliczeniowa zadania, zestaw 2
Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze
Bardziej szczegółowoElementy Teorii Obliczeń
Wykład 2 Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 10 stycznia 2009 Maszyna Turinga uwagi wstępne Maszyna Turinga (1936 r.) to jedno z najpiękniejszych i najbardziej intrygujacych
Bardziej szczegółowoPodstawy Informatyki Maszyna Turinga
Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Czym jest Programowanie maszyny Turinga Teza Churcha-Turinga 2 3 4 Czym jest Programowanie maszyny Turinga Teza Churcha-Turinga,
Bardziej szczegółowoAlgorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.
Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące. Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/
Bardziej szczegółowoO ALGORYTMACH I MASZYNACH TURINGA
O ALGORYTMACH I MASZYNACH TURINGA ALGORYTM (objaśnienie ogólne) Algorytm Pojęcie o rodowodzie matematycznym, oznaczające współcześnie precyzyjny schemat mechanicznej lub maszynowej realizacji zadań określonego
Bardziej szczegółowoArchitektura komputerów wer. 3
Architektura komputerów wer. 3 Wojciech Myszka, Maciej Panek listopad 2014 r. Karty perforowane Kalkulator IBM 601, 1931 IBM 601 kalkulator Maszyna czytała dwie liczby z karty, mnożyła je przez siebie
Bardziej szczegółowoMaszyna Turinga (Algorytmy Część III)
Maszyna Turinga (Algorytmy Część III) wer. 9 z drobnymi modyfikacjami! Wojciech Myszka 2018-12-18 08:22:34 +0100 Upraszczanie danych Komputery są coraz szybsze i sprawniejsze. Na potrzeby rozważań naukowych
Bardziej szczegółowoMatematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Automat ze stosem Automat ze stosem to szóstka
Bardziej szczegółowoUkłady arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011
Układy arytmetyczne Joanna Ledzińska III rok EiT AGH 2011 Plan prezentacji Metody zapisu liczb ze znakiem Układy arytmetyczne: Układy dodające Półsumator Pełny sumator Półsubtraktor Pełny subtraktor Układy
Bardziej szczegółowoArchitektura komputerów
Architektura komputerów Tydzień 4 Tryby adresowania i formaty Tryby adresowania Natychmiastowy Bezpośredni Pośredni Rejestrowy Rejestrowy pośredni Z przesunięciem stosowy Argument natychmiastowy Op Rozkaz
Bardziej szczegółowoTopologia zbioru Cantora a obwody logiczne
Adam Radziwończyk-Syta Michał Skrzypczak Uniwersytet Warszawski 1 lipca 2009 http://students.mimuw.edu.pl/~mskrzypczak/dokumenty/ obwody.pdf Zbiór Cantora Topologia Definicja Przez zbiór Cantora K oznaczamy
Bardziej szczegółowoKATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204
Opracował: prof. dr hab. inż. Jan Kazimierczak KATEDA INFOMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 204 Temat: Hardware'owa implementacja automatu skończonego pełniącego
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 9
Języki formalne i automaty Ćwiczenia 9 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Maszyna Mealy'ego... 2 Maszyna Moore'a... 2 Automat ze stosem... 3 Konwersja gramatyki bezkontekstowej
Bardziej szczegółowoImię, nazwisko, nr indeksu
Imię, nazwisko, nr indeksu (kod) (9 punktów) Wybierz 9 z poniższych pytań i wybierz odpowiedź tak/nie (bez uzasadnienia). Za prawidłowe odpowiedzi dajemy +1 punkt, za złe -1 punkt. Punkty policzymy za
Bardziej szczegółowoTeoria obliczeń i złożoność obliczeniowa
Teoria obliczeń i złożoność obliczeniowa Kontakt: dr hab. inż. Adam Kasperski, prof. PWr. pokój 509 B4 adam.kasperski@pwr.wroc.pl materiały + informacje na stronie www. Zaliczenie: Egzamin Literatura Problemy
Bardziej szczegółowoElementy logiki. Algebra Boole a. Analiza i synteza układów logicznych
Elementy logiki: Algebra Boole a i układy logiczne 1 Elementy logiki dla informatyków Wykład III Elementy logiki. Algebra Boole a. Analiza i synteza układów logicznych Elementy logiki: Algebra Boole a
Bardziej szczegółowoHierarchia Chomsky ego Maszyna Turinga
Hierarchia Chomsky ego Maszyna Turinga Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną gdzie: G = V skończony zbiór
Bardziej szczegółowoPlan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite.
Plan wykładu rchitektura systemów komputerowych Poziom układów logicznych. Układy mnoŝące i dzielące Cezary Bolek Katedra Informatyki Układy mnoŝące liczby całkowite MnoŜenie liczb bez znaku MnoŜarka sekwencyjna
Bardziej szczegółowo1 Automaty niedeterministyczne
Szymon Toruńczyk 1 Automaty niedeterministyczne Automat niedeterministyczny A jest wyznaczony przez następujące składniki: Alfabet skończony A Zbiór stanów Q Zbiór stanów początkowych Q I Zbiór stanów
Bardziej szczegółowoTeoretyczne podstawy informatyki
1 Wykład cz. 2 dyżur: środa 9.00-10.00 czwartek 10.00-11.00 ul. Wieniawskiego 17/19, pok.10 e-mail: joanna.jozefowska@cs.put poznan.pl materiały do wykładów: http://www.cs.put.poznan.pl/jjozefowska/ hasło:
Bardziej szczegółowoMetody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015
Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane
Bardziej szczegółowoUkłady kombinacyjne 1
Układy kombinacyjne 1 Układy kombinacyjne są to układy cyfrowe, których stany wyjść są zawsze jednoznacznie określone przez stany wejść. Oznacza to, że doprowadzając na wejścia tych układów określoną kombinację
Bardziej szczegółowoJęzyki, automaty i obliczenia
Języki, automaty i obliczenia Wykład 12: Gramatyki i inne modele równoważne maszynom Turinga. Wstęp do złożoności obliczeniowej Sławomir Lasota Uniwersytet Warszawski 20 maja 2015 Plan 1 Gramatyki 2 Języki
Bardziej szczegółowoArchitektura komputerów, Informatyka, sem.iii. Sumatory
Sumatory Architektury sumatorów (zarys) Sumatory 1-bitowe Sumatory z propagacją Przeniesień CPA (Carry Propagate Adders) Sumatory wieloargumentowe 3-argumentowe Half Adder HA Macierz sumatorów RCA Full
Bardziej szczegółowo0 --> 5, 1 --> 7, 2 --> 9, 3 -->1, 4 --> 3, 5 --> 5, 6 --> 7, 7 --> 9, 8 --> 1, 9 --> 3.
(Aktualizacja z dnia 3 kwietnia 2013) MATEMATYKA DYSKRETNA - informatyka semestr 2 (lato 2012/2013) Zadania do omówienia na zajęciach w dniach 21 i 28 kwietnia 2013 ZESTAW NR 3/7 (przykłady zadań z rozwiązaniami)
Bardziej szczegółowoArchitektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące
Architektura systemów komputerowych Poziom układów logicznych. Układy mnoŝące i dzielące Cezary Bolek Katedra Informatyki Plan wykładu Układy mnoŝące liczby całkowite MnoŜenie liczb bez znaku MnoŜarka
Bardziej szczegółowoWstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)
Wstęp doinformatyki Architektura co to jest? Architektura Model komputera Dr inż Ignacy Pardyka Slajd 1 Slajd 2 Od układów logicznych do CPU Automat skończony Slajd 3 Slajd 4 Ile jest automatów skończonych?
Bardziej szczegółowoStruktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott
Struktury danych i złożoność obliczeniowa Wykład 5 Prof. dr hab. inż. Jan Magott DMT rozwiązuje problem decyzyjny π przy kodowaniu e w co najwyżej wielomianowym czasie, jeśli dla wszystkich łańcuchów wejściowych
Bardziej szczegółowoZADANIE 1. Rozwiązanie:
EUROELEKTR Ogólnopolska Olimpiada Wiedzy Elektrycznej i Elektronicznej Rok szkolny 200/20 Rozwiązania zadań dla grupy teleinformatycznej na zawody II. stopnia ZNIE ramka logiczna w technologii MOS składa
Bardziej szczegółowoInstrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory
Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Poniżej pozwoliłem sobie za cytować za wikipedią definicję zmiennej w informatyce.
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 4
Języki formalne i automaty Ćwiczenia 4 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Sposób tworzenia deterministycznego automatu skończonego... 4 Intuicyjne rozumienie konstrukcji
Bardziej szczegółowo1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.
Temat: Technologia informacyjna a informatyka 1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji. Technologia informacyjna (ang.) Information Technology, IT jedna
Bardziej szczegółowoGrafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:
Wykład 4 grafy Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, E zbiór krawędzi, Grafy dzielimy na grafy skierowane i nieskierowane: Formalnie, w grafach skierowanych E jest podzbiorem
Bardziej szczegółowoa[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 3-2 5 8 12-4 -26 12 45-76
. p. 1 Algorytmem nazywa się poddający się interpretacji skończony zbiór instrukcji wykonania zadania mającego określony stan końcowy dla każdego zestawu danych wejściowych W algorytmach mogą występować
Bardziej szczegółowoUKŁADY MIKROPROGRAMOWALNE
UKŁAD MIKROPROGRAMOWALNE Układy sterujące mogą pracować samodzielnie, jednakże w przypadku bardziej złożonych układów (zwanych zespołami funkcjonalnymi) układ sterujący jest tylko jednym z układów drugim
Bardziej szczegółowoNaturalny kod binarny (NKB)
SWB - Arytmetyka binarna - wykład 6 asz 1 Naturalny kod binarny (NKB) pozycja 7 6 5 4 3 2 1 0 wartość 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 wartość 128 64 32 16 8 4 2 1 bity b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 System
Bardziej szczegółowoModele Obliczeń. Wykład 1 - Wprowadzenie. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski
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 /
Bardziej szczegółowoWstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek
Wstęp do informatyki Architektura komputera Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki System komputerowy systemowa (System Bus) Pamięć operacyjna ROM,
Bardziej szczegółowoElżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki
Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,
Bardziej szczegółowoPrzykł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}
Języki Ustalmy pewien skończony zbiór symboli Σ zwany alfabetem. Zbiór Σ zawiera wszystkie skończone ciagi symboli z Σ. Podzbiór L Σ nazywamy językiem a x L nazywamy słowem. Specjalne słowo puste oznaczamy
Bardziej szczegółowoArytmetyka binarna - wykład 6
SWB - Arytmetyka binarna - wykład 6 asz 1 Arytmetyka binarna - wykład 6 Adam Szmigielski aszmigie@pjwstk.edu.pl SWB - Arytmetyka binarna - wykład 6 asz 2 Naturalny kod binarny (NKB) pozycja 7 6 5 4 3 2
Bardziej szczegółowoZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW
ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW RELACJE MIEDZY KLASAMI ZŁOŻONOŚCI Bartosz Zieliński Katedra Fizyki Teoretycznej i Informatyki Zima 2011-2012 KLASY ZŁOŻONOŚCI KLASE ZŁOŻONOŚCI OPISUJE SIE PODAJAC: Model
Bardziej szczegółowoInwerter logiczny. Ilustracja 1: Układ do symulacji inwertera (Inverter.sch)
DSCH2 to program do edycji i symulacji układów logicznych. DSCH2 jest wykorzystywany do sprawdzenia architektury układu logicznego przed rozpoczęciem projektowania fizycznego. DSCH2 zapewnia ergonomiczne
Bardziej szczegółowoKryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 13
Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 13 Spis treści 19 Algorytmy kwantowe 3 19.1 Bit kwantowy kubit (qubit)........... 3 19. Twierdzenie
Bardziej szczegółowoAlgorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
Bardziej szczegółowoJęzyki formalne i techniki translacji
Języki formalne i techniki translacji Laboratorium - Projekt Termin oddania: ostatnie zajęcia przed 17 stycznia 2016 Wysłanie do wykładowcy: przed 23:59 28 stycznia 2016 Używając BISON-a i FLEX-a napisz
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania Złożoność obliczeniowa, poprawność programów Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XII Jesień 2013 1 / 20 Złożoność obliczeniowa Problem Ile czasu
Bardziej szczegółowoSystemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).
Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 1. Systemy liczbowe Cel dydaktyczny: Poznanie zasad reprezentacji liczb w systemach pozycyjnych o różnych podstawach. Kodowanie liczb dziesiętnych
Bardziej szczegółowoO ISTOTNYCH OGRANICZENIACH METODY
O ISTOTNYCH OGRANICZENIACH METODY ALGORYTMICZNEJ Dwa pojęcia algorytmu (w informatyce) W sensie wąskim Algorytmem nazywa się każdy ogólny schemat procedury możliwej do wykonania przez uniwersalną maszynę
Bardziej szczegółowoOpis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].
ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości
Bardziej szczegółowoArchitektura komputerów
Architektura komputerów Wykład 3 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) 2 Plan wykładu Podstawowe komponenty komputera Procesor CPU Cykl rozkazowy Typy instrukcji Stos Tryby adresowania
Bardziej szczegółowoMetody Kompilacji Wykład 8 Analiza Syntaktyczna cd. Włodzimierz Bielecki WI ZUT
Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd Analiza Syntaktyczna Wstęp Parser dostaje na wejściu ciąg tokenów od analizatora leksykalnego i sprawdza: czy ciąg ten może być generowany przez gramatykę.
Bardziej szczegółowoMaszyna Turinga języki
Maszyna Turinga języki Teoria automatów i języków formalnych Dr inż. Janusz Majewski Katedra Informatyki Maszyna Turinga (1) b b b A B C B D A B C b b Q Zależnie od symbolu obserwowanego przez głowicę
Bardziej szczegółowoOdwrotna Notacja Polska
Odwrotna Notacja Polska Odwrotna Notacja Polska w skrócie ONP) jest sposobem zapisu wyrażeń arytmetycznych. Znak wykonywanej operacji umieszczany jest po operandach, argumentach tzw. zapis postfiksowy).
Bardziej szczegółowo1 Wprowadzenie do algorytmiki
Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności
Bardziej szczegółowoTuring i jego maszyny
Turing Magdalena Lewandowska Politechnika Śląska, wydział MS, semestr VI 20 kwietnia 2016 1 Kim był Alan Turing? Biografia 2 3 Mrówka Langtona Bomba Turinga 4 Biografia Kim był Alan Turing? Biografia Alan
Bardziej szczegółowo1. Operacje logiczne A B A OR B
1. Operacje logiczne OR Operacje logiczne są operacjami działającymi na poszczególnych bitach, dzięki czemu można je całkowicie opisać przedstawiając jak oddziałują ze sobą dwa bity. Takie operacje logiczne
Bardziej szczegółowoOdmiany maszyny Turinga. dr hab. inż. Joanna Józefowska, prof. PP 1
Odmiany maszyny Turinga 1 Uniwersalna maszyna Turinga Uniwersalna maszyna U nad alfabetem A k jest to maszyna definiująca funkcje: f U, n+1 = {((w(i 1, I 2,..., I n )),y) w - opis maszyny T za pomocą słowa,
Bardziej szczegółowoPodstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji
Podstawy programowania Laboratorium Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji Instrukcja warunkowa if Format instrukcji warunkowej Przykład 1. if (warunek) instrukcja albo zestaw
Bardziej szczegółowoArchitektura typu Single-Cycle
Architektura typu Single-Cycle...czyli budujemy pierwszą maszynę parową Przepływ danych W układach sekwencyjnych przepływ danych synchronizowany jest sygnałem zegara Elementy procesora - założenia Pamięć
Bardziej szczegółowoBramki logiczne Podstawowe składniki wszystkich układów logicznych
Układy logiczne Bramki logiczne A B A B AND NAND A B A B OR NOR A NOT A B A B XOR NXOR A NOT A B AND NAND A B OR NOR A B XOR NXOR Podstawowe składniki wszystkich układów logicznych 2 Podstawowe tożsamości
Bardziej szczegółowoArchitektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy
Wstęp do informatyki Architektura komputera Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki System komputerowy systemowa (System Bus) Pamięć operacyjna ROM,
Bardziej szczegółowoWprowadzenie do maszyny Turinga
Wprowadzenie do maszyny Turinga Deterministyczna Maszyna Turinga (DTM) jest pewną klasą abstrakcyjnych modeli obliczeń. W tej instrukcji omówimy konkretną maszynę Turinga, którą będziemy zajmować się podczas
Bardziej szczegółowoObliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303
Wykład 9 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303 stos i operacje na stosie odwrotna notacja polska języki oparte na ONP przykłady programów J. Cichoń, P. Kobylański Wstęp
Bardziej szczegółowoAlgorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2
Algorytmy i struktury danych Wykład 6 Tablice rozproszone cz. 2 Na poprzednim wykładzie Wiele problemów wymaga dynamicznych zbiorów danych, na których można wykonywać operacje: wstawiania (Insert) szukania
Bardziej szczegółowoStruktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott
Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott Problemy NP-zupełne Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca
Bardziej szczegółowoAlgorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność
Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Oficjalna strona wykładu http://www.kaims.pl/
Bardziej szczegółowoWstęp do informatyki- wykład 2
MATEMATYKA 1 Wstęp do informatyki- wykład 2 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
Bardziej szczegółowoProjektowanie. Projektowanie mikroprocesorów
WYKŁAD Projektowanie mikroprocesorów Projektowanie układ adów w cyfrowych - podsumowanie Algebra Boole a Bramki logiczne i przerzutniki Automat skończony System binarny i reprezentacja danych Synteza logiczna
Bardziej szczegółowoJęzyk ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Bardziej szczegółowoĆwiczenie 27 Temat: Układy komparatorów oraz układy sumujące i odejmujące i układy sumatorów połówkowych i pełnych. Cel ćwiczenia
Ćwiczenie 27 Temat: Układy komparatorów oraz układy sumujące i odejmujące i układy sumatorów połówkowych i pełnych. Cel ćwiczenia Poznanie zasad budowy działania komparatorów cyfrowych. Konstruowanie komparatorów
Bardziej szczegółowoSamodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =
Systemy liczbowe Dla każdej liczby naturalnej x Î N oraz liczby naturalnej p >= 2 istnieją jednoznacznie wyznaczone: liczba n Î N oraz ciąg cyfr c 0, c 1,..., c n-1 (gdzie ck Î {0, 1,..., p - 1}) taki,
Bardziej szczegółowoMaszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu
Problem Hilberta: 9 Czy istnieje ogólna mechaniczna procedura, która w zasadzie pozwoliłaby nam po kolei rozwiązać wszystkie matematyczne problemy (należące do odpowiednio zdefiniowanej klasy)? 2 Przykłady
Bardziej szczegółowoZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW
ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW NIEDETERMINISTYCZNE MASZYNY TURINGA Bartosz Zieliński Katedra Fizyki Teoretycznej i Informatyki Zima 2011-2012 NIEDETERMINISTYCZNE MASZYNY TURINGA DEFINICJA: NIEDETERMINISTYCZNA
Bardziej szczegółowoWSTĘP. Budowa bramki NAND TTL, ch-ka przełączania, schemat wewnętrzny, działanie 2
WSTĘP O liczbie elementów użytych do budowy jakiegoś urządzenia elektronicznego, a więc i o możliwości obniżenia jego ceny, decyduje dzisiaj liczba zastosowanych w nim układów scalonych. Najstarszą rodziną
Bardziej szczegółowoOperatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia:
Operatory logiczne Komputery i ich logika AND - && Podstawy programowania w C++ Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia: CPA: PROGRAMMING ESSENTIALS IN C++ https://www.netacad.com
Bardziej szczegółowoLista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014
Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014 Temat 1. Algebra Boole a i bramki 1). Podać przykład dowolnego prawa lub tożsamości, które jest spełnione w algebrze Boole
Bardziej szczegółowoLABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q
LABORAORIUM PROCESORY SYGAŁOWE W AUOMAYCE PRZEMYSŁOWEJ Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q 1. Zasady arytmetyki stałoprzecinkowej. Kody stałopozycyjne mają ustalone
Bardziej szczegółowoUTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.
Zadaniem centralnej jednostki przetwarzającej CPU (ang. Central Processing Unit), oprócz przetwarzania informacji jest sterowanie pracą pozostałych układów systemu. W skład CPU wchodzą mikroprocesor oraz
Bardziej szczegółowoZadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.
Sortowanie Dane wejściowe: ciąg n-liczb (kluczy) (a 1, a 2, a 3,..., a n 1, a n ) Dane wyjściowe: permutacja ciągu wejściowego (a 1, a 2, a 3,..., a n 1, a n) taka, że a 1 a 2 a 3... a n 1 a n. Będziemy
Bardziej szczegółowoPrzykładowe pytania DSP 1
Przykładowe pytania SP Przykładowe pytania Systemy liczbowe. Przedstawić liczby; -, - w kodzie binarnym i hexadecymalnym uzupełnionym do dwóch (liczba 6 bitowa).. odać dwie liczby binarne w kodzie U +..
Bardziej szczegółowoKod U2 Opracował: Andrzej Nowak
PODSTAWY TEORII UKŁADÓW CYFROWYCH Kod U2 Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz http://pl.wikipedia.org/ System zapisu liczb ze znakiem opisany w poprzednim
Bardziej szczegółowoDef. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne
Załóżmy, że mamy źródło S, które generuje symbole ze zbioru S={x, x 2,..., x N } z prawdopodobieństwem P={p, p 2,..., p N }, symbolom tym odpowiadają kody P={c, c 2,..., c N }. fektywność danego sposobu
Bardziej szczegółowoPodstawy Informatyki Systemy sterowane przepływem argumentów
Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Komputer i jego architektura Taksonomia Flynna 2 Komputer i jego architektura Taksonomia Flynna Komputer Komputer
Bardziej szczegółowoPodstawy programowania w języku C i C++
Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
Bardziej szczegółowoALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny
ALGORYMY Algorytm to przepis; zestawienie kolejnych kroków prowadzących do wykonania określonego zadania; to uporządkowany sposób postępowania przy rozwiązywaniu zadania, problemu, z uwzględnieniem opisu
Bardziej szczegółowoEfektywność Procedur Obliczeniowych. wykład 5
Efektywność Procedur Obliczeniowych wykład 5 Modele procesu obliczeń (8) Jedno-, wielotaśmowa MT oraz maszyna RAM są równoważne w przypadku, jeśli dany problem jest rozwiązywany przez jeden model w czasie
Bardziej szczegółowo