Юный техник 1965-08, страница 21

Юный техник 1965-08, страница 21

ВОЛК, КОЗА, КАПУСТА

"ЛОГИЧЕСШ

Инженер А. БОГАТЫРЕВ

В широко известной задаче о волке, козе и капусте крестьянин попал в затруднительное положение, когда ему понадобилось переправить свой необычный «багаж» через реку. Сложность заключалась в том, что волка нельзя оставлять одного с козой, а козу — с капустой, переправлять же их одновременно не позволяли размеры лодки. Необходимо было выбрать такой план переправы, чтобы не нарушить ни одно из условий. Здесь решение можно найти только путем логических рассуждений, никаких арифметических действий выполнять не надо. Это логическая задача.

Выполнение логических операций, точно так же как и арифметических, вполне можно доверить машине. В нашей задаче, например, машина способна определить, верно ли выбран порядок переправы. Если да, то загорается сигнальная лампочка «ход решения правильный», если допущена ошибка, то сообщается, к каким последствиям она может привести:

например, загорается лампочка «волк съест козу» (см. фото).

Как же «научить» машину анализировать полученные ответы? Прежде всего самому конструктору нужно хорошо разобраться в логике задачи, найти не только правильное решение, но и предвидеть ошибочные. В нашей задаче, например, в первом рейсе может быть перевезена только коза; с волка начать нельзя, иначе коза съест капусту; нельзя начинать и с капусты, так как волк съест козу. Самым «опасным пассажиром» в данной ситуации оказывается коза — ее едят, и она ест, поэтому-то ее и перевозят два раза с берега на берег (в этом суть решения задачи).

Все возможные варианты решения можно кратко записать с помощью таблицы 1, в которой находятся двоичные переменные: волк (обозначаем буквой А), коза (В) и капуста (С). Они принимают значение I, если перевозятся, и 0, если нет. Так любую ситуацию можно представить двоичным кодом, состоящим из наборов единиц и нолей. Например, код 010, записанный в трех верхних клетках закрашенного столбца, означает, что волк не перевозится (0), коза перевозится (1), капуста — нет (0). Иначе такой ответ записывается формулой ABC, в которой черта над буквой означает, что соответствующая переменная равна нулю

1 Используются символы алгебры логики. Более подробно об их назначении вы можете прочитать в статье «Логические машины» («Юный техник» № 11 за 1964 год, стр. 19).