Matematička logika i principi programiranja zadaci iz oktobarskog roka 2005 1. Naći zbir i razliku binarnih brojeva: 1000,01 i 110,1 Rezultate prikazati u dekadnom i heksadecimalnom sistemu. Uputstvo: U binarnom brojevnom sistemu je osnova sistema 2, a cifre su 0 i 1. Aritmetika u binarnom sistemu bi izgledala ovako: + (2) 0 1 0 0 1 1 1 10 * (2) 0 1 0 0 0 1 0 1 Pri prevođenju zapisa iz binarnog sistema u dekadni, potrebno je uočiti težine cifara. Ako neki binarni broj ima sledeće cifre: cncn 1... c2c1c 0, c 1c 2... c r tada cifra c i ima težinu i, pa se ceo binarni broj u dekadnom sistemu zapisuje tako što se binarne cifre množe odgovarajućim težinama stepenima dvojke: c n * 2 n + c c * 2 n 1 2 1 0 1 2 n 1 * 2 +... + c2 * 2 + c1 * 2 + c0 * 2, c 1 * 2 + c 2 * 2 +... + r r Pri prevođenju zapisa iz binarnog sistema u heksadecimalni mogu se uočiti tetrade (grupe od četiri binarne cifre), tako da se njihovim prevođenjem u dekadni sistem mogu odmah dobiti cifre heksadecimalnog broja. Za pomoć može poslužiti sledeća tabela: (16) 0 1 2 3 4 5 6 7 8 9 A B C D E F (2) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Rešenje:
Nalaženje zbira i razlike bi onda izgledalo ovako: 1000,01 + 110,1 1110,11 1000,01-110,1 1,11 Transformacija zbira iz binarnog sistema u dekadni: 1110,11(2)=(1*2 3 +1*2 2 +1*2+0*1+1*2-1 +1*2-2 )(10) =14,75(10) Transformacija zbira iz binarnog sistema u heksadecimalni: 1110,11(2)= 1110,1100(2)=E,C(16)
2. Uz pomoć metode rezolucije ispitati da li je formula tautologija. Uputstvo: (( p q) ( r q) ) ( p r) Negaciju date formule je potrebno transformisati u konjuktivnu normalnu formu. Pri tome A B zapisujemo kao A B. Takođe se skraćuju zapisi kao na primer: a) A 0 se može zameniti sa A b) A 1 se može zameniti sa A c) A A, takođe A A se može zameniti sa A Da bi se dobila konjuktivna normalna forma, često je potrebno koristiti distributivnost disjunkcije prema konjukciji: A (B C) (A B) (A C) Iz konjuktivne normalne forme se izdvajaju sastavci (disjunkcije iskaznih slova ili njihovih negacija), i pomoću pravila rezolucije se pokušava generisanje praznog sastavka. Ako se iz negacije date formule pomoću pravila rezolucije može izvesti prazan sastavak, zaključujemo da je formula tautologija (inače nije). Rešenje: (( p q) ( r q) ) ( p r) rešenje : [(( p q) ( r q) ) ( p r) ] [ (( p q) ( r q) ) ( p r) ] [ (( p q) ( r q) ) ( p r) ] [ ( p q r q) ( p r) ] ( p q r q) p r 1. ( p q r) 2. p 3. r 4. q r... R(1,2) A B, A C B C Znači dobijena su tri sastavka, a uz pomoć metode rezolucije generisan je samo jedan nov sastavak sastavak q r. Oznaka R(1,2) pokazuje da je pravilo rezolucije primenjeno na sastavke 1 i 2. Kako se dalje ne može izvesti ni jedan sastavak, zaključujemo da formula nije tautologija (jer se ne može generisati prazan sastavak).
3. Naći partikularna rešenja sistema Bulovih jednačina: Uputstvo: ( 1 xy) = xz( xy xz) xz = x y z Partikularno rešenje Bulove jednačine A(x 1, x 2,, x n )=B(x 1, x 2,, x n ) (gde su A i B Bulovi izrazi od kojih bar jedan sadrži promenljive x 1, x 2,, x n ) je vektor n α=(α 1, α 2,, α n ) L 2 ako i samo ako je A(α 1, α 2,, α n )=B(α 1, α 2,, α n ). Pri rešavanju sistema Bulovih jednačina i nejednačina koriste se sledeće teoreme: T1. A B AB=0 T2. A=B AB AB =0 T3. (A 1 =0, A 2 =0,..., A n =0) A 1 A 2... A n =0 Rešenje: ( 1 xy) = xz( xy xz) xz = x y z 1 = z xz = x y jer je 1 A=1, takođe AA=0 1z 0z = 0 xz ( x y) xz( x y) = 0 z = 0 xzx y ( x z)( x y) = 0 primenom T2. sređivanjem izraza sa levih strana jednačina z = 0 x yz x xy xz yz = 0 sređivanjem izraza sa levih strana jednačina z x yz x xy xz yz = 0 primenom T3. xy z xy z xyz x yz x yz x yz xyz x yz xyz x yz xyz xyz xyz x yz xyz xyz x yz x yz x yz xyz x yz = 0 KDNF (kanonska disjunktivna normalna forma) xyz = 0
Preslikavanjem x 1, x 0, formiran je pomoćni skup: M={(1,1,0), (0,1,0), (1,0,0), (0,0,0), (1,0,1), (0,1,1), (0,0,1)}, a konačno rešenje R kao razlika do celog prostora: R=L\M={(1,1,1)}
4. Naći minimalnu formu Bulove funkcije pomoću metode Vejč-Karnea = x yzw x yw xzw xyzw xyzw x yzw xyzw xyzw xyw Rešenje sa uputstvom: Nalaženje minamalne normalne forme Bulove funkcije se odnosi na nalaženje njenog najkraćeg zapisa (u smislu broja slova i znakova). Metod Vejč-Karnea zahteva da se funkcija prvo napiše u obliku kanonske disjunktivne normalne forme (KDNF): = x yzw x y( z z) w x( y y) zw xyzw xyzw x yzw xyzw xyzw xy( z z) w = x yzw x yzw x yzw xyzw x yzw xyzw xyzw x yzw xyzw xyzw xyzw xyzw = x yzw x yzw x yzw xyzw x yzw xyzw xyzw xyzw xyzw Zatim se svaka kanonska konjukcija preslikava u binarni, pa zatim u dekadni broj: = 0010 1010 1000 1101 1001 0111 0110 1110 1100 = 2 10 8 13 9 7 6 14 12 koji se markira (označi) u određenoj ćeliji Vejčovog dijagrama: x x w 0 2 10 8 y w 1 3 11 9 5 7 15 13 y w 4 6 14 12 na sledeći način: z z z x x w 1 1 1 y w 1 1 1 y w 1 1 1 z z z
Zatim se formiraju blokovi kao grupa od 2 n spojenih markiranih kvadratića (1, 2, 4, 8, 16). Prvo se formiraju glavni blokovi kao maksimalni blokovi za konkretni markirani kvadratić: blok xyz x x w 1 1 1 y w 1 1 1 y w 1 1 1 z z z blok xz blok xw Od dobijenih glavnih blokova se izdvajaju osnovni blokovi kao blokovi koji imaju bar jedan markirani kvadratić koji pripada samo njemu (ne deli ga sa nekim drugim glavnim blokom): x x w 1 1 1 y w 1 1 1 y w 1 1 1 z z z Osnovni blokovi čine jezgro rešenja: jezgro = xz zw xyz a u ovom zadatku jezgro prekriva sve markirane kvadratiće pa je ono jedinstveno rešenje: rešenje: min = xz zw xyz
5. Na jeziku predikatskog računa I reda formalizovati rečenice, koristeći predikat P(x,y) sa značenjem»x je podskup y-nu«. a) Skup B je podskup skupa A. b) Postoji podskup skupa C. c) Skup D je podskup podskupa skupa G. d) Svaki skup ima podskup. Uputstvo: Pri formalizaciji rečenica potrebno je koristiti kvantifikatore: a) Univerzalni kvantifikator, sa oznakom (čita se svaki) i b) Egzistencijalni kvantifikator, sa oznakom (čita se postoji, ima, neki) Rešenje: a) P(B,A) b) ( x)p(x, C) c) ( x)(p(d,x) P(x,G)) d) ( x)( y)p(x)