Cykle Hamiltona na szachownicy

0

Witam.

Jestem studentem informatyki i w ramach pracy magisterskiej piszę program w delphi
który rozwiązuje problem konika szachowego.
Na chwilę obecną program po ok 8 godzinach znajduje ponad 200milionów kombinacji. Zainteresowanych zapraszam do współpracy.
Moim głównym problemem jest rozmiar plików tekstowych zawierających znalezione rozwiązania. Plik z rozwiązaniami zawiera 50000 tras i zajmuje około 3Mb, zastanawiam się od pewnego czasu jak by to zapisać do pliku binarnego czy to coś zmniejszy ale niestety mam problem z obsługą takich plików bo dokładnie nie wiem jak to zrobić.

0

Ja bym zapisywał tak:

byte B=X+Y*8+N?128:0;

X,Y są współżędnymi pola szachownicy z zakresu 0..7.
N jest wartością logiczną oznaczającą, że zaczynamy opis nowego cyklu.

W ten sposób w jednym bajcie zmieścisz wszystkie współżędne - dało by się ciaśniej (w każdym bajcie pozostaje jeden niewykożystany bit) :P ale nie chce mi się bawić :]

No i teraz Twój plik jest sekwencją takich bajtów oznaczających kolejne położenia na szachownicy...
Jak chcesz znaleźć początki cyklów zapisanych w pliku - szukasz bajtów o wartościach większych od 127 :P

0

To mi się nawet podoba, dzięki

Tylko że w programie nie używam współrzędnych a numerów pól, jak by to się okazało lepsze to czeka mnie kupa roboty ;(

Troszkę się skomplikuje (chyba) odczyt danych z pliku ale jakby to miało zmniejszyc rozmiary to pewnie warto :)

0

Tzn jaki numer pola :>
Jeśli chodzi o numer z zakresu 0..63 (co najwyżej 0..127 - ale to by chyba była jakaś większa szachownica :P ) to zauważ, że

X+8*Y

przekształca współżędne na właśnie taki numer.

0

Pisalem kiedys prace na temat rozwiazywania problemu komiwojadzera (Pff?) z zastosowaniem algorytmoow genetycznych. Jezeli chcesz to sluze zroodlami: spc<at>satfilm.pl

1 użytkowników online, w tym zalogowanych: 0, gości: 1