Projekt I Sztuczna Inteligencja, Sprawozdanie, Techniczne zastosowanie sieci neuronowych


Sztuczna inteligencja

PROJEKT I

Ernest Rogowski

Temat: Zbudować inteligentny system sortowania przesyłek pocztowych. Wykorzystać grafy lub drzewa.

Wykonanie projektu

1. Wczytywanie przykładowych danych

Po uruchomieniu programu pokazuje się tylko jeden przycisk „Wczytaj dane”.

Po kliknięciu na niego pojawiają się pozostałe przyciski, a co najważniejsze to tablic wczytują się przykładowe dane. W zamyśle miałem aby te dane były odczytywane z osobnego pliku (gdzie byłyby trzymane dane po skończeniu pracy z programem), jednak nie powiodło się to wiec program wczytuje dane zapisane w kodzie, m.in.:

topis[0]:='Polska';

tbrat[0]:=1;

tsyn[0]:=2;

topis[1]:='Świat';

tbrat[1]:=0;

tsyn[1]:=6;

topis[2]:='Mazowieckie';

tbrat[2]:=3;

tsyn[2]:=9;

topis[3]:='Malopolskie';

tbrat[3]:=4;

tsyn[3]:=11;

topis[4]:='Łódzkie';

tbrat[4]:=5;

tsyn[4]:=13;

Kliknięcie tego przycisku powoduje również pokazanie na formatce pozostałych przycisków:

Button1.Visible:=True;

Edit1.Visible:=True;

Button3.Visible:=True;

Edit2.Visible:=True;

Button4.Visible:=True;

oraz wyświetlenie pierwszych lokalizacji przesyłkowych na formie:

Repeat

tab[j]:=i;

Label2.Caption:=Label2.Caption + IntToStr(j)+ '. ' + topis[i]+#13;

i:=tbrat[i];

inc(j);

Until (i = 0);

2. Wybieranie lokalizacji z przedstawionych

Kolejnym przyciskiem jest przycisk „START” wraz z pustym polem.

0x01 graphic

W pole to wpisujemy wartość liczbową jednej z lokalizacji przedstawionych obok i klikamy „START”- powoduje to, że przechodzimy w głąb tej lokalizacji i wyświetlone zostają jej „podlokalizacje”.

W swoim projekcie posłużyłem się trzema tablicami do w których zapisywane są dane lokalizacji oraz jedną pomocniczą do zapamiętywania aktualnie wyświetlanych pozycji:

- topis: array of string; // zapamiętuje nazwy lokalizacji

- tbrat: array of integer; // zapamiętuje numer brata lokalizacji

- tsyn: array of integer; // zapamiętuje syna lokalizacji

- tab : array of integer;

0x08 graphic
0x01 graphic

W przykładzie pokazanym powyżej wartości tablic tbrat i tsyn byłyby następujące:

tbrat[1]=2; tbrat[2]=0; tbrat[3]=4; tbrat[4]=5; tbrat[5]=0 …

tsyn[1]=3; tsyn[2]=6; tsyn[3]=0; tsyn[4]=0; tsyn[5]=0 …

Jeżeli po przejściu wszystkich kolejnych etapów lokalizacji dojdziemy do końca mamy dwie możliwości:

- dodać kolejną lokalizację

- przejść do początku, co oznacza w praktyce przypisanie przesyłce lokalizacji końcowej

3. Nowa przesyłka

Przycisk „Nowa przesyłka” powoduje wyświetlenie pierwszej grupy lokalizacji. Możliwe jest to w dowolnym miejscu naszego drzewa (np. nastąpi pomyłka możemy przejść do początku a przesyłka nie będzie zaadresowana). Przycisku tego należy użyć również po usunięciu jakiegoś elementu z listy lokalizacji.

Oto fragment kodu:

tab[1]:=0;

x:=1;

i:=0;

j:=1;

Repeat

tab[j]:=i;

Label2.Caption:=Label2.Caption + IntToStr(j)+ '. ' + topis[i]+#13;

i:=tbrat[i];

inc(j);

Until (i = 0);

x:=j-1;

4. Dodawanie nowych lokalizacji

Przycisk „Dodaj lokalizacje” wraz z oknem obok niego służą do dodawania nowych lokalizacji dla przesyłek.

0x01 graphic

W puste okno wystarczy wpisać nazwę nowej lokalizacji oraz kliknąć na „Dodaj lokalizacje”.

