Как уже указывалось в Демплосе, FF не гарантирует поиск оптимальных решений. Причина этого важно знать, в случае, если вы действительно хотите, чтобы найти оптимальные решения:
- алгоритм использует (исполнение хилклаймбингу) не обеспечивает оптимальности гарантий
- при эвристическом он использует (FF эвристический) также не подходит для поиска оптимальных решений.
Для «исправления» обоих необходимо использовать алгоритм A * в сочетании с допустимой эвристикой.
Я рекомендую установить известную систему Fast Down Down Planning (www.fast-downward.org/), поскольку она поддерживает большое количество различных алгоритмов и эвристик. Как algithm, как сказано, A * следует выбирать, а в качестве эвристики - любое допустимое. При такой комбинации любой найденный план является оптимальным решением данной проблемы.
Просто замечание (в основном для экспертов по поиску/планированию): A * гарантируется только поиск оптимальных решений, если он реализует поиск по дереву, а не поиск по графику (т. Е. Если дубликаты неоднократно расширяются). Если он реализует поиск по графу, недостаточно для того, чтобы эвристика была допустимой, она также должна быть монотонной (также называемой последовательной). Однако, согласно http://www.fast-downward.org/Doc/SearchEngine, он реализует поиск по дереву (я думаю). Кроме того, существуют последовательные эвристики.