1. Dany będzie fragment kodu w C++.
6. Czym różnią się od siebie zmienne statyczne, automatyczne i dynamiczne? 3
Zmienne automatyczne
- Zmienna tworzona „na nowo” przy każdym uruchomieniu funkcji
- Domyślny rodzaj zmiennych lokalnych
-Są automatycznie tworzone i usuwane w czasie wykonywania programu
- są umieszczone w obszarze stosu (stock)
Zmienne statyczne
- Wartość zmiennej zapamiętywana pomiędzy kolejnymi wywołaniami funkcji
- Są tworzone raz, przy wywołaniu programu
Zmienne dynamiczne
-Mogą być tworzone i usuwanie w dowolnym momencie działania programu
-Są umieszczane w obszarze sterty (heap)
-Maksymalny rezerwowany obszar zależy od systemu i dostępności pamięci
-Dają możliwość kontroli nad przydziałem pamięci (np. reakcję, gdy nie uda się utworzyć odpowiednio dużej tablicy
- Dostęp do zmiennych dynamicznych możliwy jest wyłącznie z użyciem wskaźników
- Nie mają nazw - powstają w czasie działania programu
11. Czym są klasy i obiekty w programowaniu obiektowym? Z czego się składają? Czym są właściwości, metody i zdarzenia? (8)
Obiekt (zmienna obiektowa)
- Struktura łącza w sobie:
Dane / zmienne i stałe (właściwości)
- Przechowują wartości
- Opisują stan obiektu i „konfigurują” jego zachowanie gdy zostanie wywołana któraś z metod
Funkcje (metody)
- Pozwalają operować na danych i zmieniać właściwości
Klasa (typ obiektowy) „Typ” obiektu
- Pozwala utworzyć wiele obiektów o tej samej strukturze (Tak, jak tworzy się wiele zmiennych tego samego typu)
Właściwości (property, properties)
-Odpowiednik zmiennych - w szczególności pól struktury
-Przechowujące pewne wartości i / lub „konfigurują” zachowanie się obiektu
Metody (method, methods)
- Są odpowiednikiem funkcji
- Pobierają lub ustawiają nowe wartości właściwości obiektu
- Można do nich przekazywać parametry i „odebrać” od nich wynik działania
Zdarzenia (event, events)
- Mogą być wywołane przez użytkownika (np. kliknięcie, przesunięcie wskaźnika myszy, wciśnięcie klawisza, rozwinięcie listy)
- Mogą być wywołane przez zmianę stanu obiektu (np. w wyniku działania jakiejś metody)
12. Co to jest konstruktor i destruktor obiektu? 3
Konstruktor obiektu
- Nie ma typu wynikowego (nie zwraca wyniku)
- Jest wywoływany automatycznie w momencie tworzenia obiektu
- Nie trzeba go jawnie wywoływać;
- Powinien inicjalizować pola obiektu
- Jeśli w definicji obiektu nie podamy konstruktora, kompilator automatycznie go wygeneruje
Destruktor obiektu
- Nie ma typu ani parametrów wejściowych
- Jest automatycznie wywoływany w momencie usuwania obiektu
W momencie usuwania zmiennej obiektowej (automatycznej, dynamicznej) lub na końcu programu (obiekty statyczne)
Nie trzeba go jawnie wywoływać
- Powinien „sprzątać” po obiekcie
- Jeśli w definicji obiektu nie podamy destruktora, kompilator automatycznie go wygeneruje
13. Jakie zalety ma programowanie obiektowe? 2
Zalety w stosunku do programowania strukturalnego
Bardziej naturalny podział i grupowanie elementów programu
Lepsze logiczne pogrupowanie danych i metod na nich operujących (klasy i obiekty)
Łatwe tworzenie drzewa zależności między klasami (dziedziczenie)
Możliwość „zabezpieczenia” danych przed ich przekształceniem przez „niepowołaną” funkcję (enkapsulacja)
Łatwiejsze modyfikowanie kodu
Zmiany wewnątrz klasy niosą mniejsze niebezpieczeństwo uszkodzenia innych elementów programu - klasy są w dużym stopniu „samowystarczalne”
Ułatwia zarządzenie kodem programu: Zwłaszcza w dużych projektach
Ułatwia współpracę w dużych zespołach projektowych: Każdy zespół zajmuje się swoimi klasami
14. Na czym polega mechanizm dziedziczenia w programowaniu obiektowym? 5
Dziedziczenie (inheritance)
Polega na utworzeniu nowej klasy (podklasy, potomka, klasy pochodnej, child class) na bazie klasy już istniejącej (nadklasy, rodzica, klasy bazowej, base class)
Przy dziedziczeniu elementy klasy bazowej są „kopiowane” do nowej, pochodnej klasy
W nowej klasie wystarczy dodać brakujące elementy, których nie było w klasie bazowej
Dzięki dziedziczeniu nie trzeba tworzyć nowej, podobnej klasy od podstaw
Proces dziedziczenia może być „wielopoziomowy”
Klasa pochodna może być klasą bazową dla kolejnej klasy pochodnej
Powstaje drzewiasta zależność kolejnych klas
15. Na czym polega enkaspulacja / hermetyzacja w programowaniu obiektowym? 5
Właściwości i metody / pola i funkcje dzieli się na:
- Prywatne: Dostęp do nich możliwy tylko dla metod należących do obiektów tej samej klasy (lub klas pochodnych)
- Publiczne: Dostęp możliwy dla obiektów innych klas
Mechanizm „zabezpieczania” elementów obiektu przed dostępem do nich przez obiekty innej klasy
- Odizolowanie od otoczenia wybranych właściwości i metod zgromadzonych w ramach klasy
- Obiekt nie może zmieniać stanu wewnętrznego innych obiektów w nieoczekiwany sposób
- Każdy typ obiektu prezentuje innym obiektom swój "interfejs", który określa sposób współpracy
- Widoczne są tylko niezbędne fragmenty programu, natomiast zmienne i funkcje pomocnicze są ukryte i niedostępne z zewnątrz
- Programista uwalnia się od pamiętania o wszystkich szczegółach implementacji (niuansów kodu)
17. Na czym polega analiza, modelowanie i projektowanie obiektowe? 4NIE
Analiza obiektowa
Zajmuje się badaniem i klasyfikacją obiektów pojęciowych
Obiekty pojęciowe reprezentują pojęcia i koncepcje ze świata rzeczywistego, z dziedziny, która jest analizowana (nie są to obiekty w sensie programistycznym)
Projektowanie
Polega na określeniu koncepcji rozwiązania, które zrealizuje wymagania stawiane programowi
Trudność polega na tym, że istnieje wiele możliwości
Istnieją tzw. wzorce projektowe, wskazujące możliwe rozwiązania typowych problemów
Najważniejszym elementem projektowania obiektowego jest określenie co mają zawierać poszczególne klasy, jak ze sobą współpracować i jak być ze sobą powiązane
Publiczność i prywatność pól
Sposób dziedziczenia
Rozwiązaniem może być np. opis schematu bazy danych lub klas programowych
Modelowanie:
Tworzenie uproszczonego opisu świata rzeczywistego
Cele modelowania obiektowego:
Przeanalizowania istniejących obiektów i zależności między nimi
Zaprojektowania nowych obiektów i określeniu zależności między nimi
18. Co to jest .NET? 4
.NET Framework
Platforma programistyczna opracowana przez Microsoft
Pozwala stworzyć programy przenośne na różne systemy operacyjne (Windows, Linux, MacOS)
Obejmuje:
Środowisko Uruchomieniowe Wspólnego Języka (Common Language Runtime - CLR)
Biblioteki klas
Zadaniem platformy jest:
Uruchomienie aplikacji (Kompilacja i wykonanie kodu)
Zarządzanie wykonywaną aplikacją (Kodem aplikacji; Pamięcią; Zabezpieczeniami)
Jest rozwiązaniem konkurencyjnym dla Javy. Opracowany przez Microsoft, Hewlett-Packard i Intel w 2000r.
Nie jest związane z żadnym konkretnym językiem programowania
21. Wybierz dwa dowolne rodzaje diagramów UML - opisz co przedstawiają i do czego służą. Podaj ich podstawowe elementy.10 NIE
UML obejmuje 13 rodzajów diagramów:
Diagram pakietów
Diagram klas
Diagram obiektów
Diagram struktur złożonych
Diagram komponentów
Diagram wdrożenia
Diagram przypadków użycia
Diagram czynności
Diagram stanów (maszyny stanowej)
Diagram interakcji
Sekwencji (przebiegu)
Komunikacji
Przeglądu interakcji
Diagram uwarunkowań czasowych
Przypadek użycia
Opis zachowania systemu z punktu widzenia użytkownika
Diagram przypadków użycia
Służy do uchwycenia założeń systemu z punktu widzenia użytkownika
Wymienia użytkowników systemu i jego granice
Przedstawia funkcje dostępne dla użytkowników (funkcjonalność)
Określa zależności i powiązania między użytkownikami i funkcjami
Składniki diagramu
Aktor
Człowiek lub inny system, który inicjuje użycie systemu lub
w jakiś sposób wymienia informacje z systemem
- symbol: „ludzik”
Opisuje rolę a nie konkretną osobę
Uwaga: jedna „osoba fizyczna” może pełnić w systemie role kilku aktorów,
np.: „Zbigniew Nowak” pracujący w sklepie może być raz aktorem - sprzedawcą, a innym razem aktorem - klientem
Pozostaje poza zakresem systemu
Przypadek użycia
Kompletna funkcja systemu dostępna dla aktora
- symbol: elipsa
Przypadek użycia musi być:
Kompletny (realizować pewną funkcjonalność w pełni) i dostarczyć aktorowi pewną „wartość”
Inicjowany (bezpośrednio lub przez zależności) przez aktora i wykonany w jego imieniu
-------------------------------------------------------------
Obiekt
Egzemplarz należący do klasy
Diagram obiektów
Podobny do diagramu klas, ale…
Prezentuje możliwą konfigurację obiektów w określonym momencie (pokazuje wybrane przypadki)
Przydatny w przypadku szczególnie skomplikowanych zależności, których nie można przedstawić na diagramie klas
Składniki diagramu (Nazwa egzemplarza : Nazwa klasy)
--------------------------------
Sekwencja (przebieg)
Kolejność wykonywania akcji
Diagram sekwencji
Pokazuje kolejność wykonywania akcji, przesyłania komunikatów i interakcje pomiędzy obiektami
Składniki diagramu
Obiekty
Linie użycia obiektów
Komunikaty- przesyłane między obiektami
Bloki
alt - odpowiednik if…else
opt - odpowiednik if (bez else)
loop - odpowiednik for lub while
22. Co to jest i jakie zadania spełnia System Zarządzania Bazą Danych? 9
Systemem zarządzania bazą danych - SZBZ (DataBase Management System - DBMS)
- Zapewnia obsługę (dostęp do) danych zawartych w bazie danych
Dostęp do danych
Aplikacja przekazuje polecenie (zapytanie) do DBMS
Używa do tego odpowiedniego języka zapytań
DBMS interpretuje i wykonuje polecenie
Następuje „fizyczny” odczyt / zapis danych
Zadania DBMS:
Zapewnia wsparcie dla języka bazy danych, który umożliwia wykonywanie operacji dotyczących struktury bazy danych oraz danych, m.in.:
Wstawianie
Modyfikowanie
Usuwanie
Wyszukiwanie
Zapewnia efektywne składowanie i przetwarzanie dużych ilości danych
Optymalizuje dostęp do danych
Synchronizuje dostęp do danych przy dostępie współbieżnym
Zapewnienie bezpieczeństwo danych w przypadku awarii sprzętowo-programowej
Autoryzuje dostęp do danych
23. Opisz 2 i 3 warstwową architekturę dostępu do bazy danych 6
2- warstwowa: Systemy klient-serwer
Aplikacje działają na wielu komputerach i odwołują się do wspólnej bazy
Np. system obsługi kont bankowych
3 - warstwowa: Architektura 3-warstwowa
Aplikacja działa na serwerze, klienci łącza się z nią używając przeglądarek WWW
24 Opisz podstawowe elementy (z czego się składa i jak wyglądają) relacyjnego modelu danych 10
Model relacyjny: Dane umieszczane są w dwuwymiarowych tabelach, które można ze sobą łączyć
Struktura bazy danych
Dane przechowywane / umieszczane są w polach uporządkowanych w dwuwymiarowych tabelach (tzw. „relacjach”)
Każda tabela zawiera zero lub więcej wierszy (tzw. „krotek”)
Każda tabela zawiera jedną lub więcej kolumn (tzw. „atrybutów”).
Każda tabela ma stałą liczbę kolumn i dowolną liczbę wierszy
Na każdy wiersz składają się jednakowo ułożone kolumny wypełnione wartościami
Wartości w kolejnych wierszach mogą być różne
Każda tabela ma zdefiniowany klucz danych (key)
Wyróżniony atrybut (lub kilka atrybutów), którego wartość jednoznacznie identyfikuje dany wiersz (wartość nie może wystąpić w innym wierszu)
Wiersze (krotki) przechowywane są w porządku całkowicie dowolnym (nie musi być zgodny np. z kolejnością wprowadzania)
Baza danych = zbiór relacji(zbiór tabel)
Schemat relacji = zbiór składający się z atrybutów(zbiór kolumn tabeli)
Schemat bazy = zbiór schematów relacji
Relacja = zbiór krotek (tabela)
Krotka = lista wartości
25. Na czym polega problem spójności danych w bazie danych? Jak zapobiegać takim problemom? 10
Spójność bazy danych
Wymaganie: ma odzwierciedlać fragment rzeczywistości
Jest spójna jeżeli jej stan odpowiada stanowi świata rzeczywistego
Aby baza odzwierciedlała rzeczywistość potrzebny jest program (aplikacja), która będzie pobierać z i wprowadzać do bazy aktualne dane
Problemy:
Sprzeczność danych
Awaria systemu w czasie operacji na bazie
Jednoczesny, współbieżny dostęp do danych
Rozproszenie bazy danych
Zapobieganie problemom spójności danych
Odpowiednio zaprojektowany schemat bazy
i schematy relacji
Użycie mechanizmu transakcji
26. Co to są transakcje w bazach danych? Jakie mają zalety? Przed jakimi problemami chronią? Jak są realizowane od strony technicznej?10
Transakcja:
Ciąg logicznie powiązanych operacji na bazie danych, która przeprowadza bazę danych z jednego stanu spójnego w inny stan spójny
W skład transakcji wchodzą operacje:
Rozpoczęcie transakcji
Odczyt danych
Zapis danych
Akceptacja (zatwierdzenie) transakcji
lub Wycofanie transakcji
Rozpoczęcie transakcji oznacza zablokowanie tabel lub krotek, do których odwołuje się transakcja
Odblokowanie po zakończeniu transakcji
Cechy transakcji:
ACID = Atomicity, Conistency, Isolation, Durability(atomowość, Spójność, Izolacja, Trwałość)
Atomowość - Ciąg operacji wchodzących w skład transakcji jest niepodzielny. Zostaną wykonane wszystkie operacje transakcji albo żadna
Spójność - Transakcja przeprowadza bazę danych z jednego stanu spójnego do innego stanu spójnego. W trakcie wykonywania transakcji baza danych może być przejściowo niespójna. Transakcja nie może naruszać ograniczeń integralnościowych
Izolacja - Transakcje są od siebie logicznie oddzielone. Transakcje nie oddziałują na siebie bezpośredni. Mogą oddziaływać tylko poprzez zmianę danych. Mimo współbieżnego wykonywania, transakcje widzą stan bazy danych tak, jak gdyby były wykonywane w sposób sekwencyjny
Trwałość - Wyniki zatwierdzonych transakcji nie mogą zostać utracone w przypadku awarii systemu
Podział transakcji
Kolejność operacji
Sekwencyjne
Wszystkie operacje jednej transakcji poprzedzają wszystkie operacje drugiej
Współbieżne
Zależność operacji
Niezależne od danych
Wartości danych różne, ale zbiór danych z góry określony
Zależne od danych
Zbiór danych których dotyczy transakcja może nie być znany przed jej rozpoczęciem. Jest określany dopiero w trakcie trwania transakcji.
Rodzaj operacji
Zapytanie - tylko odczyt danych
Aktualizacja - zapis i odczyt danych
Komunikacja opiera się na zasadzie zapytanie-odpowiedź
Aplikacja wysyła do DBMS zapytanie
DBMS odpowiada
27. Czym to jest SQL? Do czego służy? Gdzie i kiedy się go stosuje? Z czego się składa? Jak można z niego korzystać?10
SQL- Structured Query Language - Strukturalny język zapytań
SQL jest językiem komunikacji z systemami baz danych
Tworzone są tekstowe zapytania przesyłane do DBSM
Nie można w nim napisać samodzielnego programu
Sposoby wykorzystania SQL
Interakcyjny
Bezpośrednie pisanie poleceń w konsoli DBMS
Bezpośrednie wprowadzanie lub podbieranie danych
Wykorzystywany np. do:
Wykonywania zapytań nietypowych lub nie przewidzianych w aplikacji
Testowania bazy
Testowania zapytań na etapie tworzenia aplikacji
Statyczny
Używany w aplikacjach
W kodzie aplikacji wpisane są zapytania o określonej, stałej treści (zmienne są tylko dane)
Dynamiczny
Używany w aplikacjach
Zapytania SQL generowane w czasie pracy aplikacji
Często treść zapytania zależy od wyboru użytkownika (np. kolejność sortowania danych)
Może stanowić zagrożenie dla bezpieczeństwa systemu
Szczególnie, gdy zapytanie zawiera fragmenty wpisywane przez użytkownika
Zwłaszcza w aplikacjach internetowych (możliwość tzw. wstrzyknięcia kodu)
Polecenia SQL dzieli się na 3 grupy
DML - Data Manipulation Language język manipulacji danymi
DDL - Data Definition Language język definicji danych
DCL - Data Control Language język kontroli danych
Każde pole musi mieć określony typ danych
29. Co to jest Sztuczna Inteligencja? Jakie techniki zalicza się do SI? Podaj przykładowe zastosowania (min 5przykładów) 8
Sztuczna Inteligencja - „Konstruowanie maszyn, o których działaniu dałoby się powiedzieć, że są podobne do ludzkich przejawów inteligencji"
Dział informatyki, którego przedmiotem jest:
Badanie reguł rządzących inteligentnymi zachowaniami człowieka
Tworzenie modeli formalnych tych zachowań
Tworzenie programów lub systemów komputerowych symulujących te zachowania
Główne zadanie SI
Konstruowanie maszyn i programów komputerowych zdolnych do realizacji wybranych funkcji umysłu i zmysłów, niepoddających się prostej numerycznej („klasycznej”) algorytmizacji
Cele SI:
Stworzenie algorytmów (docelowo maszyn) realizujących wybrane aspekty inteligencji
Realizacja inteligencji dorównującej ludzkiej (albo ją przewyższającą)
Obszary zastosowań
Sterowanie urządzeniami i pojazdami
Np. sterowanie robotami autonomicznymi, sterowanie automatycznymi skrzyniami biegów, system wspomagający pilotowanie uszkodzonego w walce samolotu
Sterowanie procesami przemysłowymi
Zwłaszcza w warunkach niepełnych lub niepewnych danych
Diagnostyka urządzeń i procesów
Podejmowanie decyzji gospodarczych i finansowych
Np. ocena wniosków kredytowych, przewidywanie kursów giełdowych
Diagnozy medyczne
Np. wykrywanie chorób na podstawie objawów i wyników badań
Automatyczne wyszukiwanie zależności
Np. poszukiwanie opisu zjawiska fizycznego na podstawie obserwacji tego zjawiska
Zarządzenie
Np. układanie harmonogramów prac
Rozumienie języka naturalnego
Np. tłumaczenia, streszczenia
Analiza obrazu i dźwięku
Np. rozpoznawanie tekstu, rozpoznawanie komend głosowych, wykrywanie twarzy, wykrywanie obiektów
Optymalizacja złożonych problemów
Szkolenia i testy
Np. dla kontrolerów ruchu lotniczego
Zabawki i gry komputerowe
30. Opisz budowę prostego (pojedynczego) sztucznego neuronu? (wraz ze wzorami) Jak działa? Co to jest funkcja aktywacji?9
Do wejść doprowadzane są sygnały xi (mogą być to wyjścia poprzedniej warstwy neuronów)
Wejścia są mnożone przez wagi wi (dodatnie lub ujemne) i sumowane
Wynik sumowania s jest argumentem funkcji aktywacji
Funkcja aktywacji f(s) określa wartość wyjściową y neuronu
Działanie neuronu - Polega na klasyfikowaniu (sumowaniu) danych pojawiających się na wejściu i ustawianiu wartości na wyjściu
Wartość na wyjściu zależy od: (Wartości wejściowych, Wag, Funkcji aktywującej)
Funkcja aktywacji pozwala określić wartość na wyjściu neuronu
Rodzaje i przykłady funkcji
Progowa
Liniowa
Nieliniowa
Wybór funkcji aktywacji - Zależy od rodzaju problemu jaki stawiamy przed siecią do rozwiązania
Wymagane cechy funkcji aktywacji:
Ciągłość
Ciągłe przejście pomiędzy swoją wartością maksymalną, a minimalną
Różniczkowalność
Możliwa do wyznaczenia i ciągła pochodna
Monotoniczność
Możliwość wprowadzenia do argumentu parametru do ustalania kształtu krzywej
31. Opisz algorytm uczenia pojedynczego perceptronu? 8
Prosty neuron z progową funkcją aktywacji nazywamy perceptronem
Uczenie perceptronu
Uczenie polega na podaniu na wejścia sygnałów wzorcowych , dla których znane są prawidłowe, oczekiwane wartości wyjść d(t) (Zbiór takich sygnałów - ciąg uczący)
Wagi modyfikuje się w ten sposób, by minimalizować błąd między wyjściem perceptronu a wartością wzorcową
Taki sposób to uczenie z nauczycielem
36. Czym są, jakie mają cechy charakterystyczne i gdzie są stosowane Algorytmy Ewolucyjne? 10
Podstawowa idea
Zasada przetrwania osobników najlepiej przystosowanych
Wykorzystywane mechanizmy
Dziedziczenie (krzyżowanie i mutacja)
Dobór naturalny (selekcja)
Grupa algorytmów wzorowanych na naturalnej (biologicznej) ewolucji
Zaliczane do algorytmów heurystycznych
Polegają na przeszukiwaniu przestrzeni alternatywnych rozwiązań problemu w celu odnalezienia rozwiązań najlepszych lub potencjalnie najlepszych
Wykorzystują zasady znane z ewolucji biologicznej
Pozwalają poprzez krzyżowanie i mutacje stworzyć / znaleźć satysfakcjonujące rozwiązanie problemu z grupy losowych zestawów danych początkowych
Rodzaje algorytmów ewolucyjnych
Klasyczny algorytm genetyczny
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Cechy:
Różnice względem algorytmów klasycznych
Nie przetwarzają bezpośrednio parametrów zadania, ale ich postać zakodowaną (chromosomy, osobniki)
Prowadzą poszukiwanie wychodząc z pewnej liczby (populacji) losowych punktów początkowych
Korzystają tylko z funkcji celu (a nie jej pochodnych!)
Stosują probabilistyczne, a nie deterministyczne metody selekcji rozwiązań
Główne zalety
Zdolność przeszukiwania dużej przestrzeni rozwiązań
Odporne na występowanie minimów lokalnych
Zastosowanie: Problemy, w których dobrze określony jest sposób oceny jakości rozwiązania, ale nie ma dobrych algorytmów rozwiązania
Główne zastosowanie:
Zagadnienia z zakresu optymalizacji (rozumianej bardzo szeroko), np.:
Znajdowanie ekstremów funkcji
Diagnostyka
Planowanie produkcji, harmonogramy
Wyznaczanie przebiegu rurociągów i linii energetycznych
Synteza drzew decyzyjnych
Inne przykłady:
Problemy kombinacyjne
Problem komiwojażera - znajdowania optymalnej drogi przez określone punkty, każdy punkt można przejść tylko raz - Np.: Nawigacja / Wyznaczanie trasy dla dostawców
Projektowanie sieci neuronowych
Dobór architektury sieci
Dobór wag w sieci
Dobór architektury i wag w sieci
Zalety: Zdolność przeszukania dużej przestrzeni zmiennych; Unikanie minimów lokalnych
Projektowanie genetyczne - Przykłady:
Projektowanie i optymalizacja obwodów elektrycznych
Projektowanie i optymalizacja maszyn (w szczególności robotów)
Projekt Golem - Program projektuje roboty, a następnie sprawdza, jak się zachowują w symulowanym środowisku
Dobór nastaw regulatorów w automatyce
Główne zalety
Zdolność przeszukiwania dużej przestrzeni rozwiązań
Nie schematyczne „myślenie” (człowiek sugeruje się już znanymi rozwiązaniami i schematami)
37. Opisz zasadę działania klasycznego algorytmu genetycznego. 10
Inicjalizacja
Utworzenie początkowej populacji
Losowy wybór pewnej liczby osobników (chromosomów)
Osobniki reprezentowane są jako ciągi binarne o określonej długości (wektory)
Przykładowe osobniki: [10010011], [01101001], [11110101]
Ocena przystosowania
Oblicza się wartość funkcji przystosowania dla każdego chromosomu z populacji
Im większa wartość, tym lepszy chromosom
Sprawdzenie warunku zatrzymania
Najczęściej zatrzymanie następuje:
Po osiągnięciu wartości optymalnej (z zadaną dokładnością)
Gdy działanie algorytmu nie przynosi dalszej poprawy wyniku
Po określonym czasie trwania obliczeń lub liczbie generacji
Selekcja
Wybór chromosomów (osobników), które będą brały udział w tworzeniu następnego pokolenia
Wybór na podstawie obliczonych wartości funkcji przystosowania
Ogólna zasada wyboru - naturalna selekcja
Największe szanse mają chromosomy o największej wartości funkcji przystosowania
Istnieje wiele metod selekcji (Najbardziej popularna - metoda ruletki)
Operacje na genach zastosowanie operatorów genetycznych
Chromosomy wybrane w wyniku selekcji poddaje się krzyżowaniu i mutacji
Krzyżowanie polega na zamianie części genów pomiędzy chromosomami
Prawdopodobieństwo krzyżowania pkÎ<0,5;1>
Mutacja polega na zmianie wartości wybranych genów
Prawdopodobieństwo mutacji pmÎ<0;0,1>
Utworzenie nowej populacji
W wyniku operacji na genach tworzona jest nowa populacja
Nowa populacja staje się populacją bieżącą
Cała poprzednia populacja chromosomów zastępowana jest przez tak samo liczną, nową populację potomków
Zastosowanie najlepszego osobnika
Gdy spełniony jest warunek zatrzymania algorytmu, należy podać wynik - rozwiązanie problemu
Najlepszym rozwiązaniem jest osobnik o największej wartości funkcji przystosowania
39. Opisz podstawowe idee modelowania rozmytego. Co to jest zbiór rozmyty, funkcja przynależności? 10
W logice rozmytej między stanem 0 (fałsz) a stanem 1 (prawda) rozciąga się szereg wartości pośrednich, które określają stopień przynależności elementu do zbioru.
Funkcje przynależności:
Określają stopień przynależności danej wartości x do poszczególnych zbiorów rozmytych
Np. wartość 172 (wzrost)
W ogóle nie należy do zbioru „niski”
Należy do zbiorów „średni” i „wysoki”
W większym stopniu należy do zbioru „średni”
Wartość Î<0; 1>
Może obejmować dowolny zakres wartości (tzw. ziarnistość)
Przypadek graniczny - singelton -ziarno o nieskończenie małej szerokości (zbiór o jednej wartości x)
Zbiorem rozmytym A w pewnej niepustej przestrzeni X AÍX
nazywamy zbiór par
A={(x, μA(x)); xÎX}
w którym
μA:X ®[0,1]
jest funkcją przynależności zbioru rozmytego A
Każdemu elementowi xÎX funkcja przynależności przypisuje stopień przynależności do zbioru rozmytego A
μA(x)=1 - pełna przynależność x do A, xÎA
μA(x)=0 - brak przynależności x do A, xÏA
μA(x)=(0; 1) -częściowa przynależność x do A
40. Przedstaw strukturę rozmytego systemu wnioskującego. Z czego składają się / co zawierają poszczególne bloki? Jakie pełnia funkcje? 10
Przykład dla systemu o dwóch wejściach i jednym wyjściu
Przykład dla systemu o dwóch wejściach i jednym wyjściu
41. Jak działa blok rozmywania w rozmytym systemie wnioskującym? 5
Blok rozmywania
Oblicza stopnie przynależności zmiennych wejściowych do poszczególnych zbiorów rozmytych
42. Jak działa blok wnioskowania w rozmytym systemie wnioskującym? 8
Blok wnioskowania / inferencji
Oblicza wynikową funkcją przynależności μwyn(y*) na podstawie stopni przynależności zmiennych wejściowych i bazy reguł
Do działania bloku wnioskowania potrzebne są:
Rozmyte wartości wejść - Określane przez blok rozmywania
Baza reguł - Zawiera reguły logiczne określające zależności istniejące w systemie pomiędzy zbiorami rozmytymi wejść i wyjść
Funkcje przynależności zmiennej wyjściowej
Operatory s-normy, t-normy i implikacji
Działanie: funkcje przynależności dla wyjścia, uruchomienie reguł (wszystkich po kolei), agregacja wyników.
43. Jak działa blok wyostrzania w rozmytym systemie wnioskującym? 10 NIE
Blok wyostrzania
Na podstawie rozmytego zbioru wynikowego wyznaczana jest ostra wartość wyjściowa
Może to być realizowane różnymi metodami Np.:
Środek ciężkości funkcji wynikowej
Środek maksimum
Pierwsze maksimum
Ostatnie maksimum
Blok wyostrzania
Na podstawie funkcji przynależności wyjściowego zbioru rozmytego (pochodzącego z bloku wnioskowania) określa „ostrą” wartość wyjściową
44. Czym jest system ekspertowy? Gdzie się je stosuje? Jakie ma zalety i wady? 7
System ekspertowy (system ekspercki, system z bazą wiedzy)
Program lub zestaw programów komputerowych:
Wspomagający korzystanie z wiedzy
Ułatwiający podejmowanie decyzji
Rozwiązujący specjalistyczne problemy z pewnej dziedziny
Zadania
Wspomagać bądź zastępować ludzkich ekspertów w danej dziedzinie
Dostarczać rad, zaleceń i diagnoz dotyczących problemów tej dziedziny
Zastosowania
Wspomaganie decyzji w przypadkach, gdy wiedza jest niepewna lub niepełna
Dziedziny, w których zależności trudno opisać matematycznie (np. prawo, zarządzanie, rolnictwo, chemia)
Rozwiązywanie problemów złożonych, gdzie klasyczne algorytmy zawodzą
Prognozowanie, przewidywanie, planowanie
Detekcja, diagnostyka, monitorowanie
Automatyczne dowodzenie twierdzeń
Przykłady zastosowań: Diagnozowanie chorób; Diagnoza problemu (np. nieprawidłowego działania urządzenia, deficytu finansowego; Dokonywanie wycen i kalkulacji kosztów naprawy pojazdów przez firmy ubezpieczeniowe; Udzielanie porad prawnych ; Prognozowanie pogody ; Sterowania robotami, automatycznymi pojazdami, rakietami, statkami kosmicznymi ; Analiza notowań giełdowych i kursów walut; Analiza ryzyka inwestycji
Zalety
Udzielają jednoznacznych, powtarzalnych odpowiedzi
Wymuszają przejrzystość w podejmowaniu decyzji
np. brak uznaniowości, „złego humoru”, nieprzekupność itp.
Budowa systemu może zmusić instytucję do określenia jasnych reguł,jeśli ich wcześniej nie było
Nie „zapominają” zadać wszystkich pytań potrzebnych do udzielenia odpowiedzi
Wady
Nie potrafią kreatywnie tworzyć nowych rozwiązań
Nie potrafią kierować się zdrowym rozsądkiem
Nie zawsze da się zbudować odpowiednią bazę wiedzy
Eksperci nie zawsze potrafią lub chcą przekazać całą swoją
Wiedza i zależności w dziedzinie są zbyt rozległe i złożone
Błędy w bazie wiedzy mogą prowadzić do błędnych rezultatów
45. Przedstaw strukturę typowego systemu ekspertowego. Opisz poszczególne
elementy (co zawierają, jaką pełnia rolę).10
Składniki systemu ekspertowego
Szkielet systemu:
Interfejs użytkownika
Umożliwia komunikację człowieka z systemem, np.
zadawanie pytań
udzielanie informacji systemowi
odbieranie od systemu odpowiedzi i wyjaśnień
Mechanizm modyfikacji wiedzy
Pozwala na modyfikację i uzupełnianie wiedzy zawartej w systemie
Mechanizm wnioskowania
Główny składnik systemu ekspertowego
Wykonuje cały proces rozumowania w trakcie rozwiązywania problemu postawionego przez użytkownika
Jest niezależny od zawartości bazy wiedzy
Mechanizm wyjaśniający
Umożliwia użytkownikowi uzyskanie odpowiedzi dlaczego system udzielił takiej, a nie innej odpowiedzi, albo dlaczego system zadał użytkownikowi określone pytanie
Baza wiedzy
Zawiera wszelkie informacje z zakresu wybranej dziedziny
wiedza faktograficzna (fakty)
wiedza o wnioskowaniu (zbiór reguł)
wiedza o sposobach rozwiązywania problemu (meta-wiedza)
Wiedza musi być zapisana w postaci sformalizowanej, zrozumiałej dla mechanizmu wnioskującego i pozwalającej na prześledzenie sposobu dojścia systemu do rozwiązania
Baza danych zmiennych
Pamięć robocza przechowująca informacje wprowadzone w trakcie dialogu z użytkownikiem
Umożliwia odtworzenie sposobu wnioskowania systemu i przedstawienie go użytkownikowi za pomocą mechanizmu wyjaśniającego
46. W jaki sposób skonstruowana jest typowa baza wiedzy systemu ekspertowego? 5NIE
System ekspertowy musi zawierać wiedzę
Wiedza zawarta w systemie
Decyduje o jego jakości i wiarygodności
Jest zbiorem wiadomości z określonej dziedziny
Jest zapisana w „bazie wiedzy”
Z użyciem języka reprezentacji wiedzy
Powinna być zapisana w sposób jawny i jasny dla użytkownika, tak, aby mogła być przeglądana, rozumiana i uzupełniana bez specjalistycznego przygotowania
Jest składnikiem systemu, ale niezależnym od programu kontrolnego
Baza wiedzy
Najczęstsza postać (>80% systemów) - baza reguł
Umożliwia uzyskanie dużej modułowości bazy wiedzy
Zawiera fakty i reguły umożliwiające rozwiązywanie problemów z danej dziedziny
Fakty - zdania oznajmujące ukazujące pewną zależnośćmiędzy obiektami i charakteryzujące cechy tych obiektów np.: Wróbel jest ptakiem
Reguły -łączą warunki / przesłanki z wnioskami z nich płynącymi np.:
JEŚLI zwierzę ma skrzydła I nie jest owadem TO jest ptakiem
48. Podaj cechy dobrego systemu ekspertowego 5NIE
Poprawność
Dobre rezultaty
Odpowiedni czas działania - Czas proporcjonalny do złożoności problemu
- Uniwersalność
- Możliwość zastosowania systemu do wielu rodzajów zadań z danej dziedziny
- Reguły nie mogą być zbyt „sztywne”
Złożoność
Możliwie duża baza wiedzy (z danej dziedziny)
Odpowiednio duża liczba reguł
Systemy małe - 100-300 reguł
Systemy średnie - 300-2000 reguł
Systemy duże - 2000-kilkanaście tysięcy reguł
Autoanaliza
Umiejętność uzasadniania swojego rozwiązania (także na etapach pośrednich)
Kontrola niesprzeczności rezultatów z faktami z bazy wiedzy
Zdolność polepszania bazy wiedzy
Możliwość rozszerzania bazy wiedzy - Nie zawsze jest konieczna
Samodzielne „uczenie się” systemu
Konieczny mechanizm kontroli zgodności nowych faktów i reguł z już zawartymi w bazie wiedzy
Konieczny mechanizm oceny przydatności (częstości użycia) reguł
aktor
przypadek użycia
Sprzedawca
Wystaw fakturę
Zegar
Znajdź produkt
Klient
Zmień stan magazynu
Znajdź fakturę
Magazynier