Регистрация
Среда программирования: PROLOG
Название работы: Разработка экспертных систем при помощи языка программирования PROLOG
Вид работы: Лабораторная работа
Описание: Разработка экспертных систем при помощи языка программирования PROLOG
Основы экспертных систем.
Цель работы:
Овладеть навыками проектирования модели предметной области при помощи языка программирования PROLOG: формулировать факты и правила для решения поставленной задачи.
Задача:
Разработать набор фактор и правил в языке программирования PROLOG для решения поставленной задачи.
Задание на лабораторную работу
В рамках выполнения лабораторной работы требуется:
• сформулировать набор фактов и правил при помощи языка программирования PROLOG;
• разработать набор тестов для проверки работоспособности написанной программы;
• написать отчет о выполнении лабораторной работы.
Варианты заданий:
1. Имеется список из нескольких дисциплин, изучаемых студентами за время обучения. Для каждой дисциплины известен семестр, во время которого она изучается. Необходимо для произвольно заданной пользователем дисциплины определить, согласно его выбору: какие дисциплины изучаются ранее заданной, позже заданной, одновременно с заданной. При отсутствии запрашиваемой дисциплины в списке вывести ответ «Дисциплина не изучается».
2. Имеются данные о книгах библиотеки в виде: автор книги, название книги, тематика. Кроме того, имеются данные о читателях в виде: фамилия читателя, название взятой им книги. Программа должна осуществлять следующие действия: Запросить у пользователя (читателя) фамилию и если у него уже имеются книги на руках, отказать в выдаче книг. В противном случае – выдать ему имеющийся набор книг либо запрашиваемого автора, либо по запрашиваемой тематике. Нельзя предлагать книги, находящиеся на руках.
При отсутствии запрашиваемых сведений предусмотреть соответствующий ответ.
3. Некто желает обзавестись домашним животным. Имеются данные о суточном рационе, необходимом разного рода животным, и соответственно о ценах за единицу продукта. Необходимо, исходя из месячного заработка пользователя и той минимальной суммы, которая требуется на жизнь ему самому, определить, каким животным он мог бы обзавестись, или сообщить о том, что на содержание питомца недостаточно средств. Этот вариант описан в примере.
4. Служба знакомств имеет набор сведений о желающих завести знакомство в виде: фамилия, имя, пол, возраст, хобби, город, профессия, дети. Кроме того, для этих же клиентов отдельно хранятся их пожелания относительно будущего партнера. Необходимо клиенту подобрать кандидатуры для знакомства или сообщить об отсутствии подходящих кандидатур.
5. Имеется информация о зарплате и семейном положении мужчин в виде: ФИО, зарплата, женат ли на настоящий момент и если да, то на ком. Кроме того, имеется информация о существовавших когда-либо парах (возможно, уже распавшихся) и их детях в виде: отец, мать, количество детей. Необходимо по запросу пользователя рассчитать сумму алиментов, приходящуюся заданной женщине, сумму алиментов, которую должен выплачивать заданный мужчина, составить список алиментоплательщиков. При отсутствии запрашиваемых сведений предусмотреть соответствующие ответы.
6. Имеется описание авиарейсов, в котором отмечаются пункты отправления и назначения, дата, время вылета и прибытия. Необходимо выбрать авиарейсы, подходящие для того, чтобы прибыть из одного пункта в заданный пункт к определенному времени, но не ранее, чем за N часов до назначенного времени. При отсутствии запрашиваемых сведений предусмотреть соответствующий ответ.
7. Имеется описание движения автобусов, в котором содержатся пункты отправления и пункты назначения. Необходимо определить для двух произвольно взятых пунктов, существует ли возможность добраться из первого пункта во второй на автобусе, или если прямого сообщения нет – на двух автобусах. Предусмотреть вариант, когда автобусного сообщения нет.
8. Имеется ряд фирм, продающих компьютеры по различной цене без стоимости доставки. Известна стоимость доставки, устанавливаемая каждой фирмой отдельно в расчете за один километр пути и известно расстояние до каждой из фирм в километрах. Кроме того, имеется список названий ненадежных фирм, с которыми мы не хотим иметь дела. Необходимо определить подходящие фирмы, исходя из имеющегося у нас количества денег для покупки. При отсутствии запрашиваемых сведений предусмотреть соответствующий ответ.
9. В деканате хранится информация о составе студенческих групп потока и о результатах сдачи экзаменов студентами различных групп в виде:
поток(группа1,…,группа5); группа_i(студент); оценки(студент, оценка1,..., оценка5).
Необходимо написать программу, позволяющую пользователю получить информацию:
а) список студентов заданной группы;
б) список отчисленных за неуспеваемость студентов потока;
в) список отчисленных за неуспеваемость студентов заданной группы.
При отсутствии запрашиваемых сведений предусмотреть соответствующий ответ.
10. В деканате хранится информация о составе студенческих групп потока и о результатах сдачи экзаменов студентами различных групп в виде:
поток(группа1,…,группа5); группа_i(студент); оценки(студент, оценка1,..., оценка5).
Необходимо написать программу, позволяющую пользователю получить информацию:
а) список студентов потока, получающих стипендию;
б) список студентов заданной группы, получающих стипендию;
в) определить, к какой группе принадлежит заданный студент.
При отсутствии запрашиваемых сведений предусмотреть соответствующий ответ.
11. Информационная база ресторана содержит список блюд, которые могут быть в нем приготовлены, в виде: блюдо(название_блюда).
Для каждого блюда известен список ингредиентов, необходимый для его приготовления: ингредиенты(название блюда, ингридиент1,…, ингридиент5). Кроме того, известны продукты, имеющиеся в наличии на сегодняшний день в виде: имеется(ингредиент). Необходимо составить программу, позволяющую: а) составить список блюд, которые можно приготовить сегодня, б) составить список продуктов, которые необходимо приобрести.
При отсутствии запрашиваемых сведений предусмотреть соответствующий ответ.
12. Информационная база ресторана содержит список блюд, которые могут быть в нем приготовлены, в виде: блюдо(название_блюда).
Для каждого блюда известен список ингредиентов, необходимый для его приготовления: ингредиенты(название блюда, ингредиент1,…, ингредиент5). Кроме того, известны продукты, имеющиеся в наличии на сегодняшний день в виде: имеется(ингредиент). Необходимо составить программу, позволяющую составить вегетарианское меню, исходя из имеющихся продуктов.
При отсутствии запрашиваемых сведений предусмотреть соответствующий ответ.
13. Башня из кубиков может быть описана совокупностью фактов вида: НА(Кубик1, Кубик2), которые истинны, если Кубик1 поставлен на Кубик2.
Определить предикат ВЫШЕ(Кубик1, Кубик2), который истинен, если Кубик1 расположен в башне выше, чем Кубик2 и составить программу, позволяющую определить: список кубиков, расположенных выше заданного пользователем кубика; список кубиков, расположенных ниже заданного пользователем кубика; расположенных на том же уровне, что и кубик, заданный пользователем.
При отсутствии запрашиваемых сведений предусмотреть соответствующий ответ.
14. Покупателю необходимо приобрести три вида товара. Он может сделать это как в одном магазине (если они там есть), так и в нескольких. Для каждого магазина известны имеющиеся в нем товары (не более трех) и их стоимость в данном магазине: магазин(название, товар1, стоимость 1, товар2, стоимость2, товар3, стоимость3).
Дорога от дома до магазина или от магазина до магазина обходится покупателю в определённую сумму (стоимость проезда). Необходимо выбрать возможные маршруты движения покупателя, если известно, что ему надо уложиться в определенную сумму денег. Товары, которые необходимо приобрести и сумма денег покупателя определяются пользователем. При отсутствии запрашиваемых сведений предусмотреть соответствующий ответ.
15. Имеются данные о фирмах, осуществляющих прием персонала на работу в виде: фирма(название_фирмы, вид_работы, зарплата_min, зарплата_max, требование1, требование2, требование3, место_работы, набор_требований_ к_физ_данным), где требованиеi – умение, которым должен обладать кандидат на работу. Кроме того, известны адреса фирм: адрес(название_фирмы, адрес_фирмы). Требуется: а) предложить предикаты, позволяющие определить сомнительные виды работ;
б) предложить набор фирм для устройства на работу, исходя из желаемой зарплаты и удовлетворения требованиям, включая все фирмы; в) предложить набор фирм для устройства на работу согласно желаемой зарплате и возможностям, исключая сомнительные виды работ.
При отсутствии запрашиваемых сведений предусмотреть соответствующий ответ.
16. Имеется список владельцев квартир, включающий ФИО владельца и место расположения квартиры – город и адрес. Найти людей, имеющих более одной квартиры в пределах одного города, и выдать их ФИО и адреса.
При отсутствии запрашиваемых сведений предусмотреть соответствующий ответ.
17. Имеется база данных по лекарственным препаратам, включающая информацию: название лекарства, две болезни, при которых оно показано, стоимость. Написать программу, позволяющую предложить подходящий набор лекарств больному, исходя из его диагноза, аллергии на лекарства (не более одного) и покупательной способности.
При отсутствии запрашиваемых сведений предусмотреть соответствующий ответ.
18. В налоговой инспекции имеются данные с предприятий округа о доходах работников в форме: название предприятия, фамилия работающего, оклад. Необходимо осуществить выбор людей, работающих более, чем на одном предприятии и получающих хотя бы на одном из этих предприятий оклад более заданного.
При отсутствии запрашиваемых сведений предусмотреть соответствующий ответ.
Список контрольных вопросов
1. Что необходимо для задания любой формальной системы?
2. Что такое логика предикатов первого порядка?
3. Что такое правило резолюции?
4. Что такое унификация в языке PROLOG?
5. Что такое backtracking в языке PROLOG?
6. Для чего нужен оператор отсечения?
7. Что такое анонимная переменная?
8. Факты и правила в языке PROLOG.
9. Что такое рекурсия? Как она используется в языке PROLOG? Приведите примеры.
Год: 2017
Данный заказ (лабораторная работа) выполнялся нашим сайтом в 2017-м году, в рамках этого заказа была разработана программа в среде программирования PROLOG. Если у Вас похожее задание на программу, которую нужно написать на PROLOG, либо на другом языке программирования, пожалуйста заполните форму, приведённую ниже, после чего Ваше задание в первую очередь рассмотрит наш программист, выполнявший в 2017-м году этот заказ, если он откажется, то Ваше задание оценят другие наши программисты в течение 48-и часов, если оценка нужна срочно, просим Вас оставить пометку об этом - напишите в тексте задания фразу "СРОЧНЫЙ ЗАКАЗ".
Тел.: ![]() Viber: ![]() Telegram: ![]() ВКонтакте: ![]() ![]() E-mail: ![]() Skype: ![]() |