Program rozwiązujący "ortodoksyjne" wielochodówki

Moderator: redjok

Re: Program rozwiązujący "ortodoksyjne" wielochodówki

Postprzez msterkowiec » 20 lut 2021, 23:57

Myślałem, myślałem : ) Ale tyle spraw na głowie, i te rzesze zadowolonych użytkowników nieustannie domagające się nowych feature'ów... A tak serio, to właśnie ze zdumieniem przecieram oczy, że po siedmiu latach i dwóch miesiącach jest jakiś feedback po opublikowaniu programu, który stał się bez mała moją życiową pasją.

Na pewno nie widzę innej opcji niż podzielenie się kodem, ale na pewno to wymaga czasu. Na pewno zachętą byłaby informacja od zadowolonych użytkowników - nieco inna niż ta, że ich antywirus rzuca false positivami : ) BTW: na komputerze, na którym kompiluję działa sobie Eset Nod32 - raczej nie robi mnie w trąbę.

Równocześnie nie zachęca mnie do dzielenia się tym kodem fakt, że na szybko "po godzinach" nie da się napisać szybko działającego kodu, który równocześnie byłby w miarę czytelny i w miarę "czysty". Choć sama wersja angielska prawie gotowa, ale dużo komentarzy w kodzie mam po polsku, dobrze, że udało mi się praktycznie wyrugować zmienne o polskich nazwach (nie było łatwo : ) ale w końcu znalazłem w necie jakiś kanadyjski podręcznik dla dzieci i oświeciło mnie, że związanie to pinning, a szach z odsłony to discovered check - no ale wychowałem się w latach osiemdziesiątych na radzieckich podręcznikach, więc jest to pewna zmiana : )

Do tego brakuje testów jednostkowych, program jest old-style, typowo windowsowy, sprzed C++11, myślę nad wersją na linuksa, ale jakoś większą frajdę sprawia mi fokusowanie się nad meritum, czyli możliwościami silnika. W każdym razie pracy nad tym jest strasznie dużo, lista requestów jakimś cudem ciągle się powiększa. Teraz w wolniejszych chwilach pracuję nad nową wersją i ciągle znajduję drobne usterki do zmerge'owania do starej wersji (2.1.3 powinna być niedługo). Brak testów jednostkowych - co byłoby zbyt pracochłonne - rekompensuję releasowymi runami z asercjami (cassert) - udaje się dzięki temu wychwycić bardzo dużo usterek, które umykają zwykłym testom.

Aha, z chrześniakiem dogadaliśmy się, żeby w tym roku umieścić program w Microsoft Store - więc no turning back raczej - jest parę przeszkód, ale na pewno nie spowolni to, a przyspieszy przejście na open source.

BTW: wersja 2.1.3 z kolejnymi zmerge'owanymi bug fixami (praca nad 2.2 w toku) : https://drive.google.com/file/d/1ZH6zRW ... sp=sharing
Myślę, że Bóg pomaga ludzkości rozwiązywać stopniowo jej różnorakie problemy, poczynając od tych najważniejszych. Z perspektywy Boga każdy taki problem przypomina trochę szachową wielochodówkę. Im trudniejszy problem, tym dłuższa jest to wielochodówka
msterkowiec
 
Posty: 121
Dołączył(a): 05 gru 2014, 00:39
Podziękował : 1 raz
Otrzymał podziękowań: 92 razy
Ranking: 2000

Re: Program rozwiązujący "ortodoksyjne" wielochodówki

Postprzez msterkowiec » 25 kwi 2021, 20:57

Jest wreszcie nowa wersja (2.2) : https://drive.google.com/file/d/19fT7oX ... sp=sharing

