matematička logika i principi programiranja 1. naći zbir i ... sa uputstvima.pdf · 2. uz pomoć...
TRANSCRIPT
Matematička logika i principi programiranja zadaci iz junskog roka 2005
1. Naći zbir i razliku oktalnih brojeva:
1234,5 i 670,7
Zbir prikazati u dekadnom i binarnom sistemu (zapis u drugi brojevni sistem se može napisati samo kao zbir stepena). Uputstvo: U oktalnom brojevnom sistemu osnova sistema je 8, a cifre su 0,1,2,3,4,5,6 i 7. Aritmetika u oktalnom sistemu bi izgledala ovako: 2+6=10 (jer je osam osnova sistema – ako računamo u desetičnom 2+6=8 pa se
osam prenosi u narednu težinu kao jedan) 3+7=12 (ako računamo u desetičnom: 3+7=10=8+2 pa se osam prenosi u narednu
težinu kao jedan) Pri prevođenju zapisa iz oktalnog sistema u dekadni, potrebno je uočiti težine cifara. Ako neki oktalni broj ima sledeće cifre:
rnn cccccccc −−−− ...,... 210121 tada cifra ic ima težinu i, pa se ceo oktalni broj u dekadnom sistemu zapisuje tako što se oktalne cifre množe odgovarajućim težinama – stepenima osmice:
rr
nn
nn cccccccc −
−−
−−
−−
− ++++++++ 8*...8*8*,8*8*8*...8*8* 22
11
00
11
22
11
Pri prevođenju zapisa iz oktalnog sistema u binarni može se uočiti da se svaki broj iz oktalnog brojevnog sistema može napisati pomoću tri binarne cifre. Za pomoć može poslužiti sledeća tabela:
(8) 0 1 2 3 4 5 6 7 (2) 000 001 010 011 100 101 110 111
Rešenje: Nalaženje zbira i razlike bi onda izgledalo ovako: Transformacija zbira iz oktalnog sistema u dekadni: 2125,4(8) =(2*83+1*82+2*8+5*1+4*8-1)(10) =1109,5(10) Transformacija zbira iz oktalnog sistema u binarni: 2125,4(8) =010 001 010 101, 100(2)
1234,5 + 670,7 2125,4
1234,5 - 670,7 343,6
2. Uz pomoć metode rezolucije ispitati da li je formula tautologija. ( ) ( )( ) ( )rprqqp ⇒⇒⇒∧⇒
Uputstvo: 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:
( ) ( )( ) ( )
( ) ( )( ) ( )[ ]( ) ( )( ) ( )[ ]( ) ( )( ) ( )[ ]
( ) ( )( ) ( )( ) ( )
)6,4(..............0.7)5,3(................6)2,1(........5
.4
.3
.2.1
:
RRrRrp
rp
rqqp
rprqqprprqqprprqqprprqqprprqqp
rešenje
rprqqp
∨¬¬
∨¬∨¬
¬∧∧∨¬∧∨¬∨¬¬∧∨¬∧∨¬∨¬∨∨¬∧∨¬¬¬∨¬⇒∨¬∧∨¬¬
⇒⇒⇒∧⇒¬
⇒⇒⇒∧⇒
Izveden je prazan sastavak, formula je tautologija.
A∨B, ¬A∨C B∨C
3. Naći partikularna rešenja sistema Bulovih jednačina i nejednačina:
( )( ) zzyyx
yxxzxxzzyzx
≤∨∨
∨≤∨=∨∨
1
0
Uputstvo: Partikularno rešenje Bulove jednačine A(x1, x2,…, xn)=B(x1, x2,…, xn) (gde su A i B Bulovi izrazi od kojih bar jedan sadrži promenljive x1, x2,…, xn) je vektor α=(α1, α2,…, αn) ∈ nL2 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. (A1=0, A2=0, ..., An=0) ⇔ A1∨ A2∨...∨ An=0 Rešenje:
( )( ) zzyyx
yxxzxxzzyzx
≤∨∨
∨≤∨=∨∨
1
0
( ) zyxyxxzzzyzx
≤∨∨≤
=∨∨ 0 jer je 1∨A=1, takođe AA=0
( )( ) 0
0
0
=∨
=∨
=∨∨
zyx
yxxz
zzyzx
primenom T1.
0
0
0
=∨
=
=∨∨
zyzx
yxxz
zzyzx
sređivanjem izraza sa levih strana jednačina
0
000
=∨
==∨∨
zyzx
zzyzx sređivanjem izraza sa levih strana jednačina
0=∨∨∨∨ zyzxzzyzx primenom T3.
( ) ( ) ( )( ) ( ) ( ) 0=∨∨∨∨∨∨∨∨∨∨ zyxxzyyxzyyxxzyxxzyyx
transformacija leve strane jednačine u KDNF (kanonsku disjunktivnu normalnu formu)
0=∨∨∨∨∨∨∨∨∨∨∨ zyxzxyzyxzxyzyxzyxzyxzxyzyxzyxzyxzyx
transformacija leve strane jednačine u KDNF (kanonsku disjunktivnu normalnu formu)
0=∨∨∨ zxyzyxzyxzyx
KDNF (kanonska disjunktivna normalna forma) Preslikavanjem x→1, x→0, formiran je pomoćni skup: M={(0,1,0), (0,0,0), (1,0,0), (1,1,0)}, a konačno rešenje R kao razlika do celog prostora: R=L\M={(0,0,1), (1,0,1), (0,1,1), (1,1,1)}
4. Naći minimalnu formu Bulove funkcije pomoću metode Vejč-Karnea
wxywzyxwyzxyzwxzwyxwzxwzwzyxf ∨∨∨∨∨∨=),,,(
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):
( )( ) ( ) ( )
wzxywxyz
wzyxwyzxyzwxzwyxwzyxwzxywzyxwzyxwzyxwzxywzyxf
wzzxywzyxwyzxyzwxzwyxwzyyxwzyyxxwzyxf
wxywzyxwyzxyzwxzwyxwzxwzwzyxf
∨∨
∨∨∨∨∨∨∨∨∨=
∨∨∨∨∨∨∨∨∨∨=
∨∨∨∨∨∨=
),,,(
),,,(
),,,(
wxyzwyzxyzwxzwyxwzyxwzxywzyxwzyxwzyxwzxywzyxf ∨∨∨∨∨∨∨∨∨=),,,(
Zatim se svaka kanonska konjukcija preslikava u binarni, pa zatim u dekadni broj:
1467391308412),,,(
1110011001110011100111010000100001001100),,,(
∨∨∨∨∨∨∨∨∨=
∨∨∨∨∨∨∨∨∨=
wzyxf
wzyxf
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
z z z
na sledeći način: x x
w 1 1 y w 1 1
1 1 y
w 1 1 1 1
z z z
Zatim se formiraju blokovi kao grupa od 2n spojenih markiranih kvadratića (1, 2, 4, 8, 16). Prvo se formiraju glavni blokovi kao maksimalni blokovi za konkretni markirani kvadratić:
x x
w 1 1 y
w 1 1
1 1 y
w 1 1 1 1
z z z
Znači glavni blokovi su: yzxzwxwywzzx ∨∨∨∨ 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 y
w 1 1
1 1 y
w 1 1 1 1
z z z
Osnovni blokovi čine jezgro rešenja:
zwxwywzzxjezgro ∨∨∨=
a u ovom zadatku jezgro prekriva sve markirane kvadratiće pa je ono jedinstveno rešenje:
rešenje: zwxwywzzxwzyxf ∨∨∨=),,,(min
blok zw
blok xz
blok xyz
5. Na jeziku predikatskog računa I reda formalizovati rečenice, koristeći sledeće predikate:
1. T(x) sa značenjem x je tačka, 2. O(x) sa značenjem x objekat, 3. R(x) sa značenjem x je realan broj, 4. B(x,y,z) sa značenjem da je raspored x, y, z tj. da se y nalazi između
x-a i z-a.
a) Tačka C se nalazi između A i B. b) Postoji objekat između P i Q. c) Između svaka dva realna broja postoji realan broj.
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) T(C) ∧ B(A,C,B)
b) (∃x)(O(x) ∧ B(P, x, Q))
c) (∀x) (∀y) (R(x) ∧ R(y) ⇒ (∃z) (R(z) ∧ B(x, z, y)))