Złożoność obliczeniowa Błędy Trudne zadania. Wojciech Myszka Jakub Słowiński Katedra Mechaniki i Inżynierii Materiałowej 2014
|
|
- Joanna Natalia Michalik
- 9 lat temu
- Przeglądów:
Transkrypt
1 Złożoność obliczeniowa Błędy Trudne zadania Wojciech Myszka Jakub Słowiński Katedra Mechaniki i Inżynierii Materiałowej 2014
2 Metody algorytmiczne obejście sprawdzenie wszystkich elementów pewnej struktury (tabele, wektory pętle i pętle zagnieżdżone, drzewa rekurencja) dziel i zwyciężaj sprowadzenie zadania do podzadań pracujących na mniejszych i/lub prostych zestawach danych metoda zachłanna szukamy najlepszego w danej chwili rozwiązania planowanie (programowanie) dynamiczne wszystkie zadania składowe rozwiązuje się w kierunku wzrostu ich rozmiaru, zachowując ich rozwiązania w taki sposób, aby ułatwić rozwiązywanie większych zadań
3 Poprawność algorytmów/programów Każdy program ma błędy. Dopóki program wykorzystywany jest do zabawy, nie odgrywa to większej roli. A co z oprogramowaniem komercyjnym? ( ) gwarantuje, że oprogramowanie objęte właściwą licencją będzie zasadniczo działać zgodnie z opisem znajdującym się we wszelkich materiałach ( ) towarzyszących oprogramowaniu.
4 Bug czyli błąd
5 Therac-25 Błąd działania urządzenia służącego do terapii antynowotworowej można było wygenerować poprzez wprowadzenie odpowiedniej kombinacji klawiszy na terminalu wprowadzania danych. Pacjent poddawany naświetlaniu otrzymywał dawkę wielusetkrotnie przekraczającą dopuszczalne normy. W efekcie 5 osób zmarło na chorobę popromienną a 1 doznała dotkliwych poparzeń.
6 Mariner 1 Błąd w oprogramowaniu komputera sterującego lotem w jego początkowej fazie doprowadził do serii chaotycznych korekt kursu i deregulacji lotu. W celu zapobieżenia katastrofie obsługa naziemna doprowadziła do uruchomienia systemu autodestrukcji. R n R n
7 Klęska w Dhahran - MIM-104 Patriot Wskutek błędu oprogramowania w zegarze systemowym komputera baterii Patriot, w efekcie uderzenia niezestrzelonej rakiety Scud w koszary w Dhahran, zginęło 28 osób.
8 Ariane 5, Lot 501, Zastosowanie oprogramowania nawigacyjnego z rakiety Ariane 4, która charakteryzowała się mniejszymi osiągami doprowadziło w efekcie do zniszczenia rakiety i ładunku. Oprogramowanie przeniesiono bez testów i sprawdzania. Straty oceniono na 400 mln dolarów.
9 Awaria prądu w USA i Kanadzie w 2003 r. Hazard niekorzystne zjawisko w układach cyfrowych, którego podłożem jest niezerowy czas propagacji (przenoszenia) sygnałów. Hazardem nazywamy błędne stany na wyjściach układów cyfrowych, powstające w stanach przejściowych (przełączania) w wyniku nieidealnych właściwości używanych elementów. Przyczyną są różnice w czasie dotarcia i wartości sygnału do określonego miejsca układu w zależności od drogi. Skutki zależą od układu. Hazard może doprowadzić do chwilowego przekłamania pracy automatu lub do trwałego przekłamania.
10 Czy są programy wolne od błędów? Zasadniczo nie ma takich programów. Donald E. Knuth, twórca systemu TeX wyznaczył nagrodę pieniężną za każdy znaleziony w jego programie błąd. W roku 1985 nagroda wynosiła 1 cent, była podwajana co rok aż do 327 dolarów i 68 centów. Do tej pory wypisano czeki na około dolarów nagrody.
11 Uruchamianie programów i badanie ich poprawności Szacuje się, że ponad 70% kosztów i nakładów na opracowanie złożonych systemów oprogramowania pochłania usuwanie błędów. Komputery zasadniczo są nieomylne. Psują się, ale przypadki, że generują błędne obliczenia są tak rzadkie, że spokojnie mówimy, iż są nieomylne Mylą się ludzie: na etapie opracowania algorytmu; na etapie jego programowania; podczas obsługi programu.
12 Nieomylne komputery I Czerwiec 1994: Testerzy firmy Intel zauważyli, że procesor źle liczy (błąd w instrukcji dzielenia). Kierownictwo uznało, że problem nie dotknie zbyt wielu użytkowników. 19 października: Jeden z użytkowników zauważa błąd i nabiera pewności, że to procesor (Pentium) / = (Correct value) / = (Flawed Pentium) 24 października: zgłasza błąd do Intela, osoba odpowiedzialna za kontakt z klientem potwierdza błąd (odtwarza go), i mówi, że nikt jeszcze go nie zgłosił.
13 Nieomylne komputery II 30 października odkrywca sprawę upublicznia (kilku swoim znajomym). 3 listopada informacja o błędzie pojawia się na grupie dyskusyjnej. 7 listopada Intel przyznaje się publicznie do błędu i ogłasza, że kolejne wydania procesora były już od niego wolne. 23 listopada pierwszy z producentów oprogramowania matematycznego (Mathworks) wypuszcza wersje Matlaba z modyfikacjami niwelującymi błąd. 24 listopada okazuje się, że Intel ciągle sprzedaje błędne procesory.
14 Nieomylne komputery III 30 listopada Intel przedstawia dokładny raport opisujący problem (i potencjalne jego konsekwencje). Za późno! 12 grudnia IBM publikuje swój własny raport oceniający znacznie poważniej konsekwencje błędu i ogłasza, że wstrzymuje sprzedaż komputerów PC z procesorem Intela. 16 grudnia - akcje Intela spadają o 3,25$ (ok. 5%) 20 grudnia: Intel przeprasza i obiecuje bezpłatnie wymienić wadliwe procesory na żądanie. Na podstawie [1].
15 Przyczyny problemów Intela I 1. Niechęć Intela do poinformowania o problemie swoich najważniejszych klientów. 2. Niepoinformowanie swojej pomocy technicznej, co uniemożliwiło traktowanie zgłaszających błąd w sposób specjalny. 3. Pierwsze informacje Intela na temat problemu były odbierane przez wszystkich (poza firmą) jako niezadawalające i zdawkowe. 4. Nowy procesor Intela (Pentium) był przedmiotem bardzo intensywnej kampanii reklamowej.
16 Przyczyny problemów Intela II 5. Błąd dotyczył bardzo podstawowej operacji, która łatwo było zademonstrować niefachowcom. 6. Błąd został wykryty na bardzo późnym etapie testowania procesora (po tym jak bardzo wiele procesorów zostało już sprzedanych). 7. Internet i sposób jego funkcjonowania. 8. Poważny konkurent firmy (IBM) zdecydował się na opublikowanie własnych analiz przedstawiających w innym świetle problem.
17 Jeszcze jedna definicja algorytmu Zadanie algorytmiczne można scharakteryzować zwięźle jako złożone z: 1. zbioru I dopuszczalnych danych wejściowych 2. zależności R miedzy danymi a zadanymi wynikami O R : I O
18 Poprawność częściowa i całkowita Algorytm A jest częściowo poprawny względem I i R, gdy dla każdego zestawu danych X z I, jeżeli A uruchomiony dla X zatrzyma się, to relacja R miedzy X a otrzymanym zestawem wyników jest spełniona. Częściowo poprawny algorytm sortowania mógłby zatrzymywać się nie dla wszystkich list dopuszczalnych, ale zatrzymując się, zawsze da w wyniku listę uporządkowaną poprawnie. Algorytm całkowicie poprawny poprawnie rozwiązuje zadanie dla każdego zestawu danych X z I.
19 Poprawność częściowa i całkowita dowolne poprawne dane z I dowolne poprawne dane z I algorytm A algorytm A jeśli to miejsce osiągnięto w rzeczy samej to miejsce osiągnięto wynik to tu jest oczekiwany wynik wynik i tu jest oczekiwany wynik POPRAWNOŚĆ CZĘŚCIOWA POPRAWNOŚĆ CAŁKOWITA
20 Czy trzeba udowadniać poprawność algorytmów? Systemy bankowe Systemy sterowania rakietami (balistycznymi) Pojazdy kosmiczne Systemy nadzoru chorych System ABS A praktyka jest taka (wedle powiedzonek): oprogramowanie udostępnia się użytkownikom nie wtedy, kiedy jego poprawność staje się pewna, ale wtedy, gdy szybkość odkrywania nowych błędów spada do poziomu, który może być zaakceptowany
21 Jak to się robi? Dla każdego poprawnego algorytmu można ściśle wykazać, że jest on poprawny. Inna sprawa, czy to łatwo zrobić. Z tego, że program działa poprawnie dla każdego zestawu danych, który wypróbowaliśmy nie wynika wcale, że działa dobrze dla innych zestawów. Jeżeli uda się nam znaleźć jeden jedyny dopuszczalny zestaw danych, dla którego program działa źle, to jest zły. Zazwyczaj zależy nam, żeby algorytm kiedyś się zatrzymał. Aby wykazać, że algorytm kiedyś się zatrzyma można wybrać jakąś wielkość zależną od zmiennych i struktur danych algorytmu i wykazać, że wielkość ta jest zbieżna.
22 Sprawność algorytmów Niepoprawne algorytmy są zawsze złe. Poprawne algorytmy mogą wymagać ulepszeń. Miara sprawności: rozmiar pamięci liczba zmiennych, liczba i rozmiar struktur danych używanych do wykonania algorytmu; czas wykonania liczba akcji elementarnych wykonanych przez procesor we trakcie przebiegu algorytmu;
23 Wyszukiwanie liniowe Mamy książkę telefoniczną czyli listę: <nazwisko, numer_telefonu>. Zadanie polega na znalezieniu numeru telefonicznego osoby o zadanym nazwisku. Najprostszy algorytm jest taki: 1. i 1 2. Czy poszukiwane_nazwisko = nazwisko(i) 3. Jeżeli tak Koniec 4. W przeciwnym razie i i Jeżeli i > n Koniec: nie znaleziono! 6. W przeciwnym razie przejdź do kroku 2. Im dłuższa lista nazwisk tym dłużej pracuje algorytm.
24 Wyszukiwanie liniowe W najlepszym razie pętla wykonana będzie tylko jeden raz. W najgorszym razie n razy. Średnio? To zależy jaki jest rozkład prawdopodobieństwa zapytań
25 Wyszukiwanie liniowe - lepszy algorytm Jeżeli uwzględnić fakt, że dane w książce telefonicznej są posortowane algorytm można istotnie ulepszyć. Pierwsze porównanie należy wykonać nie z pierwszym (czy ostatnim) nazwiskiem, tylko ze środkowym (znajdującym się dokładnie na środku listy). Jeżeli szukane nazwisko jest większe nie należy zajmować się pierwszą połową listy Takie podejście w jednym kroku redukuje rozmiar zadania o połowę! Każdy kolejny krok jest podobny zatem wielkość zadania zmniejsza się za każdym razem. W przypadku książki telefonicznej o N nazwiskach potrzeba (w najgorszym razie) log 2 (N) kroków.
26 Schemat algorytmu start weź całą listę wejściową L NIE MA Y porównaj Y ze środkowym elementem rozważanej listy JEST Y weź pierwszą albo drugą połowę rozważanej listy, zależnie od wyniku porównania wypisz jest stop NIE czy rozważana lista jest pusta? TAK wypisz nie ma stop
27 Jak bardzo O(log 2 (N)) jest lepsze od O(N)? N log 2 (N) milion 20 miliard 30 miliard miliardów 60
28 Małpia układanka
29 Małpia układanka Najbardziej elementarny komputerowy algorytm rozwiązywania tej układanki sprowadzi się najprawdopodobniej, do przeglądu wszystkich możliwych układów kart. 1. wybieramy jedną z kart, układamy ją na pierwszym miejscu (odpowiednio wszystkie miejsca ponumerowaliśmy); 2. na drugim miejscu mamy N-1 kart do wyboru, na kolejnym N-2, itd. następnie sprawdzamy czy spełnione są warunki. 3. liczba możliwych do rozpatrzenia kombinacji wynosi: N (N-1) (N-2) 2 1 = N! Zatem złożoność tego algorytmu jest rzędu O(N!)
30 Małpia układanka
31 Wykresy funkcji
32 Zadania łatwe i trudne I Jak widać z wykresów i tabelek zawsze można znaleźć zadanie którego nie da się rozwiązać w rozsądnym czasie. Przyjęto dzielić zadania na łatwe jeżeli funkcja opisująca czas ich wykonania jest ograniczona jakąś funkcją wielomianową. Zadania trudne to zadania o czasie wykonania ponadwielomianowym lub wykładniczym.
33 Zadania łatwe i trudne II Podsumowanie Problemy trudno rozwiązywalne wymagają niepraktycznie dużo czasu nawet dla względnie małych danych wejściowych. Problemy łatwo rozwiązywalne maj algorytmy, które są praktyczne dla zadań o rozsądnych wymiarach.
34 Jak sobie radzimy z trudnymi zadaniami? Zrównoleglenie (zadanie dzielone jest na mniejsze kawałki i wysyłane na wiele komputerów). Randomizacja zamiast przeglądać wszystkie możliwe rozwiązania w sposób losowy wybiera się niektóre z nich. Pozostają te, które w najlepszy sposób spełniają nasze oczekiwania. Komputery kwantowe.??? Obliczenia molekularne.???
35 Bibliografia Nicely, T. R., Pentium FDIV flaw FAQ, /pentbug.html, Intel. White paper: Statistical analysis of floating point flaw
Poprawność algorytmów wer. 1.3
Poprawność algorytmów wer. 1.3 Wojciech Myszka 9 grudnia 2009 Spis treści Błędy Bug Czy są programy wolne od błędów? Uruchamianie programów i badanie ich poprawności Jeszcze jedna definicja algorytmu Poprawność
Złożoność obliczeniowa. Trudne zadania
Złożoność obliczeniowa. Trudne zadania wer. 7 z drobnymi modyfikacjami! Wojciech Myszka 2016-12-17 20:40:37 +0100 Część I Złożoność obliczeniowa Raz jeszcze min/max z liczb... Danych jest n elementów X[1],
Trudne zadania. wer. 8. Wojciech Myszka, Maciej Panek styczeń 2015r.
Złożoność obliczeniowa. Trudne zadania. wer. 8 Wojciech Myszka, Maciej Panek styczeń 2015r. Złożoność algorytmów Złożoność algorytmów odnosi się do ilości zasobów niezbędnych do rozwiązania problemu. Przez
Złożoność algorytmów. Wstęp do Informatyki
Złożoność algorytmów Złożoność pamięciowa - liczba i rozmiar struktur danych wykorzystywanych w algorytmie Złożoność czasowa - liczba operacji elementarnych wykonywanych w trakcie przebiegu algorytmu Złożoność
Podstawy Informatyki. Sprawność algorytmów
Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 13 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Złożoność algorytmów czy to istotne, skoro
Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 13 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Złożoność algorytmów czy to istotne, skoro
Informatyka 1. Złożoność obliczeniowa
Informatyka 1 Wykład XI Złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada 80 20, ocena efektywności
PROBLEMY 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ą
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie
Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,
Oznaczenia: Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze, to interesuje nas złożoność obliczeniowa
3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.
1. Podaj definicję informatyki. 2. W jaki sposób można definiować informatykę? 3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki. 4. Co to jest algorytm? 5. Podaj neumanowską architekturę
Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie
Więcej o sprawności algorytmów Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie Załóżmy, że możemy wykonać dane zadanie przy użyciu dwóch algorytmów: jednego o złożoności czasowej
Podstawy Programowania. Złożoność obliczeniowa
Podstawy Programowania Wykład X Złożoność obliczeniowa Robert Muszyński Katedra Cybernetyki i Robotyki, PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada
Wstę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
WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA
WYŻSZA SZKOŁA IFORMATYKI STOSOWAEJ I ZARZĄDZAIA Złożoność algorytmów Złożoność pamięciowa algorytmu wynika z liczby i rozmiaru struktur danych wykorzystywanych w algorytmie. Złożoność czasowa algorytmu
Poprawność algorytmów
Poprawność algorytmów Jeśli uważasz, że jakiś program komputerowy jest bezbłędny, to się mylisz - po prostu nie zauważyłeś jeszcze skutków błędu, który jest w nim zawarty. Jakie błędy można popełnić? Błędy
Zadanie projektowe 1: Struktury danych i złożoność obliczeniowa
Łukasz Przywarty 171018 Data utworzenia: 24.03.2010r. Mariusz Kacała 171058 Prowadzący: prof. dr hab. inż. Adam Janiak oraz dr inż. Tomiasz Krysiak Zadanie projektowe 1: Struktury danych i złożoność obliczeniowa
Algorytm. 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
Podstawy Informatyki. Algorytmy i ich poprawność
Podstawy Informatyki Algorytmy i ich poprawność Błędy Błędy: językowe logiczne Błędy językowe Związane ze składnią języka Wykrywane automatycznie przez kompilator lub interpreter Prosty sposób usuwania
Zaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań teoretycznych z egzaminów. Strona 1 z 12 Pytania teoretyczne z egzaminu pisemnego z 25 czerwca 2014 (studia dzienne)
Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15
Technologie cyfrowe Artur Kalinowski Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.pl Semestr letni 2014/2015 Zadanie algorytmiczne: wyszukiwanie dane wejściowe:
Zasady analizy algorytmów
Zasady analizy algorytmów A więc dziś w programie: - Kilka ważnych definicji i opisów formalnych - Złożoność: czasowa i pamięciowa - Kategorie problemów - Jakieś przykłady Problem: Zadanie możliwe do rozwiązania
Teoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 4a: Rozwiązywanie rekurencji http://kiwi.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Czas działania programu Dla konkretnych
Matematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Algorytm 1. Termin algorytm jest używany w informatyce
Algorytmy i złożoność obliczeniowa. Wojciech Horzelski
Algorytmy i złożoność obliczeniowa Wojciech Horzelski 1 Tematyka wykładu Ø Ø Ø Ø Ø Wprowadzenie Poprawność algorytmów (elementy analizy algorytmów) Wyszukiwanie Sortowanie Elementarne i abstrakcyjne struktury
Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.
Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Grażyna Koba MIGRA 2019 Spis treści (propozycja na 2*32 = 64 godziny lekcyjne) Moduł A. Wokół komputera i sieci komputerowych
Strategia "dziel i zwyciężaj"
Strategia "dziel i zwyciężaj" W tej metodzie problem dzielony jest na kilka mniejszych podproblemów podobnych do początkowego problemu. Problemy te rozwiązywane są rekurencyjnie, a następnie rozwiązania
Teoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 12a: Prawdopodobieństwo i algorytmy probabilistyczne http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Teoria prawdopodobieństwa
Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny
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 danych
Elementy modelowania matematycznego
Elementy modelowania matematycznego Łańcuchy Markowa: zagadnienia graniczne. Ukryte modele Markowa. Jakub Wróblewski jakubw@pjwstk.edu.pl http://zajecia.jakubw.pl/ KLASYFIKACJA STANÓW Stan i jest osiągalny
Laboratorium 5: Tablice. Wyszukiwanie binarne
Wojciech Myszka Laboratorium 5: Tablice. Wyszukiwanie binarne 2016-05-07 09:02:17 +0200 1. Tablice Do tej pory nie było potrzeby odwoływać się do zmiennych złożonych. Programy były bardzo proste i korzystały
INFORMATYKA SORTOWANIE DANYCH.
INFORMATYKA SORTOWANIE DANYCH http://www.infoceram.agh.edu.pl SORTOWANIE Jest to proces ustawiania zbioru obiektów w określonym porządku. Sortowanie stosowane jest w celu ułatwienia późniejszego wyszukania
INFORMATYKA POZIOM ROZSZERZONY
EGZAMIN MATURALNY W ROKU SZKOLNYM 2016/2017 FORMUŁA OD 2015 ( NOWA MATURA ) INFORMATYKA POZIOM ROZSZERZONY ZASADY OCENIANIA ROZWIĄZAŃ ZADAŃ ARKUSZ MIN-R1, R2 MAJ 2017 Uwaga: Akceptowane są wszystkie odpowiedzi
SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa
Autorzy scenariusza: SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH
Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32
Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:
Przykładowe sprawozdanie. Jan Pustelnik
Przykładowe sprawozdanie Jan Pustelnik 30 marca 2007 Rozdział 1 Sformułowanie problemu Tematem pracy jest porównanie wydajności trzech tradycyjnych metod sortowania: InsertionSort, SelectionSort i BubbleSort.
EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew
1. ( pkt) Dany jest algorytm, który dla dowolnej liczby naturalnej n, powinien wyznaczyd sumę kolejnych liczb naturalnych mniejszych od n. Wynik algorytmu jest zapisany w zmiennej suma. Algorytm i=1; suma=0;
Algorytmy sortujące i wyszukujące
Algorytmy sortujące i wyszukujące Zadaniem algorytmów sortujących jest ułożenie elementów danego zbioru w ściśle określonej kolejności. Najczęściej wykorzystywany jest porządek numeryczny lub leksykograficzny.
Podstawy Programowania. Złożoność obliczeniowa
Podstawy Programowania Wykład X Złożoność obliczeniowa Robert Muszyński Katedra Cybernetyki i Robotyki, PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada
Technologia informacyjna Algorytm Janusz Uriasz
Technologia informacyjna Algorytm Janusz Uriasz Algorytm Algorytm - (łac. algorithmus); ścisły przepis realizacji działań w określonym porządku, system operacji, reguła komponowania operacji, sposób postępowania.
Matlab, zajęcia 3. Jeszcze jeden przykład metoda eliminacji Gaussa dla macierzy 3 na 3
Matlab, zajęcia 3. Pętle c.d. Przypomnijmy sobie jak działa pętla for Możemy podać normalnie w Matlabie t=cputime; for i=1:20 v(i)=i; e=cputime-t UWAGA: Taka operacja jest bardzo czasochłonna i nieoptymalna
Definicje. Algorytm to:
Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi
Algorytmy zrandomizowane
Algorytmy zrandomizowane http://zajecia.jakubw.pl/nai ALGORYTMY ZRANDOMIZOWANE Algorytmy, których działanie uzależnione jest od czynników losowych. Algorytmy typu Monte Carlo: dają (po pewnym czasie) wynik
Wyszukiwanie binarne
Wyszukiwanie binarne Wyszukiwanie binarne to technika pozwalająca na przeszukanie jakiegoś posortowanego zbioru danych w czasie logarytmicznie zależnym od jego wielkości (co to dokładnie znaczy dowiecie
Ogólne zasady projektowania algorytmów i programowania
Ogólne zasady projektowania algorytmów i programowania Pracuj nad właściwie sformułowanym problemem dokładna analiza nawet małego zadania może prowadzić do ogromnych korzyści praktycznych: skrócenia długości
EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA
EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA POZIOM ROZSZERZONY FORMUŁA OD 2015 ( NOWA MATURA ) ZASADY OCENIANIA ROZWIĄZAŃ ZADAŃ ARKUSZ MIN-R1,R2 MAJ 2018 Uwaga: Akceptowane są wszystkie odpowiedzi
Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 9 Rekurencja
Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 9 Rekurencja Rekurencja z łacińskiego oznacza to przybiec z powrotem - osiągniesz rzecz wielką, jeśli zawrócisz po to, by osiągnąć rzeczy małe Przykład:
Podstawy Programowania
Podstawy Programowania Wykład X Złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada 80 20, ocena efektywności
Jeszcze o algorytmach
Jeszcze o algorytmach Przykłady różnych, podstawowych algorytmów 11.01.2018 M. Rad Plan Powtórka Znajdowanie najmniejszego elementu Segregowanie Poszukiwanie przez połowienie Wstawianie Inne algorytmy
REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH
REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Transport, studia I stopnia rok akademicki 2012/2013 Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Adam Wosatko Ewa Pabisek Pojęcie
Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )
SORTOWANIE 1 SORTOWANIE Proces ustawiania zbioru elementów w określonym porządku. Stosuje się w celu ułatwienia późniejszego wyszukiwania elementów sortowanego zbioru. 2 Definicja Ciąg wejściowy: a 1,
Algorytm. Algorytmy Marek Pudełko
Algorytm Algorytmy Marek Pudełko Definicja Algorytm to skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego zadania. Algorytm ma przeprowadzić system z pewnego
Liczby pierwsze - wstęp
Artykuł pobrano ze strony eioba.pl Liczby pierwsze - wstęp W latach 60 ubiegłego wieku w Afryce znaleziono kości z wyrytymi na nich karbami liczące ponad 5000 lat. Na jednej z nich (kość z Ishango) karby
Sortowanie Shella Shell Sort
Sortowanie Shella Shell Sort W latach 50-tych ubiegłego wieku informatyk Donald Shell zauważył, iż algorytm sortowania przez wstawianie pracuje bardzo efektywnie w przypadku gdy zbiór jest w dużym stopniu
MODELOWANIE RZECZYWISTOŚCI
MODELOWANIE RZECZYWISTOŚCI Daniel Wójcik Instytut Biologii Doświadczalnej PAN d.wojcik@nencki.gov.pl tel. 022 5892 424 http://www.neuroinf.pl/members/danek/swps/ Podręcznik Iwo Białynicki-Birula Iwona
SYSTEMY OPERACYJNE LABORATORIUM 2014/2015
1 SYSTEMY OPERACYJNE LABORATORIUM 2014/2015 ZASADY OCENIANIA ZADAŃ PROGRAMISTYCZNYCH: Zadania laboratoryjne polegają na symulacji i badaniu własności algorytmów/mechanizmów stosowanych w systemach operacyjnych.
Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny
Klasa 2 INFORMATYKA dla szkół ponadgimnazjalnych zakres rozszerzony Założone osiągnięcia ucznia wymagania edukacyjne na poszczególne oceny Algorytmy 2 3 4 5 6 Wie, co to jest algorytm. Wymienia przykłady
Algorytmy. Programowanie Proceduralne 1
Algorytmy Programowanie Proceduralne 1 Przepis Warzenie piwa Brunświckiego Programowanie Proceduralne 2 Przepis Warzenie piwa Brunświckiego składniki (dane wejściowe): woda, słód, itd. wynik: beczka piwa
Sortowanie przez wstawianie Insertion Sort
Sortowanie przez wstawianie Insertion Sort Algorytm sortowania przez wstawianie można porównać do sposobu układania kart pobieranych z talii. Najpierw bierzemy pierwszą kartę. Następnie pobieramy kolejne,
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność
Programowanie współbieżne Wykład 2. Iwona Kochańska
Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas
Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej
Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej Spis treści Autor: Marcin Orchel Algorytmika...2 Algorytmika w gimnazjum...2 Algorytmika w liceum...2 Język programowania w
EGZAMIN MATURALNY 2012 INFORMATYKA
Centralna Komisja Egzaminacyjna EGZAMIN MATURALNY 2012 INFORMATYKA POZIOM PODSTAWOWY Kryteria oceniania odpowiedzi MAJ 2012 2 Zadanie 1. a) (0 2) Egzamin maturalny z informatyki CZĘŚĆ I Obszar standardów
Część II Uwaga: wszystkie wyniki muszą być odzwierciedleniem dołączonej komputerowej realizacji obliczeń.
Część II Uwaga: wszystkie wyniki muszą być odzwierciedleniem dołączonej komputerowej realizacji obliczeń. Zadanie 4.1. (0 1) 4. Opracowywanie informacji za pomocą komputera, w tym: rysunków, tekstów, danych
Programowanie dynamiczne
Programowanie dynamiczne Ciąg Fibonacciego fib(0)=1 fib(1)=1 fib(n)=fib(n-1)+fib(n-2), gdzie n 2 Elementy tego ciągu stanowią liczby naturalne tworzące ciąg o takiej własności, że kolejny wyraz (z wyjątkiem
Algorytm. Krótka historia algorytmów
Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
Szczegółowy program kursów szkoły programowania Halpress
Szczegółowy program kursów szkoły programowania Halpress Lekcja A - Bezpłatna lekcja pokazowa w LCB Leszno "Godzina kodowania - Hour of Code (11-16 lat) Kurs (B) - Indywidualne przygotowanie do matury
Struktury Danych i Złożoność Obliczeniowa
Struktury Danych i Złożoność Obliczeniowa Zajęcia 2 Algorytmy wyszukiwania, sortowania i selekcji Sortowanie bąbelkowe Jedna z prostszych metod sortowania, sortowanie w miejscu? Sortowanie bąbelkowe Pierwsze
Algorytm selekcji Hoare a. Łukasz Miemus
Algorytm selekcji Hoare a Łukasz Miemus 1 lutego 2006 Rozdział 1 O algorytmie 1.1 Problem Mamy tablicę A[N] różnych elementów i zmienną int K, takie że 1 K N. Oczekiwane rozwiązanie to określenie K-tego
Algorytmika i pseudoprogramowanie
Przedmiotowy system oceniania Zawód: Technik Informatyk Nr programu: 312[ 01] /T,SP/MENiS/ 2004.06.14 Przedmiot: Programowanie Strukturalne i Obiektowe Klasa: druga Dział Dopuszczający Dostateczny Dobry
Modelowanie procesów współbieżnych
Modelowanie procesów współbieżnych dr inż. Maciej Piotrowicz Katedra Mikroelektroniki i Technik Informatycznych PŁ piotrowi@dmcs.p.lodz.pl http://fiona.dmcs.pl/~piotrowi -> Modelowanie... Literatura M.
Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa. Diagnostyka i niezawodność robotów
Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa Diagnostyka i niezawodność robotów Laboratorium nr 6 Model matematyczny elementu naprawialnego Prowadzący: mgr inż. Marcel Luzar Cele ćwiczenia:
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 2 2 Struktury danych i algorytmy Analiza algorytmów Typy danych i struktury danych Sposoby zapisu algorytmów
Schemat programowania dynamicznego (ang. dynamic programming)
Schemat programowania dynamicznego (ang. dynamic programming) Jest jedną z metod rozwiązywania problemów optymalizacyjnych. Jej twórcą (1957) był amerykański matematyk Richard Ernest Bellman. Schemat ten
Metody numeryczne. materiały do wykładu dla studentów. 1. Teoria błędów, notacja O
Metody numeryczne materiały do wykładu dla studentów 1. Teoria błędów, notacja O 1.1. Błąd bezwzględny, błąd względny 1.2. Ogólna postać błędu 1.3. Problem odwrotny teorii błędów - zasada równego wpływu
EGZAMIN MATURALNY 2011 INFORMATYKA
Centralna Komisja Egzaminacyjna w Warszawie EGZAMIN MATURALNY 2011 INFORMATYKA POZIOM PODSTAWOWY MAJ 2011 2 Zadanie 1. a) (0 1) Egzamin maturalny z informatyki poziom podstawowy CZĘŚĆ I Obszar standardów
KARTA KURSU. Wstęp do programowania
KARTA KURSU Nazwa Nazwa w j. ang. Wstęp do programowania Introduction to Programming Kod Punktacja ECTS* 6 Koordynator dr inż. Magdalena Andrzejewska Zespół dydaktyczny: dr inż. Magdalena Andrzejewska
EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA
EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA POZIOM ROZSZERZONY FORMUŁA DO 2014 ( STARA MATURA ) ZASADY OCENIANIA ROZWIĄZAŃ ZADAŃ ARKUSZ MIN-R1,R2 MAJ 2018 Uwaga: Akceptowane są wszystkie odpowiedzi
Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.
Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji. Maria Górska 9 stycznia 2010 1 Spis treści 1 Pojęcie algorytmu 3 2 Sposób
Wykład z Technologii Informacyjnych. Piotr Mika
Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły
Podstawy Programowania
Podstawy Programowania Wykład X Złożoność obliczeniowa Robert Muszyński Katedra Cybernetyki i Robotyki, PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada
Jak wybrać 45 najlepszych prezentacji na FORUM?
Być data driven company w erze Big Data. Jak wybrać 45 najlepszych prezentacji na FORUM? Doświadczenia z budowy platformy do prowadzenia na dużą skalę eksperymentów A/B Joanna Radosław Komuda, Kita, IAB
Kurs MATURA Z INFORMATYKI
Kurs MATURA Z INFORMATYKI Cena szkolenia Cena szkolenia wynosi 90 zł za 60 min. Ilość godzin szkolenia jest zależna od postępów w nauce uczestnika kursu oraz ilości czasu, którą będzie potrzebował do realizacji
Algorytmy. Programowanie Proceduralne 1
Algorytmy Programowanie Proceduralne 1 Przepis Warzenie piwa Brunświckiego Programowanie Proceduralne 2 Przepis Warzenie piwa Brunświckiego składniki (dane wejściowe): woda, słód, itd. wynik: beczka piwa
istocie dziedzina zajmująca się poszukiwaniem zależności na podstawie prowadzenia doświadczeń jest o wiele starsza: tak na przykład matematycy
MODEL REGRESJI LINIOWEJ. METODA NAJMNIEJSZYCH KWADRATÓW Analiza regresji zajmuje się badaniem zależności pomiędzy interesującymi nas wielkościami (zmiennymi), mające na celu konstrukcję modelu, który dobrze
Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to
Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to wprowadzili J. Hartmanis i R. Stearns. Najczęściej przez zasób rozumie się czas oraz pamięć dlatego
8. Neuron z ciągłą funkcją aktywacji.
8. Neuron z ciągłą funkcją aktywacji. W tym ćwiczeniu zapoznamy się z modelem sztucznego neuronu oraz przykładem jego wykorzystania do rozwiązywanie prostego zadania klasyfikacji. Neuron biologiczny i
REKURENCJA W JĘZYKU HASKELL. Autor: Walczak Michał
REKURENCJA W JĘZYKU HASKELL Autor: Walczak Michał CZYM JEST REKURENCJA? Rekurencja zwana rekursją, polega na wywołaniu przez funkcję samej siebie. Algorytmy rekurencyjne zastępują w pewnym sensie iteracje.
Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe. P. F. Góra
Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2015 Co można zrobić z układem równań... tak, aby jego rozwiazania się nie zmieniły? Rozważam
Programowanie dynamiczne cz. 2
Programowanie dynamiczne cz. 2 Wykład 7 16 kwietnia 2019 (Wykład 7) Programowanie dynamiczne cz. 2 16 kwietnia 2019 1 / 19 Outline 1 Mnożenie ciągu macierzy Konstruowanie optymalnego rozwiązania 2 Podstawy
Programowanie w VB Proste algorytmy sortowania
Programowanie w VB Proste algorytmy sortowania Sortowanie bąbelkowe Algorytm sortowania bąbelkowego polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich
Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99
Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99 Techniki algorytmiczne realizowane przy pomocy grafiki żółwia w programie ELI 2,0. Przedmiot: Informatyka
Możliwe strategie tworzenia niezawodnego oprogramowania:
ZWIĘKSZANIE POPRAWNOŚCI OPROGRAMOWANIA Plan prezentacji: Poprawność oprogramowania Poprawność oprogramowania Weryfikacja i testowanie. Rodzaje testów. Testowania względem specyfikacji Testowanie względem
METODA SYMPLEKS. Maciej Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski
METODA SYMPLEKS Maciej Patan Uniwersytet Zielonogórski WSTĘP Algorytm Sympleks najpotężniejsza metoda rozwiązywania programów liniowych Metoda generuje ciąg dopuszczalnych rozwiązań x k w taki sposób,
OFERTA KURSÓW KOMPUTEROWYCH NA LAPTOPACH DLA FIRM
INTER-SPEED.PL - KRZYSZTOF DOLIŃSKI ul. Iwaszkiewicza 35/7, 55-200 Oława tel. kom. 0781 874 687, kontakt@inter-speed.pl NIP: 921-173-63-19, REGON: 021074232 ING Bank: 44 1050 1575 1000 0090 7067 1004 OFERTA
- - Ocena wykonaniu zad3. Brak zad3
Indeks Zad1 Zad2 Zad3 Zad4 Zad Ocena 20986 218129 ocena 4 Zadanie składa się z Cw3_2_a oraz Cw3_2_b Brak opcjonalnego wywołania operacji na tablicy. Brak pętli Ocena 2 Brak zad3 Ocena wykonaniu zad3 po
Kompletna dokumentacja kontenera C++ vector w - http://www.cplusplus.com/reference/stl/vector/
STL, czyli o co tyle hałasu W świecie programowania C++, hasło STL pojawia się nieustannie i zawsze jest o nim głośno... często początkujące osoby, które nie znają STL-a pytają się co to jest i czemu go
1 Moduł Lutron HomeWorks QS
1 Moduł Lutron HomeWorks QS Moduł Lutron HomeWorks QS daje użytkownikowi Systemu możliwość współpracy oprogramowania z urządzeniami firmy Lutron serii HomeWorks QS. System Vision może używać go do odbierania
KONSPEKT ZAJĘĆ KOŁA INFORMATYCZNEGO LUB MATEMATYCZNEGO W KLASIE III GIMNAZJUM LUB I LICEUM ( 2 GODZ.)
Joanna Osio asiaosio@poczta.onet.pl Nauczycielka matematyki w Gimnazjum im. Macieja Rataja w Żmigrodzie KONSPEKT ZAJĘĆ KOŁA INFORMATYCZNEGO LUB MATEMATYCZNEGO W KLASIE III GIMNAZJUM LUB I LICEUM ( 2 GODZ.)