Kilka zagadnień dotyczących Sztucznej inteligencji. Artykuł pobrano ze strony eioba.pl 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 Autor: Magister inżynier Ireneusz Łukasz Dzitkowski Artykuł pobrano ze strony eioba.pl