Решение логических задач

13
Решение логических Решение логических задач задач Курсовая работа Агеева Алексея, гимн.№5, 2002 г.

Upload: leo-huffman

Post on 02-Jan-2016

63 views

Category:

Documents


6 download

DESCRIPTION

Решение логических задач. Курсовая работа Агеева Алексея, гимн.№5, 2002 г. Задача №1. Нужно для 4 дежурных -Антипова, Климова, Маркова, и Лебедева-составить график дежурств с соблюдением следующих условий. Условия. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Решение логических задач

Решение логических задачРешение логических задач

Курсовая работа Агеева Алексея, гимн.№5, 2002 г.

Курсовая работа Агеева Алексея, гимн.№5, 2002 г.

Page 2: Решение логических задач

Задача №1Задача №1

Нужно для 4 дежурных -Антипова, Климова, Маркова, и Лебедева-составить график дежурств с соблюдением следующих условий.

Page 3: Решение логических задач

УсловияУсловия

1. Если Лебедев не будет дежурить в понедельник, то в понедельник согласен дежурить Климов.

2. Если Климов не сможет дежурить ни в понедельник, ни в четверг , то Антипов будет дежурить в понедельник.

3. Если Марков не сможет дежурить в четверг , то Климов будет дежурить в среду.

4. Если Лебедев придет дежурить во вторник , то Климов не будет дежурить в понедельник.

5. Если Антипов не сможет дежурить в понедельник, то Марков не сможет дежурить во вторник.

Page 4: Решение логических задач

НайтиНайти

Каким должен быть график

дежурств?

Page 5: Решение логических задач

РешениеРешение

Введем обозначения: L-Лебедев, K-Климов,

А-Антипов,

М-Марков. Цифры означают :1-понедельник,

2- вторник,

3-среда,

4-четверг.

Page 6: Решение логических задач

Согласно условиям задачи составим систему Согласно условиям задачи составим систему логических уравненийлогических уравнений

1. Если Лебедев не будет дежурить в понедельник, то в понедельник согласен дежурить Климов.

L1K1

Так как L1 K1 равносильно L1+K1

L1 K1 L1+K1

По закону двойного отрицания (L1 L1)

L1+K1 L1+K1 Сделав все преобразования получаем

L1 K1 L1+K1 L1+K1-читается как

Лебедев дежурит в понедельник или Климов дежурит в понедельник

Page 7: Решение логических задач

По закону эквивалентности

1. М4K3 M4+K3 Читается так:

Марков дежурит в четверг или Климов дежурит в среду

2. L2 K3L2+ K3 Читается так:

Лебедев не дежурит во вторник или Климов не дежурит в понедельник

3. A1 M2 A1+ M2 Читается так: Антипов дежурит в понедельник или Марков не дежурит во вторник

Page 8: Решение логических задач

2. Если Климов не сможет дежурить ни в понедельник, ни в четверг, то Антипов будет дежурить в понедельник.

(K 1 *K 4) A1

Так как (K 1 *K 4) A1 эквивалентно K 1 *K 4+ A1

(K 1 *K 4) A1K 1*K 4+ A1

То по закону де Моргана (K 1*K 4 K 1+K 4)

K 1*K 4+ A1 K 1+K 4 + A1

И по закону двойного отрицания (K 1+K 4 K 1+K 4)

сделав все преобразования мы получаем

(K 1 *K 4) A1 K 1+K 4 + A1 читается так: Климов будет дежурить в понедельник или в четверг или Антипов будет дежурить в понедельник

K 1+K 4 + A1 K 1+K 4 + A1

Page 9: Решение логических задач

То обстоятельство,что один и тот же человек не может дежурить дважды и в один день могут дежурить два человека

зададим формулами

LL22*L*L11 0 0 KK11*L*L11 0 0 KK11*A*A11 0 0 KK44*M*M44 0 0 LL11*A*A11 0 0

Page 10: Решение логических задач

Программа для решения данной задачи (Pascal)

program z1; uses crt;var m2,k1,k3,k4,l2,l1,m4,a1,f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f:integer; label 1; begin clrscr; for m2:=0 to 1 do begin for k1:=0 to 1 do begin for k3:=0 to 1 do begin for k4:=0 to 1 do begin

Page 11: Решение логических задач

for l2:=0 to 1 do begin for l1:=0 to 1 do begin for m4:=0 to 1 do begin for a1:=0 to 1 do begin f1:=(l1 or k1); f2:=(k1 or k4 or a1); f3:=(m4 or k3); f4:=(not l2 or not k1); f5:=(a1 or not m2); f6:=(not(k1 and k3)) and (not(k3 and k4)) and (not (k1 and k4));

Page 12: Решение логических задач

f7:=not(l2 and l1); f8:=not(k1 and l1); f9:=not(k1 and a1); f10:=not(k4 and m4); f11:= not (l1 and a1); f:=f1 and f2 and f3 and f4 and f5 and f6 and f7 and f8 and f9 and

f10 and f11; if f=1 then goto 1; end; end; end; end; end;end;end; end;1:writeln('f k1 k3 k4 l1 l2 m2 m4 a1'); writeln(f,k1:3,k3:4,k4:4,l1:4,l2:4,m2:4,m4:4,a1:4);readlnend.

Запуск программы

Page 13: Решение логических задач

Анализ ответа

f1 k1 k3 k4 l1 l2 m2 m4 a1

1 1 0 0 0 0 0 1 0

Запустив программу мы получили ответ:

K A L M12

34

++

++

- - ----

--

- --

-

Из ответа следует:1. Климов дежурит в понедельник 2. Марков дежурит в четверг

3. Лебедев дежурит в среду т.к из ответа следует что тон не дежурит в

понедельник не дежурит во вторник

4. Антипов дежурит во вторник