1. Omówić hierarchię języków Chomsky`ego. Przedstawić

Transkrypt

1. Omówić hierarchię języków Chomsky`ego. Przedstawić
1. Omówić hierarchię języków Chomsky'ego. Przedstawić pojęcie automatu (maszyny
stanowej) i wyjaśnić związek automatów z językami.
WI
--- Automat (maszyna stanowa) --A = < 1. zb.stanów, 2. alfabet wejśc., 3. funkcja przejścia, 4. st.początkowy, 5. zb.st.końcowych>
np. A = <
{s_0, s_1},
{0, 1},
M(s_i, 0)=s_j,
s_0,
, {s_0, s_1}
>
--- Związek automatów z językami --Automat można przekształcić na język i odwrotnie.
Taki automat A będzie akceptował poprawne słowa tego języka L (znajdzie się w stanie końcowym).
Zbiór wszystkich słów akceptowalnych przez automat A tworzy język L.
--- Hierarchia języków Chomsky'ego ---------------------------------------------------------------------Typ
Języki
Gramatyka
Automat
-------------------------------------------------------------------0
rekursywnie
bez ograniczeń
Maszyna Turinga
przeliczalne
(nieskończona taśma;
równoważne automatowi
skończonemu z dwoma stosami)
-------------------------------------------------------------------1
kontekstowe
kontekstowa
ograniczona maszyna Turinga
(większość jęz.
(liczba komórek z taśmy jest
programowania)
funkcją liniową długości
łańcucha wejściowego)
-------------------------------------------------------------------2
bezkontekstowe bezkontekstowa
niedeterministyczny
automat ze stosem,
skończony
-------------------------------------------------------------------3
regularne
regularna
deterministyczny automat,
skończony
---------------------------------------------------------------------- Informacje podstawowe --Gramatyka formalna opisująca język (generuje język):
G = <T, N, S, P>
T
N
S
P
-
alfabet symboli terminalnych np. {a, b}
alfabet symboli nieterminalnych (pomocniczych) np. {S, A}
symbol początkowy np. S
zbiór produkcji, np. {S->A, S->ab}
----------------------------------------------------------------------------------------------2. Scharakteryzować układy kombinacyjne, synchroniczne i asynchroniczne. Jak opisywany
jest stan tych układów i przy jakich założeniach są projektowane?
PTCY
- Układy kombinacyjne - stan wyjść jest w każdej chwili określony przez stan wejść
(nie zapamiętuje się stanu)
- Układy sekwencyjne - stan wyjść jest w każdej chwili określany przez stan układu.
Stan automatu jest pamiętany w przerzutnikach (pamięci 1 bitowe).
- Synchroniczne - zmiana stanu automatu następuje tylko w chwilach określonych przez
zewnętrzny zegar
- Asynchroniczne - zmiana stanu automatu następuje w chwili zmiany sygnałów wejściowych
Opis stanu układów:
- Automat Moore'a
- zmiana stanu:
- wyjście:
- Automat Mealy’ego
- zmiana stanu:
- wyjście:
zależy od poprzedniego stanu oraz od wejścia
zależy bezpośrednio tylko od bieżącego stanu
zależy od poprzedniego stanu oraz od wejścia
zależy od bieżącego stanu oraz od wejścia
Przy projektowaniu układów cyfrowych, należy wziąć pod uwagę:
- opóźnienie propagacji sygnału (jak najmniej warstw układu)
- hazard - różne opóźnienia wprowadzane przez elementy układu
- wyścigi - nie można zakładać kolejności zmian bitów opisujących
stan układu
----------------------------------------------------------------------------------------------3. Sposoby projektowania systemów cyfrowych z bloków funkcjonalnych. Układ operacyjny i
1
PTCY
układ sterujący, systemy współbieżne.
Blok funkcjonalny - wyodrębniony MODUŁ KOMBINACYJNY LUB SEKWENCYJNY
Typowe bloki funkcjonalne:
- Multiplekser - układ realizujący funkcję wybierania. Posiada wejścia informacyjne i
wejścia sterujące. Podając odpowiednie słowo na wejście sterujące wybiera się sygnał
z jednego z wejść informacyjnych, którego wartość zostanie podana na wyjście
układu.
- Demultiplekser - to samo na odwrót. Słowo podane na wejście sterujące determinuje,
na które z wielu wyjść trafi sygnał z pojedynczego wejścia. Na pozostałych wyjściach
podawane jest 0.
- Koder - układ realizujący pewną transformację słowa wejściowego w słowo
wyjściowe. Przykład: kod NKB kod „1 z N”.
- Komparator - porównuje dwie liczby dwójkowe. 3 wyjścia (a>b, a=b, a<b).
- Sumator - dodaje arytmetycznie dwie liczby dwójkowe (wejście i wyjście bitu przeniesienia)
- ALU - jednostka arytmetyczno-logiczna. Służy do przeprowadzania różnorodnych
mikrooperacji arytmetycznych. Typ przeprowadzanej operacji zależy od sygnałów sterujących.
- Bramka trójstanowa - sygnał streujący decyduje czy przekazać wejście na wyjście,
czy może wprowadzić go w stan wysokiej impedancji (do podłączania do magistrali)
- Rejestr - służy do przechowywania danych.
- Licznik - umożliwia dodanie lub odjęcie jedności od przechowywanej przez siebie
wartości (oraz jej ładowanie i resetowanie).
Układ operacyjny - część systemu odpowiedzialna za przetworzenie danych wejściowych
w dane wyjściowe. Składa się z bloków funkcjonalnych niezbędnych do realizacji algorytmu
działania systemu
Układ sterujący - steruje pracą układu operacyjnego przy pomocy sygnałów sterujących,
na podstawie informacji o jego stanie wewnętrznym; dodatkowo jest odpowiedzialny
za synchronizacje pracy systemu z otoczeniem
Przykład z książki:
- układ operacyjny realizuje operację mnożenia
- układ sterujący steruje zmianami stanu układu operacyjnego oraz komunikuje się z otoczeniem
poprzez sygnały "start" i "wynik gotowy"
System współbieżny - klasa systemów, które realizują swoje zadania równolegle.
Do ich projektowania wykorzystuje się sieci Petriego.
----------------------------------------------------------------------------------------------4. Procesy i wątki w systemie operacyjnym. Omówić budowę, szybkość działania i zakres
zastosowania. Przedstawić problemy i możliwości komunikacji i synchronizacji.
----- [Proces] ----Proces - procesem nazywamy wykonujący się program WRAZ Z JEGO ŚRODOWISKIEM OBLICZENIOWYM.
Budowa procesu - tablica procesu:
A. Zarządzanie procesem:
- REJESTRY DANYCH, LICZNIK ROZKAZÓW (PC), WSKAŹNIK STOSU, Słowo stanu procesora (PSW)
- Stan procesu, ID procesu, priorytet, proces rodzic, sygnały
B. Zarządzanie pamięcią:
- Wskaźnik do segmentu kodu, segmentu danych, SEGMENTU STOSU
C. Zarządzanie plikami:
- Katalog root
- Katalog bieżący
- Deskryptory plików
- ID użytkownika
Komunikacja IPC: pipe, fifo, shmem, socket, sygnały, komunikaty
Synchronizacja: mutex, semafor
----- [Wątek] ----Wątek - oddzielny przebieg sterowania w ramach danego procesu.
Wątki poziomu jądra i poziomu użytkownika
Budowa wątku:
A. Zarządzanie wątkiem:
- REJESTRY DANYCH, LICZNIK ROZKAZÓW (PC), WSKAŹNIK STOSU
- Stan wątku
B. Zarządzanie pamięcią:
- Wskaźnik do SEGMENTU STOSU
Komunikacja: zmienne globalne
Synchronizacja: mutex, semafor, bariera, zmienna warunku, monitor
2
SOI
----- [Procesy i wątki - szybkość działania i zakres zastosowania] ----1.
2.
3.
4.
procesy
wątki
wątki
wątki
-
lepsza ochrona pamięci
szybsze przełączanie kontekstu (chyba, że równolegle)
łatwiejsza komunikacja
łatwiejsze współdzielenie zasobów
----------------------------------------------------------------------------------------------5. Scharakteryzować problemy i mechanizmy zarządzanie pamięcią. Porównać cechy i
przeznaczenie mechanizmów stronicowania i segmentacji.
SOI
----- Mechanizmy zarządzania pamięcią ----A. Cel zarządzania pamięcią - przydział pamięci operacyjnej procesom użytkowym:
1. brak podziału - wolna przestrzeń adresowa w danej chwili przydzielana jednemu procesowi
użytkowemu (wieloprogramowanie można realizować przez wymiatanie)
2. podział pamięci - wolna przestrzeń adresowa podzielona na części przydzielane pojedynczym
procesom użytkowym,
3. wykorzystanie pamięci wirtualnej - istnieje jedna lub wiele wirtualnych przestrzeni adresowych
przydzielanych procesom użytkowym, a mających w niewielkim
stopniu pokrycie w pamięci operacyjnej
B. Algorytmy alokacji
C. Problemy zarządzania pamięcią: fragmentacja wewnętrzna i zewnętrzna
Przeciwdziałanie:
- zwalnianie i scalanie,
- zagęszczanie i relokacje,
- mechanizm stronicowania.
----- Pamięć wirtualna ----Pamięć wirtualna - system pamięci złożony z co najmniej dwóch rodzajów pamięci:
małej i szybkiej (np. pamięci operacyjnej) oraz dużej, lecz wolnej (np. pamięci pomocniczej),
a także z dodatkowego sprzętu i oprogramowania umożliwiającego automatyczne przenoszenie
fragmentów pamięci z jednego rodzaju pamięci do drugiego.
Metody relizacji: stronicowanie, segmentacja, stronicowanie z segmentacją
--- Stronicowanie --Stronicowanie bazuje na stałym podziale pamięci. Jednostki podziału:
- ramy, ramki (ang. frames) dla pamięci fizycznej,
- strony (ang. pages) dla wirtualnej przestrzeni adresowej procesu.
Zadania mechanizmu stronicowania:
- odwzorowywanie adresów wirtualnych w adresy rzeczywiste
- przesyłanie stron
--- Segmentacja --Segmentacja dzieli pamięć na logiczne segmenty o zmiennej wielkości.
Można korzystać z dużej liczby segmentów z nadawanymi przez programistę nazwami.
Przestrzeń adresowa dwuwymiarowa z racji identyfikacji adresu poprzez parę nazwa segmentu
plus adres wewnątrz segmentu
--- Stronicowanie a segmentacja --1. fizyczny
logiczny podział pamięci
2. niski poziomu,
wyższy poziom,
niewidocznym dla programisty
widoczny dla programisty
3. stały rozmiar strony
zmienny rozmiar segmentu
4.
ochrona poszczególnych elementów procesu
5.
współdzielenie segmentów między procesami
6. fragmentacja wewnętrzna
fragmentacja zewnętrzna
----------------------------------------------------------------------------------------------6. Zdefiniować postacie normalne relacji w relacyjnej bazie danych. Która postać normalna BD2
jest zwykle wymagana i dlaczego?
BDA
1NF. Relacja jest w 1NF gdy wszystkie atrybuty są atomowe, tj. prostych typów
(bez atrybutów złożonych, tablicowych, wskaźników)
2NF. Relacja jest w 2NF gdy każdy atrybut niekluczowy jest
zależny funkcyjnie od całego klucza właściwego.
3NF. Relacja jest w 3NF gdy każdy atrybut niekluczowy jest
bezpośrednio zależny funkcyjnie od całego klucza właściwego.
3
3NF jest zazwyczaj wystarczająca dla usunięcia praktycznie ważnych anomalii.
Każdy schemat można doprowadzić do 3NF zachowując:
- zależności
- odwracalność rozkładu
Konsekwencje braku normalizacji:
- Redundancja i anomalie
- Ryzyko utraty spójności danych
- Komplikacja kodu
----------------------------------------------------------------------------------------------7. Zdefiniować pojęcie transakcji i wyjaśnić znaczenie cech ACID. Scharakteryzować
systemy OLTP.
BD2
Transakcja - niepodzielna operacja wykonywana przez serwer na zamówienie klienta,
charakteryzująca się 4 cechami: atomowość, spójność, izolacja, trwałość;
realizacja cech transakcji jest ukryta przez klientem
Cechy transakcji:
• Atomicity (atomowość)
- niepodzielność, transakcja musi być zrealizowana w pełni
lub wycofana
• Consistency (spójność) - transakcja musi pozostawić bazę w spójnym (poprawnym) stanie
• Isolation (izolacja)
- proces realizacji transakcji musi przebiegać w izolacji od
wszelkich innych transakcji.
• Durability (trwałość) - rezultat wykonania transakcji jest trwały i odporny np. na awarie
System OLTP (online transaction processing):
• Główne zadanie: gromadzenie danych
• Typowe operacje
– wielka liczba niewielkich transakcji modfikujących dane
– operacje interaktywne i wsadowe
• Typowe środowisko: operacyjne bazy danych
• Główne problemy
– wielodostęp (!)
– konieczność stałego utrzymania spójności danych
– maksymalizacja średniej wydajności
----------------------------------------------------------------------------------------------8. Scharakteryzować sposoby komunikowania się podprogramów z otoczeniem w językach
programowania i wyjaśnić ich wpływ na efektywność wykonywalnego kodu.
PRI
Sposoby komunikacji w podprogramach (argumenty, wartości zwracane):
- przez wartość
- przez wskaźnik lub referencję (de facto: przez wartość wskaźnika)
[Argumenty - wejściowe i wyjściowe]
Komunikacja przez wartość wymaga skopiowania wartości, dlatego - w przypadku typu danych
o rozmiarze większym niż wskaźnik - będzie mniej efektywna.
[Wartość zwracana]
Nie można zwracać wskaźnika do pamięci ze stosu podprogramu - tylko do pamięci przydzielonej
na stercie.
[Zmienne globalne]
----------------------------------------------------------------------------------------------9. Wyjaśnić koncepcję obliczeń iteracyjnych i rekurencyjnych. Podać przykłady zastosowań: PRI
w programowaniu, przy definiowaniu języków programowania itd.
Jeśli chodzi o zastosowania, to OBLICZENIA iteracyjne stosuje się do problemów zdefiniowanych
iteracyjnie, a obliczenia rekurencyjne stosuje się do problemów zdefiniowanych rekurencyjnie.
Obliczenia iteracyjne - sekwencyjne powtarzanie danej procedury (wykonywanie obliczeń w pętli)
Zastosowanie:
- liczenie agregatów - min, max, suma
- przetwarzanie elementów sekwencji (tablicy, listy)
Rekurencja - wywoływanie procedury z samej siebie (może być niebezpośrednio)
Zastosowania:
- obliczenia przy użyciu wzorów rekurencyjnych - np. silnia, ciąg Fibonaciego, punkt stały
- przetwarzanie nawigacyjnych struktur danych: listy, drzewa, grafy
4
----------------------------------------------------------------------------------------------10. Scharakteryzować paradygmat programowania obiektowego. Wymienić i podać przykłady
zastosowania najważniejszych cech języków obiektowych.
PROBE
Paradygmat obiektowy - programy definiuje się za pomocą obiektów - elementów łączących stan
(czyli dane, nazywane najczęściej polami) i zachowanie (czyli procedury, tu: metody).
Obiektowy program wyrażony jest jako zbiór takich obiektów, komunikujących się
pomiędzy sobą w celu wykonywania zadań.
Podstawowe cechy języków obiektowych:
1. Enkapsulacja - ukrywanie implementacji
Np. Mapa, która ukrywa wewnętrzną reprezentacje w postaci drzewa lub tablicy haszującej
2. Dziedziczenie - umożliwienia definiowanie i tworzenie specjalizowanych obiektów na podstawie
bardziej ogólnych.
Np. strumień i różne implementacje (standardowe wyjście, plik, gniazdo)
3. Polimorfizm - zachowanie odpowiednie dla pełnego typu obiektu wywoływanego
Np. strumień, którego różne implementacje piszą na standardowe wyjście, do pliku, do gniazda
----------------------------------------------------------------------------------------------11. Omówić mechanizm obsługi wyjątków w językach obiektowych i porównać cechy tego
mechanizmu z "proceduralną" obsługą błędów.
PROBE
1. Funkcja, która wykrywa błąd rzuca wyjątkiem (zawierającym informacje o błędzie),
który jest z kolei przechwytywany w miejscu, w którym można go obsłużyć.
2. "Proceduralna" obsługa błędów - trzeba sprawdzić kod błędu wywoływanej funkcji
i obsłużyć go w miejscu wywoływania funkcji.
Porównanie: wyjątki umożliwiają oddzielenie wykrywanie błędów od ich obsługi.
Dzięki temu kod jest lepiej zorganizowany i czytelniejszy.
----------------------------------------------------------------------------------------------12. Wyszukiwanie danych na podstawie wartości klucza. Przedstawić stosowane w tym celu
struktury danych oraz algorytmy i ich złożoność obliczeniową.
AISDI
1. Struktura: posortowana tablica
Algorytm: wyszukiwanie binarnego, złożoność log N
2. Struktura: drzewo binarne uporządkowane
Algorytm: przechodzenie od korzenia w dół, złożoność log N
3. Struktura: tablica haszująca (tablica ze wskaźnikami na listy jednokierunkowe)
Algorytm: obliczenie haszu i przeszukanie odpowiedniej listy, złożoność: od stałej do N
----------------------------------------------------------------------------------------------13. Algorytmy sortowania. Przedstawić i sklasyfikować podstawowe algorytmy sortowania,
omówić zasadę ich działania i porównać właściwości.
AISDI
Od najwolniejszego do najszybszego (w przypadku losowych danych wejściowych):
1. Sortowanie przez wybór - złożoność n^2
polega on na wielokrotnym wyborze minimalnego elementu z coraz krótszego podciągu danych
2. Sortowanie bąbelkowe - złożoność n^2
polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne,
zmienianiu ich kolejności (lżejsze "bąbelki" ulatują do góry)
3. Sortowanie przez wstawianie - złożoność n^2
ciąg danych jest dzielony na dwie części: już uporządkowaną (przed uruchomieniem procedury
nie zawiera ona żadnych elementów) oraz jeszcze nie uporządkowaną (na początku zawiera
wszystkie elementy).
Sposób porządkowania można opisać następująco:
- weź pierwszy element z części nieuporządkowanej (jeśli jest pusta to zakończ
działanie algorytmu)
- wstaw go w odpowiednie miejsce w części uporządkowanej (po takiej operacji część
nieuporządkowana jest jeden element krótsza, a część posortowana zyskuje jeden
element).
4. Sortowanie przez scalanie (mergesort) - złożoność nlogn + dodatkowa pamięć n
- Podziel ciąg na dwie równe części (jeśli ciąg ma nieparzystą liczbę elementów, jedna
z części będzie miała o jeden element więcej).
- Każdą z części uporządkuj.
- Scal dwa uporządkowane ciągi w jeden ciąg uporządkowany (przeglądając te ciągi
5
równolegle i wybierając właściwy bieżący element)
5. Quicksort - złożoność od nlogn do n^2 - dodatkowa pamięć (zależne od implementacji)
- Jeżeli liczba elementów w ciągu jest większa od 1, to podziel ciąg na dwie części tak,
aby elementy z pierwszej części były nie większe niż elementy z drugiej części.
- Wywołaj procedurę sortującą dla pierwszej części ciągu.
- Wywołaj procedurę sortującą dla drugiej części ciągu.
----------------------------------------------------------------------------------------------14. Schemat obsługi zdarzeń w języku Java. Wymienić rodzaje zdarzeń oraz typy danych i
metody stosowane w procesie obsługi. Wyjaśnić znaczenie "wątku rozdziału zdarzeń".
PROZ
Obsługa interfejsu graficznego w Java jest oparta o model obsługi zdarzeń (biblioteka AWT i Swing).
Model składa się z następujących elementów:
- obiekt zdarzenia, zawierający informacje o zdarzeniu, np. ActionEvent, MouseEvent
- źródło zdarzenia - obiekt generujący zdarzenia i pozwalający rejestrować obiekty nasłuchujące
zdarzeń; zwykle jest to komponent interfejsu użytkownika
- obsługa zdarzenia - obiekt obsługujący zdarzenie (listener), implementujący odpowiedni interfejs
np. ActionListener, MouseListener; jest to obiekt zarejestrowany przez
programistę GUI
Klasyfikacja zdarzeń:
1. niskopoziomowe zdarzenia generowane przez każdy komponent GUI: ComponentEvent, FocusEvent,
KeyEvent, MouseEvent lub generowane przez obiekty "okien" (jak Frame oraz Dialog: WindowEvent)
2. zdarzenia wyższego poziomu: ActionEvent, AdjustmentEvent, ItemEvent
"Wątek rozdziału zdarzeń" jest działającym w tle wątkiem używanym do przetwarzania zdarzeń w AWT.
Większość z tych zdarzeń powoduje przerysowanie się komponentów lub obsługę urządzeń wejściowych.
Jest to jedyny wątek w którym można wykonywać operacje zmieniające wygląd interfejsu użytkownika.
----------------------------------------------------------------------------------------------15. Realizacja graficznego interfejsu użytkownika w bibliotece Swing języka Java. Omówić
podstawowe klasy i kontenery, klasyfikację komponentów i zasady ich rozmieszczania
przez menadżery oraz proces malowania kontenera i komponentów.
PROZ
--- Kontenery --Kontener jest obiektem graficznym, który służy do grupowania innych obiektów
graficznych. Każdy JComponent jest kontenerem.
Wyróżniamy kontenery najwyższego poziomu:
JFrame - okno najwyższego poziomu
JDialog - okno dialogowe
JApplet - kontener dla apletów
Innym ważnym kontenerem jest JPanel - służący do organizacji rozmieszczenia komponentów.
--- Komponenty - klasyfikacja --1.
2.
3.
4.
5.
tekstowe: JTextField, JTextArea
wybór opcji: JRadioButton, JCheckBox, JList
przyciski: JButton
obsługa menu: JMenu, JMenuItem
inne: JTree etc.
--- Rozmieszczanie komponentów - menadżery layoutu --Layout menadżer jest obiektem, który kontroluje rozmieszczenie oraz rozmiar komponentów
umieszczonych wewnątrz danego kontenera.
Podstawowe menadżery:
1. FlowLayout - najprostszy, domyślny manager; umieszcza komponenty w wierszu,
jeden obok drugiego i nie zmienia ich rozmiarów
2. BorderLayout - rozmieszczenie (NORTH/SOUTH/WEST/EAST/CENTER)
3. BoxLayout - układa komponenty "jeden na drugim" w jednej kolumnie (bądz "jeden
koło drugiego" w jednym wierszu)
4. GridLayout - podział i rozmieszczenie na regularnej kratownicy
--- Proces malowania kontenera i komponentów --Komponenty biblioteki SWING nie bazują na GUI systemu operacyjnego, tylko same rysują się na ekranie.
Każdy komponent może być wyrysowany na ekranie w dowolnej chwili poprzez zawołanie metody paint().
Metoda paint() jest wołana automatycznie przez watek EDT przy pierwszym pojawieniu się obiektu oraz
6
przy każdej zmianie jego wyglądu (przesłonięcie/odsłonięcie).
----------------------------------------------------------------------------------------------16. Zdefiniować zadania programowania liniowego, mieszanego i całkowitoliczbowego.
Opisać podstawowe metody rozwiązywania dyskretnych problemów decyzyjnych
(programowanie dynamiczne, schemat metody podziału i oszacowań, metody
heurystyczne).
POBO
Programowanie liniowe - ograniczenia i funkcja celu jest liniowa; zmienne decyzyjne są rzeczywiste
Programowanie całkowitoliczbowe - jak programowanie liniowe ale zmienne decyzyjne są liczbami
całkowitymi (proste zaokrąglenie do najbliższej liczby całkowitej może nie być dopuszczalne
ani optymalne, NP-trudny)
Programowanie mieszane - jak programowanie liniowe, ale część zmiennych decyzyjnych jest
całkowitoliczbowa, a część rzeczywista, NP-trudny
Metody rozwiązywania dyskretnych problemów decyzyjnych:
--- Programowanie dynamiczne --Metoda programowania dynamicznego służy do rozwiązywania zadań optymalizacji,
w których można wyodrębnić tzw. STRUKTURĘ WIELOETAPOWĄ, gdzie etapy najczęściej odpowiadają okresom
czasu. Metoda polega na DEKOMPOZYCJI PROBLEMU na prostsze podproblemy etapowe, rozwiązywane
rekurencyjnie w kolejnych etapach.
Metoda:
Problem programowania dynamicznego może być przedstawiony za pomocą WARSTWOWEGO GRAFU PRZEJŚĆ STANU
jako problem najkrótszej ścieżki. Wierzchołki grafu odpowiadają dyskretnym wartościom,
jakie przybiera zmienna stanu w danym etapie, natomiast każdy łuk łączy dwa wierzchołki
z sąsiadujących warstw i odpowiada przejściu od pewnego stanu i w pewnym etapie k do
stanu j w etapie następnym. Łukowi (i,j) odpowiada pewien koszt c_ij związany z tym przejściem.
Wyznaczenie optymalnej trajektorii sterowania odpowiada WYSZUKANIU NAJTAŃSZEJ ŚCIEŻKI
rozpoczynającej się w wierzchołku S=x_0 i kończącej się w wierzchołku końcowym T.
1) krok N-ty: J_n(i) = c_ij^n dla i z X_N
2) krok k-ty: J_k(i) = min_j(c_ij^k + J_k+1(j))
Optymalna wartość J_1(i)
Przechodzimy w drugą stronę poszukując podjętych decyzji.
--- Schemat metody podziału i oszacowań --Metoda podziału i oszacowań jest ogólnym schematem rozwiązywania problemów
optymalizacji dyskretnej, w tym zadań programowania całkowitoliczbowego i mieszanego.
W metodzie tej dokonuje się NIEJAWNEGO PRZEGLĄDU wszystkich elementów zbioru
dopuszczalnego. Niejawność przeglądu polega na tym, że wiele rozwiązań, dla których
można wykazać, że nie mogą być lepsze od najlepszego z dotychczas znalezionych
rozwiązań, są odrzucane niejawnie, bez konieczności ich dokładnego badania.
W tej metodzie przeszukiwanie przestrzeni polega na NAPRZEMIENNYM PODZIALE (aktualnie
przeszukiwanego) zbioru rozwiązań na podzbiory oraz analizie podproblemów określonych na tych
podzbiorach. Analiza jest przeprowadzana z wykorzystaniem tzw. OSZACOWAŃ OD DOŁU I GÓRY
optymalnej wartości funkcji celu dla tych podproblemów.
Proces przeszukiwania zbioru rozwiązań jest wygodnie reprezentować za pomocą tzw.
DRZEWA PODPROBLEMÓW, w którym wierzchołkom odpowiadają podproblemy Pk, przy czym
korzeniem drzewa jest problem pierwotny P0. W pewnych przypadkach (np. gdy oszacowanie
od góry jest równe oszacowaniu od dołu) potrafimy wyznaczyć rozwiązanie optymalne dla
tego podproblemu. W przeciwnym wypadku należy dalej kontynuować przeszukiwanie
poprzez podział podproblemu Pj na mniejsze podproblemy.
--- Metody heurystyczne ------------------------------------------------------------------------------------------------17. Przedstawić modele sieci przepływowych, przykładowe zagadnienia modelowane w tych
sieciach oraz podstawowe typy zadań optymalizacji. Omówić właściwości modeli
sieciowych w zastosowaniu do rozwiązywania dyskretnych problemów decyzyjnych.
--- Model sieci przepływowej --Model:
1. Graf skierowany G=(V,E), V={1..m} zbiór wierzchołków, E={(i,j): i,j in V} zbiór łuków
2. x_ij - przepływ po łuku (i,j)
3. koszty i ograniczenia przepływu po łuku
7
POBO
4. wyróżniamy źródło s i ujście t, reszta musi mieć zerową sumę przypływu i odpływu
Zadanie przepływu w sieci, to szczególny rodzaj zadania programowania liniowego:
1. x_ij - zmienna decyzyjna
2. A - macierz binarna - czy istnieje połączenie
3. b - źródło b_i > 0, wierzchołek wewnętrzny b = 0, ujście b_i < 0
4. c - koszt przepływu
5. l_ij <= x_ij <= u_ij - ograniczenia przepływu po łuku
Dwa typy zadań optymalizacji:
1. Problem maksymalnego przepływu
2. Problem minimalnokosztowego przepływu
--- Klasy zadań --- zagadnienia zarządzania produkcją i dystrybucją wyrobów,
- zadania przydziału - np. procesorów i zadań (wg. kryterium jakości)
- zagadnienia szeregowania (zadań)
--- Właściwości modeli sieciowych ------------------------------------------------------------------------------------------------18. Sposoby opisu ciągłych liniowych układów dynamicznych. Omówić równania stanu,
transmitancje, charakterystyki częstotliwościowe i odpowiedzi skokowe.
PSTE
--- Równania stanu --Związek między wyjściem y, a wejściem u oraz stanem x jest opisany układem równań:
dx(t)/dt
y(t)
=
=
Ax(t) + Bu(t)
Cx(t) + Du(t)
(zmiana stanu wewnętrznego - kombinacja liniowa stanu i wejścia)
(wyjście - kombinacja liniowa stanu i wejścia)
--- Transmitancja --Transmitancja - stosunek transformaty Laplace'a sygnału wyjściowego
do transformaty Laplace'a sygnału wejściowego układu przy zerowych warunkach
początkowych:
G(s) = Y(s) / U(s)
- funkcja wymierna zmiennej zespolonej s (iloraz wielomianów)
--- Charakterystyki częstotliwościowe --Charakterystyka częstotliwościowa opisuje odpowiedź układu na wymuszenie harmoniczne
(sinusoidalne) o częstotliwości zmieniającej się w określonym zakresie.
--- Odpowiedzi skokowe --Odpowiedź skokowa to odpowiedź układu na wymuszenie w postaci skoku jednostkowego
przy zerowych warunkach początkowych
----------------------------------------------------------------------------------------------19. Sprzężenie zwrotne i jego wpływ na dokładność, odporność na błędy i zakłócenia oraz
stabilność układu sterowania. Przedstawić warunki podtrzymania drgań oraz kryterium
Nyquista dla obiektu stabilnego. Zdefiniować pojęcia zapasu fazy i modułu.
PSTE
--- Sprzężenie zwrotne --Sprzężenie zwrotne - oddziaływanie sygnału wyjściowego na sygnał wejściowy
(wartość zadana regulatora jest sumowana z sygnałem wyjściowym układu)
Wpływ na dokładność, wpływ na odporność na błędy i zakłócenia oraz stabilność układu sterowania:
1. Za osiągnięcie powyższych właściwości jest odpowiedzialny odpowiedni regulator
(a nie sprzeżenie zwrotne; sygnał E(s) = R(s) - Y(s) jest wejściem do regulatora).
2. Sprzeżenie zwrotne umożliwia w układzie regulacji (pożądane cechy układu regulacji):
- spełnienie wymagań dotyczących DOKŁADNOŚCI odtwarzania sygnału R
- odpowiednio dobrą (zapasy stabilności) STABILNOŚĆ asymptotyczną układu zamkniętego
- tłumienie wpływu ZAKŁÓCEŃ na wyjście
--- Warunki podtrzymania drgań ----- Kryterium Nyquista dla obiektu stabilnego --Kryterium Nyquista oferuje prosty TEST STABILNOŚCI UKŁADU ZAMKNIĘTEGO, poprzez analizę
charakterystyki amplitudowo-fazowej* UKŁADU OTWARTEGO.
8
* - wykres transmitancji widmowej** układu na płaszczyźnie zmiennej zespolonej
** - otrzymywana z transmitancji operatorowej przez podstawienie s = jω
Kryterium:
- Jeżeli układ otwarty jest stabilny, to układ zamknięty też jest stabilny wtedy i tylko wtedy,
gdy wykres charakterystyki amplitudowo-fazowej nie obejmuje punktu (-1, j0).
- Jeżeli układ otwarty nie jest stabilny, to układ zamknięty może być stabilny - to zależy
od ilości i sposobu obiegów punktu (-1, j0).
--- Zapas fazy i modułu --Zapas modułu to krotność, o która możemy zwiększyć wzmocnienie układu otwartego bez
zmiany fazy, aby układ zamknięty znalazł się na granicy stabilności.
Zapas fazy to przesuniecie fazowe wprowadzone w układ otwarty (bez zmian wzmocnienia),
które doprowadza układ zamknięty do granicy stabilności.
----------------------------------------------------------------------------------------------20. Proces projektowy RUP. Wymienić fazy procesu, opisać cele, czynności i wyniki
kolejnych faz oraz wyjaśnić iteracyjny charakter opracowania oprogramowania.
IOP
Proces tworzenia oprogramowania podzielony jest na cykle, gdzie każdy cykl reprezentuje
tworzenie nowej generacji (wydania) produktu. RUP dzieli jeden cykl tworzenia oprogramowania
na cztery kolejne fazy:
1. inicjacji (ang.inception);
2. rozwinięcia (ang.elaboration);
3. konstrukcji (ang.construction);
4. wdrożenia (ang.transition);
Każda faza RUP może zostać podzielona na iteracje. Iteracja jest kompletną „pętlą” tworzenia
pewnej części finalnego produktu, który przyrasta inkrementalnie z jednej iteracji na drugą
tworząc ostatecznie końcowy system.
Korzyści podejścia iteracyjnego:
• łatwiejsze zarządzanie ryzykiem,
• łatwiejsze zarządzanie zmianami,
• możliwość nauki zespołu projektowego w trakcie projektu,
• lepsza całkowita jakość.
--- 1. Faza inicjacji --Cel: w fazie tej formułowany jest problem - ZAGADNIENIE BIZNESOWE (business case).
Czynności:
- określa się jego kontekst biznesowy oraz czynniki wpływające na jego powodzenie
- tworzy się prosty model przypadków użycia
- plan projektu, wstępną analizę ryzyka
- opis projektu (główne wymagania, ograniczenia, główna funkcjonalność)
Wyniki:
* Zgoda użytkowników na oszacowany koszt/czas wykonania.
* Zrozumienie wymagań poprzez ocenę jakości głównych przypadków użycia.
* Wiarygodność szacowanych kosztów, priorytetów, ryzyka i planu procesu wytwarzania.
--- 2. Faza rozwinięcia --Cel: przeprowadzona jest ANALIZA DZIEDZINY zagadnienia (ang. Domain Analysis)
i budowana podstawowa ARCHITEKTURA SYSTEMU.
Wyniki:
* Stworzony został model większości przypadków użycia
* Została opracowana architektura systemu
* Stworzony został plan prac dla całego projektu.
--- 3. Faza konstrukcji --Cel: budowa komponentów i innych funkcjonalności opracowywanego systemu.
Czynności:
- większość prac programistycznych (iteracyjnie)
Wynik: pierwsza wersja oprogramowania do wglądu użytkowników zewnętrznych
--- 4. Faza przekazania systemu ---
9
Cel: w tej fazie produkt przekazywany jest od zespołu programistycznego do użytkowników końcowych
Czynności:
- testy akceptacyjne (testy beta)
- trening użytkowników końcowych i administratorów
Wynik: zakończenie cyklu wytwarzania oprogramowania.
----------------------------------------------------------------------------------------------21. Modele obiektowe. Scharakteryzować podstawowe modele analityczne i projektowe,
wyjaśnić ich współzależności i zastosowanie w toku projektu.
IOP
Modele struktur:
* Klas
* Obiektów
* Komponentów
* Wdrożenia
Modele zachowań:
* Przypadków użycia
* Czynności
* Maszyny stanów
* Interakcji (diagram sekwencji, diagram współpracy)
--- Współzależności modeli (wybrane przykłady) --1. Diagram klas a diagram czynności: diagram czynności opisuje algorytm działania metody będącej
składową klasy.
2. Diagram klas a diagram maszyny stanów: diagram maszyny stanów może odwzorowywać model zmian
stanu instancji klasy.
3. Diagram obiektów a diagram sekwencji: diagram sekwencji reprezentuje interakcję obiektów
z diagramu obiektów.
--- Zastosowanie modeli w toku projektu --Do analizy wymagań i do projektowania.
----------------------------------------------------------------------------------------------22. Wymienić rodzaje urządzeń służących do łączenia sieci, wskazać ich odniesienie do
warstw modelu OSI/ISO oraz porównać właściwości i zakres zastosowania.
SKM
1) repeater - jest urządzeniem, które regeneruje sygnał elektryczny przesyłany za pomocą kabla
sieciowego.
Warstwa OSI: fizyczna
Zastosowanie: zwiększenie zasięgu sieci komputerowej poza ograniczenia wynikające z zastosowanego
medium transmisyjnego
2) koncentrator (hub) – jest urządzeniem posiadającym wiele portów służących do przyłączania hostów
zestawionych przede wszystkim w topologii gwiazdy. Wszystkie podłączone
hosty współdzielą przepustowość koncentratora.
Warstwa OSI: fizyczna
Zastosowanie: tworzenie sieci lokalnych
3) przełącznik (switch) – główną funkcją przełączników jest odbieranie pakietów z jednego portu,
poddawanie ich filtrowaniu i wysyłanie ich do drugiego portu.
Zapewniają więc zawsze i każdemu użytkownikowi pełną przepustowość sieci.
Warstwa OSI: łącza danych
Zastosowanie: tworzenie sieci lokalnych
4) most (bridge) – działa w warstwie łącza, urządzenie posiadające 2 lub więcej portów,
służące do łączenia segmentów w sieci.
Warstwa OSI: łącza danych
Zastosowanie: aktualnie głównie do łączenia różnych rodzajów sieci
5) router – łączy segmenty sieci. Router pozwala sterować przepustowością sieci i zapewnia pełną
izolację pomiędzy segmentami.
Głównym zadaniem routera jest routing, czyli przesyłanie danych jak najlepszą trasą
do miejsca docelowego (protokoły RIP i OSPF).
Router potrafi przeprowadzić segmentację pakietów, ich składanie, buforowanie pakietów,
sterowanie przepływem, konwersję adresów sieciowych na adresy MAC.
Warstwa OSI: sieciowa
Zastosowanie: łączenie sieci lokalnych w intranety i internet
6) brama (gateway) – służy do łączenia sieci o różnych zestawach protokołów w warstwie aplikacji
10
----------------------------------------------------------------------------------------------23. Scharakteryzować i porównać podstawowe metody sterowania ruchem pakietów w sieci
(przełączanie, rutowanie statyczne i dynamiczne, MPLS).
SKM
1. Przełączanie
Przełączanie odbywa się na podstawie adresów ARP wykorzystując tablice adresów ARP w switchach.
Przełączanie odbywa się z wykorzystaniem metod „cut-through” albo „store-and-forward”.
2. Rutowanie statyczne
Routery zawsze wybierają dla pakietu tę drogę, którą nakazał im administrator i w razie awarii
części sieci nie mogą samodzielnie wybrać innej (statyczne tablice routingu).
3. Rutowanie dynamiczne.
Wykorzystuje się różne protokoły rutujące:
1) RIP: Jest to protokół routingu działający na podstawie wektora odległości. Do utworzenia
metryki złożonej stosuje się jedynie liczbę przeskoków. Aktualizacje routingu są
rozgłaszane domyślnie co 30 sekund. RIP wysyła informacje o trasach w stałych odstępach
czasowych oraz po każdej zmianie topologii sieci.
2) OSPF (Open Shortest Path First) - jest protokołem routingu typu stanu łączy (Link State).
W przeciwieństwie do protokołu RIP, OSPF charakteryzuje się dobrą skalowalnością,
wyborem optymalnych ścieżek i brakiem ograniczenia skoków powyżej 15. Przeznaczony
jest dla sieci posiadających do 50 routerów w obszarze. Cechami protokolu OSPF są:
routing wielościeżkowy, routing najmniejszym kosztem i równoważne obciążenia.
OSPF jest protokołem typu link-state jedynie wewnątrz obszaru. Oznacza to, że w ramach
pojedynczego obszaru wszystkie routery znają całą jego topologię i wymieniają się
między sobą informacjami o stanie łącz, a każdy z nich przelicza trasy samodzielnie
wykorzystując algorytm Dijkstry.
Między obszarami OSPF działa jak protokół typu distance-vector, co oznacza, że routery
brzegowe obszarów wymieniają się między sobą gotowymi trasami. Istnienie obszaru zerowego
umożliwia trasowanie pakietów pomiędzy obszarami bez powstawania pętli.
4. MPLS
Technologia MPLS (ang. Multi Protocol Label Switching), wprowadza mechanizmy zarządzania ruchem
do sieci opartych o protokół IP.
MPLS jest rezultatem połączenia technologii przełączania, którą nadal z powodzeniem stosuje się
w sieciach szkieletowych (ATM, Frame Relay) z protokołem IP stosowanym na brzegu sieci.
----------------------------------------------------------------------------------------------24. Wymienić i scharakteryzować cele (aspekty) ochrony informacji. Co to jest
uwierzytelnienie?
BSS
Cele:
1. Integralność
- zapewnienie spójności danych i systemu; uniemożliwienie nieautoryzowanej
modyfikacji (funkcje skrótu)
2. Uwierzytelnienie - stwierdzenie tożsamości osoby chcącej uzyskać dostęp do zasobu
3. Niezaprzeczalność - brak możliwości wyparcia się swego uczestnictwa w wymianie danych
przez jeden z podmiotów uczestniczących w tej wymianie (podpis elektroniczny)
4. Poufność
- zabezpieczenie informacji przed nieuprawnionym odczytaniem (szyfrowanie danych)
5. Autoryzacja, Dostępność
----------------------------------------------------------------------------------------------25. Scharakteryzować symetryczne i asymetryczne algorytmy szyfrowania. Omówić
podobieństwa i różnice między obydwoma rodzajami szyfrowania.
BSS
Szyfrowanie symetryczne - jeden tajny klucz do szyfrowania i odszyfrowania
Algorytmy: DES, AES, IDEA, TwoFish
Szyfrowanie asymetryczne - jeden klucz do szyfrowania a drugi do odszyfrowania (klucz publiczny
i klucz prywatny; nie ma możliwości wyznaczenia klucza prywatnego
na podstawie znajomości klucza publicznego)
Algorytmy: RSA, ElGamal
Różnice:
----------------------------------------------------------------------------------------------szyfrowanie symetryczne
|
szyfrowanie asymetryczne
----------------------------------------------------------------------------------------------- szybkie algorytmy
| - wolne algorytmy
- krótkie klucze
| - długie klucze
11
- zazwyczaj częste zmiany klucza
- problem wymiany klucza
| - zazwyczaj nieczęste zmiany klucza
| - proste zarządzanie kluczami (ale konieczność
|
zapewnienia ich autentyczności)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------26. Scharakteryzować podstawowe metody reprezentacji wiedzy oraz porównać zalety i wady
tych metod. Wyjaśnić pojęcia reprezentowane przez zbiory przybliżone i rozmyte.
IW
1. Zdania i formuły zdaniowe
Opis cech formułowany jest w postaci zdań, przy czym zdanie prawdziwe ma wartość 1,
zaś zdanie fałszywe - wartość 0;
Formuła zdaniowa powstaje ze zdań (oznaczonych symbolami A,B,C...) poprzez połączenie ich
za pomocą funktorów zdaniotwórczych: negacja, koniunkcja, alternatywa, implikacja, równoważność.
2. Agregaty
Dotyczą zjawisk, zdarzeń, objawów, czynności; zapisujemy je najczęściej postaci
uporządkowanej trójki: <OBIEKT, ATRYBUT, WARTOŚĆ>. Mogą być: dwu-, trzy- lub wieloelementowe.
3. Predykaty i formuły predykatowe
Wartością każdego predykatu jest PRAWDA albo FAŁSZ. Predykaty mogą być:
- Bezargumentowe
(zdanie albo stan)
- PADA, JEST_WIOSNA
- Jednoargumentowe (cecha lub stan)
- ŁYSY(x), USZKODZONY(x)
- Dwuargumentowe
(relacja)
- RÓWNE(x,5), WYNOSI(PODATEK, 20%)
- Wieloargumentowe (funkcja, charakterystyka) - ODLEGŁOŚĆ (W-WA, KRAKÓW, 300)
Formuła predykatowa powstaje z połączenia predykatów przy pomocy funktorów oraz kwantyfikatorów.
ZALETY: proste i zrozumiałe interpretacje wyrażenia zdań
4. Reguły
Ogólna postać może być wyrażona jako: IF przesłanka THEN konkluzja1 ELSE konkluzja2.
Zbiory przybliżone i rozmyte omówione w opracowaniu pytania z przedmiotu WDEC.
----------------------------------------------------------------------------------------------27. Przedstawić zasady i podstawy logiczne automatycznego wnioskowania.
IW
Wnioskowanie polega na wykorzystaniu przekształcenia {F ,W } --R--> C , gdzie:
• F – Fakty, mogą być:
o znane a priori
o podane przez użytkownika w trakcie wnioskowania
o wynikiem dopasowania pewnych reguł do już znanych faktów (rozszerzanie
zbioru danych)
•
W – Wiedza, stały zbiór reprezentujący wiedzę ekspertów na pewien temat (a priori),
np. w postaci reguł
•
C – Cel
•
R – Reguła wnioskowania
- modus ponens
- rezolucja
Istnieje kilka sposobów przeprowadzania wnioskowania:
• Wnioskowanie na podstawie danych (wprzód)
Do posiadanych danych dopasowujemy wszystkie reguły, które pasują. Po każdym
takim kroku powiją nowe dane, które są dołączane do początkowych (rozszerzanie zbioru
danych). Krok ten powtarzany jest tak długo, aż cel zostanie osiągnięty, bądź cel nie
zostanie osiągnięty i nowo dopasowane reguły nie wygenerują żadnych nowych faktów.
• Wnioskowanie na podstawie celu (wstecz)
12

Podobne dokumenty