Будь умным!


У вас вопросы?
У нас ответы:) SamZan.ru

варианта проанализировать эффективность безопасность и непротиворечивость решения

Работа добавлена на сайт samzan.ru: 2016-03-30


Цель работы: 

Написать и отладить Пролог-программу решения логической задачи в соответствии с номером варианта, проанализировать эффективность, безопасность и непротиворечивость решения.

Под эффективностью и безопасностью понимать сведение к минимуму операции перебора и предотвращение зацикливания, и комбинаторного взрыва нелогическими средствами языка Пролог. Под непротиворечивостью понимать поиск единственного верного решения.

Задача:

Отец дал каждой из своих дочерей по 8 рублей на покупки. – Я хочу, чтобы к Восьмому марта каждая из вас, - сказал он,- купила подарки для тети Нади, тети Дины, тети Розы и тети Сони. Но при этом постарайтесь выполнить три условия. Каждый подарок должен стоить целое число рублей. Каждая из вас должна по-разному распределить восемь рублей на четыре подарка. Подарки для каждой женщины должны в сумме стоить одинаково. Девушки точно выполнили наказ своего отца. Люся истратила на подарок для тети Нади больше денег, чем на подарки для всех остальных женщин вместе. Клара израсходовала на подарок для тети Сони и Тети Розы столько же денег, сколько Люся истратила на покупку для двух других женщин. Самы дорогой подарок Марины предназначался для тети Дины, а Наташа самый дорогой из своих подарков преподнесла тете Розе. Пятую дочь звали Светлана. Как израсходовала каждая из девушек свои деньги?

Вариант задания: 26

Реализация данных условий логической задачи:

 

f(A,A,_).

f(I,A,B):-A<B,A1 is A+1,f(I,A1,B).

p(X,1,[X]):-!.

p(X,N,[I|Tail]):-X>0,f(I,1,X),X1 is X-I,N1 is N-1,p(X1,N1,Tail).

member(H,[H|_]).

member(H,[_|Tail]):-member(H,Tail).

 

dif(A,B):-member(X,A),not(member(X,B)),!.

 

solve(Lyusya,Klara,Marina,Natasha,Svetlana):-

%Условия Люси:

   p(8,4,Lyusya),

   Lyusya=[Nadya1,Dina1,Roza1,Sonya1],

   Nadya1>4,

%Условия Клары:

   p(8,4,Klara),

                   dif(Lyusya,Klara),

   Klara=[Nadya2,Dina2,Roza2,Sonya2],

   Sonya2+Roza2=:=Nadya1+Dina1,

%Условия Марины:

   p(8,4,Marina),

                   dif(Lyusya,Marina),

                   dif(Klara,Marina),

   Marina=[Nadya3,Dina3,Roza3,Sonya3],

   Dina3>Nadya3,

   Dina3>Roza3,

   Dina3>Sonya3,

%Условия Наташи:

   p(8,4,Natasha),

                   dif(Lyusya,Natasha),

                   dif(Klara,Natasha),

                   dif(Marina,Natasha),

   Natasha=[Nadya4,Dina4,Roza4,Sonya4],

   Roza4>Nadya4,

   Roza4>Dina4,

   Roza4>Sonya4,

%Условия Светланы:

   p(8,4,Svetlana),

                   dif(Lyusya,Svetlana),

                   dif(Klara,Svetlana),

                   dif(Marina,Svetlana),

                   dif(Natasha,Svetlana),

   Svetlana=[Nadya5,Dina5,Roza5,Sonya5],

%Глобальное 3-е условие Отца

   Nadya1+Nadya2+Nadya3+Nadya4+Nadya5=:=10,

   Dina1+Dina2+Dina3+Dina4+Dina5=:=10,

   Roza1+Roza2+Roza3+Roza4+Roza5=:=10,

   Sonya1+Sonya2+Sonya3+Sonya4+Sonya5=:=10.

?-solve(A,B,C,D,E),

write(' Lyusya: '),write(A),

write(' Klara: '),write(B),

write(' Marina: '),write(C),

write(' Natasha: '),write(D),

write(' Svetlana: '),write(E),nl,!.

Как видно реализовать задачу было не очень сложно. На каждой девушке нужно было поставить ее условия, а так как все должно выполнятся одновременно, то есть смысл занести все условия под один предикат.

Ответ:

   Lyusya: [5,1,1,1]

   Klara: [1,1,2,4]

   Marina: [1,3,2,2]

   Natasha: [2,2,4,0]

   Svetlana: [1,3,1,3]

Так как в лабораторной требовалось одно решение, то я просто решил отсечь 14 остальных возможных решений.

Выводы:

В данной лабораторной я убедился, что язык Пролог способен решать довольно сложные для человека задачи, с помощью обыкновенного перечисления всех поставленных в задании условий. А так же, находить решения, которые человек или иной язык программирования мог упустить.

Логическое Программирование

Лабораторная работа №2: Язык Пролог и его применение для решения логических задач

   

 

      Группа:  8(О)-206(Б)

Студент:  Дорофеев Артем

Вариант задания:  14

9 декабря 2012 г.




1. на тему- квантовая механика Вариант 1 Выполнил- Сергиенко Н
2. Социально-психологические особенности преступности несовершеннолетни
3. Утверждаю
4. Проблемы исполнения договорного обязательства в гражданском праве России
5. ЗАЩИТНОЙ ЗОНЫ ПРЕДПРИЯТИЯ.html
6. Властвующие политические элиты и массы
7. Тема організація та здійснення виставковоярмаркових торгів; Мета ознайомитися з організацією та порядко
8. тематического занятия Котенок для средней группы детского сада
9. Шаховская В самой дальней и давней памяти и даже в том возрасте когда разум еще не влияет на чувства я нах
10. на тему ’40- Государственное регулирование цен и заработной платы- проблемы и перспективы
11. Проект отклоняется
12. Международные соглашения России об избежании двойного налогоообложени
13. Сухого ферментативного аминосодержащего гидролизата мяса рыбы Операторное описание стадий промышленн.html
14. тематизированный перечень в развернутом ассортименте с присвоением каждой специальной разновидности сокра
15. Единый расчетный центр
16. Общая характеристика органов кроветворения и иммунологической защиты
17. Агрохим обследпочв ряд мероприятий кот1
18. Вычислительные машины системы и сети направляемых на преддипломную практику в период с 03
19. Тема содержание Допуск Дата Цена ВНИМАНИ
20. разброд и шатания в стане замбийской оппозиции привели к тому что ни одна из оппозиционных политических пар.html