1. Dany będzie fragment kodu w C++.
2. 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
3. Czym są klasy i obiekty w programowaniu obiektowym? Z czego się składają? Czym są właściwości, metody i zdarzenia? (6)
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)
4. Co to jest konstruktor i destruktor obiektu? 2
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
5. 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
6. Na czym polega mechanizm dziedziczenia w programowaniu obiektowym? 2
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
7. Na czym polega enkaspulacja / hermetyzacja w programowaniu obiektowym? 3
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)
8. Na czym polega analiza, modelowanie i projektowanie obiektowe? 4
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
9. 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
10. Co oznacza skrót GUI? Podaj cechy dobrze zaprojektowanego GUI? 7
Dobry interfejs pozwala pracować z systemem bez czytania instrukcji obsługi
Cechy dobrego GUI
Intuicyjność
Od razu widać, do czego służą przyciski i polecenia
Przejrzystość
Jasna i czytelna organizacja programu
Treściwe komunikaty
Nie „zatłoczone” okna
Uporządkowanie
Grupowanie logicznie powiązanych ze sobą kontrolek
Spójność i konsekwencja
Jednolity wygląd poszczególnych okien, modułów itp., zwłaszcza tych, które wykonują podobne zadania
Łatwość nawigowania
Obsługa klawiatury (nie tylko myszy)
Np. Ustawienie skrótów klawiaturowych i kolejności przechodzenia (właściwości TabIndex) zgodnej z kolejnością wprowadzania danych w oknie
Zgodność ze standardami w informatyce i w danej dziedzinie
Użycie typowych i znanych użytkownikowi kontrolek
Terminologia (polecenia, przyciski, komunikaty)
Symbole (ikonki)
Odpowiednia pomoc dla użytkownika
Pliki pomocy (help)
Komunikaty „Za mało pamięci do wczytania danych z pliku” zamiast „Błąd nr. 342”
Ergonomia
Rozmiary kontrolek i czcionek dostosowane do rozdzielczości (np.. zmieniające rozmiar w zależności od rozdzielczości i rozmiaru okna programu - o ile ma to sens)
Kontrolki pogrupowane i wyrównane
Stonowane i dobrze dobrane palety kolorów
Ciemne teksty na jasnym tle (i odwrotnie)
Sprawność działania
Jeśli operacja trwa więcej niż 1-2 sekundy - pasek postępu
Ostrzeganie przed operacją mogącą trwać bardzo długo
Możliwość przerwania operacji trwającej długo (o ile jest to możliwe)
Inne
Ostrzeganie przed „niebezpiecznymi” operacjami (np. Usuwaniem danych)
…ale, bez nadmiernej liczby potwierdzeń i ostrzeżeń
Program nie może wymagać by użytkownik zapamiętał / zapisania sobie na kartce jakieś dane, potrzebne w innym miejscu programu (np. numeru klienta)
Komunikaty muszą być poprawne językowo
Reasumując program tworzy się po to, by ułatwić komuś pracę, dlatego powinien:
Działać poprawnie (także pod względem merytorycznym)
Automatyzować często wykonywane czynności
Być wygodny i ergonomiczny
11. Co to jest i do czego służy UML? Jakie ma zalety? Jakie perspektywy widzenia systemu obejmuje UML? 10
Ujednolicony Język Modelowania - UML Unified Modeling Language
Język służący do opisu obiektów
w analizie obiektowej oraz programowaniu obiektowym
Stosowany jest wraz z reprezentacją graficzną
Pozwala przedstawić obiekty i zależności na diagramach
- UML określa sposób opisu modeli
Perspektywy widzenia systemu:
Perspektywa przypadków użycia
Opisuje funkcjonalność, jaką powinien dostarczać system, widzianą przez jego użytkowników
Perspektywa logiczna
Opisuje sposób realizacji funkcjonalności, czyli strukturę systemu widzianą przez projektanta
Perspektywa implementacyjna
Opisuje poszczególne moduły i ich interfejsy wraz z zależnościami; perspektywa programisty
Perspektywa procesowa
Opisuje podział systemu na procesy (czynności) i procesory (jednostki wykonawcze); opisuje właściwości pozafunkcjonalne systemu; służy programistom i integratorom
Perspektywa wdrożenia
Opisuje fizyczny podział elementów systemu i ich rozmieszczenie w infrastrukturze; służy integratorom i instalatorom systemu
Zalety UML
Jest notacja systemową, która stała się światowym standardem w procesach tworzenia systemów (nie tylko informatycznych)
Pozwala opisać system z różnych punków widzenia (klienta, analityka, integratora, programisty, i innych)
13 rodzajów diagramów - W konkretnym projekcie nie wszystkie muszą wystąpić
Model UML pokazuje, co system ma robić, ale nie wyjaśnia, jak to ma być wykonane
Wady UML
Duża złożoność języka
Podobieństwo niektórych symboli i rodzajów linii powodujące trudności z rozróżnieniem znaczenia „na pierwszy rzut oka”
Wada pośrednia - Bywa nadużywany (budowa wspaniałego modelu kosztem rzeczywistej realizacji zadania)
12. Wybierz dwa dowolne rodzaje diagramów UML - opisz co przedstawiają i do czego służą. Podaj ich podstawowe elementy.10
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
13. 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
14. 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
15. 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
16. 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
17. 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
18. 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
19. Czym są hurtownie danych? Jak są zbudowane? 6
Główne zadanie systemów baz danych - Zapewnienie łatwego i efektywnego składowania
i przetwarzania danych.
Hurtownia danych - data warehouse - Rodzaj bazy danych (niekoniecznie relacyjna), integrująca i przechowująca bardzo dużą ilość danych.
Cechy charakterystyczne
Składowane dane nie są modyfikowane przez użytkowników (wyłącznie przez nich odczytywane)
Zawartość jest zorientowana tematycznie
np. hurtownia danych giełdowych, produkcji sprzedaży produktów firmy
Zawiera wszystkie dane historyczne i bieżące
(z określonego zakresu tematycznego)
Zawiera dane zagregowane na wielu poziomach szczegółowości
Oprócz hurtowni potrzebne są specjalistyczne aplikacje wyszukujące, analizujące i prezentujące dane
Aplikacje analityczne - OLAP - On-Line Analytical Processing
Wspomaganie decyzji - decision support
Odkrywanie wiedzy / eksploracja danych - data mining
W praktyce
Hurtownie integrują dane z wszystkich źródeł (zwłaszcza innych baz danych) w instytucji
Aktualizacja danych źródłowych dotyczy oryginalnych plików, lokalnych baz danych, itp..
Integracja polega najczęściej na cyklicznym dodawaniu / aktualizacji hurtowni danymi z systemów lokalnych
Architektura hurtowni jest zorientowana na:
Optymalizację szybkości wyszukiwania
Efektywną analizę danych
Dla podniesienia szybkości i efektywność dzieli się dane w hurtowni na mniejsze hurtownie tematyczne
Użytkownicy końcowi hurtowni korzystają z danych poprzez systemy OLAP
20. 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
21. 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
22. 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
23. W jakim celu buduje się sieci neuronowe? (Jaka jest zaleta sieci w stosunku do pojedynczego neuronu) 3
Łącząc neurony tworzy się sieć neuronową
Sieć składa się z warstw - neuronów równoległych, nie połączonych ze sobą
Warstwy są umieszczone szeregowo i są ze sobą połączone
Możliwości pojedynczego neuronu są ograniczone (Np. nie można zrealizować funkcji XOR); Nie istnieje prosta rozdzielająca (granica decyzyjna)
24. Opisz ogólną zasadę działania algorytmu wstecznej propagacji błędów. (nie trzeba pamiętać szczegółowych wzorów)3
Algorytm wstecznej propagacji błędów - error backpropagation
- Algorytm podstawowy, uniwersalny, często stosowany
i dający dobre rezultaty w większości przypadków
Działanie algorytmu
Na wejście sieci podajemy ciąg uczący
Sygnał jest przetwarzany przez kolejne warstwy sieci
Sygnał wyjściowy ostatniej warstwy porównujemy ze wzorcem
Modyfikujemy wagi ostatniej warstwy, a następnie kolejnych, aż do pierwszej (wsteczna propagacja błędu)
25. Na czym polega zdolność uogólniania Sieci Neuronowej 1
Zdolność uogólniania
Nie trzeba znać wszystkich par wejście-wyjście, by nauczyć sieć
Podajemy wybrane próbki, a sieć na ich podstawie potrafi wygenerować wynik dla innych wartości wejściowych
26. Dlaczego najczęściej stosuje się sieci 3-warstowowe? W jaki sposób określa się liczbę neuronów w warstwie ukrytej? 7
Trzy warstwy mogą odwzorować dowolny obszar. Sieć trójwarstwowa potrafi rozwiązać każdy problem klasyfikacji lub aproksymacji i większość innych zadań
Warstwa wejściowa
Warstwa ukryta
Warstwa wyjściowa
Liczba neuronów w warstwie ukrytej:
Jeśli neuronów jest mało
Sieć uczy się szybko
Sieć może nie rozwiązywać zadania poprawnie ma za małe możliwości decyzyjne)
Jeśli neuronów jest dużo
Sieć uczy się powoli (potrzeba więcej danych wzorcowych)
Sieć działa wolniej (więcej obliczeń)
Sieć może być „przeuczona” - dokładnie odwzorowuje próbki uczące, podaje błędne wartości dla próbek spoza ciągów uczących
Optymalna liczba neuronów w warstwie ukrytej - Sieć odtwarza punkty uczące, i podaje poprawne wartości pomiędzy nimi.
27. Jakie są wady, zalety i ograniczenia Sieci Neuronowych? 3
Zalety:
Zdolność uogólniania / generalizacji
Sieć potrafi uogólnić wiedzę dla nowych, nieznanych wcześniej danych (nie prezentowanych w trakcie nauki)
Wygenerować poprawne wartości mimo, że wcześniej uczona była tylko wybranymi, innymi wartościami
Wykazują tolerancję na nieciągłości, przypadkowe zaburzenia lub braki w zbiorze uczącym
Zdolność ta jest podstawową różnica między sieciami neuronowymi, a rozwiązaniami algorytmicznymi
Uniwersalność struktury
Jedna struktura do wielu zadań
Możemy nauczyć sieć realizacji różnych zadań
W praktyce - struktura sieci też musi być dobrana do zadania
Nie piszemy programu realizującego zadanie tylko uczymy sieć
Zaprogramować musimy model neuronu i sieci oraz algorytm uczenia
Robimy to raz albo korzystamy z gotowego rozwiązania - np. Matlab z Neural Networks Toolbox
Obliczenia wykonywane równolegle
„Naturalne” przystosowanie do wykorzystania w środowiskach wieloprocesorowych
Wady ograniczenia:
Nie jest całkowicie uniwersalna
Do różnych zadań należy wybrać rożne architektury sieci i algorytmy uczenia
Etap projektowania i uczenia sieci może być pracochłonny
Nie nadają się:
Do obliczeń dokładnych - znacznie lepsze są tradycyjne algorytmy
Do operowania na symbolach - np. edycji tekstu
28. 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)
29. 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
30. Opisz metodę koła ruletki w selekcji osobników w algorytmie genetycznym. Podaj jej wady 5
Zasada działania
Każdemu chromosomowi chi (i=1, 2, …, K) można przydzielić wycinek koła o wielkości proporcjonalnej do wartości funkcji przystosowania F(chi) dla danego chromosomu
Im większa wartość tym większy wycinek v(chi)
Udział wycinka w całym kole wyraża się procentowo
Wybranie chromosomu polega na „obrocie” koła
w wyniku czego wybrany zostaje chromosom
Im większy wycinek koła tym większe prawdopodobieństwo wybrania
Realizacja praktyczna
Każdemu chromosomowi przypisywany jest wycinek <a;b>
z zakresu <0;100> (lub <0;1>), zależnie od v(chi)
Losujemy liczbę z zakresu <0;100> (lub <0;1>)
Sprawdzamy, do którego zakresu należy liczba
Wybieramy chromosom, w którego zakres „trafiliśmy”
Wykonuje się K losowań co oznacza, że pula rodzicielska będzie miała taką samą liczebność jak bieżąca populacja
Wady metody
Jeżeli osobniki mają podobną wartość funkcji przystosowania, to każdy dostaje podobny wycinek koła i ewolucja zwalnia - algorytm słabiej rozróżnia osobniki dobre od słabszych
Metoda wymaga, by funkcja przystosowania była dodatnia (nie może zmieniać znaku)
31. Opisz metody krzyżowania w algorytmie genetycznym. 4
Zasady ogólne
Grupujemy chromosomy w pary
Np.: w kolejności, w której były wylosowane do puli rodzicielskiej
Wybieramy (arbitralnie) wartość graniczną prawdopodobieństwa krzyżowania pk
Dla każdej pary losujemy liczbę z zakresu <0;1>
Do krzyżowania wybiera się pary, dla których wylosowana liczba <pk
Krzyżowanie jednopunktowe
Dla każdej pary losuje się punkt krzyżowania
(locus, lk) z zakresu <1;L-1>
gdzie L jest liczbą genów w chromosomie
Pomiędzy parą chromosomów zamienia się geny na pozycjach ≥ niż lk
Krzyżowanie dwupunktowe
Losuje się dwie wartości lk
Wymienia się geny z pozycji leżących pomiędzy tymi punktami
Krzyżowanie wielopunktowe
Losuje się wiele wartości lk
Wymienia się kilka fragmentów chromosomów
Krzyżowanie równomierne
Losuje się wzorzec określający, które geny są wymieniane
32. 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)); xX}
w którym
μA:X Ⴎ[0,1]
jest funkcją przynależności zbioru rozmytego A
Każdemu elementowi xX funkcja przynależności przypisuje stopień przynależności do zbioru rozmytego A
μA(x)=1 - pełna przynależność x do A, xA
μA(x)=0 - brak przynależności x do A, xA
μA(x)=(0; 1) -częściowa przynależność x do A
33. 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
34. 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
35. 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.
36. Jak działa blok wyostrzania w rozmytym systemie wnioskującym? 10
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ą
37. Opisz 3 główne metody modelowania rozmytego. 9
Metody modelowania rozmytego = metody tworzenia rozmytych modeli systemów rzeczywistych
Tworzenie modeli rozmytych na podstawie wiedzy eksperta o systemie
Model (zbiory rozmyte, baza wiedzy) tworzony jest przez człowieka na podstawie wiedzy i doświadczenia użytkownika modelowanego systemu / urządzenia
Wiedza świadoma, jawna - Może być przekazana słownie, np. jako: Opis , Wzory matematyczne
Nieświadoma („wyczucie”, intuicja) Ujawnia się tylko podczas obsługi systemu
Zbiór reguł opisanych słownie tworzy model werbalny
Brakujące informacje muszą być uzupełnione przez osobę tworząca model
Uwagi i problemy przy modelowaniu na podstawie wiedzy eksperta
Modele mentalne tworzone przez różnych ekspertów mogą być różne
Różna spostrzegawczość, inteligencja, doświadczenie
Jakość modelu rozmytego zależy nie tylko od jakości modelu wytworzonego w umyśle eksperta, ale też od jego umiejętności i chęci przekazania wiedzy
Model werbalny może być niekompletny lub sprzeczny
Lepiej jednak mieć choć cząstkową wiedzę, niż żadną
Człowiek jest w stanie zapamiętać ograniczoną liczbę stanów (<5~10) i „ogarnąć” ograniczoną liczbę zmiennych wejściowych (<3)
Obsługa bardziej złożonego systemu jest bardzo trudna
Opis zachowania układów szybkozmiennych i działających z opóźnieniem może być utrudnione nawet dla układów z jednym wejściem
Tworzenie modeli samonastrajających na podstawie danych pomiarowych
Model o stałej strukturze - Stała liczba reguł i zbiorów rozmytych
Strojeniu podlegają
Parametry funkcji przynależności ; Kształt; Zakresy
Operatory (I, LUB, NIE)
Operatory wnioskowania i wyostrzania
Współczynniki skalowania we/wy modelu (nie zawsze)
Tworzenie modeli samoorganizujących i samo-nastrajających na podstawie danych pomiarowych
Model o zmiennej strukturze - Zmienna liczba reguł i zbiorów rozmytych
Strojeniu podlegają
Liczba i parametry funkcji przynależności
Liczba i postać reguł wnioskowania
Wybór zmiennych wejściowych
Potencjalne problemy
Automatyczne strojenie może dążyć do budowy modelu zbyt skomplikowanego i zbyt dokładnego (modelowanie zakłóceń)
Konieczne jest ograniczanie liczby reguł i zbiorów rozmytych.
38. 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
39. 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
40. W jaki sposób skonstruowana jest typowa baza wiedzy systemu ekspertowego? 5
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
41. Na czym polega wnioskowanie w przód, w tył i mieszane w systemie ekspertowym?
Wnioskowanie w przód (progresywne)
Na podstawie dostępnych reguł i faktów generowane są nowe fakty tak długo, aż wśród wygenerowanych faktów znajdzie się postawiony cel (hipoteza)
Dzięki temu baza faktów może być powiększana
Przy wyborze reguł do aktywacji, ogranicza się ich liczbę
Metody sterowania wnioskowaniem:
strategia świeżości - wybiera te reguły, które najpóźniej zostały dołączone do zbioru reguł
strategia blokowania - eliminuje te reguły, które zostały już użyte w procesie wnioskowania
strategia specyficzności - preferowane są te reguły, które mają większą liczbę przesłanek lub (w wypadku tej samej liczby przesłanek) te, które mają mniejszą liczbę zmiennych
strategia przypadkowości - używana jeśli w wyniku użycia poprzednich strategii nadal istnieje więcej niż jedna reguła - wybieramy regułę w sposób losowy
Wnioskowanie w tył (regresywne)
Przebiega w odwrotną stronę niż wnioskowanie w przód
Polega głównie na wykazywaniu prawdziwości hipotezy na podstawie prawdziwości przesłanek
Jeżeli nie wiemy, czy jakaś przesłanka jest prawdziwa, to traktujemy ją jako nową hipotezę i próbujemy ją wykazać
Jeżeli zostanie znaleziona reguła, której wszystkie przesłanki są prawdziwe, to konkluzja tej reguły jest prawdziwa
Na podstawie tej konkluzji dowodzi się następną regułę, której przesłanka nie była znana, itd.
Postawiona hipoteza jest prawdziwa, jeśli wszystkie rozważane przesłanki dadzą się wykazać
Cechy charakterystyczne:
Mniejsza liczba generowanych nowych faktów
Niemożność dowodzenia kilku hipotez naraz
Wnioskowanie wstecz jest zwykle efektywniejsze i szybsze bardziej rozpowszechnione
Wnioskowanie mieszane
Połączenie metod w przód i wstecz
Pozbawione niektórych wad obu metod
Opiera się na stosowaniu metareguł (reguł ogólnych) określających priorytety wyboru metody wnioskowania
system w zależności od sytuacji może dobierać najbardziej odpowiedni sposób wnioskowania
System działa tak, jakby można było w nim wyróżnić dwie maszyny wnioskujące - w przód i wstecz;
42. Opisz 3 wybrane strategie uczenia systemów ekspertowych. 9
Wybrane strategie uczenia systemów:
Bezpośrednie zapisanie wiedzy
System nie musi wnioskować i przekształcać wiedzy - ma ją zapisaną na stałe w niezmiennej bazie
System uczony jest przez zaprogramowanie lub przez zapamiętywanie określonych stwierdzeń
Stosowane w prostych bazach wiedzy;
Pozyskanie wiedzy na podstawie instrukcji
System wykorzystuje źródła wiedzy i akceptuje ją w swoim (zrozumiałym przez system) języku, następnie jest dokonywana agregacja pozyskanej wiedzy z wiedzą posiadaną
Ważną rolę odgrywa źródło wiedzy - przedstawiają wiedzę
w odpowiedni sposób co umożliwia dołączenie jej do już istniejącej wiedzy
Pozyskiwanie wiedzy na podstawie analogii
Przekształcenie wiedzy w taki sposób, aby mogła ona być użyteczna do opisania faktów podobnych do już wcześniej zawartych w bazie wiedzy
System pozyskując nową informację przeszukuje swoją bazę wiedzy i odnajduje podobną
Na podstawie starych zachowań system podejmuje działanie - jeśli przyniesie ono niewłaściwe skutki, system powinien zreorganizować zawartość pamięci
43. Podaj cechy dobrego systemu ekspertowego 5
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ł
Magazynier
Znajdź fakturę
Zmień stan magazynu
Klient
Znajdź produkt
Zegar
Wystaw fakturę
Sprzedawca
przypadek użycia
aktor