Zawiera sporo bardzo różnorakich usprawnień z ostatnich kilku miesięcy (dla różnych problemów szachowych, które już ciężko mi dziś zliczyć), jak również wiele drobnych, choć w sumie istotnych stability fiksów (tylko część z nich zmerge'owana do 2.1.3), np. okazało się, że niemal bezobjawowo szwankowała synchronizacja wątków przy włączonym jednym z typów heurystyk (SeaSnake).

Istotną zmianą jest też dodanie możliwości przełączenia się na język angielski (choć tłumaczenie jest na razie niepełne).
Myślę, że Bóg pomaga ludzkości rozwiązywać stopniowo jej różnorakie problemy, poczynając od tych najważniejszych. Z perspektywy Boga każdy taki problem przypomina trochę szachową wielochodówkę. Im trudniejszy problem, tym dłuższa jest to wielochodówka
msterkowiec
 
Posty: 121
Dołączył(a): 05 gru 2014, 00:39
Podziękował : 1 raz
Otrzymał podziękowań: 92 razy
Ranking: 2000

Re: Program rozwiązujący "ortodoksyjne" wielochodówki

Postprzez msterkowiec » 17 lip 2021, 22:36

Jest już wersja 2.3 dla Windows, pobrać ją można stąd:
https://drive.google.com/file/d/116WVAm ... sp=sharing

Zawiera:
a) kilka drobnych bug fixów,
b) dalszy postęp w tłumaczeniu dla wersji angielskiej,
c) nową heurystykę - a właściwie nową wersję starej heurystyki "don't let black king move", w której to wersji dopuszczone są nieliczne wyjątki (możliwy ruch cz.królem, ale białe powinny natychmiast wymusić powrót - w przeciwnym razie heurystyka zostaje uznana za złamaną).
Nowa heurystyka powstała, żeby usprawnić rozwiązywanie następującego problemu:
https://pdb.dieschwalbe.de/search.jsp?e ... 'P1390771' ( #13 n2BK3/rpr3p1/pk4p1/b1p1P1P1/pnPpB3/P1p5/8/1Q6 )
Teraz rozwiązanie tego problemu zajmuje programowi około 2 minuty (wcześniej nie udawało się to w żadnym rozsądnym czasie).
Myślę, że Bóg pomaga ludzkości rozwiązywać stopniowo jej różnorakie problemy, poczynając od tych najważniejszych. Z perspektywy Boga każdy taki problem przypomina trochę szachową wielochodówkę. Im trudniejszy problem, tym dłuższa jest to wielochodówka
msterkowiec
 
Posty: 121
Dołączył(a): 05 gru 2014, 00:39
Podziękował : 1 raz
Otrzymał podziękowań: 92 razy
Ranking: 2000

Re: Program rozwiązujący "ortodoksyjne" wielochodówki

Postprzez msterkowiec » 23 lip 2021, 21:26

Wersja 2.3.1: https://drive.google.com/file/d/1AzJAIK ... sp=sharing

Zawiera parę bug fiksów - na błędy głównie dość stare, ale nie ujawniające się wcześniej, "ukryte" w rzadko używanych ścieżkach kodu... Ogólnie nosiłem już się z zamiarem zmiany nazwy programu na "Szewska Pasja" (w końcu to szukanie mata w zadanej, często niewielkiej liczbie posunięć... : ) - to znak, że pilnie potrzebne wakacje...

PS
Jako produkt uboczny programu powstaje biblioteka dla języka C++, która być może zainteresuje miłośników tego języka:
https://github.com/msterkowiec/AMTL
Jest w dużej mierze "odpowiedzialna" za moje "wycieńczenie"... Jest jeszcze w powijakach, nie ma przykładów, nie ma testów, za to jest duży potencjał : )
Myślę, że Bóg pomaga ludzkości rozwiązywać stopniowo jej różnorakie problemy, poczynając od tych najważniejszych. Z perspektywy Boga każdy taki problem przypomina trochę szachową wielochodówkę. Im trudniejszy problem, tym dłuższa jest to wielochodówka
msterkowiec
 
Posty: 121
Dołączył(a): 05 gru 2014, 00:39
Podziękował : 1 raz
Otrzymał podziękowań: 92 razy
Ranking: 2000

