Sztuczna inteligencja biła osobę w grach (th, szachy i innych). Rozwój sztucznej inteligencji w programach szachowych szkolenia projektowe szachy i sztuczna inteligencja




Grishanin E.a. Durin S.v. Treść 1. Jaka jest sztuczna inteligencja? 2. Na bazach wiedzy. 3. Zadania testowe. Sztuczna inteligencja. W latach 60. XX wieku pojawiła się nowa część informatyki, która nazywała się "sztuczną inteligencją". W słowniku encyklopedycznym jest napisany: "intelekt (z lat Intellectus - wiedza, zrozumienie, rozsądne) - zdolność myślenia, racjonalna wiedza". Ta zdolność jest w pełni specyficzna tylko dla osób. Przedmiotem studiów "sztuczna inteligencja" jest ludzkim myśleniem. Naukowcy szukają odpowiedzi na pytanie: jak myśli człowiek? Celem tych badań jest stworzenie modelu ludzkiej inteligencji i wdrożenie go na komputerze. Kilka uproszczonymi, powyższy cel brzmi w ten sposób: - uczyć samochodu myśleć. Pierwsze kroki z jakiegoś problemu, osoba często nie ma programu czystych działań. Ten program buduje się podczas pracy. Na przykład podczas gry w szachy szachy zna zasady gry, ma bramkę - wygrać imprezę. Jego działania nie są zaprogramowane wcześniej. Zależy on od działań przeciwnika, od składanej pozycji na pokładzie, z inteligencji i osobistego doświadczenia w szachy. Istnieje wiele innych rodzajów działalności człowieka, której nie można zaprogramować wcześniej. Na przykład pisanie muzyki i wierszy, dowód twierdzenia, tłumaczenie literackie z języka obcego, diagnozy i leczenia chorób i wiele więcej. Wiadomo, że każdy komputer działa na programie. Programy pisania ludzi, a komputer formalnie ich wykonuje. Deweloperzy sztucznych systemów wywiadowczych po prostu próbują nauczyć samochodu, jak osobę, niezależnie zbudować program swoich działań w oparciu o warunki zadania. Nadal możesz powiedzieć: cel przekształcenia komputera z formalnego wykonawcy w artysty intelektualnym jest ustawione. Formalny program Data Program Program Program Wyniki Program Program Intellectual Contractor Data Program Program Program Wyniki Wyniki Wyniki Formalny i Intelektualny Model Wykonawca Dowolny system sztucznej inteligencji pracuje w ramach określonego obszaru przedmiotowego (diagnostyka medyczna, prawodawstwo, matematyka, ekonomia itp.). Jak specjalista, komputer musi mieć wiedzę w tej dziedzinie. Wiedza w określonym obszarze tematycznym, w szczególnie sformalizowanych i wbudowanych komputerach, nazywane są komputerem wiedzy. Na przykład, chcesz zastosować komputer, aby rozwiązać problemy z geometrią. Jeśli w zadaniu znajduje się 500 zadań różnych treści, będziesz musiał napisać 500 programów w tradycyjnym użyciu komputera. Jeśli jest to specjalista w sztucznej inteligencji odbywa się na ten problem, będzie to dostosowane do tego zupełnie inaczej. Umieścił komputerową wiedzę na temat geometrii (ponieważ wiedza nauczyciela jest ułożona w tobie). Na podstawie niniejszej wiedzy i za pomocą specjalnego algorytmu argumentu logicznego komputer będzie rozwiązał dowolny z 500 zadań. Aby to zrobić, wystarczy powiedzieć mu tylko stan zadania. Systemy sztucznej inteligencji działają na podstawie ułożonych w nich baz wiedzy. Każdy uczeń wie, że aby rozwiązać wszelkie zadanie, pamiętaj o zasady, przepisy, formuły, ale nadal należy uważać o myśleniu, argumentować, stosować te wiedzę. Myślenie człowieka opiera się na dwóch komponentach: rezerwy wiedzy i zdolności do logicznego pojawiania się stąd istnieją dwa główne zadania podczas tworzenia inteligentnych systemów na komputerze: - modelowanie wiedzy (opracowywanie metod formalizacji wiedzy do wprowadzania ich w pamięci komputerowej jako wiedzy baza); - Modelowanie rozumowania (tworzenie programów komputerowych, które naśladują logikę ludzkiego myślenia podczas rozwiązywania różnych zadań). Jednym z rodzajów sztucznych systemów inteligencji to systemy eksperckie. Zwykle słowo "ekspert" nazywa się osobą, która ma wielką wiedzę i doświadczenie w określonym obszarze. W systemach komputerowych, znajomość tego poziomu jest układana. Powołanie systemów ekspertów - konsultacje dla użytkowników, pomoc podejmowania decyzji. Szczególnie ważna jest taka pomoc w sytuacjach ekstremalnych, na przykład w wypadku technicznym, działanie awaryjne, podczas gdy pojazdy eksploatacyjne. Komputer nie podlega stresowi. Szybko znajdzie optymalną, bezpieczną decyzję i zaoferuje mu osobę. Jednak ostateczna decyzja zabiera osobę. Krótko o głównej sztucznej inteligencji (AI) jest sekcją informatyki. Przedmiotem studiów AI jest ludzkim myśleniem; Celem jest tworzenie inteligentnych systemów na komputerze. Przykłady obszarów, w których tworzone są sztuczne systemy inteligencji: szachy i inne gry, pisanie wierszy i muzyki, tłumaczenie tekstów z jednego języka do drugiej, robotyki, przestępcy (identyfikacja odcisków palców itp.), Diagnostyka medyczna. Sztuczne systemy inteligencji działają na podstawie wiedzy położonej w nich w określonym obszarze. Model wiedzy osadzony w pamięci komputera nazywany jest bazą komputera. Myślenie człowieka opiera się na dwóch składnikach: zapasach wiedzy i zdolności do logicznego rozumowania. W systemach II wdraża model rozumowania (logiki ludzkiej). Na podstawie bazy wiedzy i modelu rozumowania system AI zaprogramuje swoją pracę podczas rozwiązywania wszelkich zadań. System ekspercki jest systemem AI, który wchodzi do wiedzy i doświadczenia specjalistycznego eksperta w tej okolicy. Oto skład bazy wiedzy "krewni": fakty: lev - ojciec Andrei; Lev - ojciec Peter; Andrey - Ojciec Alexey; Peter - ojciec Michaił; Piotr jest ojcem Dmitrii. Zasady: każdy człowiek - syn ojca; Dziadek - ojciec ojca; Bracia - synowie jednego ojca; Wujek - brat ojca; Nephew - syn brata; Wnuk - syn syn. W oparciu o te fakty i reguły możliwe jest logiczne uzasadnienie w celu ustalenia wszystkich rodzajów powiązanych powiązań między mężczyznami tej rodziny. Zwróć uwagę na dwie cechy bazy wiedzy: - fakty są prywatne, a zasady są powszechne (ważne dla każdej rodziny); - Tylko faktyczne fakty są zawarte w BZ. Rzeczywiście, wystarczy wiedzieć, kto ma do określenia innych powiązanych powiązań. Na podstawie podobnej bazy wiedzy można zbudować system ekspercki w dziedzinie powiązanych relacji między mężczyznami. Aby użyć go w stosunku do innej rodziny, wystarczy zastąpić listę faktów, a zasady naturalnie pozostaną takie same. Porównanie bazy danych z BZ dochodzi do wniosku: baza danych zawiera tylko fakty, baza wiedzy jest faktami i zasadami. Dom na bazach wiedzy. Jesteś już zaznajomiony z koncepcją "bazy danych". Baza danych (baza danych) jest modelem informacji pewnego rzeczywistego systemu w pamięci komputera. Powyżej powiedziano, że baza wiedzy (BZ) jest modelem wiedzy ludzkiej w pewnym obszarze tematycznym. Pokazujemy różnicę między bazą danych a BZ na konkretnym przykładzie. Rozważ ten problem na przykładzie powiązanych powiązań między mężczyznami jednej rodziny. W ten sposób patrzą w graficzną formę rodowodu: Lion Petr Andrei Michaił Dmitry Alexey Brano Drzewo tutaj linie oznaczają połączenie między ojcem (na najwyższym poziomie) a synem (na niższym poziomie). Powiązane linki Człowiek Lion Sons Ojciec Dziadek Brothers Wujek Pedyan Niki Nie znać Wnuków Andrei, Peter Nie wiem Nie wiem Nie wiem Andrei Alexey Lev Nie wiem Peter Michaił Dmitry No Peter Mikhail, Dmitri Leo nie wiem Andrei Nie wiem Alexey No Alexey Andrei Leo No Nie Michail No Peter Lion Dmitry Andrei Nie Nie Dmitry No Peter Lew Michaił Nie Nie No Peter Andrei Alexey Michail Dmitry Tabela 9.1 Przedstawiono informacje o powiązań między tymi samymi ludźmi w rozszerzonej formie. Korzystanie ze względnego typu DBMS, łatwo jest stworzyć relacyjną bazę danych na podstawie tej tabeli. Włączając do niej z żądaniami, możesz określić, kto ma ojca, dziadek, brata. Ta tabela jest modelem informacji o rodzinie. Teraz zwracamy się do budowy bazy wiedzy. Obszar tematyczny Oto powiązane powiązania między mężczyznami jednej rodziny. W sztucznej inteligencji istnieją różne rodzaje modeli wiedzy. Rozważymy tylko jeden z nich, który nazywa się logicznym modelem wiedzy. Takie podejście jest używane w systemie programowania Prolog (o prologie opisane jest w drugiej części książki). Zgodnie z modelem logicznym baza wiedzy składa się z faktów i zasad. A teraz damy ogólną definicję koncepcji "faktu" i "zasady". Faktem jest komunikat (informacje) o określonym wydarzeniu, o właściwości określonego obiektu, o jego połączeniu z innymi obiektami. Na przykład fakty są następującymi instrukcjami: - sosna - drzewo iglasty; - Columbus otworzył Amerykę w 1492 roku; - Gęstość wody wynosi 1 g / cm; - Tsar Salomon - syn króla Dawida; - Lion Tolstoy - rosyjski pisarz. Reguła jest oświadczeniem o większej wspólnej wspólnej niż fakt. Zasady określają pewne koncepcje przez innych, ustalają związek między różnymi właściwościami obiektów, sformułowania prawa natury lub społeczeństwa. Baza wiedzy jest kombinacją faktów podstawowych i zasad w pewnym obszarze tematycznym. Ostatnio pojawił się nowy specjalność "Inżynier wiedzy", którego zadaniem jest sformalizowanie wiedzy, rozwój baz wiedzy i tworzenie sztucznych systemów inteligencji na nich. Przykładem, którego uważaliśmy, jest bardzo proste. Łatwo odgadnąć, jakie fakty są fundamentalne i sformułować pełen zakres zasad. W bardziej złożonych obszarach tematycznych zadanie jest trudniejsze. Często do rozwiązania przez siły są tylko głównym specjalistą (ekspert) lub zespół specjalistów, którzy mają świetną wiedzę w tej dziedzinie. Krótko o głównej rzeczy. Logiczny model wiedzy w określonym obszarze przedmiotowym jest przedstawiony przez bazę wiedzy składającą się z faktów i zasad. Faktem jest informacje o określonym wydarzeniu, o właściwości określonego obiektu, o jego połączeniu z innymi obiektami. Zasady określają pewne koncepcje przez innych, ustalają związek między różnymi właściwościami obiektów, sformułowania prawa natury lub społeczeństwa. Baza wiedzy obejmuje "same w sobie tylko faktyczne fakty na ten obszar przedmiotowy. Na głównych zadaniach testowych 1. 2. 3. 4. Zadanie # 1 zadanie # 2 zadanie №3 Zadanie # 4 koniec Kiedy kierunek zatytułowany "Sztuczny intelekt" pojawił się w informatyce? A. W latach 50. XX wieku w latach 60. W latach 70. D. W latach osiemdziesiątych jest poprawne, aby pomyśleć o tym, jakiej wiedzy jest? A. Baza wiedzy jest informacją o określonym wydarzeniu, o właściwości określonego obiektu, o jego połączeniu z innymi obiektami. B. Baza wiedzy jest zestawem faktów podstawowych i zasad w pewnym obszarze tematycznym S. Baza wiedzy jest D. Podstawowa wiedza - zatwierdzenie rozwoju z większą społecznością niż fakt. Metody formalizacji wiedzy za wprowadzenie ich do pamięci komputerowej jako baza wiedzy, jakie jest modelowanie rozumowania? A. Tworzenie programów komputerowych, V. Rozwój metod naśladujących logikę ludzkiego myślenia z rozwiązywaniem różnych zadań. Formalizacja wiedzy, aby wprowadzić je do lutownicy komputerowej jako baza wiedzy. C. Jest to model wiedzy ludzkiej w D. Jest to algorytm dla pewnego obszaru tematycznego. nagrany w wykonawcy. Jaki jest fakt? A. Każdy obiekt składający się z B. Informacje o kompozycji i S. Raport o spekulacji D. Jest to pewna kolejność zestawu połączonych częściowych części i struktury systemu, reprezentowana w istniejącej grafice jako całość. Formularz. Wydarzenie i właściwość określonego obiektu, jego połączenie z innymi obiektami. Łączenie elementów, które tworzą system.

