1 / 13

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

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

leo-huffman
Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Условия • 1. Если Лебедев не будет дежурить в понедельник, то в понедельник согласен дежурить Климов. • 2. Если Климов не сможет дежурить ни в понедельник, ни в четверг , то Антипов будет дежурить в понедельник. • 3. Если Марков не сможет дежурить в четверг , то Климов будет дежурить в среду. • 4. Если Лебедев придет дежурить во вторник , то Климов не будет дежурить в понедельник. • 5. Если Антиповне сможет дежурить в понедельник, то Марков не сможет дежурить во вторник.

  4. Найти • Каким должен быть график дежурств?

  5. Решение • Введем обозначения: L-Лебедев, K-Климов, А-Антипов, М-Марков. • Цифры означают :1-понедельник, 2- вторник, 3-среда, 4-четверг.

  6. Согласно условиям задачи составим систему логических уравнений • 1. Если Лебедев не будет дежурить в понедельник, то в понедельник согласен дежурить Климов. L1K1 Так как L1K1 равносильно L1+K1 L1K1 L1+K1 По закону двойного отрицания (L1  L1) L1+K1  L1+K1 Сделав все преобразования получаем L1K1 L1+K1 L1+K1-читается как Лебедев дежурит в понедельник или Климов дежурит в понедельник

  7. По закону эквивалентности 1. М4K3 M4+K3Читается так:Марков дежурит в четверг или Климов дежурит в среду 2. L2 K3L2+ K3Читается так: Лебедев не дежурит во вторник или Климов не дежурит в понедельник 3. A1 M2 A1+ M2Читается так: Антипов дежурит в понедельник или Марков не дежурит во вторник

  8. 2. Если Климов не сможет дежурить ни в понедельник, ни в четверг, то Антипов будет дежурить в понедельник. (K 1 *K 4) A1 Так как (K 1 *K 4) A1эквивалентно K 1 *K 4+ A1 (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  K 1+K 4) K 1+K 4 + A1 K 1+K 4 + A1 сделав все преобразования мы получаем (K 1 *K 4) A1  K 1+K 4 + A1 читается так: Климов будет дежурить в понедельник или в четверг или Антипов будет дежурить в понедельник

  9. То обстоятельство,что один и тот же человек не может дежурить дважды и в один день могут дежурить два человека зададим формулами • L2*L1 0 • K1*L1 0 • K1*A1 0 • K4*M4 0 • L1*A1 0

  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

  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));

  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); readln end. Запуск программы

  13. K A L M - - - 1 + - - - 2 + - - - + 3 - - - 4 + Анализ ответа Запустив программу мы получили ответ: f1 k1 k3 k4 l1 l2 m2 m4 a1 1 1 0 0 0 0 0 1 0 Из ответа следует:1. Климов дежурит в понедельник 2. Марков дежурит в четверг 3. Лебедев дежурит в среду т.к из ответа следует что тон не дежурит в понедельник не дежурит во вторник 4. Антипов дежурит во вторник

More Related