Прикладные методы ИИ. КР1 Вариант 7. Определите предикат. Напишите новую версию процедуры "предок". Напишите предикат gcd(+A,+B,-D). Разработайте программу "Советник по транспорту". КР2 Вариант 7. Задача о 8 ферзях. Поиск в глубину

Контрольная работа
в среде программирования SWI-Prolog



Если Вы считаете, что данная страница каким-либо образом нарушает Ваши авторские права, то Вам следует обратиться в администрацию нашего сайта по адресу info@kursovik.com либо через форму обратной связи

Среда программирования: SWI-Prolog

Название работы: Прикладные методы ИИ. КР1 Вариант 7. Определите предикат. Напишите новую версию процедуры "предок". Напишите предикат gcd(+A,+B,-D). Разработайте программу "Советник по транспорту". КР2 Вариант 7. Задача о 8 ферзях. Поиск в глубину

Вид работы: Контрольная работа

Описание: Прикладные методы ИИ.

Контрольная работа 1.
Вариант 7.
1. Определите предикат p(+U, +V, -L) - истинный тогда и только тогда, когда список L есть список всех элементов списка U, не содержащихся в списке V.
2. Определите предикат p(+U, +V, -L) - истинный тогда и только тогда, когда L - список всех элементов, содержащихся либо в списке U, либо в списке V, но не одновременно в U и V.
3. Напишите новую версию процедуры "предок", которая вырабатывает список представителей всех промежуточных поколений, располагающихся между предком и потомком. Предположим, например, что Генри является отцом Джека, Джек - отцом Ричарда, Ричард - отцом Чарльза, а Чарльз - отцом Джейн. При запросе о том, является ли Генри предком Джейн, должен выдаваться список, характеризующий родственную связь этих людей, конкретно: [джек, ричард, чарльз].
4. Напишите предикат gcd(+A,+B,-D) - истинный тогда и только тогда, когда D -наибольший общий делитель двух целых положительных чисел A и B.
5. Разработайте программу "Советник по транспорту". Выберите либо сеть, состоящую из городов, либо транспортную сеть маршрутов поездов или автобусов в пределах одного города. Вы должны информировать систему о том, откуда и куда Вы собираетесь добраться, а система должна выдавать рекомендации о том, какими поездами, автобусами, самолетами и т. д. Вам следует воспользоваться, чтобы добраться до пункта назначения. Указание: см. "Поиск в глубину" (Учебное пособие, часть 1, 2.2).

Контрольная работа 1.
Вариант 7.
Логическая задача:
Задача о 8 ферзях. Поиск в глубину.

Задача о 8 ферзях.
На шахматной доске 8x8 надо расставить 8 ферзей, чтобы ни один из ферзей не находился под боем другого.
Указания к решению. Положение одного ферзя на доске задается парой целых чисел от 1 до 8: номера вертикалей и горизонталей. Легко видеть, что каждая вертикаль (как впрочем, и горизонталь) должна содержать по одному ферзю. Поэтому, мы можем экономно задавать положение на доске восьми ферзей списком из 8 чисел, задающих значения только горизонтальной координаты: так, например, список [2,5,7,4,3,6,8] говорит, что первый ферзь стоит на клетке (2, 1), второй - (5, 2), третий - (7, 3) и т. д. Различные состояния решения задачи мы можем представить в виде списка горизонтальных координат уже стоящих на доске ферзей, так, например, список [2] говорит о том, что на доске стоит только один ферзь на клетке (2,1), список [2,5] говорит о том, что на доске два ферзя на клетках (2, 1) и (5,2). Список длиной 8, говорит о том, что расставлены все ферзи.
Теперь нужно определить разрешенные переходы из одного состояния задачи в другое. Для этого надо определить предикат
'не бьет'(НовыйФерзь, ФерзиУжеСтоящиеНаДоске)
Этот предикат легко определить рекурсивно: "НовыйФерзь не бьет список ферзей [F|T], если он не бьет ферзь F и не бьет список ферзей T".
Начальное состояние: []. Конечное состояние: [_,_,_,_,_,_,_,_].
Поскольку решение этой задачи при поиске выдает последовательность состояний, т.е. список списков, а нас интересует только конечная расстановка, то во втором аргументе предикат solve (см. программу поиска в глубину в лекциях) достаточно конкретизовать только голову списка: solve([],[H|_]).

Год: 2023

Данный заказ (контрольная работа) выполнялся нашим сайтом в 2023-м году, в рамках этого заказа была разработана программа в среде программирования SWI-Prolog. Если у Вас похожее задание на программу, которую нужно написать на SWI-Prolog, либо на другом языке программирования, пожалуйста заполните форму, приведённую ниже, после чего Ваше задание в первую очередь рассмотрит наш программист, выполнявший в 2023-м году этот заказ, если он откажется, то Ваше задание оценят другие наши программисты в течение 48-и часов, если оценка нужна срочно, просим Вас оставить пометку об этом - напишите в тексте задания фразу "СРОЧНЫЙ ЗАКАЗ".

Купить эту работу

Тел.: +79374242235
Viber: +79374242235
Telegram: kursovikcom
ВКонтакте: kursovikcom
WhatsApp +79374242235
E-mail: info@kursovik.com
Skype: kursovik.com