Cześć,
Przymierzam się do napisania Algorytmu Genetycznego i mam dylemat jak przechowywać zmienne w postaci binarnej.
Praktycznie w każdej analizowanej przeze mnie implementacji była tworzona tablica typu char lub bool i każda komórka przechowywała liczby 0 lub 1.
Takie rozwiązanie jest proste i bardzo czytelne.
Ja jednak rozważam czy nie lepiej byłoby utworzyć dla każdej optymalizowanej zmiennej dodatkową zmienną typu unsigned i przechowywać na jej bitach te informacje.
Takie rozwiązanie na pewno pozwoli zaoszczędzić sporo pamięci (do 8x) ale czy nie stracę na wydajności (która jest dla mnie priorytetem)?
Pytam, bo zdaje się, że wydobycie informacji z danego bitu jest dość kłopotliwe (wymaga tworzenia jakiś masek, przesunięć bitowych itp.) i nie wiem, czy jest sens się w to tak bawić?
W przypadku tablicy typu char/bool mam łatwy dostęp do każdego "bitu" i moje operacje ograniczają się praktycznie do jednego if-a i ew. przypisania nowej wartości (1/0)...
Co wy sądzicie na ten temat?
Znacie jakieś implementacje, gdzie jest to właśnie tak rozwiązane?
Zdaje się, że @_13th_Dragon w jednym z postów zasugerował, że profesjonaliści tak właśnie by zrobili - ale czy na pewno?
Drugie pytanie to jeśli zostać przy tablicy to czy ma znaczenie czy wybrać char czy bool? W sumie oba typy są jedno bajtowe...
Pozdrawiam i z góry dzięki za waszą pomoc.