Wyślij dobrą pracę w bazie wiedzy jest proste. Użyj poniższego formularza

Studenci, studiach studentów, młodych naukowców, którzy korzystają z bazy wiedzy w swoich badaniach i pracach, będą ci bardzo wdzięczni.

Wysłane przez http://www.allbest.ru/

Rozwójoprogramowaniemodułsztucznyintelektdlagrywszachy

algorytm intelektalny komputera szachowego

  • Wprowadzenie

Koncepcja "szachy komputerowej" jest rówieśnikiem nauki o cybernetyce i jej sekcji "sztuczny intelekt". Szachy jest idealnym modelem do badania złożonych zadań, zwłaszcza tych, w których potrzebujesz opcji biustu. Rozwój programu szachowego odnosi się do problemu rozwijania sztucznej inteligencji z następujących powodów:

* Istnieje ogólne zaufanie, że zadanie jest związane z problemem sztucznej inteligencji, ponieważ szachy jest uważane za najbardziej intelektualną grę

* Wykonano obiektywne kryterium pracy - siłę programu szachowego

* Duże zróżnicowanie tego kryterium reprezentuje możliwość stopniowego poprawy programu.

Jeden z założycieli cybernetyki i teorii informacji - Claude Shannon - w latach 50. najpierw sformułował zasady wyboru udaru na szachownicy. W analizowanej pozycji przez określoną głębokość, wszystkie możliwe opcje są przenoszone, a całkowite pozycje za pomocą funkcji docelowych są przypisane ocenę numeryczną. Następnie wykonywana jest procedura minimax, aby włączyć do pozycji początkowej, wskazuje, że jego ocena i najlepiej, zgodnie z samochodem.

Rolą osoby jest oszacowanie pozycji, jak najdokładniej, aby ustawić funkcje docelowe. Funkcje te mają dwa składniki - materiał i pozycyjny. Od pierwszego wszystkiego jest jasne - przewaga materiałowa (na rysunkach i pionkach) jest z reguły, bardzo poważnym argumentem oceny stanowiska jako najlepszego. Ponadto, im mniejszy materiał na pokładzie po obu stronach, tym dokładniejsza ocena.

Ale z elementem pozycyjnym wszystko jest znacznie bardziej skomplikowane: wiele czynników jest brane pod uwagę, na przykład cechy lokalizacji poszczególnych kształtów i pionków, przestrzeni na pokładzie, czas na przegrupowanie sił i innych. Umiejętność doceniania Rola wszystkich czynników w określonej pozycji zawsze została uznana za jedno ze znaków odpieniaczów szachowych. - Ludzie.

Słabość gry komputerowej była dokładnie w nadużyciu materiałów i niemożności wdrażania "absolutnej brutalnej siły" opcji. W Książkach w Chessach z lat 70. i 80. można znaleźć znaczną liczbę przykładowych przykładów gry z maszynami, gdy Master lub Grandmaster wygrał przyjęcie z pomocą pięknych poświęconych figur i pionków. Sekret jest już czysty: dla ludzkiej inteligencji, w przeciwieństwie do sztucznego, dominacja czynników pozycyjnych jest oczywista w tych momentach, gdy ofiary materiału zostały przeprowadzone.

Lata minęły, ze wzrostem prędkości komputera, głębokość obliczeń wzrosła, a jednocześnie algorytmy poprawiły się, co poprawia kompilację funkcji oceny położenia. W drugiej połowie lat 90. komputery stały się już z powodzeniem konkurując z grasistami dodatkowej klasy. Epokal dla "Cybernetyki szachowej" wydarzenie miało miejsce w maju 1997 r. Stworzony przez IBM Corporation Deep Blue w meczu od 6 stron wygrał Harry Kasparov. Komputer został wyposażony w specjalny chip szachowy, a samochód spojrzał przez około 200 milionów pozycji na sekundę. IBM Corporation dla swojego projektu przyciągnęła wielu babci, najnowsze osiągnięcia teorii szachowej były używane do tworzenia jak najwięcej doskonałych algorytmów. I tak, jak już zauważył, w latach 90., programy szachowe dla komputerów pulpitu zaczęły zamknąć specjalistyczne komputery.

Każdego miesiąca siłę programów szachowych i moc komputerów wzrasta nieubłaganie, a nawet najbardziej odważne założenia optymistów. Kolejne 12-15 lat temu na ten temat "Kiedy samochód będzie mógł pokonać Brandmaster?" Zasadniczo został zredukowany do pytania "Czy jest w stanie tego robić w zasadzie?". A jeśli odpowiedź "może" nadal udało się uzyskać, czas oszacowano w przedziale 15-25 lat.

Rzeczywistość obaliła te prognozy. Wszystko stało się znacznie szybciej! Już w połowie lat 90. stwierdzono, że synteza "programu gier + komputera" może konkurować z Brandmaster.

Celem pracy jest opracowanie i wdrożenie modułu oprogramowania sztucznego wywiadu do gry w szachy, które obejmuje:

1. Badanie istniejących algorytmów gier Dokładne szachy

2. Rozwój algorytmu zachowania przeciwnika komputerowego

3. Określenie parametrów algorytmu zachowania przeciwnika komputerowego

4. Wdrożenie oprogramowania, które obejmuje wdrażanie algorytmu gry i rozwój interfejsu graficznego

5. Porównanie opracowanego oprogramowania z istniejącymi analogami.

1 . Historiarozwójszachyprogram

W 1951 r. Alan Turing napisał algorytm, z którym samochód może grać w szachy. Tylko w tym czasie sam inventor występował w roli samochodu. W tym samym 1951 r. Matematyk Claude Shannon pisze swój pierwszy artykuł o programowaniu szachowym. Opisał dwie strategie dla znalezienia lepszej obrotu, oba są oparte na heurystycznej funkcji oszacowania punktów końcowych:

* Wpisz A - biust Wszystkie możliwe ruchy do stałej głębokości, z połączeniem na końcu szacowanej funkcji (ponieważ niemożliwe jest rozszerzenie do końca)

* Typ B - wykonuje tylko selektywną rozszerzenie niektórych wierszy przy użyciu zgromadzonej wiedzy szachowej do przycinania nieinteresownych gałęzi

Pierwszy komputer został zaprojektowany przez Neumanna Tło do utrzymania złożonych obliczeń podczas tworzenia broni jądrowej. W 1950 roku pojawiła się pierwsza próbka, zdolna do wytwarzania 10 000 operacji na sekundę. Jednym z pierwszych eksperymentów z aparatem było pisanie programu szachowego, jednak szachy były niestandardowe - na tablicy 6 * 6 bez słoni.

Kilka lat później komputer ("Maniak") grał z ludźmi: silny szachy wygrał pewne zwycięstwo, a przybysz stracony w 23 udaru.

W 1957 r. IBM704 (42 kHz, 7 KBYTES-stały) wdrożono w programie na pełnym wyżywieniu, z udziałem wszystkich danych. Samochód wierzył 4 dni w 8 minut. Poziom gry jest amator.

W 1962 r. Newel, Simon i Shaw otworzył algorytm o nazwie Alpha-Beta (Alpha-Beta), dał wynik nie gorzej niż pełny biust, bez zbadania wszystkich opcji. Nie wymagał specjalnej wiedzy szachowej i można go zastosować do rozwiązania jakichkolwiek zadań transmisji. Istotą algorytmu jest to, że w każdym rzędzie gry, na białe i czarne ich maksymalne wyniki są śledzone, a jeśli w pewnym momencie czarny otrzymał już wynik, który został już wykonany z maksymalnie białego, osiągniętego wcześniej, Wtedy nie ma sensu wyeliminować. Gdy biust wraca do punktu, w którym osiągnięto biel maksimum, wynik, nadal zostanie odrzucony. Podstawą wszystkich nowoczesnych programów szachowych jest jedną z zaawansowanych wersji tego algorytmu.

Około 1973 r. Wszystkie programy szachowe były typu V. Są głównie na podstawie generatorów wiarygodnych przemieszczeń, które odcinają statyczną oceną małego działania. Wraz z pojawieniem się bardziej potężnych procesorów programiści zaczęli przełączać się na typ A. Pierwszy byli nauczyli i szachy4, były to programy "szorstki", gdy tylko dotarli do głębokości 5 staranności środkowego etapu, zaczęli wygrać W konkursach z programami V.

W 1975 r. Robert Hyat zaczyna rozwijać Crayblitz, który od dawna był najszybszy program szachowy przez długi czas i od 1983 do 1989 roku. - Mistrzowie świata wśród programów szachowych. Szukał około 40-50 tysięcy pozycji na sekundę (w 1983 roku), że za jego czas był świetnym osiągnięciem.

W 1977 r. Thompson i Condon z Bell Laboratory tworzy pierwszą specjalistyczną społeczność szachową. Podstawowa idea była w realizacji niektórych części programu szachowego (generator skoków, funkcje oszacowania pozycji, detektora Shakhowa itp.) Na poziomie sprzętu, który zapisał opóźnienia programu w każdej pozycji bez czekania na zwiększenie moc procesorów. Najlepsze komputery z tego czasu mogły zbadać do 5000 pozycji na sekundę, a maszyna Tompson Ken, która Belle o imieniu, przetworzyła 180 tysięcy wierszy na sekundę. Belle mógł pomyśleć o pozycjach 8-9 Dipów do przodu, które umieszczają na poziomie kreatora. Wygrał wiele turniejów szachowych komputerowych. Ale pomimo faktu, że wyspecjalizowane żelazo jest rzędem wielkości szybszym niż zwykły samochód, program Crayblitz w przełożonym, wciąż samochód nadal grał lepiej.