Re: Program rozwiązujący "ortodoksyjne" wielochodówki

Postprzez msterkowiec » 17 sie 2021, 23:16

Jest wersja 2.3.2: https://drive.google.com/file/d/1rJ4DwK ... sp=sharing

Zawiera:
* dokończenie tłumaczenia na angielską wersję językową - wygląda już na prawie kompletną (jeszcze język instalatora może chyba szwankować),
* kilka mikrooptymalizacji
Myślę, że Bóg pomaga ludzkości rozwiązywać stopniowo jej różnorakie problemy, poczynając od tych najważniejszych. Z perspektywy Boga każdy taki problem przypomina trochę szachową wielochodówkę. Im trudniejszy problem, tym dłuższa jest to wielochodówka
msterkowiec
 
Posty: 121
Dołączył(a): 05 gru 2014, 00:39
Podziękował : 1 raz
Otrzymał podziękowań: 92 razy
Ranking: 2000

Re: Program rozwiązujący "ortodoksyjne" wielochodówki

Postprzez msterkowiec » 10 wrz 2021, 22:30

Jest nowa wersja (2.4): https://drive.google.com/file/d/124rcmH ... sp=sharing

Zawiera: Kilka zmian w wykrywaniu heurystyk, mikrooptymalizacje, tłumaczenia na angielski, drobny bug fix w GUI

PS: problemy, które lepiej się teraz rozwiązują dzięki ostatnim zmianom:
https://pdb.dieschwalbe.de/search.jsp?e ... 'P1393090'
https://pdb.dieschwalbe.de/search.jsp?e ... 'P1393096'
https://pdb.dieschwalbe.de/search.jsp?e ... 1377798%27
Myślę, że Bóg pomaga ludzkości rozwiązywać stopniowo jej różnorakie problemy, poczynając od tych najważniejszych. Z perspektywy Boga każdy taki problem przypomina trochę szachową wielochodówkę. Im trudniejszy problem, tym dłuższa jest to wielochodówka
msterkowiec
 
Posty: 121
Dołączył(a): 05 gru 2014, 00:39
Podziękował : 1 raz
Otrzymał podziękowań: 92 razy
Ranking: 2000

Re: Program rozwiązujący "ortodoksyjne" wielochodówki

Postprzez msterkowiec » 06 paź 2021, 22:23

Znienacka wersja 2.7: https://drive.google.com/file/d/1mX7ecA ... sp=sharing

Wszystkie znaki na niebie i Ziemi (czytaj: testy regresyjne) wskazują, że jest lepsza niż poprzednie.
Zmiany:
2.5 2021.09.25 Usprawnienia w działaniu heurystyki/strategii Find Forced Mate dla problemu #23 r3n3/p2B1p1r/R4P2/2k4p/pN3p1B/2K1p3/1P3p1p/n7 ( https://pdb.dieschwalbe.de/search.jsp?e ... 'P1320970' )
2.6 2021.09.27 Drobne usprawnienia dla #13 8/8/8/8/6pp/4K1pr/3BP1kp/2R4b
2.7 2021.10.05 Usprawnienia dla kilku problemów np. #11 7b/8/1B2K3/4P2p/P3k3/6P1/6P1/5B2
Myślę, że Bóg pomaga ludzkości rozwiązywać stopniowo jej różnorakie problemy, poczynając od tych najważniejszych. Z perspektywy Boga każdy taki problem przypomina trochę szachową wielochodówkę. Im trudniejszy problem, tym dłuższa jest to wielochodówka
msterkowiec
 
Posty: 121
Dołączył(a): 05 gru 2014, 00:39
Podziękował : 1 raz
Otrzymał podziękowań: 92 razy
Ranking: 2000

Re: Program rozwiązujący "ortodoksyjne" wielochodówki

Postprzez msterkowiec » 25 paź 2021, 23:39

Wersja 2.8: https://drive.google.com/file/d/1l5DQuk ... VtXsy/view

