Inteligentne algorytmy.pdf

(8190 KB) Pobierz
ARTUR BIELIŃSKI
INTELIGENTNE ALGORYTMY
1
Spis treści
1. Wytwarzanie nowej wiedzy......................................................................................................................................
1.1 Teoria gry w szachy................................................................................................................................................
1.1.1 Algorytm statyczny..............................................................................................................................................
1.1.2 Algorytm dynamiczny..........................................................................................................................................
1.1.3 Algorytm funkcji decyzyjnych............................................................................................................................
1.1.4 Podstawowa funkcja obliczająca ruch figury na planszy....................................................................................
1.1.5 Funkcja matematyczna spychająca figurę K na brzeg szachownicy...................................................................
1.2 Teoria gry w warcaby.............................................................................................................................................
1.2.1 Algorytm tworzenia drzewa ruchów pojedynczego pionka................................................................................
1.2.2 Kryterium najdłuższego bicia..............................................................................................................................
1.2.3 Algorytm przycinania drzewa ruchów.................................................................................................................
1.2.4 Algorytm wyznaczania ruchów niepodobnych....................................................................................................
1.2.5 Algorytm wyznaczania kategorii ruchów.............................................................................................................
1.2.6 Algorytm maksymalizacji zysku..........................................................................................................................
1.2.7 Wyznaczanie zysku gwarantowanego i zysku niegwarantowanego....................................................................
1.2.8 Podstawowa samowywołująca procedura obliczająca ruch pionka lub damki...................................................
1.2.9 Obliczenia wielowarstwowe................................................................................................................................
1.2.10 Przekodowywanie pozycji pionka ze współrzędnych x,y na stosowane w planszach 64 i 100 polowych.......
1.2.11 Procedura zliczania pionków i damek...............................................................................................................
2. Dotychczasowe strategie XVIII wiecznych arcymistrzów gry w szachy.................................................................
2.1 Zasady gry w szachy...............................................................................................................................................
2.2 Dotychczasowa taktyka gry arcymistrzów..............................................................................................................
3. Prezentacja programów do gry w szachy..................................................................................................................
3.1 Nowość wszechczasów zestawienie ruchów funkcja programu Kalkulator Szachowy 2na2 V.1.1.......................
3.2 Zapoznaj się z sytuacją na planszy.........................................................................................................................
3.3 Diagram testowy - ruchy ze ścieżką i bez ścieżki ucieczki przed porażką............................................................
3.4 Diagram testowy - ruchy z daremnym i niedaremnym poświęceniem figur..........................................................
3.5 Diagram testowy - ruchy przybliżające do sukcesu...............................................................................................
3.6 Inteligentne statystyki funkcja programu Kalkulator Szachowy 2na2 V.1.0..........................................................
3.7 Pierwsze komputerowe odkrycie............................................................................................................................
3.8 Komputerowe statystyki w ośmiu kategoriach.......................................................................................................
3.9 Inteligentne liczenie ścieżek...................................................................................................................................
3.10 Gramy z programem Turniej poziom 2na2...........................................................................................................
4. Dotychczasowe strategie gry w warcaby..................................................................................................................
4.1 Przygoda w świetlicy szkolnej................................................................................................................................
4.2 Reguły Kodeksu Warcabowego..............................................................................................................................
5. Prezentacja programów do gry w warcaby...............................................................................................................
5.1 Program Turniej Warcabowy...................................................................................................................................
5.2 Program Quiz Warcabowy......................................................................................................................................
5.3 Program Turniej Wariantowy Warcabowy..............................................................................................................
6. Nieograniczone możliwości drzewa ruchów.............................................................................................................
6.1 Nieograniczone możliwości drzewa wszystkich ruchów w algorytmie szachowym.............................................
6.2 Maksymalizacja zysku w algorytmie warcabowym...............................................................................................
7. Porównanie iteracyjnego i rekurencyjnego algorytmu poruszania gońcem i damką...............................................
8. Ewolucja projektu programu do gry w warcaby.......................................................................................................
8.1 Trzy poziomy abstrakcji projektu informatycznego...............................................................................................
8.2 Rozważania na temat praw autorskich...................................................................................................................
Dodatek. Ustawa o ochronie praw autorskich..............................................................................................................
3
6
7
12
13
14
24
28
28
28
29
29
31
31
31
34
37
38
38
40
40
44
49
50
52
57
63
70
71
120
120
121
124
148
148
148
150
154
157
159
183
183
183
184
186
187
189
191
Kup książkę
2
1. Wytwarzanie nowej wiedzy.
Do wytwarzania nowej wiedzy zatrudnia się dziś matematyków którzy tworzą modele obiektów i
środowiska, a następnie wytwarzają modele komplementarne do modelu środowiska realizujące
określone postawionymi wymaganiami zadanie matematyczne rozwiązujące problem lub
zagadnienie.
Przykład wytwarzania nowej wiedzy.
Za 4,5 miliarda lat zgaśnie słońce, aby przeżyć ludzkość będzie musiała zbudować statek
kosmiczny napędzany tlenem i wodorem pozyskanym z elektrolizy oceanów które wtedy i tak nie
będą już potrzebne.
Dane początkowe:
Objętość oceanów czyli ilość zgromadzonej w nich wody. 1370.4 mln km
3
Ciężar właściwy wody aby obliczyć masę przydatnej do elektrolizy wody: 1g/cm
3
Ilość energii słonecznej wytwarzanej przez słońce: 3.86 * 1033 erg/s
Wydajność fotoogniw słonecznych: 10%
Zakładając że elektroliza zostanie przeprowadzona przy użyciu energii słonecznej, obliczyć czas
trwania elektrolizy wszystkich oceanów i ilość tlenu i wodoru możliwego do uzyskania z tej
planety.
Rozwiązanie zadania:
W 1kg wody znajduje się 1000/18 = 55.555 moli H
2
O
czyli 55.555 * N
A
cząsteczek H
2
O
czyli 55.555 * 2 moli H = 111.111 moli H
czyli 55.555 / 2 moli O
2
= 27.777 moli O
2
Czyli w 1kg wody znajduje się
111.111 moli H * 1g/mol = 111.111 g H
27.777 moli O
2
* 32g/mol = 888.888 g O
2
W oceanach znajduje się 1270.4 * 10
6
km
3
wody czyli 1270.4 * 10
15
m
3
czyli
1270.4 * 10
15
m
3
* 1000kg/m
3
= 1370.4 * 10
18
kg wody
Z oceanów można więc pozyskać 1370.4 * 10
18
kg * 111.111/1000 = 152.2665144 10
18
kg H
i 1370.4 * 10
18
kg * 888.888/1000 = 1218.132115 10
18
kg O
2
Elektroliza takiej ilości wody w celu pozyskania paliwa do międzygalaktycznego statku
kosmicznego trwała by, prądem o natężeniu 1A aż przez 14501.44229 * 10
24
sekund czyli
14501.44229 * 10
24
sekund / 31.536 * 10
6
sekund/rok = 459.837 * 10
18
lat.
Każdego dnia każdy z 10 miliardów ludzi zamieszkujących naszą planetę wytwarza nową wiedzę,
warto pomyśleć o zbudowaniu takiego statku kosmicznego który umożliwiałby odnajdowanie
młodych słońc i zasiedlanie krążących wokół nich planet. Młodych słońc czyli takich które
przetrwają dłużej niż nasze słońce.
Cywilizacja jest więc wytwarzana przez osoby z 5 z matematyki, jeśli zapytacie co trzeba mieć lub
wiedzieć aby napisać program do gry w szachy, odpowiedź jest jedna: wieczną piątkę z
matematyki. Nie istnieje teoria w Równaniach Różniczkowych, choć istnieje Z-przekształcenie dla
zmiennej dyskretnej, L-przekształcenie dla zmiennej ciągłej, liczymy całki potrójne i gradientowe,
nie istnieje teoria w Teorii Sterowania choć liczymy macierzowe równania Laplace'a, nie istnieje
teoria w Podstawach Dynamiki Układów choć modelujemy matematycznie dowolne obiekty i
obliczamy sterownia w układzie otwartym i zamkniętym.
Tą teorię, gry w szachy, należy dopiero stworzyć. Już w przedszkolu, gdzie nauczałem gry w
3
Kup książkę
szachy, nie grywałem w warcaby. Grając od dziecka w szachy w drugiej klasie szkoły podstawowej
zauważyłem że wygrałem z własnym Ojcem który był najlepszym matematykiem na Politechnice
Świętokrzyskiej, spytałem tak dobrze gram czy udajesz, odpowiedz była wygrałeś, później
zweryfikowałem to na najlepszym koledze z klasy który też miał piątkę i który przyznał że
faktycznie zawsze wygrywam, pewnego dnia na festynie 1 majowym wygrałem z reprezentacją
Miejskiego Domu Kultury, poszedłem więc na dwa spotkania w nadziei zapisania się i doskonalenia
w grze w szachy, kiedy graliśmy na małej szachownicy wygrywałem a kiedy graliśmy na dużej
szachownicy przegrywałem. Ostatecznie skończyło się na dwóch spotkaniach gdyż zobaczyłem że
oni zamiast rozgrywać dużą ilość partii szachowych uczą się na pamięć partii Radzieckich
Mistrzów Szachowych, i stwierdziłem że, wprawdzie mam piątkę z matematyki, ale przecież nie
uczę się niczego nigdy na pamięć, po prostu rozwiązuję zadania. Przez wiele lat byłem przekonany
że mam słabą pamięć, okazało się że są osoby które wytwarzają dużą ilość własnych kontekstów,
osoby twórcze, i osoby które skupiają się na poznawaniu przytłaczającej ich rzeczywistości,
rzeczywistości czyli cywilizacji. Twórcami cywilizacji są więc tylko osoby z piątką z matematyki,
na 30 osób zazwyczaj 3 osoby mają 5 z matematyki czyli 10% społeczeństwa może tworzyć
wartościowe programy,. reszta osób to odbiorcy cywilizacji, ci którzy ustawiali się w szkole po
zeszyt do matematyki i nie potrafili rozwiązać nawet równania kwadratowego 2x
2
+5x-3=0,
d=25+4*6=49, x1=(-5-7)2*2, x2=(-5+7)2*2. Komputerowe rozwiązywanie równań kwadratowych
programuje się na pierwszej lekcji ćwiczeń z programowania w Pascalu, już na drugim semestrze,
choć całe studia to tylko matematyka wyższa. Jest oczywiste że na komputerze potrafimy policzyć
tylko to co potrafimy policzyć ręcznie.
Teoria gry w szachy którą stworzyłem polega na zliczania każdej ścieżki w czterowarstwowym
drzewie ruchów i tworzeniu inteligentnych statystyk, teoretycznie stworzyłem ją w drugiej klasie
szkoły podstawowej gdy sformułowałem zdanie że zaprojektuję komputer na Z80 grający w szachy
i zacząłem obmyślać algorytm, ruch który ja wykonuję to ruch pierwszej warstwy, w drugiej
warstwie nie może być porażki, w trzeciej warstwie może być sukces ale musi być ścieżka ucieczki
przed porażką w czwartej warstwie.
Kiedy wiele lat później zabrałem się do pisania programu i sformułowałem aż 8 kategorii ruchów:
1. Pewny Sukces w 1 ruchu
2. Pewny Remis w 1 ruchu
3. Możliwy lub Pewny Sukces w 2 ruchu
4. Możliwy lub Pewny Remis w 2 ruchu
5. Ruchy bez porażki
6. Ruchy z porażką ale ze ścieżką lub bez ścieżki ucieczki przed porażką
7. Ruchy z bilansem figur w 1 ruchu
8. Ruchy z bilansem figur w 2 ruchu
Najpierw powstał Kalkulator Szachowy 2na2 w wersji 1.0 obliczający inteligentne statystyki,
następnie powstał Kalkulator Szachowy 2na2 w wersji 1.1 wyposażony w funkcję Zestawienie
Ruchów która dokonuje automatycznej interpretacji inteligentnych statystyk i oznaczająca
kolorami:
zielonym ruchy dobre z pewnym sukcesem lub remisem,
niebieskim ruchy bez porażki lub nieokreślone co do skutków ale nie prowadzące do
sukcesu lub porażki,
białym ruchy wymagające zastanowienia i oceny na tle innych ruchów,
Następnie powstał program Turniej poziom 2na2 który klasyfikuje ruchy według 50 kategorii i
umożliwia rozgrywanie prawdziwej partii szachów, program sam wykonuje ruchy.
Kolejnym dziełem były 3 programy do gry w warcaby: Turniej Warcabowy, Quiz Warcabowy i
4
Kup książkę
Turniej Wariantowy Warcabowy które powstały dla warcabów klasycznych 64 polowych i
międzynarodowych 100 polowych.
Programy do gry w Szachy powstały w Delphi Pascal, a programy do gry w Warcaby powstały w
C#.
Aktualnie programy:
setup_szachy_kalkulator_szachowy_2na2_v1.1.zip
setup_turniej_poziom_2na2_v1.1.zip
setup_warcaby100.zip
setup_warcaby64.zip
są dostępne pod adresem
www.gryiszachy.hitowy.pl
wraz z instrukcjami obsługi:
Instrukcja_Obsługi_Kalkulator_Szachowy_2na2.pdf
Kalkulator_Szachowy_2na2_Nowości _wersji_1.1.pdf
Turniej_program_do_gry_w_szachy_Instrukcja_Obsługi_v1.1.pdf
Instrukcja_obslugi_warcaby100.pdf
Instrukcja_obslugi_warcaby64.pdf
które ukazują się w momencie instalacji programu.
W książce Inteligentne algorytmy autor programów po raz pierwszy prezentuje jak powstały
programy do gry w szachy i warcaby. Teorię obliczeń i algorytmy, kod podstawowych procedur w
C# i Delphi Pascal oraz jakie są możliwości obliczeń statycznych i obliczeń dynamicznych w
szczególności nieograniczonych możliwości obliczeń na wygenerowanym dynamicznie, w trakcie
przewidywania kolejnych ruchów, czterowarstwowym drzewie ruchów. Udostępnia także
nieodpłatnie kody aktywacji programów do gry w szachy.
Kup książkę
5
Zgłoś jeśli naruszono regulamin