Z opcji tej możemy korzystać w dowolnym momencie, a nowa lokalizacja zostanie automatycznie dodana do jako „brat” do ostatniego elementu z pośród aktualnie wyświetlonych. Nowa lokalizacja pojawi się obrazu na ekranie, dzięki czemu możliwe jest jej wybranie natychmiast po dodaniu, co oczywiście spowoduje że trafimy do miejsca gdzie nie ma dalszych lokalizacji (co robić w takich sytuacjach wspomniałem w punkcie 2.).

Oto fragment kodu źródłowego:

topis[i]:=Edit2.Text;

if Label2.Caption='' then begin

tsyn[tab[x]]:=i;

Label2.Caption:='1. '+ topis[i];

end else begin

tbrat[tab[x]]:=i;

Label2.Caption:=Label2.Caption + IntToStr(x+1)+ '. ' + topis[i]+#13;

Edit2.Text:='';

Inc(x);

tab[x]:=i;

5. Usuwanie lokalizacji

Do usuwania lokalizacji służą następujące komponenty

0x01 graphic

Po wpisaniu w puste pole numeru jednej z wyświetlonych lokalizacji i kliknięciu przycisku „Usuń lokalizacje” nastąpi jaj usunięcie. Jak widać mamy do wyboru dwie opcje co zrobić z „potomkami” lokalizacji którą usuwamy.

Po usunięciu którejkolwiek z lokalizacji (jak już wspominałem wcześniej) należy użyć przycisku „Nowa przesyłka”.

Case RadioGroup1.ItemIndex of

//--------------usun potomkow--------------------------//

0: begin

j:=tsyn[i];

k:=-1;

Repeat

Inc(k);

Until (tsyn[k]=i)or(tbrat[k]=i);

if tbrat[k]=i then tbrat[k]:=tbrat[i];

if tsyn[k]=i then tsyn[k]:=tbrat[i];

while tbrat[j]<>0 do begin

topis[i]:='';

tbrat[i]:=0;

tsyn[i]:=0;

i:=j;

j:=tbrat[j];

end;

topis[i]:='';

tbrat[i]:=0;

tsyn[i]:=0;

end;

6. Pokazywanie już zaadresowanych przesyłek

Opcja służy jako podgląd przesyłek które już zaadresowaliśmy (z którymi doszliśmy do lokalizacji końcowej). Przesyłki wyświetlają się z kolejnymi numerami i nazwą lokalizacji końcowej.

0x01 graphic

1

2

3

4

5

6

7



Wyszukiwarka

Podobne podstrony:
pierwszy, Sprawozdanie, Techniczne zastosowanie sieci neuronowych
PRACA PRZEJŚCIOWA Zastosowanie sieci neuronowych w zagadnieniu sterowania odwróconym wahadłem
Zastosowanie sieci neuronowych
Zastosowanie sieci neuronowych, giełda(3)
Sztuczna Inteligencja, Studia, Semestr 4, Sztuczna Inteligencja, sprawozdania
Jerzy Myc - Sztuczna inteligencja sprawozdanie, WI, Semestr III N2, Metody sztucznej inteligencji
ZASTOSOWANIE SIECI NEURONOWYCH W SYSTEMACH AKTYWNEJ REDUKCJI HAŁASU Z UWZGLĘDNIENIEM ZJAWISK O CHARA
Prońko, Rafał Zastosowanie sieci neuronowych do planowania i analizy kampanii reklamowej (2014)
MSI-program-stacjonarne-15h-2011, logistyka, semestr IV, sieci neuronowe w log (metody sztucznej int
Identyfikacja Procesów Technologicznych, Identyfikacja charakterystyki statycznej obiektu dynamiczne
Polecenie, logistyka, semestr IV, sieci neuronowe w log (metody sztucznej inteligencji)
MSI-program-stacjonarne-15h-2011, logistyka, semestr IV, sieci neuronowe w log (metody sztucznej int
sztuczne sieci neuronowe sciaga
Prognozowanie z zastosowaniem metod regresji krokowej, sieci neuronowych i modeli ARIMA
Sztuczne sieci neuronowe podstawy zagadnienia
MatLab Sztuczne sieci neuronowe Nieznany
Sztuczna Inteligencja, Projekt ZBP - założenia studia inżynierskie IOZK Metody ilościowe i jakościow
Sztuczne sieci neuronowe

więcej podobnych podstron