Zawiera:
* zmianę dla #11 4B3/8/2p5/2p5/2P1Np1k/2P2p1p/5N1K/8,
* drobne poprawki,
* rebranding na "John Galt - Problemy szachowe".

Dość długo (parę lat?) wahałem się jak nazwać program, w grę wchodził m.in. Kapitan Nemo (mógłby być niezłą konkurencją dla Popeya ; ) oraz Czesław/ChessLove (jako konkurencja dla Gustava), ale ostatecznie zwyciężyła miłość do literatury i do nieszablonowych - można by rzec "ortodoksyjnych" - idei Ayn Rand. W sumie myślę, że do "ortodoksyjnych" wielochodówek nawet pasuje ; )
Myślę, że Bóg pomaga ludzkości rozwiązywać stopniowo jej różnorakie problemy, poczynając od tych najważniejszych. Z perspektywy Boga każdy taki problem przypomina trochę szachową wielochodówkę. Im trudniejszy problem, tym dłuższa jest to wielochodówka
msterkowiec
 
Posty: 121
Dołączył(a): 05 gru 2014, 00:39
Podziękował : 1 raz
Otrzymał podziękowań: 92 razy
Ranking: 2000

Re: Program rozwiązujący "ortodoksyjne" wielochodówki

Postprzez msterkowiec » 04 lis 2021, 23:55

Wersja 2.11: https://drive.google.com/file/d/162BWtT ... sp=sharing

Zawiera:
* drobną zmianę w silniku dla #11 8/3Nb3/6p1/3Np1p1/2K1k1B1/7p/7P/8
* drobną zmianę w silniku dla #11 1r6/1n2NNp1/5p2/R1p2B2/4pk1P/2P4R/1Bp3p1/3n1bK1
* fix w zaczytywaniu zewnętrznych danych Syzygy/Lichess (pozycje nie więcej niż siedmiobierkowe) - dostosowanie do zmienionego formatu udostępnianych danych

Tak naprawdę ta ostatnia zmiana może okazać się najprzydatniejsza: dla pozycji nie więcej niż siedmiobierkowych program wyświetli szczegóły w zakładce Szczegóły pozycji/Position details.
Myślę, że Bóg pomaga ludzkości rozwiązywać stopniowo jej różnorakie problemy, poczynając od tych najważniejszych. Z perspektywy Boga każdy taki problem przypomina trochę szachową wielochodówkę. Im trudniejszy problem, tym dłuższa jest to wielochodówka
msterkowiec
 
Posty: 121
Dołączył(a): 05 gru 2014, 00:39
Podziękował : 1 raz
Otrzymał podziękowań: 92 razy
Ranking: 2000

Re: Program rozwiązujący "ortodoksyjne" wielochodówki

Postprzez msterkowiec » 08 lis 2021, 00:35

Wersja 2.12: https://drive.google.com/file/d/1_w7RFe ... sp=sharing

Zawiera:
* bug fix na sev.1 issue w odczycie danych Syzygy/Lichess (okazało się, że ten serwis obecnie oznacza roszadę dość nietypowo, bo e1-h1 oraz e1-a1)
* zmianę dla #37 8/5p2/2p5/2p2n2/p3Q3/K7/2r4p/1k5n https://pdb.dieschwalbe.de/search.jsp?e ... 'P1104338'

Okazało się, że trochę zbyt optymistycznie zreleasowałem wersję 2.11 - drobna zmiana formatu danych udostępnianych przez Syzygy/Lichess wiązała się też z pewnymi zmianami w zawartości, przez co problemy, w których ilość bierek jest nie większa niż 7, a pierwszym ruchem rozwiązania jest roszada, przestały się rozwiązywać poprawnie. BTW: Jeśli ktoś zaczął używać wersji 2.11, to właściwie przed użyciem nowszej wersji warto by wykasować pliki z katalogu SavedTmpSyzygyData (przy standardowej instalacji jest to C:\Program Files\ProblemySzachowe\SavedTmpSyzygyData ), gdyż może ten katalog zawierać nie całkiem poprawne dane.

