JustPaste.it

Kilka zagadnień dotyczących Sztucznej inteligencji.

Jest tu kilka zagadnień dotyczących SI.

Jest tu kilka zagadnień dotyczących SI.

 

  Autor przygotowania: Magister inżynier Ireneusz Łukasz Dzitkowski  Wałcz, dnia: 08. 02. 2012r.

 

 

  Kilka zagadnień kluczowych dotyczących Sztucznej Inteligencji i systemów ekspertowych.

 

 

             Systemy ekspertowe – programy komputerowe, które rozwiązują specjalistyczne

problemy z pewnej dziedziny, zastępując eksperta - człowieka.

Na podstawie zgromadzonej wiedzy potrafią również wnioskować i podejmować decyzje.

Ogólnie zalicza się je do dziedziny zwanej „sztuczną inteligencją”.

 

         Podział systemów ekspertowych (ze względu na możliwość ingerencji człowieka w produkowane

przez system rozwiązanie):

-systemy doradcze – podpowiadają rozwiązanie pomagając podjąć decyzję człowiekowi –

prezentują rozwiązanie jakiegoś problemu, ale do użytkownika należy jego ocena, oraz to czy je

zaakceptuje, czy odrzuci;

-podejmujące decyzję bez ingerencji  i kontroli człowieka – stosowane do sterowania

skomplikowanymi urządzeniami w warunkach wykluczających

lub mocno ograniczających

możliwości człowieka;

-systemy krytykujące – dokonują analizy pewnego problemu i jego rozwiązania, a następnie

komentują to rozwiązanie;

          System ekspertowy składa się z następujących, niezależnych fizycznie, lecz

współpracujących ze sobą, elementów:

-baza wiedzy – znajdują się w niej wszelkie informacje z zakresu wybranej dziedziny: wiedza

faktograficzna (fakty), wiedza o wnioskowaniu (zbiór reguł),

wiedza o sposobach rozwiązywania problemu (meta - wiedza) – musi być ona zapisana

w postaci sformalizowanej,  zrozumiałej dla mechanizmu wnioskującego i pozwalającej 

na prześledzenie sposobu dojścia systemu do rozwiązania

-maszyna wnioskująca – na podstawie zgromadzonej wiedzy wyszukuje rozwiązanie postawionego

problemu

jest ona oddzielona od bazy wiedzy,

dzięki czemu działa tak samo w systemach ekspertowych dla

dowolnej dziedziny jak i w szkieletowych systemach ekspertowych; algorytm wyszukiwania

zawiera szereg strategii przeszukiwań, heurystyk i metod wnioskowania – strategie wyznaczają

kolejne kroki przeszukiwań, heurystyki pomagają zoptymalizować przestrzeń poszukiwań,

a metody decydują w jaki sposób zachodzi proces myślenia (wnioskowane wstecz, w przód, czy

inne);

-procedury objaśniania – objaśniają strategię wnioskowania, sposób dojścia do rozwiązania i

pokazują dokładniejsze dane o rozwiązaniu;

-interfejs do porozumiewania się z użytkownikiem – umożliwia komunikację człowieka z systemem

(pracę interaktywną) – służy do zasięgania informacji u użytkowania, przedstawiania

wygenerowanego wyniku oraz udzielania wyjaśnień na temat procesu wnioskowania – konstrukcja

i wygląd interfejsu zależy od języka programowania, za pomocą którego stworzono system

ekspertowy oraz systemu operacyjnego, w którym on działa;

-moduły zdobywania i modyfikacji wiedzy – pozyskiwanie wiedzy pozwala na automatyczne

ulepszanie systemu;

      Systemy ekspertowe najlepiej nadają się do zastosowania w tych dziedzinach,

 które są słabo sformalizowane, w których trudno jest sformułować teorie oparte na matematyce lub ścisłe

algorytmy działania.

 Przykładami mogą być: rolnictwo,medycyna, geologia, prawo, zarządzanie,

robotyka, chemia. Do rozwiązywania problemów, dla których istnieją algorytmy numeryczne,

stosowanie systemów ekspertowych jest nieopłacalne, gdyż programy algorytmiczne są na ogół

szybsze i prowadzą do optymalnego rozwiązania, podczas gdy systemy ekspertowe nie muszą

prowadzić do rozwiązań optymalnych a jedynie akceptowalnych przez użytkownika systemu.

 

      Niektóre istniejące systemy ekspertowe: 

-MACSYMA – służy do rozwiązywania problemów matematycznych i całkowania;

wykorzystywany w MIT przez fizyków plazmy, pozyskiwanie wiedzy przez przeprogramowanie;

uznawany za bardzo efektywny;

-DENDRAL – służy do identyfikacji związków chemicznych, stosowany w USA, pozyskiwanie

