Помощь в написании студенческих работ
Антистрессовый сервис

Кто должен отремонтировать статую?

РефератПомощь в написанииУзнать стоимостьмоей работы

Который вызывается в теле предиката поиска решения при условии, что переменная X связана конкретным значением выбранного мастера, и определяет для каждого мастера истинность каждого из трех высказываний через связывание соответствующих переменных R1, R2, R3 и возвращением в тело предиката поиска решения поочередно значений переменных R1,…, R12. Именно следующее согласование полученных связанных… Читать ещё >

Кто должен отремонтировать статую? (реферат, курсовая, диплом, контрольная)

После того, как была повреждена статуя Афины, Сократу поручили выбрать наиболее квалифицированного мастера, чтобы тот произвел необходимый ремонт. Сократ провел собеседование с четырьмя рекомендованными ему мастерами. Не все, сказанное претендентами, было правдиво, однако все четверо сделали поровну правдивых и поровну лживых заявлений. Они сказали следующее:

A.

1. У меня нет всех необходимых инструментов.

2. G — самый высококвалифицированный из нас.

3. B опытен в такого рода работах.

B.

1. Самый квалифицированный — A.

2. G — никогда не работал со слоновой костью.

3. Первое заявление A ложно.

V.

1. Я опытен в таких работах.

2. Самый квалифицированный — B.

3. У A нет всех необходимых инструментов.

G.

1. Самый квалифицированный — V.

2. У A нет всех необходимых инструментов.

3. Я никогда не работал со слоновой костью.

Которого из мастеров выбрал Сократ? [1, C.12].

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

автор высказывания (1),.

кто из мастеров выбран Сократом (2),.

истинность высказывания в зависимости от сочетания значений свойств (1,2,4),.

порядковый номер высказывания автора (1).

Формализация данных заключалась в использовании предикатов:

человек (кто_выбран) (5).

заявление (кто_говорит, кто_выбран, истина, номер) (6).

на доменах пользователя кто_говорит, кто_выбран, истина, номер. В разделе предложений программы два первых предиката представлены совокупностью фактов. При этом особенностью формализации данных высказываний является невозможность однозначно определить истинность высказывания даже для конкретных значений автора высказывания и выбранного мастера. Например, если выбраны мастера A, B или V то два из трех высказываний G могут быть как истинными, так и ложными.

Особенностью данной задачи является условие «…все четверо сделали поровну правдивых и поровну лживых заявлений». Поровну! Но не известно соотношение количества правдивых и ложных высказываний. Для формализации данного условия был введен предикат индекс_заявления (кто_говорит, кто_выбран, истина, истина, истина),.

который вызывается в теле предиката поиска решения при условии, что переменная X связана конкретным значением выбранного мастера, и определяет для каждого мастера истинность каждого из трех высказываний через связывание соответствующих переменных R1, R2,R3 и возвращением в тело предиката поиска решения поочередно значений переменных R1,…, R12. Именно следующее согласование полученных связанных значений переменных: программирование математическая логика.

R1+R2+R3=R4+R5+R6, R4+R5+R6=R7+R8+R9, R10+R11+R12=R7+R8+R9,.

дает гарантию соблюдения условия, приведенного выше.

Если на данном этапе закончить моделирование предметной области задачи, написать программу и провести тестирование, то мы получим 14 решений. Такое тоже бывает. Но аналитически было получено ровно одно решение. Где же мы были невнимательны? Оказывается, ряд высказываний должен быть согласован между собой. Например, если будет выбран мастер A, то первое и третье высказывание B должны быть равными. Если же будет выбран мастер V, то второе высказывание A, первое высказывание B и второе высказывание V должны быть ложными; третье высказывание A, первые высказывания V и G должны быть истинными; первое высказывание A должно совпадать с третьим высказыванием V; второе высказывание B должно совпадать с третьим высказыванием G; третье высказывание B должно быть противоположно первому высказыванию A. Подобным образом должно пройти моделирование и в оставшихся случаях.

Формализацией данной модели служит предикат тест (кто_выбран, истина,…, истина) % 12 аргументов на домене истина, согласование которого обеспечивает внутреннюю непротиворечивость высказываний в условиях поиска решения задачи путем подбора значения для свободной переменной Мастер. И только теперь мы получим единственное решение данной задачи.

Приведем полностью текст программы:

domains.

кто_говорит, кто_выбран =char.

истина, номер = integer.

predicates.

человек (кто_выбран) заявление (кто_говорит, кто_выбран, истина, номер) индекс_заявления (кто_говорит, кто_выбран, истина, истина, истина) тест (кто_выбран, истина, истина, истина, истина, истина, истина, истина, истина, истина, истина, истина, истина) поиск.

clauses.

