Lista zadań 2 ZADANIE O ODMIERZANIU WODY (łamigłówka) Marcysia, gosposia niezbyt obyta, grochówkę uwarzyć chciała. W babcinym, starym jak świat, kajecie, przepis wnet wygrzebała. śe akuratna być postanowiła, głowić się srodze poczęła, Bo podług przepisu, wody ze źródła cztery litry jej trzeba. Jakim sposobem odmierzy nieszczęsne CZTERY LITRY WODY, gdy DZBANEK TRZY LITRY MIEŚCI, a GARNEK PIĘCIOLITROWY? Kto jej pomoŝe, a najmniej się strudzi owym wody przelewaniem, od dzielnej Marcysi pełną miseczkę grochówki dymiącej dostanie. (tekst: Źródło: J. Kotyczka, Programowanie logiczne w rozwiązywaniu zadań na poziomie szkolnym, Praca Magisterska, Instytut Matematyki i Informatyki, Uniwersytet Opolski, Opole 2003.) Reprezentacja ikoniczna Przedstawienie graficzne treści zadania rysunek wykonany przy pomocy edytora grafiki Paint. WyobraŜenie treści zadania moŝemy przedstawić graficznie następująco: Jakie czynności moŝe wykonać Marcysia? 1. Napełnić dzbanek wodą ze źródła. 2. Napełnić garnek wodą ze źródła. 3. Przelać wodę z garnka do dzbanka. 4. Przelać wodę ze dzbanka do garnka. 5. Wylać całą zawartość dzbanka. 6. Wylać całą zawartość garnka. Problem. Nasze wyobraŝenia o sposobie odmierzenia Ŝądanej ilości wody nie są adekwatne do rzeczywistości poznawczej, na którą wskazuje treść zadania reprezentacja ikoniczna. Nie moŝna bowiem uzyskać jednego litra wody (czyli takŝe Ŝądanej ilości wody) bezpośrednio poprzez jedno przelanie. Ta nieadekwatność jest tutaj problemem informatycznym, który musimy pokonać.
Sformułujmy więc wnioski, wynikające z dotychczasowego doświadczenia w rozwiązywaniu zadania w wyniku przeprowadzenia symulacji. Reprezentacja symboliczna. Wnioski: Naczynie moŝe być napełnione. Naczynie moŝe być opróŝnione. Wodę moŝna przelewać z jednego naczynia do drugiego, do opróŝnienia się pierwszego z nich lub wypełnienia drugiego. Istotnym dla nas stanem jest związek pomiędzy zawartościami obu naczyń. W trakcie nalewania, przelewania, wylewania wody zachodzą ściśle określone przejścia jednych stanów w drugie. Nietrudno więc sformułować treść zadania (prawa rządzące Światem Odmierzania Wody ) za pomocą wyraŝeń napisanych w postaci klauzul hornowskich, przyjmując notację klauzulową lub anlagiczna do języka Turbo Prolog. Przyjmijmy następującą umowę notacyjną: Zmienne oznaczamy napisami zaczynającymi się z duŝej litery:x,y,z,a,...,zet, Imie,... itp., Predykaty są napisami zaczynającymi się z małej litery; predykaty dla których nie wyróŝniamy argumentów są zwykłymi napisami, a pozostałe łączymy z nawiasem, po którym wypisujemy argumenty oddzielając je przecinkami: student(imie, Nazwisko, Adres, Uniwersytet Opolski ) Wartości zmiennych są napisami pisanymi z małej litery (np. ac1; typ symbol), znakami pisanymi w apostrofach (np. a ; typ char), łańcuchami znaków pisanymi w cudzysłowie (np. Anna, A1 ; typ string), npisami liczb (np. 2, 23, -23.5; typy iteger i real) A :- B oznacza, Ŝe formuła A zachodzi, jeśli formuła B zachodzi X = a; b; c;... oznacza, Ŝe X = a lub X = b lub X = c, itd. A, B,... oznacza to samo, co A i B i.... A; B;... oznacza to samo, co A lub B lub.... not A nieprawda, Ŝe A. KaŜde wyraŝenie kończone jest kropką.
Goal A. - pytanie o to, czy i kiedy wyraŝenie A jest spełnione da wprowadzonych danych i praw. Ze względu na liczbowe określenie ilości wody w naczyniach, reprezentację prowadzimy dla fragmentu dziedziny wiedzy o rachunku liczb naturalnych. Zmienne liczbowe: U, V, X, Y. Dziedzina zmiennych: D = {0, 1, 2, 3, 4, 5, 6, 7, 8, }. WyraŜenia postaci stan(u,v), stan(x,y) interpretujemy jako dwie sytuacje, w których pierwsza oznacza stan wcześniejszy, taki Ŝe pięciolitrowy garnek zawiera U litrów wody, a trzylitrowy dzbanek V litrów, druga sytuacja oznacza, Ŝe stan ilości wody przekształca się w stan: x wody w garnku, y wody w dzbanku. Zakładamy, Ŝe dysponujemy operacjami i relacjami na liczbach naturalnych. Świat odmierzania wody moŝna wtedy opisać następującymi formułami tzw. klauzulami hornowskimi: Pytanie Goal stan (4, Y). /* stan docelowy*/ Prawa Świata odmierzania wody (NW1) stan(0, 0). /*stan początkowy*/ (NW2) stan(u, V) :- U 5, V 3. /*warunek określający pojemność naczyń*/ (NW3) stan(x, Y) :- stan(u, V), X=5, X=V. /*akcja napełniania garnka*/ (NW4) stan(x, X) :- stan(u, V), X=U, Y=3. /*akcja napełniania dzbanka*/ (NW5) stan(x,y) :- stan(u, V), X=0, Y=V. /*akcja opróŝniania garnka*/
(NW6) stan(x, Y) :- stan(u, V), X=V, Y=0. /*akcja opróŝniania dzbanka*/ (NW7) stan(x, Y) :- stan(u, V), U + V 3, X=0, Y = U + V. /*przelewanie z garnka do dzbanka do chwili opróŝnienia się garnka */ (NW8) stan(x, Y) :- S (U, V), U + V 5, X = U + V, Y=0. /*przelewanie z dzbanka do garnka do chwili opróŝnienia się dzbanka */ (NW9) stan(x, Y) :- stan(u, V), X=5, Y = U + V - 5. /*przelewanie z dzbanka do garnka do chwili napełnienia się garnka*/ (NW10) stan(x, Y) :- stan(u, V), X = U + V 3, Y=3. /*przelewanie z garnka do dzbanka do chwili napełnienia się dzbanka*/ Które z praw NW1-NW10 i w jakiej kolejności naleŝy zastosować do kaŝdego stanu stan(u,v) poprzedzającego w poniŝszym ciągu formuł następny stan stan(x,y)? 1. stan(0,0) stan początkowy. 2. stan(0,3) NW 3. stan(3,0) NW 4. stan(3,3) NW 5. stan(5,1) NW 6. stan(0,1) NW 7. stan(1,0) NW 8. stan(1,3) NW stan(4,0) NW Stan stan(4,0) określa rozwiązanie zadania o odmierzaniu wody.
RÓWNOWAśENIE KOLEKCJI PRZEDMIOTÓW NA WADZE Wyjaśnij mechanizm waŝenia na wadze dwuramiennej. WaŜone są następujące przedmioty: tego samego rodzaju filiŝanki f, butelki b, talerze t, oraz dzbanki d, gdzie f, b, t, d oznaczają wagi poszczególnych typów naczyń (wszystkie przedmioty tego samego rodzaju tyle samo waŝą). Przy czym zachodzą następujące równości wag tych przedmiotów: 1) 2t + f = 2d, 2) 5f = 2b + d, 3) 3d + 2b = 5t. Określ system równowaŝenia na wadze dwu kolekcji naczyń jako dwusortową strukturę relacyjną z uniwersami : U1={w: w= n1*f + n2*b+ n3t+ n4*d; n1, 2, n3, n4 = 0,1,2,3,... }, U2 ={0,1,2,3,...}. Jakie będą relacje i operacje oraz wyróŝniony zbiór obiektów w tej strukturze? Sformułuj reguły waŝenia, przeprowadzające stan równowagi S(x,y), w nowy stan równowagi S(x,y ). Opisz w formalnym języku tej struktury relacyjnej wyprowadzenie (korzystające z reguł waŝenia i stosownych operacji czy instrukcji) waŝenia 3 talerzy przy uŝyciu filiŝanek, dzbanków i butelek. Do formalizacji uŝyj tych samych symboli co do opisu struktury relacyjnej, a opis ciągu operacji zapisz jako ciąg odpowiednich formuł. Skorzystaj z bieŝących materiałów podanych na stronie (podrozdział 1.1.4.3 wykładu 1): http://http://www.math.uni.opole.pl/~ebryniarski/log_kom.html PROBLEMY Określ wielosortowe struktury relacyjne dla poniŝszych dwu zagadek : CHIŃSKIE FIGURKI Sześć małych figurek ustawionych jest jak na rysunku: KaŜda z figurek moŝe posuwać się naprzód lub przeskakiwać jedną figurkę, ale nie moŝe posuwać się ani skakać wstecz. Podaj najmniejszą liczbę ruchów (skoków lub kroków), po których figurki znajdą się w następującej pozycji:
INNE WERSJE ZADANIA: analogicznie, jak w śabich skokach. Źródło: Johannes Lehmann, Kurzweil durch Mathe, Aulis Verlag Deubner & CO KG, Köln 1986. WAśENIE MONET Mamy osiem monet. Jedna z nich jest lŝejsza od pozostałych (nie wiemy, która). Jak wykryć lŝejszą monetę, jeśli moŝemy tylko dwukrotnie dokonać waŝenia przy uŝyciu wagi szalkowej? INNE WERSJE ZADANIA: Jak wykryć jedyną lŝejszą monetę spośród osiemnastu za pomocą co najwyŝej trzech waŝeń itp. źródło: Ch. A. Schwengeler, Mathematische Kurzweil, Orell Füssli, Zürich 2001