wiedzy przez przeprogramowanie, uznawany za bardzo efektywny;

-PROSPECTOR – służy do interpretacji danych dotyczących zasobów geologicznych

(poszukiwanie złóż minerałów), mocno rozbudowany system pozyskiwania wiedzy, rezultaty

dobre;

-REACTOR – służy do diagnostyki siłowni jądrowych; uznany za dobry;

System ekspertowy może być tworzony przy użyciu dowolnego języka programowania (Basic,

Algol, Fortran, Pascal, C, C+ i in.), jednakże tworzenie tworzenie systemu w tych językach od

podstaw może być bardzo czasochłonne, stąd opracowano specjalne języki programowania

przeznaczone do tworzenia systemów ekspertowych, np.:

-LISP – LISt Processing

-PROLOG – PROgrammation LOGique

-OPS5 – Official Production System

-CLIPS – C Language Integrated Production System

            Zawierają one w sobie maszynę wnioskującą (z wyjątkiem LISP-u), a także wyspecjalizowane

narzędzia ułatwiające tworzenie systemu, zawierające interfejs użytkownika, blok pozyskiwania

wiedzy, blok wyjaśnień i inne. Takie narzędzia są nazywane „systemami szkieletowymi” – można

je traktować jako systemy ekspertowe z pustą bazą wiedzy, której zapełnienie zmienia je w

konkretny system ekspertowy. Takie podejście znakomicie ułatwia i przyśpiesza tworzenie

systemów ekspertowych.

 

        Test Turinga (angielskie Turing test) to eksperyment definiujący “maszynę myślącą”,

zaproponowany przez A. Turinga. W myśl testu Turinga maszynę można uznać za naśladującą

dostatecznie dobrze procesy myślowe, jeśli człowiek prowadzący z nią dialog (nie poinformowany

o tym, że rozmawia z maszyną), nie będzie w stanie odróżnić rozmowy z maszyną od rozmowy z

drugim człowiekiem.

 

          PC-Shell jest pierwszym polskim - w pełni komercyjnym - szkieletowym systemem

ekspertowym. PC-Shell powstał jako rezultat wcześniejszych doświadczeń uzyskanych podczas

budowy systemu PC-Expert (1985-87) oraz Diagnosta MC 14007 (1988). PC-Shell otrzymał

dwa wyróżnienia na Międzynarodowych Targach Oprogramowania SOFTARG w roku 1994 oraz

1996. W roku 1997 system otrzymał nagrodę II-go stopnia w konkursie na najlepszy program

targów SOFTARG. System był wielokrotnie prezentowany na konferencjach i seminariach,

zarówno w kraju jak i za granicą.PC-Shell jest dziedzinowo-niezależnym narzędziem- służącym do

budowy systemów ekspertowych. Może być zastosowany w dowolnej dziedzinie:

począwszy od bankowości i finansów a na zastosowaniach technicznych kończąc. Typowe obszary

zastosowań systemu PC-Shell to:

systemy doradcze i wspomagania decyzji,

-dydaktyka (wyższe uczelnie i szkoły średnie).

 

           System może być między innymi wykorzystywany w takich dziedzinach jak:

-analizy finansowe (ekonomiczne),

-analizy wniosków kredytowych w bankach,

-doradztwo podatkowe,

-dzięki otwartej architekturze może być łatwo zintegrowany z Systemami Informowania

              Kierownictwa, służąc np. do automatycznej analizy wskaźników ekonomicznych,

- technika, np. do analizy danych pomiarowych.

              Dziedzinowa niezależność systemu PC-Shell oznacza, że nie dziedzina a raczej klasa

problemów decyduje o powodzeniu zastosowania tego systemu. System PC-Shell jest szczególnie

predysponowany do rozwiązywania następujących klas problemów:

analiza (interpretacja) danych

klasyfikacja,

diagnostyka,

finanse i bankowość,

inwestycje,

marketing,

technika,

dydaktyka,

komponent dla systemów SIK, analizatorów, arkuszy kalkulacyjnych,

komponent programów edukacyjnych.

           PC-Shell jest dziedzinowo niezależny, stąd zakres jego zastosowań jest bardzo szeroki.

Bowiem nie dziedzina a klasa problemów decyduje o powodzeniu zastosowania systemu

PC-Shell.

System PC-Shell jest systemem o architekturze hybrydowej, tj. łączącej w sobie różne

metody rozwiązywania problemów i reprezentacji wiedzy. Interesującą właściwością systemu

PC- Shell jest między innymi wbudowany, w pełni zintegrowany, symulator sieci neuronowej. Inną

istotną cechą systemu PC-Shell jest jego struktura tablicowa, co umożliwia podzielenie dużej

