Написать и отладить программу решения задачи искусственного
интеллекта,
используя технологию поиска в пространстве состояний.
Крестьянину нужно перевезти через реку
волка
козу
капусту
Но лодка такова, что в ней может поместиться только крестьянин,
а с ним или один волк, или одна коза, или одна капуста.
Но если оставить волка с козой, то волк съест козу,
а если оставить козу с капустой, то коза съест капусту.
Как перевез свой груз крестьянин?
Работа выполнена на языке Prolog + Python c pyswip
В лабе использованя своя просетенькая система логического программирования, полностью совместимая со SWI-prolog.
Отчет в формате — PDF
Исходники отчета — LaTeX2e
Про pyswip
При выполнении этой лабораторной работы, я использовал симбиоз Python и Пролог.
Это позволило мне, например, точно измерить время работы различных видов поиска.
Я приобрел опыт в сращении нескольких языков разлчичных парадигм. Кроме того я могу сам, контролировать вывод, и направить его, не в файл, а на текстовое поле окна, разукрасив его предварительно, всеми цветами радуги.
Пролог - язык логического программирования. Эту парадигму весьма легко воспринимать, если не знаком с другими. В японии его преподают в школе.
А чем Россия хуже? Я стал писать свою лабу исключительно на русском языке,
нарушая стандарт, потому, что хотел бы попытаться написать некое подобие современной системы логического программирования для школьников. Использование русского, облегчило бы процесс обучения.
Про поиск
Я познакомился со стратегией использования пространства состояний. Это оказалось очень удобно, мне не нужно, было для каждого поиска формулировать задачу заново или вносить в формулировку изменения. Поиск в глубину, весьма экономичен по памяти, но в своей наивной реализации неустойчив, и расточителен по времени. Его модификации дают значительно лучшие результаты, но сами программы становятся мене читаемы. В поиске в ширину со временем и памятью все наоборот. А читаемость программы еще хуже, более того пришлось использовать встренные предикаты, без которых до сих пор обходился.
Я думаю, что для различных задач подходят различные виды поиска, и выбор должен зависеть от цели.
МАИ.
Факультет прикладной математики.
Кафедра вычислительной математики и программирования.
используя технологию поиска в пространстве состояний.
Крестьянину нужно перевезти через реку
волка
козу
капусту
Но лодка такова, что в ней может поместиться только крестьянин,
а с ним или один волк, или одна коза, или одна капуста.
Но если оставить волка с козой, то волк съест козу,
а если оставить козу с капустой, то коза съест капусту.
Как перевез свой груз крестьянин?
Работа выполнена на языке Prolog + Python c pyswip
В лабе использованя своя просетенькая система логического программирования, полностью совместимая со SWI-prolog.
Отчет в формате — PDF
Исходники отчета — LaTeX2e
Про pyswip
При выполнении этой лабораторной работы, я использовал симбиоз Python и Пролог.
Это позволило мне, например, точно измерить время работы различных видов поиска.
Я приобрел опыт в сращении нескольких языков разлчичных парадигм. Кроме того я могу сам, контролировать вывод, и направить его, не в файл, а на текстовое поле окна, разукрасив его предварительно, всеми цветами радуги.
Пролог - язык логического программирования. Эту парадигму весьма легко воспринимать, если не знаком с другими. В японии его преподают в школе.
А чем Россия хуже? Я стал писать свою лабу исключительно на русском языке,
нарушая стандарт, потому, что хотел бы попытаться написать некое подобие современной системы логического программирования для школьников. Использование русского, облегчило бы процесс обучения.
Про поиск
Я познакомился со стратегией использования пространства состояний. Это оказалось очень удобно, мне не нужно, было для каждого поиска формулировать задачу заново или вносить в формулировку изменения. Поиск в глубину, весьма экономичен по памяти, но в своей наивной реализации неустойчив, и расточителен по времени. Его модификации дают значительно лучшие результаты, но сами программы становятся мене читаемы. В поиске в ширину со временем и памятью все наоборот. А читаемость программы еще хуже, более того пришлось использовать встренные предикаты, без которых до сих пор обходился.
Я думаю, что для различных задач подходят различные виды поиска, и выбор должен зависеть от цели.
МАИ.
Факультет прикладной математики.
Кафедра вычислительной математики и программирования.