Jeśli chodzi o #37 8/5p2/2p5/2p2n2/p3Q3/K7/2r4p/1k5n ( https://pdb.dieschwalbe.de/search.jsp?e ... 'P1104338' ), to po zmianie problem ten powinien rozwiązywać się około 0.5h przy standardowych ustawieniach. Jest to dość złożony problem tego typu - na swój użytek określam je jako "zugzwang triangles" (w tym wypadku jest to trójkąt e4-h1-h7), z dodatkową grą przez d2 i d3 oraz przyspieszającym manewrem przez pole e5 (a także wymuszona przez układ czarnych figur gra przez pole f1)

PS. Wygląda na to, że szybkie rozwiązanie tego problemu wymaga heurystyki SH_REDUCTIONTOGLOBREGPOS (odpytanie tablic Nalimova po zdjęciu pionka lub dwóch, jeśli zdają się one nie mieć dużego wpływu na pozycję, w celu postawienia w wątpliwość możliwość dania mata), a niestety ta heurystyka zależy od tego, jakie prekalkulowane dane (Nalimov tablebases) ma się na dysku (przy standardowej instalacji jest to katalog C:\Program Files\ProblemySzachowe\Precalc), a te mogą być tylko u mnie. Między innymi dlatego jeszcze raz zachęcam do pobrania (w sumie ok. 3GB) rozwiązań dla wszystkich 5-pieces:
cz.1/4 https://drive.google.com/file/d/1Bcz2r7 ... sp=sharing
cz.2/4 https://drive.google.com/file/d/1aIdSmJ ... sp=sharing
cz.3/4 https://drive.google.com/file/d/1872jO0 ... sp=sharing
cz.4/4 https://drive.google.com/file/d/171qLHg ... sp=sharing
i rozpakowanie zawartości bezpośrednio do katalogu C:\Program Files\ProblemySzachowe\Precalc
Myślę, że Bóg pomaga ludzkości rozwiązywać stopniowo jej różnorakie problemy, poczynając od tych najważniejszych. Z perspektywy Boga każdy taki problem przypomina trochę szachową wielochodówkę. Im trudniejszy problem, tym dłuższa jest to wielochodówka
msterkowiec
 
Posty: 121
Dołączył(a): 05 gru 2014, 00:39
Podziękował : 1 raz
Otrzymał podziękowań: 92 razy
Ranking: 2000

Re: Program rozwiązujący "ortodoksyjne" wielochodówki

Postprzez msterkowiec » 18 lis 2021, 23:15

Efektem całkiem owocnej pracy w "niepodległościowy" długi weekend jest wersja 2.16:
https://drive.google.com/file/d/1FryMIX ... 0gwXr/view

Zawiera zmiany ze względu na:
#17 1B6/1b6/2p5/2p5/P1p4K/P1P1N2B/ppp5/krr5 http://www.yacpdb.org/?id=193649
#86 q4b2/2p2p1p/3r1p1p/8/8/1p3Q1p/krp5/nbK2n2 https://pdb.dieschwalbe.de/search.jsp?e ... 'P1228975'
#19 6nr/p2p3b/5b1r/k4p2/3P4/5K1p/3N4/1R3B2 https://pdb.dieschwalbe.de/search.jsp?e ... 'P1388440'
#14 1qn5/2p2p2/2P2P1n/2Pp2PK/2NPpk2/5B2/rr2p1P1/Q1R2NR1 http://www.yacpdb.org/?id=533713 , https://pdb.dieschwalbe.de/search.jsp?e ... 'P1390000'

Najbardziej cieszy mnie włączenie dwóch pierwszych problemów do "test suite", choć radość mąci fakt, że w pięknym pierwszym z nich najwyraźniej czaił się niedostrzeżony dual; jest to też opisane w wątku bezpośrednio poświęconym temu problemowi: viewtopic.php?f=35&t=7448&p=117349#p117349