bazy wiedzy na mniejsze moduły - zorientowane tematycznie, tzw. źródła wiedzy.

            Dzięki hybrydowej architekturze, w systemie PC-Shell występują obok siebie różne metody

reprezentowania wiedzy:

deklaratywna w formie reguł i faktów,

trójka: obiekt, atrybut, wartość,

imperatywna w formie programu algorytmicznego,

wiedza w formie tekstów,

wiedza rozproszona w sieci neuronowej,

możliwość podzielenia bazy wiedzy na pewną liczbę źródeł wiedzy.

           System PC-Shell jest wyposażony we własny język reprezentacji wiedzy. Język ten dzięki

przyjętym rozwiązaniom, w tym blokowej strukturze, cechują:

elastyczność,

czytelność,

pełne rozdzielenie wiedzy eksperckiej i procedur sterowania,

łatwość nauczania.

 

            Graf jest zbiorem połączonych ze sobą wierzchołków. Są one podstawowym obiektem

rozważań teorii grafów. Za pierwszego teoretyka i badacza grafów uważa się Leonarda

Eulera.

Grafy dzielimy na:

- prosty, nieskierowany: jest to uporządkowana para (V, E), gdzie V jest niepustym

zbiorem, zaś E rodziną dwuelementowych podzbiorów zbioru wierzchołków V,

zwanych krawędziami.

- skierowany, digraf: jest to uporządkowana para (V, A), gdzie V jest zbiorem

wierzchołków, zaś A jest zbiorem uporządkowanych par różnych wierzchołków ze

zbioru V, zwanych krawędziami skierowanymi.

- mieszany: jest to uporządkowana trójka (V, E, A) zdefiniowana jak wyżej, czyli może

zawierać zarówno krawędzie jak i krawędzie skierowane.

 

         Metody przeszukiwania

     Bardzo istotne przy badaniu grafów są algorytmy przeszukiwania, które polegają na

odwiedzaniu wierzchołków w wyznaczonym celu. Może nim być sprawdzenie czy istnieje

połączenie pomiędzy wierzchołkami lub znalezienie najkrótszej drogi pomiędzy nimi.

Podstawowe algorytmy to:

1. BFS (Breadth First Search) - algorytm przeszukiwania wszerz

       Algorytm zaczyna od korzenia i odwiedza wszystkie połączone z nim węzły. Następnie

odwiedza węzły połączone z tymi węzłami i tak dalej, aż do odnalezienia celu.

Algorytm BFS:

1. Utwórz kolejkę.

2. Zapisz do kolejki wierzchołek początkowy.

3. Oznacz wierzchołek S jako odwiedzony.

4. Dopóki kolejka jest niepusta wykonuj:

4.1.Pobierz z kolejki wierzchołek i nazwij go S.

4.2.Jeśli S jest poszukiwanym wierzchołkiem końcowym, to

zwróć SUKCES i zakończ algorytm.

4.3.Jeśli S nie jest poszukiwanym wierzchołkiem końcowym, to

zapisz do kolejki wszystkie nieodwiedzone wierzchołki sąsiadujące z S.

  5. Zwróć BRAK ROZWIĄZANIA i zakończ algorytm.

Ponieważ trzeba utrzymywać listę węzłów które się już odwiedziło, złożoność pamięciowa

przeszukiwania wszerz wynosi O(V + E), gdzie V to liczba węzłów, a E to liczba krawędzi w

grafie. Z powodu tak dużego zapotrzebowania na pamięć przeszukiwanie wszerz jest

niepraktyczne dla dużych danych.

 

       Przeszukiwanie wszerz (ang. Breadth-first search, w skrócie BFS) – jeden z najprostszych

algorytmów przeszukiwania grafu. Przechodzenie grafu rozpoczyna się od zadanego wierzchołka s i

polega na odwiedzeniu wszystkich osiągalnych z niego wierzchołków. Wykorzystywany jest do

odnajdywania najkrótszej drogi w grafie. Wynikiem działania algorytmu jest także drzewo

przeszukiwania wszerz o korzeniu w s, zawierające wszystkie wierzchołki do których prowadzi

droga z s. Algorytm działa prawidłowo zarówno dla grafów skierowanych jak i nieskierowanych

 

       Przeszukiwanie w głąb (ang. Depth-first search, w skrócie DFS) – jeden z algorytmów

przeszukiwania grafu. Przeszukiwanie w głąb polega na badaniu wszystkich krawędzi

wychodzących z podanego wierzchołka. Po zbadaniu wszystkich krawędzi wychodzących z danego

wierzchołka algorytm powraca do wierzchołka, z którego dany wierzchołek został odwiedzony.

 

 

   Źródło: Na podstawie dostępnych treści przygotował  Mgr.inż.Ireneusz Łukasz Dzitkowski