Задача про вовка, козу і капусту — логічна гра, яка ілюструє класичну проблему в області штучного інтелекту з пошуку рішення, яке задоволення системі обмежень.
З одного берега на іншій фермер має перевезти човном вовка, козу і капусту. Човен витримує лише човняра і одного «пасажира». Одночасно не можна залишати разом на березі вовка і козу, козу і капусту. Можна здійснювати скільки завгодно рейсів.
Історія і варіації
Загадка є однією з низки головоломок про переправу, де об'єктом є набір елементів, а перехід через річку залежить від різних обмежень.
У самих ранніх відомих варіантах цієї проблеми, у середньовічному рукописі [en], існують три об'єкти: вовк, коза і капуста. Також існують інші варіації головоломки, такі як лисиця, гусак і мішок зерна; вовк, вівця і капуста; лис, курка і хліб; лисиця, гусак і кукурудза; fox, goose and corn пантера, свиня, і каша. Логіка головоломки, в якій є три об'єкти, A, B, C і, такі, що ні А і В, ні B і C не можна залишити разом, залишається тією ж.
Головоломка була знайдена в фольклорі таких країн, як у Камерун, Кабо-Верде, Данія, Ефіопія, Гана, Італія, Румунія, Шотландія, Судан, Уганда, Замбія і Зімбабве. Головоломка отримала порядковий номер H506.3 у класифікації Томсона в категорії народної літератури, і АТО1579 в системі Аарне-Томпсона-Утера.
Загадка була фаворитом Льюїса Керролла, і була перевидана в різних колекціях рекреаційної математик.
В деяких частинах Африки були виявлені варіації на загадку, в яких судно може перевозити два об'єкти, а не тільки один. Коли головоломка ослаблена таким чином, то можна ввести додаткові обмеження, що немає двох елементів, у тому числі і С, котрих можна залишити разом.
Японська версія
Потрібно перевезти сім'ю з шести чоловік і поліцейського з бандитом на інший берег річки на плоту. Проте одночасно на пліт поміщаються тільки дві людини (Уточнення: один з яких повинен бути дорослим), мама, залишившись без тата, б'є хлопчиків, тато — дівчаток. А бандит (уточнення: за відсутності поліцейського) б'є всіх.
Розв'язок
Спочатку фермер перевозить козу (вовк капусти не з'їсть), а потім повертається і забирає вовка. Щоб вовк не з'їв кози, фермер забирає її і повертається по капусту. Залишивши козу, він перевозить капусту, а потім повертається по козу.
- перевезти козу туди;
- повернутися назад;
- перевезти капусту туди;
- перевезти козу назад;
- перевезти вовка туди;
- повернутися назад;
- перевезти козу туди;
Розв'язок у Lisp (пошук вшир)
(defun is_in (k lst) (cond ( (NULL lst) NIL) ( (eql k (car lst)) T) ( 1 (is_in k (cdr lst)) ) ) ) (defun remove (k lst) (cond ((NULL lst) NIL) ((eql k (car lst)) (remove k (cdr lst)) ) ( 1 (cons (car lst) (remove k (cdr lst))) ) ) ) (defun is_ok (lst) (cond ( (NULL lst) T ) ( (is_in 'man lst) T ) ( (and (is_in 'goat lst) (is_in 'cabbage lst)) NIL) ( (and (is_in 'wolf lst) (is_in 'goat lst)) NIL) ( 1 T) ) ) (defun move (k) (cond ( (eql k 'man) (cond ((is_in 'man left) (setq left (remove 'man left)) (setq right (cons 'man right))? T) ((is_in 'man right) (setq right (remove 'man right)) (setq left (cons 'man left)) T) ) ) ( (and (is_in k left) (is_in 'man left)) (setq left (remove 'man (remove k left))) (setq right (cons 'man (cons k right))) T ) ( (and (is_in k right) (is_in 'man right)) (setq right (remove 'man (remove k right))) (setq left (cons 'man (cons k left))) T ) ( 1 NIL) ) ) (defun perevoz() (setq p (car way)) (setq way (cdr way)) (setq left (car (cdr p))) (setq right (car (cddr p))) (setq k (car p)) (cond ((eql (length right) 4) (print p) (return))) (cond ( (and (is_ok left) (is_ok right)) (cond ((and (neql (car(last k)) 'goat) (move 'goat)) (setq way (append way (list (list (append k (list 'goat)) left right)))) (move 'goat))) (cond ((and (neql (car(last k)) 'wolf) (move 'wolf)) (setq way (append way (list (list (append k (list 'wolf)) left right)))) (move 'wolf))) (cond ((and (neql (car(last k)) 'cabbage) (move 'cabbage)) (setq way (append way (list (list (append k (list 'cabbage)) left right))))(move 'cabbage))) (cond ((and (neql (car(last k)) 'man) (move 'man)) (setq way (append way (list (list (append k (list 'man)) left right))))(move 'man))) ) ) (perevoz) ) (defun solve () (setq way nil) (setq left '(goat cabbage wolf man)) (setq right NIL) (move 'goat) (setq way (append way (list (list (list 'goat) left right)))) (setq left '(goat cabbage wolf man)) (setq right NIL) (move 'wolf) (setq way (append way (list (list (list 'wolf) left right)))) (setq left '(goat cabbage wolf man)) (setq right NIL) (move 'cabbage) (setq way (append way (list (list (list 'cabbage) left right)))) (setq right NIL) (setq left NIL) (perevoz) )
Див. також
Посилання
- . Архів оригіналу за 17 червня 2008. Процитовано 10 березня 2012.
- Mary Jane Sterling, Math Word Problems for Dummies, P.313
- «Carrying a Wolf, a Goat, and a Cabbage across the Stream. Metamorphoses of ATU 1579» [ 24 вересня 2015 у Wayback Machine.], Piret Voolaid, Folklore: Electronic Journal of Folklore 35 (2007), pp. 111—130. Tartu: Eesti Kirjandusmuuseum.
- p. 17, Rediscovered Lewis Carroll Puzzles, Lewis Carroll, compiled by Edward Wakeling, Courier Dover Publications, 1996,
- Goat, Cabbage and Wolf [ 26 вересня 2007 у Wayback Machine.] Симуляція на Java
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Zadacha pro vovka kozu i kapustu logichna gra yaka ilyustruye klasichnu problemu v oblasti shtuchnogo intelektu z poshuku rishennya yake zadovolennya sistemi obmezhen Z odnogo berega na inshij fermer maye perevezti chovnom vovka kozu i kapustu Choven vitrimuye lishe chovnyara i odnogo pasazhira Odnochasno ne mozhna zalishati razom na berezi vovka i kozu kozu i kapustu Mozhna zdijsnyuvati skilki zavgodno rejsiv Istoriya i variaciyiZagadka ye odniyeyu z nizki golovolomok pro perepravu de ob yektom ye nabir elementiv a perehid cherez richku zalezhit vid riznih obmezhen U samih rannih vidomih variantah ciyeyi problemi u serednovichnomu rukopisi en isnuyut tri ob yekti vovk koza i kapusta Takozh isnuyut inshi variaciyi golovolomki taki yak lisicya gusak i mishok zerna vovk vivcya i kapusta lis kurka i hlib lisicya gusak i kukurudza fox goose and corn pantera svinya i kasha Logika golovolomki v yakij ye tri ob yekti A B C i taki sho ni A i V ni B i C ne mozhna zalishiti razom zalishayetsya tiyeyu zh Golovolomka bula znajdena v folklori takih krayin yak u Kamerun Kabo Verde Daniya Efiopiya Gana Italiya Rumuniya Shotlandiya Sudan Uganda Zambiya i Zimbabve Golovolomka otrimala poryadkovij nomer H506 3 u klasifikaciyi Tomsona v kategoriyi narodnoyi literaturi i ATO1579 v sistemi Aarne Tompsona Utera Zagadka bula favoritom Lyuyisa Kerrolla i bula perevidana v riznih kolekciyah rekreacijnoyi matematik V deyakih chastinah Afriki buli viyavleni variaciyi na zagadku v yakih sudno mozhe perevoziti dva ob yekti a ne tilki odin Koli golovolomka oslablena takim chinom to mozhna vvesti dodatkovi obmezhennya sho nemaye dvoh elementiv u tomu chisli i S kotrih mozhna zalishiti razom Yaponska versiya Potribno perevezti sim yu z shesti cholovik i policejskogo z banditom na inshij bereg richki na plotu Prote odnochasno na plit pomishayutsya tilki dvi lyudini Utochnennya odin z yakih povinen buti doroslim mama zalishivshis bez tata b ye hlopchikiv tato divchatok A bandit utochnennya za vidsutnosti policejskogo b ye vsih Rozv yazokSpochatku fermer perevozit kozu vovk kapusti ne z yist a potim povertayetsya i zabiraye vovka Shob vovk ne z yiv kozi fermer zabiraye yiyi i povertayetsya po kapustu Zalishivshi kozu vin perevozit kapustu a potim povertayetsya po kozu perevezti kozu tudi povernutisya nazad perevezti kapustu tudi perevezti kozu nazad perevezti vovka tudi povernutisya nazad perevezti kozu tudi Rozv yazok u Lisp poshuk vshir defun is in k lst cond NULL lst NIL eql k car lst T 1 is in k cdr lst defun remove k lst cond NULL lst NIL eql k car lst remove k cdr lst 1 cons car lst remove k cdr lst defun is ok lst cond NULL lst T is in man lst T and is in goat lst is in cabbage lst NIL and is in wolf lst is in goat lst NIL 1 T defun move k cond eql k man cond is in man left setq left remove man left setq right cons man right T is in man right setq right remove man right setq left cons man left T and is in k left is in man left setq left remove man remove k left setq right cons man cons k right T and is in k right is in man right setq right remove man remove k right setq left cons man cons k left T 1 NIL defun perevoz setq p car way setq way cdr way setq left car cdr p setq right car cddr p setq k car p cond eql length right 4 print p return cond and is ok left is ok right cond and neql car last k goat move goat setq way append way list list append k list goat left right move goat cond and neql car last k wolf move wolf setq way append way list list append k list wolf left right move wolf cond and neql car last k cabbage move cabbage setq way append way list list append k list cabbage left right move cabbage cond and neql car last k man move man setq way append way list list append k list man left right move man perevoz defun solve setq way nil setq left goat cabbage wolf man setq right NIL move goat setq way append way list list list goat left right setq left goat cabbage wolf man setq right NIL move wolf setq way append way list list list wolf left right setq left goat cabbage wolf man setq right NIL move cabbage setq way append way list list list cabbage left right setq right NIL setq left NIL perevoz Div takozhZagadka pro lisicyu gusku ta mishok bobivPosilannya Arhiv originalu za 17 chervnya 2008 Procitovano 10 bereznya 2012 Mary Jane Sterling Math Word Problems for Dummies P 313 Carrying a Wolf a Goat and a Cabbage across the Stream Metamorphoses of ATU 1579 24 veresnya 2015 u Wayback Machine Piret Voolaid Folklore Electronic Journal of Folklore 35 2007 pp 111 130 Tartu Eesti Kirjandusmuuseum p 17 Rediscovered Lewis Carroll Puzzles Lewis Carroll compiled by Edward Wakeling Courier Dover Publications 1996 ISBN 0486288617 Goat Cabbage and Wolf 26 veresnya 2007 u Wayback Machine Simulyaciya na Java