Моя теория подтвердилась! Написал новый архиватор по этому алгоритму, 14969 слов упаковалось в 36722 байта, а по старому алгоритму - в 38617. Теперь пишу дизархиватор на асме, а количество слов в словаре уже можно смело увеличить до 14000.
Вид для печати
Есть результаты выделения общих фрагментов. Если поможет- могу поделиться.
В аттаче результат. Все идентификаторы TOK_* - это наиболее употребительные фрагменты исходных строк (разбитые по длине блоки из склеенных слов). Параметры поиска- от 3 до 16 символов на фрагмент (реально получилось до 6), минимум 3 ссылки на фрагмент.
Если что, смотри тут http://zx.pk.ru/showthread.php?t=9429 на предмет инструментария и описания.
Посмотрел твои разработки. Всё-таки не очень жмется словарь токенизацией, т.к. относительно мало их повторов. Я уже и раньше думал над этим. Где-то в 1.5-2 раза только удается сжать.
А я наконец написал распаковщик в игре для своего алгоритма. Работает хорошо, но медленно. Только за минимум 3 минуты обдумывания хода компьютер находит хорошие слова из 4-5 букв. До обдумывания слов из 7-8 букв не успевает даже доходить. :(
---------- Post added at 15:46 ---------- Previous post was at 15:45 ----------
тут, видимо, уже нужно думать над самим алгоритмом обдумывания хода, чтобы не тупо все клетки перебирал.
---------- Post added at 15:49 ---------- Previous post was at 15:46 ----------
Человек, когда думает в "Эрудите", сначала из выпавших букв пытается собрать слово, а недостающие буквы ищет на поле, или наоборот пытается достроить то, что есть на поле. Из-за этого может пропустить длинные слова, но зато часто находит несколько вариантов слов среднего размера. Наверное, эта стратегия для спектрума быстрее будет работать.