Algorytmy i struktury danych
Transkrypt
Algorytmy i struktury danych
WyŜsza Szkoła Biznesu w Dąbrowie Górniczej Kierunek studiów: INFORMATYKA Przedmiot: Algorytmy i struktury danych Specjalność: wszystkie Liczba godzin w semestrze 1 II III 3 ECTS WYKŁADOWCA IV 30 w / 15 ćw 6 prof. dr hab. inŜ. Konrad Wala, dr inŜ. Adam Domański FORMA ZAJĘĆ Wykład / ćwiczenia CELE PRZEDMIOTU Celem zajęć jest prezentacja podstawowych narzędzi informatyki, takich jak algorytmy i wybrane struktury danych, umoŜliwiających rozwiązywanie róŜnorodnych problemów za pomocą komputera. W wykładzie dokonano reprezentatywnego przeglądu problemów algorytmicznych nieodzownych dla inŜyniera informatyka wraz z analizą złoŜoności obliczeniowej wszystkich dyskutowanych algorytmów. Efektem wykładu powinno być zrozumienie zasad konstruowania podstawowych algorytmów i struktury danych oraz analizy złoŜoności badanych algorytmów. Wiedza: reprezentatywny przegląd algorytmów, umoŜliwiających rozwiązanie róŜnych problemów za pomocą komputera, studenci opanują zasady projektowania podstawowych algorytmów oraz analizę ich złoŜoności obliczeniowej względnie poprawności. EFEKTY KSZTAŁCENIA I 2 V VI Kompetencje: Umiejętność formułowania problemu praktycznego w terminologii matematyki i dobór efektywnego algorytmu jego rozwiązania. Postawy: ukształtowanie wśród studentów postawy zrozumienia konieczności badania złoŜoności obliczeniowej kaŜdego stosowanego w praktyce algorytmu. WARUNKI WSTĘPNE Znajomość teorii mnogości, matematyki dyskretnej i algebry, podstaw programowania TREŚĆ PRZEDMIOTU Podstawy analizy algorytmów: funkcje algorytmu, typy i operacje na danych, złoŜoność obliczeniowa algorytmów Algorytmy przeszukiwania danych i analiza ich złoŜoności: przeszukiwanie liniowe i binarne danych (drzewa poszukiwań binarnych), haszowanie. Funkcje rekurencja i jej implementacja w językach wysokiego poziomu, przykłady algorytmów rekurencyjnych i ich analiza. Algorytmy sortowania, złoŜoność obliczeniowa sortowania, sortowanie przez wstawianie, sortowanie zaawansowane - algorytm Quicksort jako realizacja reguły „dziel i zwycięŜaj”). Przykłady problemów obliczeniowo trudnych (NP-trudnych): (1) Liniowe problemy plecakowe (KP) i algorytmy zachłanne dla KP wraz z analiza ich złoŜoności obliczeniowej, (2) problem komiwojaŜera i algorytm zachłanny wraz z analizą złoŜoności obliczeniowej. Ogólna struktura algorytmów popraw, definicja sąsiedztwa, przykład. Algorytmy optymalizacji lokalnej: algorytm zstępujący/wstępujący (Hill Climbing) i algorytm MSLS. Algorytm przeszukiwania z nawrotami (brute force): (1)Koncepcja algorytmu przeszukiwania zbioru rozwiązań z nawrotami; (2) Analiza algorytmu z nawrotami, przykład przeszukiwanie dla problemu GKP. Własności podstawowych struktur danych (kolejka, stos, lista, drzewo, graf). PrzybliŜone algorytmy szeregowania zadań na maszynach równoległych LITERATURA OBOWIĄZKOWA LITERATURA UZUPEŁNIAJĄCA 1. 2. 3. J. Marecki, Automaty, języki formalne i algorytmy, Wyd. Pracowni Komputerowej J. Skalmirskiego, Gliwice 2004. Wróblewski, Algorytmy, struktury danych i techniki programowania, wyd. Helion 2003. Cormen T.H., Leiserson T.H., Rivest R.L.: Wprowadzenie do algorytmów, Wydawnictwo PWN, Warszawa, 2000. 1. 2. 3. Papadimitriou, ZłoŜoność obliczeniowa, Wydawnictwo PWN, Warszawa 2002 M.M .Sysło, N. Deo, J.S. Kowalik, Algorytmy optymalizacji dyskretnej, PWN. S. Haris, J. Ross, Algorytmy od podstaw, Wyd. HELION, 2006 METODY NAUCZANIA Wykład będzie prowadzony przy wykorzystaniu : tablicy lub rzutnika. Omawianie podstawowych algorytmów i struktur danych wraz z ich analizą oraz ilustracja obliczeń - iteracji algorytmów za pomocą przykładów dydaktycznych. POMOCE NAUKOWE PRZYKŁADOWE TEMATY PROJEKTÓW SPOSÓB I WARUNKI ZALICZENIA PRZEDMIOTU PRZYKŁADOWE ZAGADNIENIA (ew. pytania) EGZAMINU/ ZALICZENIA 1. VisualC++, BuilderC++ 2. Notatki w internecie; http://oen.dydaktyka.agh.edu.pl/dydaktyka/automatyka/c_3_bad_operac_elektrotechnika_fizyk a/badania_op.php 3. Notatki w internecie; http://oen.dydaktyka.agh.edu.pl/dydaktyka/informatyka/c_algorytmy_i_str_danych/ 4. Wolna Encyklopedia WIKIPEDIA htp://pl. wikipedia.org/wiki /Kategoria:Algorytmy Warunkiem zaliczenia przedmiotu jest uzyskanie pozytywnej oceny z wykładu: Termin 0 : na podstawie pisemnych wypracowań wykonanych podczas wykładu, do 20. minut na 4. godzinnym wykładzie. Termin 1, 2 : pisemne odpowiedzi na zadane przez wykładowcę pytania z całości materiału łącznie z rozwiązywaniem przykładów ilustrujących. 1. Jak wyznaczamy złoŜoność obliczeniową czasową algorytmu? 2. Co oznacza wyraŜenie f(n) = O(w(n)) i argument n? 3. Jaki warunek muszą spełniać dane w tablicy, jeŜeli chcemy zastosować algorytm binarnego przeszukiwania danych i dlaczego? 4. Porównać haszowanie z przeszukiwaniem liniowym. 5. Zdefiniować funkcję haszującą. 5. Uzasadnić złoŜoność obliczeniową sortowania. * Proszę zacieniować odpowiedni rok i semestr