W latach 90. Richard Lang, napisanie wyłącznie na asemblerze, wykonał bardzo silny genius selektywnego programu wyszukiwania. Do tej pory program ten stale trzymał 5-6 miejsce na globalnych mistrzostwach szachowych komputerowych. Również w latach 90. algorytmy szachowe zaczęły rozwijać się silnie, eurystyki pustego skoku pojawił się (Nullmove), selektywne odcięte oddziały graniczne z rozwojem drzewa.

Oddzielnie warto rozważyć najsłynniejszy program szachowy, super komputerowy - głęboki niebieski. W 1987 r. Głębokie niebieski rozpoczął się jako rozwój studentów - był interesujący, że ma grupę zdolnych uczniów wypróbować ich siłę, a temat dla dyplomu jest doskonały. Postęp technologii pozwolił, aby pierwsza wersja procesorów (zwana Chiptest) bardzo szybko. Następująca, zaawansowana wersja, o której następuje głęboka myśl. W tym momencie Grupa odnotowała Departament Marketingu IBM i skierowany do niej z propozycją, z której nie można odmówić. Wynikiem stali głębokiego niebieskiego i głębokiego niebieskiego II. W ten sposób Głębokie Blue II jest wynikiem ponad 10 lat działania bardzo zdolnej grupy, w którym zarówno programiści / koleje, jak i ciężkie babci. Wszystkie prace były finansowane przez IBM, więc grupa miała zasoby, które nie marzy o organizacjach akademickich. Deep Blue II jest wykonany na podstawie potężnego serwera IBM RS / 6000. Serwer ma 31 zwykłych procesorów; Jeden zadeklarował główną rzecz, podlega 30 innych. 16 Specjalistycznego procesora szachowego jest podłączony do każdego procesora "pracownika", w ten sposób istnieje 480 procesorów szachowych. Cały kompleks przetworzony ponad miliard stanowisk na sekundę.

W dniu 11 maja 1997 r. Deep Blue II wygrał mistrz świata szachy Garry Kasparov w meczu z 6 stron. Po meczu z mistrzem, głęboki niebieski został zdemontowany.

Jak widać, począwszy od pierwszego, a kończąc się z najnowocześniejszymi programami, programy szachowe zostały zbudowane na podstawie integralności możliwych ruchów, ale były próby zbudowania więcej "intelektualnych" algorytmów innych niż przytłaczający. Wielu znanych szachowców próbowało rozwinąć takie algorytmy, ale wyniki nie spełniają wymagań. Na przykład Botvinnik M.m., będąc mistrzem świata i autorem licznych dzieł na teorii szachów, od ponad 20 lat, był zaangażowany w tworzenie programu szachowego, ale program nigdy nie grał.

Wszystkie algorytmy przeciążeń do znalezienia najlepszego kursu budują drzewo gry i szuka najlepszego ruchu.

2. Generałkoncepcjeteoriagry

2.1 Drewnomożliwypozycje

Niech ostatnie zorientowane drzewo G, zestaw w swoich wierzchołkach składa się z dwóch podzbiorów non-cyklowych B0 i B1, a każdy wierzchołek pb, który nie jest początkiem jakiegokolwiek ogniska z tego drzewa, umieścić zgodność z rzeczywistą liczbą OE (P). Określa grę dwóch przeciwników z pełną informacją. Wierzchołki zorientowanego drzewa G, należące do podzbioru B0, nazywane są pozycjami z białym i podzbiorem B1 - pozycje z czarnymi ruchami; Linki tego drzewa nazywane są białe lub czarne uderzenia, w zależności od których podzbiory B0 lub B1 należy do ich początku. Jeśli pozycja pb jest umieszczona zgodnie z numerem OE (P), nazywa się to final, a OE (P) nazywana jest oceną statyczną tej pozycji.

Zorientowany drzewo G Nazwał drzewo gry.

Zgodnie z definicją dla każdej pozycji PB, istnieje jedyna ścieżka L (P0\u003e P1, P1\u003e P2, ..., PK\u003e P) z początkiem na drzewie zorientowanym z korkiem ROOT R i końcu w rozważanej pozycji Ta ścieżka nazywana jest imprezą prowadzącą do pozycji p.

Gra roota P0 Drzewa G to podświetlona pozycja. Jest to pozycja zaproponowana przez program, a zadaniem jest znalezienie najlepszego kursu w nim. Aby to zrobić, wystarczy zdefiniować OEP0 i OEPI dla wszystkich pozycji uzyskanych z P0 na kurs. Definicje oceny pozycji początkowej P0 są przeprowadzane przez schemat całkowitych gaśni, aw teorii gier, algorytm ten nazywa się algorytmem Negamax.

Złożoność drzewa do gier oblicza się o wzorze: W ^ D, gdzie W jest średnia liczba możliwych ruchów, a D-Głębokość drzewa.

Rysunek 1 - Drzewo możliwych pozycji

2.2 Zasadaminimax

Ten algorytm jest przeprowadzany przez poszukiwanie głębokości. Oznacza to, że dla każdego głoszonego wierzchołka konieczne jest znalezienie wszystkich sąsiednich wierzchołków i powtarzają ich wyszukiwanie. Wracamy na szczyt ostatniej głębi i oczekujemy wygranych pierwszego gracza. Następnie, z węzła macierzystego, przejdź do następnego węzła dziecka (jeśli w ogóle) i spodziewamy się tam wygranych okularów. Jeśli liczba węzłów pomocniczych się skończy, szukamy minimum wygranych (jeśli poziom węzła macierzystego jest nieparzyste) lub maksimum (jeśli nawet). Węzeł rodzicielski ma zysk. Wykonujemy podobne wyszukiwanie, ale biorąc pod uwagę już, że węzeł macierzysty jest już spółka zależna.

W liściach drzewa obliczanie punktów występuje w stosunku do pierwszego gracza, tj. Uważa się, że pierwszy gracz dąży do maksymalizacji jego wygranych, a drugi gracz, aby zminimalizować wygrane zwycięskie wygrane gracza. Pierwszy gracz wygrywa w przypadku, gdy liczba punktów na górze drzewa na poziomie jest większa niż zero.

Rysunek 2 - Wyszukaj algorytm algorytmu drzewa Minimax

W rezultacie proces stosowany przez program odpowiada rozwiązaniom przemiennym (komputerowi / osobiście), na każdym kursie komputer wybiera maksymalną ocenę. Rozwiązanie powróciło do korzenia drzewa niewątpliwie okazuje się najlepszym wyborem, w ramach założenia, że \u200b\u200bwroga w każdym przypadku również wykonuje najsilniejsze ruchy. Szacowanie statyczne wykonywane jest tylko w węzłach ostatniego poziomu (liście drzew) dla pozycji komputera.

Ten algorytm zapewnia pełne wyszukiwanie wszystkich opcji. Liczba rozważanych pozycji zostanie oceniona jako w do stopnia D, gdzie W jest przybliżoną liczbą ruchów w jednej pozycji, d jest głębokością błędnej W przypadku szachy w około 40 oznacza to, że liczenie na głębokość 4, musimy nadeprzeć 40 ^ 4 \u003d 2560 tysięcy pozycji, a na głębokość 5 - 10240 tysięcy pozycji.

Rozbijające drzewo rośnie wykładniczo. Do tej pory na najpotężniejszych procesorach, z najbardziej optymalnym kodem, możliwe jest, aby być uważanym za głębokość 6 w prawdziwym szacowanym okresie czasu. Jest to główny problem rozwoju algorytmów gier w szachy, a wszystkie zmiany mają na celu zmniejszenie połączonych kombinacji.

Figura 3 przedstawia schemat blokowy algorytmu Minimax do wyboru lepszego postępu, algorytm przedstawiony przez algorytm zwraca najlepsze postępy w ocenie uzyskanej z głębszą analizą. Schemat blokowy algorytmu do znalezienia oceny w głębokości przedstawiono na rysunku 4.

Rysunek 3 - Diagram blokowania do wyboru lepszego udaru

Rysunek 4 - Diagram blokowania, aby wyszukać ocenę

Kiedy nazywasz algorytm do znalezienia oceny na głębokość z bardzo dużą wymaganą głębokością, otrzymujemy ocenę z pełną integralnością wszystkich możliwych ruchów.

2.3 metodanegatywnymaksymalny(Negamax)

W tym algorytmie statyczne oszacowanie pozycji dla jednej ze stron jest równe statycznej ocenie drugiej strony z przeciwnym znakiem.

Rysunek 5 - Metoda ujemnego maksimum

2.4 Statycznyocenapozycjaikonserwacjawymaganiadoszacowanyfunkcje

Oszacowanie statyczne położenia jest metodą obiektywnej, ilościowej ekspresji subiektywnego odczucia, które występuje u osoby patrzącej na stanowisko, bez analizowania możliwych sposobów rozwoju gry. W grach programistycznych ocena pozycji statycznej nazywana jest funkcją jakości pozycji.

Jeśli znalezienie lepszego ruchu za pomocą drzewa gry można zastosować z tym samym sukcesem dla wszystkich gier, a następnie ocena pozycji statycznej jest częścią specjalistyczną dla określonej gry. Jego specjalizacja definiuje styl gry sztucznego gracza, czynniki określone w szacowanej funkcji określają cel zgiełku.

Porównanie liczby z pozycją umożliwia odróżnienie samochodu złych i dobrych kombinacji. Zdolność do odróżnienia dobrych kombinacji ze złego, określa siłę wirtualnego gracza. W grach dwóch osób, oszacowanie jest wykonane przez jednego z graczy. Jeśli szacunkowa funkcja zwraca dobre oszacowanie dla jednego gracza, musi zwrócić źle dla przeciwnika. Zasada ta jest kryterium stosowania dowolnej funkcji wyceny w algorytmach, które wdrażają sztuczną inteligencję.

Podstawowym wymogiem funkcji oceny jest jego symetria w stosunku do graczy, tj. Stan musi być wykonany - co jest dobre dla jednego gracza, złego dla drugiego. Dobra szacunkowa funkcja powinna uwzględniać podstawowe zasady strategii gry i odpowiedzieć na następujące cechy:

* Materiał - obliczony bezpośrednio jako różnicę w liczbie kształtów graczy, możliwe jest dodanie współczynników wagowych dla każdej konkretnej figury

* Pozycjonowanie - pokazuje jakość liczb odtwarzacza

* Rozwój pozycji - pokazuje liczbę możliwych ruchów graczy. Im lepsza pozycja jest opracowana, bardziej możliwe strategie ma gracza. Z tego powodu konieczne jest kontrolowanie i zmniejszenie stanu wroga

* Śledzenie końca gry - w przypadkach wygranej (biorąc król przeciwnika), powinien dać maksymalną rating, zwykle + nieskończoność, w przypadkach utraty (utrata króla), musi zwrócić minimalną ocenę, zwykle nieskończoność

Aby grać w szachy, konieczne jest uwzględnienie zmiany oceny pozycji, w zależności od etapu strony.

Klasyczna szacunkowa funkcja jest funkcją niektórych powyższych cech położenia gry, czyli, że szacowana funkcja jest łącznym wynikiem oszacowania pozycji z różnych punktów widzenia.

Szacowana funkcja dla wszystkich gier jest inna, ponieważ odzwierciedla specyfikę gry. Funkcje oceny są wybrane Eksperymentalnie.

