Вниз
Скачать: CL | DM;

Хранение данных   Найти похожие ветки 

← →
Rembo   (2007-01-14 15:01) [0]

Привет! Делаю игру (Bantumi, была в мобиле Nokia 3310) и решил попробывать сделать самообучающийся ии таким образом: если человек побеждает компьютер, то ходы человека записываються в файл (базовый ии включает в себя несколько простых проверок: "можно ли походить 2 раза", "можно ли украсть очки у противника" и т.д). В записи в файле представляют собой массив из 14 байт (12 байт - состояние игры, 13-ый - количество очков с которыми выиграл человек, 14 отвечает за сам ход), И столкнулся с проблемой: игровой стол представляет собой массив из 12 чисел 0..25. Всего возможных состояний 26^12, перемножив на 12 байт, получаеться что полный файл будет весить ~ОЧЕНЬ ОЧЕНЬ МНОГО TB. Собственно вопрос: как уменшить размер записи? Есть ли варианты? Или я пошел по неверному пути?


← →
Rembo   (2007-01-14 15:07) [1]

Вот пришла в голову мысль: вместо того чтоб хранить весь массив 12 байт, делать из него хеш, получаеться 4 байта +2 : 30^12*6= бесконечность =(


← →
Rembo   (2007-01-14 19:56) [2]

Мда, перенесли, а тут тем более никто не ответит!


← →
ors_archangel ©   (2007-01-15 02:27) [3]

Оставляй только сколько-то хороших примеров - остальные - удаляешь, эволюция! - выживает сильнейший.
Сдеалть пакетную запись ходов: некоторое состояние - триггер: цепочка ходов, - не надо будет записывать состояние перед каждым ходом, но затрудняется поиск по примерам, хотя если цепочек много, то не страшно.
Обучать нейросеть, предсказывающую ход в зависимости от состояния на примерах, где человек победил, да и на примерах, где комп победил то же. Размер нейросети ограничить несложно, и она может находить сложные закономерности.
Реорганизовать хранение: вместо отображения состояние -> ход использовать сколько возможно ходов списков, в которых будут храниться состояния: состояния храним в сжатом виде, например сортируем их и почленно сжимаем RLE или ещё как-нибудь, даже zlib может хорошо сжимать: в надежде, что один и тот же ход происходит из похожих позиций, только в случае со сжатием поиск придётся дополнительно усложнять: разжатие там всякое и т.д.
Вообще, обычно (а вообще не знаю) делают функцию оценки позиции и просчитывают свои/чужие ходы в будущее по разным ветвям и выберают лучший путь, т.е. глубокий перебор возможных ходов для поиска максимально выйгрышного состояния - вообще ничего хранить не надо, хотя можно какие-нибудь интересные случаи и сохранить.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.029 c
15-1168798383
AgSmit
2007-01-14 21:13
2007.02.04
Зависает сервер...


8-1148391631
diman_1978
2006-05-23 17:40
2007.02.04
увеличение размера картинки через TSampleGrabber


15-1169059235
vasIzmax
2007-01-17 21:40
2007.02.04
Не у кого спросить...


3-1163659092
Ega23
2006-11-16 09:38
2007.02.04
Что отработает раньше: TDataSet.OnCalcField


15-1168861524
Alex_ey
2007-01-15 14:45
2007.02.04
знание компьютера




   Наверх