Z kolei ciągle "mam na pieńku" z różnymi problemami XIX-wiecznymi Otto Titusza Blathy'ego, więc tym bardziej cieszy komputerowe "rozprawienie się" z jego 86-chodówką (co prawda z 1922 r.)
Myślę, że Bóg pomaga ludzkości rozwiązywać stopniowo jej różnorakie problemy, poczynając od tych najważniejszych. Z perspektywy Boga każdy taki problem przypomina trochę szachową wielochodówkę. Im trudniejszy problem, tym dłuższa jest to wielochodówka
msterkowiec
 
Posty: 121
Dołączył(a): 05 gru 2014, 00:39
Podziękował : 1 raz
Otrzymał podziękowań: 92 razy
Ranking: 2000

Re: Program rozwiązujący "ortodoksyjne" wielochodówki

Postprzez msterkowiec » 20 lis 2021, 13:26

Dla ścisłości i uzupełnienia poprzedniego wpisu dodam jeszcze dwie uwagi:

1) odnośnie #17 1B6/1b6/2p5/2p5/P1p4K/P1P1N2B/ppp5/krr5 http://www.yacpdb.org/?id=193649
Próby rozwiązania pozycji zbliżonych do tej za pomocą Johna Galta nie zawsze muszą się udać, zwłaszcza jeśli w pozycji startowej ustawić cz.gońca nie na b7, a gdzieś na a6 albo a8. Niestety heurystyka SH_DONTLETFIGUREUNBLOCK działa względem pola startowego i traktuje jedynie ruch na pole sąsiednie jako "dozwolony" i niełamiący heurystyki (a więc po ruchu cz.gońcem z a6 na c8 program stwierdzi, że mat jest wątpliwy w tym przebiegu heurystycznym). Planuję za jakiś czas drobny development polegający na wprowadzeniu pola referencyjnego (wtedy dla cz.g.a6 polem referencyjnym będzie mogło być pole b7 i wszystko powinno ładnie śmigać)

2) #86 q4b2/2p2p1p/3r1p1p/8/8/1p3Q1p/krp5/nbK2n2 https://pdb.dieschwalbe.de/search.jsp?e ... 'P1228975'
Nie wspomniałem, że tu też ujawniło się parę duali, ale w dalszych posunięciach, np.:
a) 1. Q:a8+ Ra6 2. Q:a6+ Ba3 3. Q:f1 h2 4. Qf3 lub 4.Qg2 lub 4.Qh1
b) 1. Q:a8+ Ra6 2. Q:a6+ Ba3 3. Q:f1 h2 4. Qf3 Bb4 5. Qa8+ Ba3 6. Qc6 lub 6.Qb7 (ten powtarzający się manewr można wykonać zarówno przez c6, jak i b7)
c) 1. Q:a8+ Ra6 2. Q:a6+ Ba3 3. Q:f1 h2 4. Qf3 Bb4 5. Qa8+ Ba3 6. Qc6 Bf8 7. Qa6+ lub 7.Qa4+ (ten powtarzający się manewr można wykonać zarówno przez a6, jak i a4)
Myślę, że Bóg pomaga ludzkości rozwiązywać stopniowo jej różnorakie problemy, poczynając od tych najważniejszych. Z perspektywy Boga każdy taki problem przypomina trochę szachową wielochodówkę. Im trudniejszy problem, tym dłuższa jest to wielochodówka
msterkowiec
 
Posty: 121
Dołączył(a): 05 gru 2014, 00:39
Podziękował : 1 raz
Otrzymał podziękowań: 92 razy
Ranking: 2000

Poprzednia strona

Powrót do Programy i komputery szachowe

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 8 gości



REKLAMA

Gdy masz problemy z matma czasami najlepszym rozwiazaniem sa Korepetycje z Matematyki
Zadania Szachowe