Znaczenie wybranej charakterystyki jest niezbędne. Znaczenie jest określane przez pomnożenie wybranej charakterystyki do odpowiedniego, współczynnika. Współczynnik ten musi mieć uzasadnienie statystyczne.

W związku z tym szacowana funkcja może być reprezentowana w następującym formularzu:

F (P) - Funkcja Szacowana według pozycji p,

Współczynnik ważności charakterystyki I-OH,

Charakterystyka pozycji I-Aya P.

2.5 Inscenizacjazadania

Podczas wykonywania pracy konieczne jest zbadanie istniejących metod i algorytmów do wdrożenia komputerowego gry w szachy, określić ich główne zalety i wady, w celu oparte na zdobyciu wiedzy, wybierz algorytm, który zapewnia najlepszą obsługę ten system.

Po pracy dyplomowej konieczne jest:

wdrażam badane algorytmy w języku programowania C #

wdrażam różne modyfikacje przy użyciu dodatkowych modułów

b Przeprowadzić eksperymenty numeryczne, aby oszacować jakość opracowanych modeli, porównują wdrożone modyfikacje, aby wybrać najlepsze

le Opracuj wygodny i intuicyjny interfejs

3. Zbadanyalgorytmyisuplementy

3.1 Alpha betakontyntynuj

Czyszczenie alfa-beta (angielski alfa-beta przycinanie) jest algorytm wyszukiwania, który wydaje się zmniejszyć liczbę węzłów ocenianych w drzewie wyszukiwania algorytmu Minimax. Główna idea jest następująca: jeśli jeden z twoich ruchów, przeciwnik ma dla ciebie niekorzystną odpowiedź, jest bez znaczenia, że \u200b\u200banalizuje inne możliwe odpowiedzi na ten ruch, ponieważ nawet jeśli wśród nich są dla ciebie bardziej korzystne, przeciwnik będzie nie wybieraj ich. Clipping Alpha-Beta jest optymalizacją, ponieważ wyniki zoptymalizowanego algorytmu nie są zmieniane.

Rysunek 6 - Algorytm wycięcia alfa-beta

Zaleta odcięcia alfa-beta faktycznie polega na tym, że niektóre gałęzie drzewa wyszukiwania mogą być wyłączone po całkowitym uwzględnieniu przynajmniej jednej z gałęzi poziomu. Ponieważ odcięcie występuje na każdym poziomie zagnieżdżania (z wyjątkiem ostatnich), efekt może być dość znaczący. Skuteczność sposobu znacząco wpływa na wstępne sortowanie opcji (bez rzucania lub mniejszej głębokości) - podczas sortowania większych opcji "dobrych", tym większe są odcinki "złe" gałęzie można odciąć bez wyczerpującej analizy. Wyszukiwanie Minimax jest wykonywane w głębi, więc w dowolnym momencie wystarczy rozważyć węzły wzdłuż jedynej ścieżki na drzewie.

Kluczową ideą przycinania Alpha - Beta jest znalezienie kursu niekoniecznie najlepszego, ale "wystarczająco dobrego" w celu podjęcia właściwej decyzji.

Na wejściem tego algorytmu serwowane są parametry alfa i beta, nazywane są one okno. Parametry te są odpowiedzialne za granice odcięcia na pierwszym poziomie, podczas pogłębiania się do drzewa gry, te parametry zmieniają się. Algorytm alfa-beta z parametrami alfa \u003d + nieskończoność i beta \u003d nieskończoność (brutalna siła z pełnym oknem) daje wynik dokładnie taki sam jak algorytm Negamax, to jest pełne biust. Figura 7 przedstawia schemat blokowy algorytmu algorytmu alfa-beta, aby policzyć oszacowanie pozycji w głębokości.

Rysunek 7 - Schemat Alpha-Beta, aby wyszukać ocenę

3.1.1 Przykładstandardodciąć

Rysunek 8 - Przykład standardowych przycinania

Rozważmy przykład standardowej odcięcia Alpha Beta. Na stanowiskach wybieramy więc ruch, dlatego wybramy największą wartość z pozycji w i C. Wartość w już obliczonej - jest to 10. Przy obliczaniu pozycji z jej wyróżniającym się, jeden z węzłów ma wartość 5 . W pozycji z ruchem nasz przeciwnik zrobi, a zatem wybrał najmniejszą wartość. Z tego wynika, że \u200b\u200bwartość pozycji C będzie od 5 i poniżej, dlatego zawsze wybieramy w opcji. Dlatego obliczanie reszty węzłów, które nie prowadzimy.

3 .1.2 Przykładdogłębnyodciąć

Rysunek 9 - Przykład klipu dogłębnego

Rozważmy przykład głębokiego przycinania. Na stanowiskach wybierzemy między podróżami w pozycji i C. Wartość B \u003d 15. Rozpoczynamy obliczenie C. W pozycji E jeden z węzłów dał wartość 5. W pozycji E, wybór skoku należy do przeciwnika, co oznacza, że \u200b\u200bkońcowa wartość E będzie od 5 i niższa. Jeśli wartość C jest równa E, wybierzemy opcję, ponieważ jest bardziej atrakcyjna. Dlatego niekoniecznie znamy dokładną wartość pozycji E, więc wszystkie inne gałęzie są odcięte z niego.

3 .2 Wielokrotnyzanurzenie(IterowanyPoglądający.)

Znaczenie ucieczki wydechowej lub iteracyjnej wnęki leży w powtarzającym się wezwaniu do ustalonej procedury głębokości przy rosnącej głębokości, aż określony termin nie zostanie przekroczony lub głębokość wyszukiwania nie zostanie osiągnięta. Zaletą tej metody jest to, że nie powinieneś wybrać głębokości wyszukiwania z góry; Ponadto zawsze możesz używać wyniku ostatniego zakończonego wyszukiwania. Wartości zwracane z każdego wyszukiwania mogą być używane do regulacji żądanego okna wyszukiwania.

Ogólnie rzecz biorąc, klip alfa-beta jest spowodowany z górnej części drzewa w przedziale (- ?; +?). Jednak przy użyciu iteracyjnego zanurzenia możemy go zmienić.

Przypuśćmy, że X - wartość optymalnego ruchu znalezionego na poprzedniej iteracji, a liczba Epsilon oznaczy szacowaną różnicę w wynikach między poszukiwaniem głębokości D-1 i głębokości D. Dalej, po prostu zadzwonić do alfa -Beta cięcia z górnej części drzewa z szacowanym przedziałem: Alphabeta (D, X-Epsilon, X + Epsilon).

1. Wartość zwraca w przedziale (X-Epsilon, X + Epsilon) jest poprawną wartością, możemy go użyć.

2. Wartość powróci z interwału (X-Epsilon, X + Epsilon) konieczne jest powtórzenie obliczeń ze zmodyfikowanym interwałem.

Nawet jeśli zakładamy, że metoda alfa-beta odcięcia nie daje żadnej zwycięstwa, ogólny wzrost analizy czasu rzeczywiście okaże się stosunkowo mały. Rzeczywiście, zakładając, że średnia liczba opcji na każdym poziomie jest D, a liczba analizowanych poziomów jest p, a następnie iteracyjne wyszukiwanie na pierwszy poziomie, a następnie drugi itp. do poziomu PO, odpowiednik (bez przycinania alfa-beta) Widok D + + ... + Pozycje.

Kwota ta jest równa, podczas gdy liczba pozycji oglądanych w konwencjonalnej analizie jest równa. Stosunek między tymi dwoma liczbami w dużym stopniu p jest mniej więcej taki sam, a zatem blisko 1 w przypadkach, gdy D jest wystarczająco duży

Ponadto, przy użyciu wyszukiwania iteracyjnego można wprowadzić kontrolę czasu, co pozwoli na komputer w dowolnym momencie, aby zaoferować zadowalające rozwiązanie. W ten sposób, jeśli czas myślenia jest ograniczony do 5 sekund, rozważy wszystkie pozycje do poziomu 2, na przykład, w 0,001 sekundy, do poziomu 3 - w 0,01 sekundy, do poziomu 4 - w 1 sekundzie, a następnie po Rozpoczęcie analizy na poziomie 5 zostanie zmuszony do przerwania z powodu braku czasu. Jednak w tym samym czasie komputer ma już dość dobre rozwiązanie znalezione na 4 poziomie.

W rezultacie komputer jest w stanie udzielić odpowiedzi w określonym czasie (na przykład, aby wykonać 50 ruchów w ciągu 2 godzin). Jest również oczywiste, że program, który obsługuje taką metodę, będzie grać z różnymi stronami na różnych komputerach.

Pomimo faktu, że kilka gałęzi drzewa będą musieli sprawdzić kilka razy, ta metoda daje wystarczającą ilość odcięcia.

3.3 Sortowanieruchy

Wyniki odcięcia alfa-beta są bardzo pod wpływem, w jakiej kolejności sprawdzane są ruchy. Rozważ to na przykładach:

W pierwszym przypadku przeprowadzimy obliczenia sortowanie ruchów "z najgorszego na lepsze"

Rysunek 10 - Alpha-beta odcinając ruchy "z najgorszego na lepsze"

Jak widać z przykładu, nie odcięto gałęzi drzewa.

Teraz uporządkuj ruchy "z najlepszych do najgorszego"

Rysunek 11 - Alpha-beta wycinanie ruchów "z najlepszych do najgorszego"

W optymalnych okolicznościach brutalna siła z odcięcia alfa-beta powinna być oglądana przez w ^ ((D + 1) / 2) + w ^ (D / 2) - 1 pozycja. Jest znacznie mniejszy niż minimam.

Aby zwiększyć wydajność odcięcia alfa-beta, musisz pomyśleć o tym, jakie ruchy należy zbadać najpierw. W tych celach stosuje się tak zwane heurystyki zabójcy.

Chodzi o to, że jeśli ruch był dobry w jednej części drzewa, a jeśli jest to możliwe, warto spróbować go sprawdzić w innych (na tej samej głębokości). W tym celu wprowadzono tablicę, w którym wprowadza się kilka najlepszych ruchów dla każdej głębokości, jeśli istnieją ruchy z tej tabeli w pozycji dla bieżących głębokości - są one najpierw sprawdzane.

W przypadku innych ruchów algorytm woli porusza się z Shaghasem i przyjmuje.

3 .4 Nega Scout.(Negascicout)

Negascicout - dodatek na Alpha Beta. Jest to skierowany algorytm wyszukiwania, aby obliczyć wartość węzła Minimax.

Negascicel jest najpopularniejszym algorytmem wysiłku brutto dzisiaj. Jest to niezwykle proste i zapewnia akcelerację (do 50%) bez podejmowania dodatkowego błędu w obliczeniach. Łączy bardzo dobrze z nowoczesnymi atrybutami programów szachowych - stoły Hash.

Ten algorytm ma zaletę, że nigdy nie zbadamy węzłów, które można odciąć alfa-beta, ale niektóre gałęzie można traktować kilka razy.

Algorytm Negalizacji sprawdza pierwszy węzeł za pomocą pełnego okna (Alpha, Beta), biorąc pod uwagę tę opcję jest najlepsza. Następujące węzły, które próbuje odciąć się z zerowym oknem, tj. Okno (alfa, alfa + 1). Jeśli wynik konta poprawia alfa, oznacza to, że 1 węzeł nie był najlepszy, a ten węzeł musi być sprawdzany za pomocą pełnego okna, ale zamiast alfa, możemy wziąć wartość (wartość, beta). Kod tej metody jest poniżej:

