Книга: Программирование на языке Пролог для искусственного интеллекта
4.5.4. Заключительные замечания
4.5.4. Заключительные замечания
Три решения задачи о восьми ферзях показывают, как к одной и той же задаче можно применять различные подходы. Мы варьировали также и представление данных. В одних случаях это представление было более экономным, в других — более наглядным и, до некоторой степени, избыточным. К недостаткам более экономного представления можно отнести то, что какая-то информация всякий раз, когда она требовалась, должна была перевычисляться.
В некоторых случаях основным шагом к решению было обобщение задачи. Как ни парадоксально, но при рассмотрении более общей задачи решение оказывалось проще сформулировать. Принцип такого обобщения — стандартный прием программирования, и его можно часто применять.
Из всех трех программ третья лучше всего показывает, как подходить к общей задаче построения структуры из заданного множества элементов при наличии ограничений.
Возникает естественный вопрос: " Какая из трех программ наиболее эффективна?" В этом отношение программа 2 значительно хуже двух других, а эти последние — одинаковы. Причина в том, что основанная на перестановках программа 2 строит все перестановки, тогда как две другие программы способны отбросить плохую перестановку не дожидаясь, пока она будет полностью построена. Программа 3 наиболее эффективна. Она избегает некоторых арифметических вычислений, результаты которых уже сразу заложены в избыточное представление доски, используемое этой программой.
Упражнение
4.7. Пусть поля доски представлены парами своих координат в виде X/Y
, где как X, так и Y принимают значения от 1 до 8.
(а) Определите отношение ходконя( Поле1, Поле2)
, соответствующее ходу коня на шахматной доске. Считайте, что Поле1
имеет всегда конкретизированные координаты, в то время, как координаты поля Поле2
могут и не быть конкретизированы. Например:
?- ходконя( 1/1, S).
(нет)
S = 3/2;
S = 2/3;
no
(b) Определите отношение путьконя( Путь)
, где Путь
— список полей, представляющих соответствующую правилам игры последовательность ходов коня по пустой доске.
(с) Используя отношение путьконя
, напишите вопрос для нахождения любого пути, состоящего из 4-x ходов, и начинающегося с поля 2/1, а заканчивающегося на противоположном крае доски (Y = 8). Этот путь должен еще проходить после второго хода через поле 5/4.
- 14.7. Заключительные замечания
- 16.4. Заключительные замечания
- Заключительные замечания
- 4.13. Замечания по работе Firewall
- Замечания по работе с файлами
- 7.5. Замечания по безопасности
- 9.5. Замечания по работе squid
- 12.4.6. Дополнительные замечания
- Библиографические замечания
- Замечания о функциях установления соединения
- 13.12 Замечания о производительности