человек (`A').человек (`B'). человек (`V').человек (`G').

заявление (`A','A', 0,1). заявление (`A','A', 0,2). заявление (`A','A', 0,3).

заявление (`B','A', 1,1). заявление (`B','A', 1,2). заявление (`B','A', 0,2). заявление (`B','A', 1,3).

заявление (`V','A', 0,1). заявление (`V','A', 1,1). заявление (`V','A', 0,2). заявление (`V','A', 0,3).

заявление (`G','A', 0,1). заявление (`G','A', 1,1). заявление (`G','A', 0,2). заявление (`G','A', 1,3). заявление (`G','A', 0,3).

заявление (`A','B', 1,1). заявление (`A','B', 0,1). заявление (`A','B', 0,2). заявление (`A','B', 1,3). заявление (`A','B', 0,3).

заявление (`B','B', 0,1). заявление (`B','B', 0,2). заявление (`B','B', 1,2). заявление (`B','B', 1,3). заявление (`B','B', 0,3).

заявление (`V','B', 1,1). заявление (`V','B', 0,1). заявление (`V','B', 1,2). заявление (`V','B', 1,3). заявление (`V','B', 0,3).

заявление (`G','B', 1,1). заявление (`G','B', 1,2). заявление (`G','B', 0,2). заявление (`G','B', 1,3). заявление (`G','B', 0,3).

заявление (`A','V', 1,1). заявление (`A','V', 0,1). заявление (`A','V', 0,2). заявление (`A','V', 1,3).

заявление (`B','V', 0,1). заявление (`B','V', 0,2). заявление (`B','V', 1,2). заявление (`B','V', 1,3). заявление (`B','V', 0,3).

заявление (`V','V', 1,1). заявление (`V','V', 0,2). заявление (`V','V', 1,3). заявление (`V','V', 0,3).

заявление (`G','V', 1,1). заявление (`G','V', 1,2). заявление (`G','V', 0,2). заявление (`G','V', 1,3). заявление (`G','V', 0,3).

заявление (`A','G', 1,1). заявление (`A','G', 0,1). заявление (`A','G', 1,2). заявление (`A','G', 0,3). заявление (`A','G', 1,3).

заявление (`B','G', 0,1). заявление (`B','G', 0,2). заявление (`B','G', 0,3). заявление (`B','G', 1,3).

заявление (`V','G', 1,1). заявление (`V','G', 0,1). заявление (`V','G', 0,2). заявление (`V','G', 0,3). заявление (`V','G', 1,3).

заявление (`G','G', 0,1). заявление (`G','G', 1,2). заявление (`G','G', 0,2). заявление (`G','G', 0,3).

индекс_заявления (`A', X, R1,R2,R3):;

заявление (`A', X, R1,1), заявление (`A', X, R2,2), заявление (`A', X, R3,3).

индекс_заявления (`B', X, R1,R2,R3):;

заявление (`B', X, R1,1), заявление (`B', X, R2,2), заявление (`B', X, R3,3).

индекс_заявления (`V', X, R1,R2,R3):;

заявление (`V', X, R1,1), заявление (`V', X, R2,2), заявление (`V', X, R3,3).

индекс_заявления (`G', X, R1,R2,R3):;

заявление (`G', X, R1,1), заявление (`G', X, R2,2), заявление (`G', X, R3,3).

тест (`A',_,_,_, R4,_, R6,_,_,_,_,_,_):-R4=R6.

тест (`B', R1,_, R3, R4,_, R6,_,_,_,_,_,_):-R4=R6,R1=R3.

тест (`V', R1, R2,R3,R4,R5,R6,R7,R8,R9,R10,_, R12): — R1=R9,R2=0,R3=1,R4=0,R7=1,R8=0,R10=1,R6+R1=1,R5=R12.

тест (`G', R1, R2,_,_,_,_,_,_,_, R10, R11,R12): — R10=0,R12=0,R1=R11,R2=1.

поиск:-человек (Мастер),.

индекс_заявления (`A', Мастер, R1, R2,R3), индекс_заявления (`B', Мастер, R4, R5,R6),.

индекс_заявления (`V', Мастер, R7, R8,R9), индекс_заявления (`G', Мастер, R10, R11,R12),.

R1+R2+R3=R4+R5+R6, R4+R5+R6=R7+R8+R9, R10+R11+R12=R7+R8+R9, тест (Мастер, R1, R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12),.

write (Мастер), nl, write (R1,' `, R2,' `, R3), nl, write (R4,' `, R5,' `, R6), nl, write (R7,' `, R8,' `, R9), nl, write (R10,' `, R11,' `, R12), nl, fail.

поиск.

goal поиск.

Сократ выбрал мастера V. Каждый из мастеров сделал по два правдивых и два ложных заявления.

Задача решена. И, по-прежнему, программа является объектом исследования, а модель может быть построена по-другому.

Показать весь текст
Заполнить форму текущей работой