public Int Negascicout (komórka [,] Kopiaboard, Int Głębokość, int finalDepth, int alfa, int beta, int możliwości, bool ismy)

int Value \u003d 0, Maxvalue \u003d -1000, Leight \u003d 0;

Komórka [,] Board \u003d nowa komórka;

Punkt [,] ruchy \u003d nowy punkt;

Punkt ruchu \u003d nowy punkt;

FindMoves (ruchy, Ref Leight, Board, True, True);

Możliwe \u003d Leight;

FindMoves (ruchy, Ref Leight, Board, False, True);

Możliwości + \u003d Leight;

jeśli ((głębokość \u003d\u003d finaldepth) || Gameisover (deska, ismy))

wróć eval (deska, możliwości);

powrót -1 * Eval (deska, możliwości);

FindMoves (ruchy, Ref Leight, Board, HaversquiredMove (Board, ISMY), ISMY);

int a \u003d alfa, b \u003d beta;

dla (int i \u003d 0; ja< leight; i++)

Copymove (ruch, ruchy, i);

Domove (deska, ruch);

Wartość \u003d -1 * Negascicout (deska, głębokość + 1, finaldepth, -1 * b, -1 * a, możliwe,! Ismy);

jeśli (wartość\u003e wartość A && 0 && (głębokość

a \u003d -1 * Negascicout (deska, głębokość + 1, finalDepth, -1 * beta, -1 * Wartość, możliwości ,! ISMY);

jeśli (wartość\u003e a)

Copyposition (Board, Copyboard);

Jak widać z powyższego opisu dla negatywnego harcerza, przejście ruchów jest ważną funkcją. Jeśli zorganizujesz wszystkie ruchy "z najgorszego na lepsze", popiersie może potrwać jeszcze więcej czasu niż minimax.

3 .5 Tabela Hash.

3 .5 .1 Teoria

W szachach podczas wyszukiwania okazuje się, że nie ma drzewa gry, ale wykres jest bardzo często po ruchach ruchów, które otrzymujemy tę samą pozycję. Metoda używania tabel Hash jest utrzymanie oceny już uważanych za pozycje. Dla każdej pozycji konieczne jest przechowywanie jego oceny (dokładniej, uznania w tej pozycji), głębokość rozwojem, najlepszy ruch. Teraz, zaczynając demontować pozycję, musisz wyglądać - i czy nie spotkaliśmy już tego? Jeśli się nie spotkałeś, to robimy to jak wcześniej. Gdybyśmy poznali, patrzymy na głębokość, którą wcześniej byliśmy zdemontowani. Jeśli tak samo, jak potrzebujemy teraz, albo głębiej, możesz użyć starego szacunku i oszczędzać czas. Jeśli jest mniej, nadal możemy używać części informacji, a mianowicie najlepszy ruch.

Najlepszy ruch na głębokość N może być najlepszy i dla głębokości N + 1. Oznacza to, że oprócz jej początkowego miejsca docelowego, stół Hash okazuje się przydatny do usprawniania ruchów. Nadal nieoczekiwanie pomaga iteracyjnej wgłębieniu - gdy rozpoczynamy następną iterację, stół Hash okazuje się być wypełniona informacjami z poprzedniego, a do chwili (na głębokość 1), wszystkie pozycje po prostu mają w nim, z najlepszym sposobem do głębokości N-1.

Program przy użyciu iteracyjnej wnęki i stole Hash często wykonuje wszystkie iteracje od 1 do N kilkakrotnie szybciej niż gdyby słusznie zaczyna się iteracja n, ponieważ Z prawdopodobieństwem 75%, zawsze jest to pierwszy wybór najlepszego kursu, a z prawdopodobieństwem ~ 90% najlepszy ruch należy do pierwszych trzech rozpatrywanych.

3 . 5 .2 Sprzedaż

Hashing jest jednym z najpotężniejszych sposobów zwiększenia wydajności komputera. Korzystanie ze stołów Hash jest głównym narzędziem w programowaniu gier w szachy.

Tabela Hash - reprezentuje dużą tabelę indeksowaną w komórkach, z których przechowywane są następujące informacje:

· 2 Indeks Hesh

· Głębokość błędu do tego ruchu

· Ocena tego ruchu

Wybór algorytmu obudowy indeksu obudowy jest istotnym punktem przy użyciu algorytmów mieszania. Wybierając algorytm do obliczania indeksu Hash, należy wziąć pod uwagę 2 najważniejszych punktów:

Indeks musi najbardziej odzwierciedlać unikalne informacje o postępach, aby zminimalizować liczbę kolizji.

Indeks Hese powinien być prosty do liczenia

Złożony algorytm daje najlepsze wskaźniki liczby kolizji, ale są trudne do przeliczenia, a zatem zajmują dużo czasu procesora. Konieczne jest zbudowanie algorytmu, łatwe do liczenia, ale mając minimalnie liczbę kolizji.

Aby obliczyć indeks, wybrano operacje z niektórymi losowo wygenerowanymi maskami.

Początkowo maski Hash są wypełnione losowymi liczbami. Dla każdej pozycji oblicza się 2 indeks HESH, pierwszy służy do wyszukiwania pozycji w tabeli Hash, drugi, aby sprawdzić zderzenia.

Przed użyciem informacji z tabeli Hash, zbieg okoliczności drugiego indeksów Hash zostanie sprawdzone, jeśli nie zbiegły, a następnie wystąpiła kolizja, a informacje są ignorowane.

Aktualizowanie informacji o pozycji powinny być wykonywane tylko wtedy, gdy głębokość niedoboru prądu jest większa niż ta już przechowywana w tabeli Hash.

Informacje z Wath, możliwe jest zaufanie tylko wtedy, gdy głębokość znajduje się w Haheus, więcej niż obecna głębokość aklującego.

3.6 Za pomocąbibliotekideutov.

Algorytm przy użyciu bibliotek debiutów jest wykorzystanie wstępnie obliczonych baz danych z debiutami stron, ponieważ na początku strony największa liczba możliwych ruchów tych samych szacunków.

3 .7 Ocenapozycja

Podczas opracowywania algorytmu oceny stanowiska statycznego (funkcja jakościowa) istnieje niepewność wyboru między jakością a szybkością. Jakościowe funkcje szacunkowe oparte na podstawie podstawy statystycznej powoli, ale zapewniają bardzo dokładne szacunki, niektóre nawet bez użycia depozytu wywiadowcze.

Znacznie szybsza, proste funkcje pracują, biorąc pod uwagę najprostsze zasady gry, nie podają dokładnej oceny, ale pozwalają na głębokie wyszukiwanie. Tak więc dokładny, ale powolny wynik, może dać się głupi, ale szybko.

Jakość oceny jest określona przez wiedzę o grze, na podstawie której pozycja jest porównywana. Jakość oceny jest bezpośrednio proporcjonalna do prędkości działania i objętości wiedzy. Ponieważ 40-letnia praktyka tworzenia programów ze sztuczną inteligencją pokazuje, wielkość znajomości funkcji oceny jest odwrotnie proporcjonalna do jego prędkości.

Graficzny, ta zależność jest pokazana na rysunku w postaci rodziny hiperballa.

Rysunek 12 - Przykład klipu dogłębnego

Podczas opracowywania funkcji oceny szachy należy pamiętać, że w zakresie oceny w szachy wszystkich parametrów zależą od etapu gry.

Szansa jest udostępniana na scenie: Debiut - otwarcie imprezy, Mittelspil - środek gry, Endgame jest ostatnim etapem. W przypadku algorytmu postanowiono podzielić strony na 3 etapy o liczbie liczb pozostawionych na desce z odtwarzaczem komputera. Początkowo na tablicy na 16 postaciach na graczy. Tabela przedstawia zależność etapu gry z liczby pozostałych liczb:

Tabela 1 - Etapy gry

3 . 7 .1 Materiałocena

Zaletą materiału jednego z graczy uważa się za najważniejszy parametr w teorii szachowej, dlatego ocena materiałów ma największy wpływ na ogólną ocenę stanowiska. Ocena materiału jest uważana za sumę współczynników wagowych wszystkich kształtów na pokładzie. Król nie jest wliczony w oszacowanie materiału, jak w przypadku utraty Króla, gracz automatycznie traci. Ocena skal danych jest głównym zadaniem w konstruowaniu funkcji oceny. Aby określić łuski liczb, postanowiono skorzystać z samodzielnego algorytmu na podstawie algorytmu genetycznego. Ciężary figur nie zależą od etapu gry. Algorytm genetyczny jest heurystycznym algorytmem wyszukiwania używany do rozwiązywania problemów optymalizacyjnych i symulacyjnych przez wybór losowy, kombinację i zmienność pożądanych parametrów przy użyciu mechanizmów przypominających ewolucję biologiczną po raz pierwszy zaproponowany przez Holland (1975).

3 . 7 . 2 Opispracagenetycznyalgorytm

Początkowe zadanie jest zakodowane w taki sposób, że jego roztwór może być reprezentowany jako wektor ("chromosom"). Losowo tworzy wiele wstępnych wektorów ("populacja początkowa"). Są one oceniane przy użyciu "funkcji adaptacyjnej", w wyniku której każdy wektor jest przypisany pewną wartość ("fitness"), co określa prawdopodobieństwo przeżycia ciała reprezentowanego przez ten wektor.

Po tym, używając uzyskanych wartości sprawności, wektor (wybór), pozostawiono do "kuszenia". "Operatorzy genetyczne" (zwykle "przekraczanie" i "mutacja") są stosowane do tych wektorów), tworząc w ten sposób następujące "pokolenia". Oceniane są również osobniki następnej generacji, wykorzystywane są wybór, wykorzystywane są operatorzy genetycznymi itp.

W ten sposób symulowany jest "proces ewolucyjny", który kontynuuje kilka cykli życia (generacji), aż do wykonywania kryterium zatrzymania algorytmu. Takie kryterium może być:

Znalezienie optymalnego rozwiązania;

Wyczerpanie liczby pokoleń uwalnianych na ewolucji;

Wyczerpanie czasu wydanego do ewolucji.

Algorytmy genetyczne służą głównie do znalezienia rozwiązań w bardzo dużych, złożonych przestrzeniach wyszukiwania.

W ten sposób można pracować algorytm genetycznym w następnym schorzeniu:

Rysunek 13 - Przykład klipu dogłębnego

3 . 7 . 3 Gradacjapracagenetycznyalgorytm

Powstanie początkowej populacji - początkową populację jest losowo utworzona; Nawet jeśli okaże się, że jest całkowicie niekonkurencyjny, algorytm genetyczny nadal szybko przetłumaczy na realną populację. W pierwszym kroku można w szczególności nie próbować zbyt dopasowanych osób, wystarczająco, aby dopasować format populacji.

Wybór (wybór) - z całej populacji jest wybrana pewna proporcja, która pozostanie "żywa" na tym etapie ewolucji. Przekraczanie (reprodukcja) - w celu uzyskania potomku, potrzebujesz kilku rodziców; Zwykle, oczywiście potrzebujemy dokładnie dwóch. Reprodukcja w różnych algorytmach jest określona na różne sposoby - oczywiście zależy od prezentacji danych. Głównym wymogiem reprodukcji jest to, że potomek lub potomkowie mają okazję dziedziczyć cechy obu rodziców ", mieszając" ich w dość rozsądny sposób.

Mutacje są stochastyczną zmianą częściami osób (chromosomy).

3 . 7 . 4 Definicjaważyfigi.zwsparciegenetycznyalgorytm

Chromosom algorytmu genetycznego obejmuje ciężary postaci szachowych, z wyjątkiem króla.

Aby ustawić początkową populację, wartość chromosoma jest ustawiona losowo w przedziale, z wyjątkiem pionków i ciężarów królowej, wartości ich skali są stałe, pionek - 100, królowa - 1000.

Do wyboru używany jest wybór turnieju. Istnieją wśród siebie losowe 2 chromosomy, do czterech zwycięstw, idą najpierw z kolei. Zwycięzca pozostałości pojedynku, przegrany jest usuwany z populacji.

Podczas przejścia używany jest metoda przekraczania pojedynczego punktu.

Trwa losowo 2 rodziców, liczba chromosomów jest wybierana przez przypadek, diagram jest pokazany na rysunku nr 14. W rezultacie każdy potomek będzie działać zarówno od pierwszego, jak iz drugi rodzic.

Rysunek 14 - Przykład klipu dogłębnego

Mutacje są wykonywane w następujący sposób: wybiera z pewnym prawdopodobieństwem chromosomu, a one, każdy "gen" zmienia się przez liczbę losową w zakresie [-50; 50], Z wyjątkiem wartości oceny statycznych królowej i pionków.

W przypadku wartości końcowych otrzymane wagi są podzielone przez 100.

3 . 7 . 5 Całkowityocena

Przy ocenie pozycji narysowanej uwagi na 8 składników:

1. Materiał siły rywali

2. Liczba pól pod bitwą

3. Kluczowe pola

4. Przechodząc spodnie

5. Podwójne pionki

6. Rocking.

7. Promocja pionku

8. Łańcuchy Hound [* 1]

Liczba pól pod bitwą oblicza się na głębokości drewna 2, ze względu na duże koszty produkcyjne. Dla każdego pola bije figurę komputera, aby oszacować pozycję dodaje się 1 punkt, dla pól walczących z liczbami gracza są usuwane przez punkty. Wynikowa wartość jest przesyłana do dna drzewa jako parametru. Również na głębokości 2 obliczone punkty dla łańcuchów morskich, przechodzących i podwójnych pionków. Na obecność przybycia na lewe lub prawe pionki, strona otrzymuje 1 punkt. Pionek jest uważany za przejście, jeśli na pionowym, a także na sąsiednim z nią, nie ma rywalowych pionków, którzy mogą uniemożliwić jej przejście do końca. Podwójne pionki - 2 pionki jednego koloru stojącego na jednym pionie. W przypadku obecności podwójnych pionków usuwa się 4 punkty, 5 punktów są dodawane dla obecności każdego pionka przechodzącego. Szachy mają kluczowe pola:

Rysunek 15 - Kluczowe pola

Dla okupacji każdego z nich to dodatkowe 4 punkty.

Dlatego Po złożeniu króla Król jest w bardzo zrównoważonym stanowisku, strona otrzymuje 3 punkty za idealne odlewanie.

Im bliżej pionka do ostatniego poziomego, tym bliżej transformacji. Dla każdej komórki dodaje się do wartości pionków dodaje się 1.

Po obliczeniu liczby punktów dla obu stron otrzymuje się końcowe oszacowanie pozycji, odejmując punkty gracza z kieliszków przeciwnika komputera.

4 . Rozwójprograms.

4 .1 Wymaganiadoszachyalgorytm

Podczas opracowania modelu modułu oprogramowania do grania w szachy należy wziąć pod uwagę następujące parametry:

* Algorytmy w szachy są bardzo wymagające wydajności, a wytrzymałość programu Programu bezpośrednio zależy od wykonania programu

* Moduły oprogramowania powinny być łatwe do opracowania i testowania

* Interfejs użytkownika powinien być łatwy, łatwy do konfigurowalny i skalowalny

4 .2 Wyświetleniaszachyalgorytm

Większość nowoczesnych programów można podzielić na 3 kategorie:

* Pierwsza kategoria szybkich poszukiwaczy jest to, że pomysł jest to, że upraszczając limit funkcji oceny i dokładnie z optymalizacją całego programu jako całość (zazwyczaj osiągany przez zapisanie programu na asemblerze), możesz przynieść Liczba pozycji rozpatrywanych przez program (NPS - węzły na sekundę) do numeru astronomicznego, na przykład do 150-200k NPS na P / 200. Oznacza to, że program spędza około jednego lub dwóch tysięcy komend maszynowych do każdej pozycji. Numer ten obejmuje postęp poprzedniego stanowiska, oszacowanie pozycji, wytwarzanie ruchów z tej pozycji, logiki zarządzania itp. Ogólnie rzecz biorąc, szacowana funkcja pozostaje na wszystkich okruchach - około setek zespołów. Programy prowadzone są szaleńczo szybkie i doskonale zachowują się w złożonych pozycjach taktycznych, a także doskonale rozwiązywać zadania kombinacyjne, ale mają słabą grę pozycyjną

* Druga kategoria to program oparty na wiedzy. Tutaj wszystkie siły są rzucane do pisania złożonej funkcji wyceny. Oddziaływanie liczb ze sobą, a okładka Króla oraz kontrola pozycji i prawie faza księżyca jest prawie. Jeśli chodzi o NPS, program działa 10-100 razy wolniej niż szybkie wyszukiwania, ale odtwarza dobre szachy pozycyjne. Dokładniej, te szachy są dobre, tylko wtedy, gdy istnieją głębokie taktyki na tablicy lub czas kontroli jest taki, że program ma wystarczająco dużo czasu, aby obliczyć tę taktykę.

4 .3 Kontrolaczasuwszachyalgorytmy

Najważniejszym parametrem w konstruowaniu sztucznej inteligencji przeciwnika szachownicy jest kontrolowanie czasu udaru. System gry programu szachowego zależy od kontroli czasowej. Przed komputerem "myślenia", należy obliczyć czas dostępny do komputera.

Przy obliczaniu czasu dostępnego na kursie konieczne jest kontynuowanie z dwóch parametrów:

* Algorytm poszukiwania lepszej kolejności ma być zbudowany na CrossPower wszystkich możliwych ruchów na pewnej głębokości, a zatem bezpośrednio zależy od czasu spędzonego na popiersie. Im więcej czasu używamy, tym silniejszy jest granie

* Czas oczekiwania na odpowiedź przeciwnika komputera nie powinna być zbyt duża. Na przykład, można podjąć międzynarodowe przepisy dotyczące szachów, w których istnieje kilka rodzajów stron: Blitz - 15 minut na imprezę, szybko - 60 minut na partię, klasyczny - ponad 60 minut na imprezie.

Na podstawie wymaganych parametrów zdecyduje się obliczyć czas dostępny do ruchu przed następującym wzorem: gdzie: czas na kursie; Full_game_time - Total Party Time; AVG_MOVES - średnia liczba uderzeń gracza na imprezie; Collect_Time - dodatkowo nagromadzony czas; D - Niewielkie zmniejszenie czasu wymagane do dodatkowych obliczeń. Całkowity czas imprezy i średnia liczba ruchów gracza na imprezie są dwa główne parametry zewnętrzne, zmiana, którą można zmienić moc gry. Według statystyk portalu szachowego thechess.ru, średnia liczba graczy dla partii jest równa 30, dlatego postanowiono podjąć średnią liczbę ruchów graczy na imprezie równej 30. Zatem spoza całkowitego czasu ze stron jest ustawiony. Podczas opracowywania algorytmu do zachowania komputerowego przeciwnika (sztuczna inteligencja) zastosowano następujące algorytmy:

* Algorytm wyszukiwania iteracyjnego, z kontrolą czasu

* Algorytm Alpha-Beta Clipping i Nega-Scout

* Biblioteki Debutov.

* Stół Hash.

* Aby posortować ruchy, wykorzystano heurystyki zabójcy i historii.

4 .4 Rozwiniętyprogram

W programie w języku programowania wszystkie powyższe algorytmy i dodatki zostały wdrożone.

Zrzuty ekranu programu przedstawiono poniżej:

Rysunek 16-kolorowy wybór

Rysunek 17 - Screenshot programu

Rysunek 18 - Screenshot programu

Kiedy najeżdżasz na kształt swojego koloru, jest podświetlony z białym. Przy wyborze figury dla skoku, jego kolor pola staje się pomarańczowy i wszystkie komórki, które postać może iść, wyróżnia się przez biały. Kiedy najeżdżasz na taką komórkę, jego kolor staje się pomarańczowy.

Podczas gry idealne ruchy są wyświetlane na tablecie po lewej, gracz może zapisać historię w osobnym pliku.

4 .5 Bazacyklszukajlepszyudar mózgu

Głównym zadaniem podstawowego cyklu wyszukiwania najlepszego udaru jest znalezienie i wykonywanie najlepszej drogi do komputera przeciwnika. Cykl wykorzystuje debiutanckie biblioteki i wyszukiwanie iteracyjne z kontrolą czasu. Rysunek 12 pokazuje proces znalezienia lepszego sposobu:

Rysunek 19 - Podstawowy cykl wyszukiwania najlepszego kursu

4 .6 Szukajlepszyudar mózgupierwszypoziom

Głównym zadaniem algorytmu pracy do poszukiwania najlepszego ruchu pierwszego poziomu (odpowiedź wroga) jest znalezienie najlepszego ruchu przeciwnika na pierwszym poziomie. Algorytm jest zbudowany na algorytmie Negoriitm przy użyciu głębokości oszacowania, aby określić oszacowanie bieżącego skoku. Rysunek 13 przedstawia pracę algorytmu:

Rysunek 20 - Szukaj lepszego pierwszego poziomu

4 .7 Odkryciegłębokośćszacunkiudar mózgu

Głównym zadaniem znalezienia ocenę głębokości jest znalezienie oceny bieżącego kursu przy użyciu algorytmu Negchout, heurystyki zera, dane z tabeli ma tabelę i oceną pozycji statycznej. Rysunek 14 przedstawia proces liczenia oceny kursu dogłębnej:

Rysunek 21 - Znalezienie głębokiej oceny skoku

4.8 Inni.modeleiwykres

Model matematyczny programu jest następujący:

Rysunek 22 - Model matematyczny

Z abstrakcyjnej klasy obliczają 7 klas spadkobierców opisujących działania i właściwości danych liczbowych. Istnieje również klasa pustych, oznaczająca, że \u200b\u200bkomórka jest pusta. Płyta jest tablicą 64 elementów figury, z których każdy może stać się dowolnym z klas dziedzic. Kurs w komputerze jest reprezentowany w postaci 4 cyfr - współrzędnych (od 1 do 8) punktu rozpoczęcia i współrzędnych końca końca. Poniżej znajduje się diagram statusu dla programu:

Rysunek 23 - Wykres warunku

5 . Eksperymentalnyocenajakośćr.ealiz.anno.algorytm

Wdrożone algorytmy poddano analizie porównawczej w celu określenia optymalnej prędkości i jakości konfiguracji. Podczas eksperymentu odbyło się wiele turniejów między każdą parą różnych implementacji.

5 .1 OcenapracaAlpha betaodciąć

Dzięki temu eksperymentowi było konieczne, aby dowiedzieć się, czy czynnik rozgałęzienia został zmniejszony, a w wyniku poprawy prędkości algorytmu, bez utraty jakości decyzji w sprawie kursu zleconego.

Aby ocenić jakość końcowego algorytmu, algorytm wyszukiwania był eksperymentalnie w porównaniu z zasadą minimax.

Tabele przedstawiają współczynniki wykazujące ocenę liczby elementów do algorytmów, a także stosunek czasów przypisanych do tego przeglądania.

Tabela 1 - Porównanie wskaźników algorytmu algorytmu algorytmu odcięcia z algorytmem Minimax.

Wyniki eksperymentów pokazują, że przycinanie Alpha-Beta jest znacznie lepsze niż proste wyszukiwanie Minimax.

5 .2 Ocenapracawielokrotnynurkowaćisortowanieruchy

Aby ocenić jakość algorytmu, ten algorytm wyszukiwania z odcięcia ALFA-Beta i po prostu odcięcia alfa-beta jest porównywane doświadczalnie.

Podobne dokumenty

    Opis zasad gry "Battle morskie". Cechy nowoczesnych komputerów i sztucznej inteligencji. Tworzenie wspólnego diagramu bloku programu, jego wygląd. Wymagane zmienne, procedury i funkcje. Charakterystyka obiektów używanych w aplikacji.

    zajęcia, dodane 05.11.2012

    Rozwój oparty na grze "punkt" podejście do programowania "sztucznej inteligencji" w grach pozycyjnych i możliwości zastosowania tego podejścia do rozwiązywania problemów w dziedzinie ekonomii, zarządzania i innych regionów naukowych. Model sytuacji do gier.

    teza, dodano 07/21/2013

    Strukturalny diagram modułu oprogramowania. Opracowanie modułu oprogramowania i schematu interfejsu użytkownika. Wdrożenie modułu programu: Kod programu; Opis używanych operatorów i funkcji. Widok niestandardowej formy z wypełnioną matrycą.

    praca kursu, dodano 01.09.2010

    Badanie ogólnych zasad gry w warcaby, instrukcji obsługi i programista. Charakterystyka głównych algorytmów wykonujących zadania klasowe widgetów życia. Ocena ruchów komputera i człowieka. Budowanie drzewa wyszukiwania drzewa na podstawie oceny funkcji.

    egzamin, dodano 12/20/2012

    Główne etapy rozwoju, zasady testowania i debugowanie modułu Software VFS. Funkcje projektowania w UML. Metody "zgrubnej mocy" i ich zastosowania podczas debugowania programu. Szkodliwe czynniki obecne w miejscu pracy programisty.

    teza, dodano 03/07/2012

    Analiza modeli i metod wdrażania inteligentnych gier w systemie osoby robota. Środowisko rozwoju Choreographe. Algorytmy modułu rozpoznawania, przetwarzania danych, funkcji modułu gry. Testowanie pakietu oprogramowania, poprawiania i energii.

    teza dodana 12.08.2017

    Esencja i problem określenia sztucznej inteligencji, głównych zadań i funkcji. Problemy filozoficzne tworzenia sztucznej inteligencji i zapewnienie bezpieczeństwa ludzkiego podczas pracy z robotem. Wybór sposobu na tworzenie sztucznej inteligencji.

    egzaminowanie dodane 07.12.2009

    Program gier "warcaby" do gry między mężczyzną a komputerem. Rozwój algorytmów, historyczny rozwój zadań. Różne podejścia do systemów budowlanych. Skrócona lista programów i opisu algorytmu. Składniki sztucznej inteligencji.

    praca kursu, dodano 03/26/2009

    Budowanie i analizowanie modelu matematycznego gry. Określenie prawdopodobieństwa wykrywania statków o wszystkich możliwych lokalizacjach i różnych systemach wyszukiwania. Rozwój algorytmów do sztucznej inteligencji. Struktura programu i jego składników.

    zajęcia, dodano 12/22/2012

    Koncepcja sztucznej inteligencji jako właściwości automatycznych systemów do podjęcia poszczególnych funkcji ludzkiej inteligencji. Systemy eksperckie w dziedzinie medycyny. Różne podejścia do budowania sztucznych systemów inteligencji. Tworzenie sieci neuronowych.

Dopasuj zwykły: komputer przeciwko człowiekowi.

Kreatywne myślenie, logika, doświadczenie - cechy, które pozwoliły osobie prowadzić w walce "Man-Car". Wydawało się, że te zalety zawsze będą tajemniczym podręcznikiem osoby, a komputer przeprowadzi rolę "nadrabiania up".

Ale zajęło to sporo czasu, że sztuczna inteligencja dogoniła i na zawsze przekroczyła osobę w wielu dziedzinach, w tym w dziedzinie rozrywki intelektualnej.

Sztuczna inteligencja biła osobę: gdzie i jak

Kostka Rubika
Tauzówka jest znana na całym świecie. Miliony ludzi próbują wykonać zadanie i zbierać odpowiednią kostkę, a niektóre równomierne rywalizują na prędkości montażu. 14-letni Lucas Etter ze Stanów Zjednoczonych pokazał rekord między ludźmi, który zdemontuje układankę przez 4904 sekund. Niesamowite, prawda? Ale ten wynik był w stanie przewyższyć robota, który stworzył dwóch entuzjastów Jay Floetlend i Paul Rose: wynik robota wynosi 1,047 sekund.


Dzięki wbudowanej kamerom i czterech z nich komputer ocenia pozycję i wybiera najlepszy algorytm działań. System opiera się na wzorze KOCEB (montaż dla 20 ruchów). Prawie żaden z osób może zebrać sześcian Rubika szybciej niż 1 sekundę.
0: 1 na rzecz sztucznej inteligencji.

"Othello"
Szczyt popularności tej gry spada na początku lat 70. XX wieku. Istotą gry jest pomieścić w polu gry (8 × 8 komórek) frytek: konieczne jest zablokowanie wiórów z dwóch boków rywalowych żetonów z dwóch stron, a następnie żetony zmieniają kolor i przejść do przeciwnika . Zwycięstwo idzie do tego, który wziął duży obszar.


W 1980 roku mistrz świata w "Othello" był Hiroshi Anino, a on łatwo pokonał program Moor z wynikiem 5: 1.
Później program dowiedział się, że obliczono ruchy przeciwnika (około 25 ruchów), a kiedy w 1997 r. Obecny mistrz Murakami Murakami zszedł w meczu zemsty z systemem Logistello, wynikiem był miażdży 0: 6 na korzyść oprogramowania.

Backgammon.
Sztuczna inteligencja jest zobowiązana do mistrza światowego szachy szachowej (i takich) do Hansa Berlinera, który napisał program BKG 9.8. W 1979 r. Program okazał się silniejszy niż mistrz świata w willi Narda Luigi.


Uważa się, że w tej partii komputer był szczęśliwy (dobre kości spadły kilka razy), ale nikt inny nie chciał walczyć w powtarzającym się nawzajem, zwłaszcza od tego czasu, gdy ten czas był wielokrotnie poprawiony.

Szachy
Systemy szachowe zaczęły rozwijać się w środku XX wieku, rozwój należał do IBM. Ale ze względu na fakt, że program wymagał poważnych i długoterminowych rozliczeń, ten pomysł musiał odłożyć od 30 lat. W 1996 roku "szachowy mózg" został umieszczony przeciwko Harrym Kasparovem - głęboki niebieski komputer.


Mecz zakończył się przyjęciem osoby: 3 zwycięstw, 2 rysunki, 1 strata. Rok później mecz powtórzono, a tym razem głęboko niebieski okazał się bardziej przygotowany. Mimo to system oszacował 200 milionów pozycji na sekundę. I chociaż Harry chciał ją odzyskać później, IBM odmówił, biorąc pod uwagę, że nie ma znaczenia.

Czechery (odmiana szturlowania)
Marion Tinley był mistrzem warcaby w całej swojej karierze. A kiedy w 1992 roku spotkał się z systemem opracowanym na Uniwersytecie Albert (Kanada), zwycięstwo zostało za nim pozostawione. Z 39 stron - 4 zwycięstw, 2 straty i 33 rysunki.


Dwa lata później zemststwo miał miejsce, ale Tinstley zagrał od konkursu z powodu problemów zdrowotnych (w momencie odmowy wystąpiły 6 partii rysunkowych), a zwycięstwo poszło do systemu. Od momentu, sztuczna inteligencja stała się znacznie silniejsza: W 2007 r. Kanadyjczycy ogłosili stworzenie idealnego systemu, żadna z osób nie próbuje przewyższyć go do warcaby.

Bazgrać
Triumf komputera w tej grze był łatwo i w pierwszej rundzie: Mistrz świata David Boice został pobity w 2006 r. Robo-Rival Quakle.


Nawiasem mówiąc, ten program jest dostępny w sieci, a możesz zmierzyć się z siłach IT, a może przyniesie zwycięstwo zespołu "Mężczyzna".

UDAĆ SIĘ
Ta gra pojawiła się w starożytnych Chinach ponad dwa tysiące lat temu, ale pomimo tak długiego doświadczenia w grze, osoba nadal stracona. Na miejscu (19 × 19) dwóch graczy ma własne kamienie (czarno-białe), który upuści więcej punktów (żetony są wymyślane w linii), wygrał. Z jednej strony wszystko jest proste, ale zainteresowanie leży w kolektorze możliwych opcji i ruchów.


Było interesujące dla programistów Alphago (stworzone pod auspicjami Google) - Utwórz system, który jest w stanie obliczyć tysiące opcji. Po pierwsze, sztuczna inteligencja wypróbowała swoją siłę z innym oprogramowaniem, a kiedy od 500 stron 499 były dla Alphago, podjął trzykrotnie wentylator Mistrz Europy Huey. Mistrz nie było szans: 5: 0.

TELEWIZJA.
Czy lubisz odpowiedzieć na pytania w telewizorie? Deweloperzy Robota Watson z IBM również byli w stanie się oprzeć, aw 2011 roku Watson działał jako członek intelektualnego telewizji "Jeopardy!". Pomimo faktu, że jego przeciwnicy byli rekordowymi posiadaczami show - Brad Rutter i Ken Jennings - zwycięstwo poszło, a milion dolarów wygrzebało na dobroczynność.


I chociaż komputer wykazał już swoją intelektualną i logiczną wyższość nad człowiekiem, nadal się rozwija. Tak więc, Alibaba Group i Microsoft (opracowana równolegle) przedstawiła sztuczną inteligencję, która okazała się silniejsza niż osoba w zrozumieniu informacji o odczytach.
Test Stanford University to ponad 100 tysięcy problemów opartych na pięciuset artykułach z biblioteki Wikipedii.

Najlepsza postać ludzkich punktów 82,304, wynik Alibaba - 82.44, sieć neuronowa Microsoft - 82,605. Wyniki sugerują, że sztuczny umysł jest w stanie odpowiadać o wysokiej dokładności do wszelkich pytań, a zatem technologie można wykorzystać do obsługi klientów, pacjentów, odwiedzających muzea itp

Gry komputerowe zostały również podbite przez program. Program wygrał program: Kto pomyślałby, jaka jest przyszłość tak blisko? Popularna gra Quake III, gdzie gracze są gladiatorzy, bardzo popularni w Cyberport. Ale najlepsze tutaj nie były ludzie, ale zespół botów Deepmind, stworzony przez podział Google. I chociaż bitwa została przetrzymywana w wersji przyciętych, zgodnie z obliczeniami z 73% zmiennością bota wygrałaby w każdym konkursie.


Niebezpieczeństwo lub nie taka wyższość sztucznego umysłu? Nikt nie może odpowiedzieć na pewno. Tak, a ostatecznie, nie ta odpowiedź będzie kluczem, ponieważ główną rzeczą nie jest fakt, że osoba jest gorsza od komputera i czy możemy użyć tego potencjału dla własnego dobra. Jak widzimy, sztuczna inteligencja bije osobę i nie pozostawia szans na zwycięstwo.




Przedmiotem badań i cel rozwoju przedmiotu nauki "sztucznego intelektu" jest ludzkie myślenie. Naukowcy szukają odpowiedzi na pytanie: jak myśli człowiek? Celem tych badań jest stworzenie modelu ludzkiego intelektu i wdrożenie go na komputerze. Przedmiotem studiów "sztuczna inteligencja" jest ludzkim myśleniem. Naukowcy szukają odpowiedzi na pytanie: jak myśli człowiek? Celem tych badań jest stworzenie modelu ludzkiego intelektu i wdrożenie go na komputerze.


Przykładami regionów Istnieje wiele innych rodzajów działalności człowieka, której nie można zaprogramować z wyprzedzeniem. Na przykład: szachy i inne gry, pisanie wierszy i muzyki, tłumaczenie tekstów z jednego języka do drugiej, robotyki, przestępstwa (identyfikacja odcisków palców), diagnostyka medyczna. Istnieje wiele innych rodzajów działalności człowieka, której nie można zaprogramować wcześniej. Na przykład: szachy i inne gry, pisanie wierszy i muzyki, tłumaczenie tekstów z jednego języka do drugiej, robotyki, przestępstwa (identyfikacja odcisków palców), diagnostyka medyczna.


Nieformalnych programistów Systemów sztucznych inteligencji próbują nauczyć samochodu, jak osobę, niezależnie zbudować program swoich działań, w oparciu o warunki zadania. Nadal możesz powiedzieć: Celem obracania komputera z formalnego wykonawcy w artystce intelektualnym. Deweloperzy sztucznych systemów wywiadowczych po prostu próbują nauczyć samochodu, jak osobę, niezależnie zbudować program swoich działań w oparciu o warunki zadania. Nadal możesz powiedzieć: Celem obracania komputera z formalnego wykonawcy w artystce intelektualnym.








Modelowanie dwóch głównych zadań podczas tworzenia inteligentnych systemów na komputerze: dwa główne zadania podczas tworzenia inteligentnych systemów na komputerze: -Modelizacji wiedzy (opracowywanie metod formalizacji wiedzy do wprowadzania ich do pamięci komputerowej jako bazy wiedzy); -modelowanie wiedzy (rozwój metod formalizacji wiedzy do wprowadzania ich do pamięci komputerowej jako bazy wiedzy); - Modelowanie rozumowania (tworzenie programów komputerowych, które naśladują logikę ludzkiego myślenia podczas rozwiązywania różnych zadań). - Modelowanie rozumowania (tworzenie programów komputerowych, które naśladują logikę ludzkiego myślenia podczas rozwiązywania różnych zadań).


Systemy eksperckie są jednym z rodzajów sztucznych systemów inteligencji to systemy eksperckie. Jednym z rodzajów sztucznych systemów inteligencji to systemy eksperckie. Powołanie systemów ekspertów - konsultacje dla użytkowników, pomoc podejmowania decyzji. Powołanie systemów ekspertów - konsultacje dla użytkowników, pomoc podejmowania decyzji.

Rok temu Program Alphago Sensational Beat najsilniejszy gracz na świecie, a teraz sztuczna inteligencja Alphazero pokonała najsilniejszy silnik szachowy.

Sztokfisz, który jest używany do przygotowania domu większość graczy, zwycięzca mistrzostw TCEC 2016 i Mistrzostwa Chess.com wśród programów komputerowych 2017, okazały się wyraźnie słabsze. W meczu ze 100 stron Alphazero zdobył 28 zwycięstw przy 72 rysunkami i nigdy nie zgubili.

Nawiasem mówiąc, alfazerko wydał tylko cztery godziny na "studiowanie" szachy. Przepraszam, ludzie, ale nie jesteś zły.

Wszystkie programiści Alphazero opracowane przez Deepmind, Google, stworzyli go w oparciu o mechanizm "uczenia maszynowego", dokładniej, "uczenia się ze wzmocnieniem". Mówiąc prosto, alfazero nie studiował szachów w tradycyjnym znaczeniu. Nie ma debiutanckiej książki, ani stołów końcowych, żadnych złożonych algorytmów do oceny siły pionków centralnych i flankowanych.

Jego prace mogą być porównywane z robotem, który może używać tysięcy części zamiennych, ale nie zna zasady działania silnika spalinowego, - przechodzi przez możliwe kombinacje, aż buduje Ferrari, a dla tego potrzebuje mniej czasu niż trylogia władcy pierścieni. Przez cztery godziny program odgrywał z tobą wiele imprez, stając się własnym nauczycielem.

Do tej pory zespół programistów ciągle cisza. Nie podawali komentarzy Chess.com, odnosząc się do faktu, że raport "podczas rozpatrywania", ale tutaj możesz przeczytać swój pełny tekst. Zespół badawczy obejmuje demisa Hassabis, kandydata głównego z Anglii i współzałożyciela Deepmind (zakupione Google w 2014 r.). Hassabis, który uczestniczył w turniejach Tandem Tandems na otwarciu London Chess Classic, jest obecnie na konferencji systemów przetwarzania informacji neuronowych (systemy przetwarzania informacji neuronowych) w Kalifornii, jako współpracownika raportu na innym temacie.

Ale z Chess.com z niecierpliwością udostępnił swoje osądy szachy, który ma wielkie osobiste doświadczenia gry przeciwko komputerom szachowym. MG Harry Kasparov nie jest zaskoczony, że Deepmind przeniósł się z iść do szachy.

"Jest to zauważalne osiągnięcie, chociaż oczekiwano po Alphago" - powiedział Chess.com. "Zbliża się do" type-b ", ludzkim podejściem do szachy, które kanałowy Shannon i Alan Turing marzyli o zastąpieniu solidnego biustu."

Podobnie jak osoba, alfazero rozważa mniej pozycji niż jego poprzedników. Raport stwierdził, że szacuje, że "suma" 80 tysięcy pozycji na sekundę w porównaniu z 70 milionami na sekundę od Smackafish.

MG Peter-Heine Nielsen, długoterminowy drugi mistrza świata MG Magnus Karlsen, otworzył swoją pasję, przynosząc mu bliżej prezesa FIDE: kosmitów. Powiedział Chess.com: "Po przeczytaniu raportu, aw szczególności, po przejrzeniu partii, pomyślałem:" Byłem zawsze ciekawy, że byłoby to, gdyby na naszej planecie sadzono na naszej planecie i pokazał nam swoją sztukę gra w szachy. Wydaje się, że teraz wiem, co to jest.

Nauczyliśmy się również o znaczeniu zalet łodygi, przynajmniej dla sztucznej inteligencji. 25 z 28 zwycięstw Alphazero wygrał biały (chociaż wynik + 3 \u003d 47-0 czarny przeciwko Sztokfiszie, którego ocena przekracza 3400, również nie zły).

Raport pokazuje i jak często silnik wybrał pewne debiuty, gdy uczą. Przepraszamy, kochankowie Ochrony Old-Indian, ale nie jesteś na korzyść. Zainteresowanie francuską jest również UGA w czasie, ale pragnienie grania w felu Gambit, a zwłaszcza, że \u200b\u200bangielski początek właśnie wzrosły.

Co byś zrobił w miejscu niezbędnego zmęczenia stworzenia, tylko kto opanował grę z historią 1400 lat? Przejmie drugą. Po meczu Stockfish Alphazero spędzony na "szkoleniu" tylko dwie godziny i pokonał Elmo, najsilniejszy z silników komputerowych do gry w SyoM.

Korzystanie z tego innowacyjnego programu samokształcenia nie ogranicza się do gier.

"Zawsze uważano, że istnieje zbyt wiele wiedzy empirycznej w szachach z maszyny, aby mogli grać silnie" od podstaw ", bez użycia wiedzy w ogóle" - powiedział Casparov. "Oczywiście będę zainteresowany, by zobaczyć Co możemy dowiedzieć się o szachach. Z pomocą Alphazero, która otwiera ogromne perspektywy uczenia się maszyny w całej maszynie, mogą znaleźć regularności niedostępne dla ludzi. Jest oczywiste, że konsekwencje rozszerzają się daleko poza szachy i inne gry. Zdolność Maszyna do otwarcia i przekracza znajomość złożonych systemów zamkniętych, nagromadzonych przez ludzkość przez wieki, - jest to narzędzie zmieniające świat. "

Chess.com Dziennikarzy przeprowadzali wywiad z ośmioma z dziesięciu uczestników turniejów w Londynie na swoim stosunku do dopasowania programu. Wideo z wywiadem zostanie opublikowany na stronie później.

Najbardziej ostro skrytykował warunki meczu MG Hikar Nakamura. Teraz jest gorąca dyskusja na temat siły komputerowej przeciwników, ale Nakamura uważa, że \u200b\u200binny był ważniejszy.

Amerykański grandmaster zwany mecze "nieuczciwe", określając, że dla optymalnej pracy silnik, Ekokfish powinien używać debiutanckiej książki. Nakamura nie uważa, że \u200b\u200bwraz z jej pomoc stockfisz wygrał mecz, ale luka na koncie byłaby znacznie mniejsza.

"Jestem pewien, że sam Pan sam nie zyskałby 75 procent okularów z białym bez żadnego foowu", skomentował wynik alfazero biały: 25 zwycięstw i 25 rysunków.

MG Larry Kaufman, wiodący konsultant w szachy Komodo silnik, ma nadzieję zobaczyć, jak dobrze nowy program działa na komputerach osobistych, bez korzystania z kamienic obliczeniowych Google. Powtórzył także zastrzeżenia wyrażone przez Nakakurę o fakcie, że Łupka gra bez zwykłej wiedzy debiutycznej.

"Oczywiście, że jest prawie niesamowite", powiedział: "Tak, usłyszałem o osiągnięciach zero Alphago w grze i spodziewałem się czegoś takiego, biorąc pod uwagę, że zespół deweloperów miał szachy Demis Hassabis. Jednak nie jest jasne, czy program Alphazero może grać w szachy na zwykłym komputerze i jak dobrze się odnosi. Być może współczesna rozpowszechnianie silników szachowych za pomocą funkcji Minimax jest zbliża się do końca, ale do tej pory jest zbyt wcześnie, aby go głosić. Warto wskazać, że podczas szkolenia Alphazero de facto stworzył własną debiutancką książkę, więc byłoby bardziej sprawiedliwe, aby używać go do silnika z dobrą debiutancką książką. "

Nie dotykając warunków meczu, Nielsen jest pomyślany, w jakichkolwiek obszarach można zastosować ten typ uczenia się.

"[Ten] Nowoczesny sztuczny intelekt" - powiedział Grossmaster. "Pochodzi z czegoś takiego jak szachy do problemów godnych nagród Nobla i jeszcze więcej. Myślę, że mieliśmy szczęście, że postanowili spędzić cztery godziny na szachy, ale konsekwencje tego odkrycia są znacznie bardziej znaczące.