Перечислим теперь требования к пролог-программе:
1. При программировании и отладке следует определить все возможные прототипы для всех 20 предикатов программы и поместить в тексте программы рядом с записью каждого предиката строку комментария, содержащую все обнаруженные прототипы. Прототипы, приводящие к недетерминированным вычислениям, необходимо пометить особо.
2. Для недетерминированных предикатов subset, path, short_path, min_path исключить возможность порождения дважды одного и того же результата (решения). Например, недопустимо возникновение дважды одного и того же пути во множестве решений предиката path.
3. Предикаты flatten_tree, short_path, min_path работы с деревьями и графами должны быть эффективно реализованы. Для flatten_tree потребуется использовать разностный вариант append вместо простого или же технику накапливающего параметра; а для предикатов поиска короткого и минимального пути в графе - выбор подходящего алгоритма перебора вершин графа.
4. Для всех предикатов работы с деревьями и графами необходимо заготовить тестовые данные, демонстрирующие различные результаты их работы для всех возможных прототипов.
5. Для реализации предиката sort допускается любой алгоритм сортировки, кроме пузырьковой: сортировка вставкой (включением), выбором, слиянием, быстрая сортировка и др.
6. Поскольку цель задания - освоение основ логического программирования, то в программе запрещается использовать внелогические предикаты, имеющие побочные эффекты: free, bound, read, assert, retract и другие.
Опубликовал Kest
February 18 2011 21:17:51 ·
0 Комментариев ·
13828 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •