100966163

Page 1


SPIS TREŚCI

matematyka dyskretna. niezbędnik dla informatyków

25 Relacje rekurencyjne 301

26 Prawdopodobieństwo 322

27 Prawdopodobieństwo warunkowe 337

28 Twierdzenie Bayesa 349

29 Zmienne losowe i wartość oczekiwana 361

30 Arytmetyka modularna 385

31 Kryptografia klucza publicznego 397

Indeks 407

WSTĘP

Ilość jest bądź rozdzielna, bądź ciągła. – Arystoteles, Kategorie (ok. 350 p.n.e.)

Ten wprowadzający podręcznik traktuje o matematyce dyskretnej, którą informatycy powinni znać, ale z reguły nie uczą się jej na kursach rachunku różniczkowego czy algebry liniowej. Celem naszym jest raczej wiedza szeroka niż głęboka, zaś tak samo jak pojęć czy umiejętności chcemy uczyć odpowiedniego sposobu myślenia.

Podkreślamy wagę sztuki przeprowadzania dowodów w nadziei, że informatycy nauczą się myśleć formalnie i precyzyjnie. Niemal każda formuła i twierdzenie są tu w pełni udowodnione. Tekst ukazuje kumulatywną naturę matematyki. Na przekór szerokiemu zakresowi tematycznemu, wyniki pozornie między sobą niezwiązane w dalszych rozdziałach będą oparte na pojęciach poznanych wcześniej.

Tekst wymaga znajomości matematyki na poziomie wstępu do rachunku różniczkowego, niekiedy używamy też samego rachunku różniczkowego. W rozdziale 21 na temat notacji asymptotycznej używamy granic, ale umieściliśmy tam też krótkie podsumowanie wszystkich potrzebnych podstawowych faktów. Dowody i ćwiczenia wykorzystujące podstawową wiedzę z zakresu pochodnych i całek, w tym zasadę l’Hopitala, można pominąć, nie tracąc ciągłości.

Przyspieszony jednosemestralny kurs na Harvardzie omawia większość materiału zawartego w tej książce. Na taki kurs uczęszczają zazwyczaj studenci pierwszego i drugiego roku, gdyż stanowi on wstęp do kursów na temat teorii obliczeń (automaty, obliczalność, analiza algorytmów). Podręcznik nadaje się również do użytku w szkołach średnich, dla uczniów matematyki lub informatyki zainteresowanych tematami matematycznie dla nich dostępnymi, ale znajdującymi się poza utartym szlakiem programu szkolnego.

Książka napisana została jako seria krótkich rozdziałów, z których każdy mógłby być tematem jednej lub dwóch godzin zajęć. Każdy rozdział kończy się krótkim podsumowaniem i około dziesięcioma zadaniami. Można z nich korzystać na zasadach pracy domowej lub użyć ich jako ćwiczeń do wspólnego rozwiązywania w niewielkich grupkach.

Nauczyciele, którzy wolą nie omawiać wszystkich tematów tu zawartych, mogą skracać książkę na wiele sposobów. Główny nurt książki

matematyka dyskretna. niezbędnik dla informatyków

zawiera rozdziały 1–8 na temat podstawowych pojęć, rozdziały 13–18 na temat grafów skierowanych i nieskierowanych oraz rozdziały 21–25 na temat notacji asymptotycznej i zliczania. Cztery bloki rozdziałów są opcjonalne i mogą być niezależnie włączone lub wyłączone z omawiania według uznania nauczyciela:

• rozdziały 9–12 o logice,

• rozdziały 19–20 o automatach i językach formalnych,

• rozdziały 26–29 o prawdopodobieństwie dyskretnym oraz

• rozdziały 30–31 o arytmetyce modularnej oraz kryptografii.

Ponadto żaden z tych bloków, o ile w ogóle się je omawia, nie musi być przerobiony w całości, ponieważ tylko materiał z późniejszych rozdziałów opiera się na rozdziałach wcześniejszych z tego samego bloku. Naszym celem było dostarczenie tekstu uniwersalnego w stylistyce, a przez to nadającego się do szerokiego użytku, nie tak ciężkiego jak encyklopedyczny podręcznik. Przez cały czas staraliśmy się uszanować zarówno chęć do nauki studentów, jak i ich ograniczone zasoby czasu, uwagi i pieniędzy.

Z podziękowaniami dla zespołu CS20, który tworzą: Deborah Abel, Ben Adlam, Paul Bamberg, Hannah Blumberg, Crystal Chang, Corinne Curcie, Michelle Danoff, Jack Dent, Ruth Fing, Michael Gelbart, Kirk Goff, Gabriel Goldberg, Paul Handorff, Roger Huang, Steve Komarov, Abiola Laniyonu, Nicholas Longenbaugh, Erin Masatsugu, Keenan Monks, Anupa Murali, Eela Nagaraj, Rebecca Nesson, Jenny Nitishinskaya, Sparsh Sah, Maria Stoica, Tom Silver, Francisco Trujillo, Nathaniel Ver Steeg, Helen Wu, Yifan Wu, Charles Zang i Ben Zheng. dla Alberta Meyera za jego hojną pomoc w początkowych okresie CS20, a także dla Micheala Sobina, Scotta Josepha, Alexa Silversteina i Noam Wolf za ich krytykę i wsparcie w czasie pisania.

Harry Lewis i Rachel Zax

Rozdzia 4

Mocna indukcja

Indukcja matematyczna to mocna i ogólna metoda dowodzenia, choć czasami wydaje się niewystarczająca. Poniżej znajdziemy prosty przykład, który niemal, lecz nie do końca, wpasowuje się w ramy paradygmatu indukcji opisanego na stronie 32. Aby odpowiedzieć na pytanie, potrzebujemy mocniejszej wersji zasady indukcji.

Przykład 4.1. Mamy prostą grę dwuosobową, do której potrzebna jest określona liczba monet. Nadajmy graczom imiona Ala i Brad. Ala robi pierwszy ruch, potem ruchy graczy są naprzemiennie. Gra ma dwie zasady.

1. W czasie swojego ruchu dany gracz zabiera jedną lub dwie monety.

2. Gracz, który zabierze ostatnią monetę, przegrywa.

Jeśli obaj gracze grają najlepiej, jak to tylko możliwe, to kto wygra?

Odpowiedź zależy od tego, ile monet jest na początku gry. Nazwijmy tę liczbę n. Przyjrzyjmy się kilku przypadkom z różnymi wartościami n i przekonajmy się, czy można zauważyć jakąś prawidłowość.

• Jeśli n = 1, to Ala przegrywa, bo musi zebrać przynajmniej jedną monetę, a jest tylko jedna. Musi więc zebrać „ostatnią” monetę. Można powiedzieć, że gdy n = 1, to Ala jest na przegranej pozycji, bo w tej sytuacji może tylko przegrać (patrz rys. 4.1).

• Co jeśli n = 2? Oczywiście Ala przegra, jeśli niemądrze zabierze obie monety, ale analizujemy przypadek, w którym Ala i Brad grają tak dobrze, jak to tylko możliwe. Jeśli Ala weźmie jedną monetę, to zostawi jedną na stole i zmusi Brada do zagrania na przegranej pozycji. (Zwróćmy tu uwagę na coś bardzo ważnego: jeśli n jest dowolną przegraną pozycją dla Ali, to jest to również przegrana pozycja dla Brada, jeśli to on zostanie z n monetami). Tak więc rozpoczęcie z dwoma monetami jest wygraną pozycją dla Ali, ponieważ może ona zmusić Brada do zagrania na przegranej pozycji (patrz rys. 4.2).

Rysunek 4.1. Ala przegrywa

Rysunek 4.2. Ala wygrywa, jeśli n = 2

Zadania

10.1. Pięć spośród wymienionych poniżej zdań jest równoważnych negacji pozostałych pięciu. Dopasuj każde zdanie do jego negacji.

(a) p ⊕ q

(b) ¬p ∧ q

(c) p ⇒ (q ⇒ p)

(d) p ⇒ q

(e) p ∧¬q

(f) q ∧ (p ∧¬p)

(g) p ∨¬q

(h) p ⇔ q

(i) p ∧ (q ∨¬q)

(j) (p ⇒ q) ⇒ p

10.2. Wykaż, że formuła (10.1) jest niespełnialna.

10.3. Dla każdej podanej poniżej formuł zdecyduj, czy jest to tautologia, formuła niespełnialna, czy formuła spełnialna. Odpowiedź uzasadnij.

(a) (p ∨ q) ∨ (q ⇒ p)

(b) (p ⇒ q) ⇒ p

(c) p ⇒ (q ⇒ p)

(d) (¬p ∧ q) ∧ (q ⇒ p)

(e) (p ⇒ q) ⇒ (¬p ⇒¬q)

(f ) (¬p ⇒¬q) ⇔ (q ⇒ p)

10.4. Zapisz następującą formułę: (p ⇒ q) ∧ (¬(q ∨¬r ) ∨ (p ∧¬s))

(a) w koniunkcyjnej postaci normalnej

(b) w dysjunkcyjnej postaci normalnej

10.5. (a) Wykaż, że dla dowolnych formuł α, β, γ, (α ∧ β) ∨ α ∨ γ ≡ α ∨ γ .

(b) Podaj odpowiednią regułę do uproszczenia

(α ∨ β) ∧ α ∧ γ .

(c) Znaleźć możliwie najprostsze normalne postaci koniunkcyjną i dysjunkcyjną formuły: (p ∧ q) ⇒ (p ⊕ q).

dyskretna. niezbędnik dla informatyków

10.6. W każdym z poniższych przypadków wykaż, że dana formuła jest tautologią lub wskaż, dlaczego nie jest.

(a) ((p ∧ q) ⇔ p) ⇒ q

(b) (p ∨ (p ∧ q)) ⇒ (p ∧ (p ∨ q)) (c) (¬p ⇒¬q) ⇒ (q ⇒ p)

10.7. W tym problemie wykaż, że przekształcenie formuły do jej koniunkcyjnej postaci normalnej może zwiększyć jej długość wykładniczo. Rozważ formułę p1

q1 ∨ ∨ pn ∧ qn , gdzie n  ≥ 1, zaś pi i qi to zmienne zdaniowe. Ta formuła ma długość

4n – 1, jeśli liczymy każde wystąpienie spójnika lub zmiennej zdaniowej i ignorujemy domyślne nawiasy.

(a) Zapisz koniunkcyjną postać normalną tej formuły dla n  = 3

(b) Jak długa jest tak otrzymana postać normalna, jeśli stosujemy tę samą konwencję pomiaru długości, co powyżej? W przypadku ogólnym, ile wynosi długość koniunkcyjnej postaci normalnej wyrażona jako funkcja n?

(c) Wykaż, że w analogiczny sposób przekształcenie formuły na jest dysjunkcyjną postać normalna może zwiększyć jej długość wykładniczo.

(d) Rozważmy następujący algorytm sprawdzania, czy dana formuła jest spełnialna. Korzystając z metod opisanych w tym rozdziale, przekształć daną formułę w jej dysjunkcyjną postać normalną. Następnie sprawdź, czy wszystkie klauzule formuły zawierają sprzeczność (zawierając zarówno daną zmienną, jak i jej dopełnienie. Jeśli to nie zachodzi, to formuła jest spełnialna. Dlaczego jest to algorytm o koszcie wykładniczym?

10.8. Zapisz zarówno koniunkcyjną, jak i dysjunkcyjną postać normalną zdania: „Przynajmniej dwa z p, q i r są prawdziwe”.

10.9. W tym zadaniu poznajemy dowodzenie twierdzeń metodą rezolucji. (a) Przypuśćmy, że (e1   e n) oraz (f1   fn) są klauzulami formuły α będącej w koniunkcyjnej postaci normalnej, gdzie m, n ≥ 1, zaś każde z ei, fj to literał. Załóżmy, że wszystkie ei różnią się od siebie oraz że wszystkie fj różnią się od siebie, tak że klauzule te są zasadniczo zbiorami literałów. Przypuśćmy, że e m jest zmienną zdaniową p, zaś f1 = ¬p. Wykaż, że α jest równoważne rezultatowi dodania nowego czynnika do α składającego się ze wszystkich literałów występujących w obu tych klauzulach z wyjątkiem p z pierwszej klauzuli i ¬p z drugiej. To znaczy: α ≡ α ∧ (e1 ∨ ... ∨ em 1 ∨ f2 ∨ ... ∨ fn ),

lub – dokładniej – rezultatowi pominięcia wszystkich duplikatów w tej klauzuli. Nowa klauzula jest otrzymywana z pozostałych dwóch za pomocą rezolucji i mówimy wtedy, że jest ona ich rezolwentem Aby nadać jakiś sens temu wyrażeniu w przypadku m = n = 1, musimy zinterpretować pustą klauzulę zawierającą zero literałów jako zawsze fałszywą – co ma sens, jeśli pamiętamy, że otrzymuje się ją z dwóch klauzul (p)  (¬p). Pusta klauzula jest, innymi słowy, kolejną nazwą zdania zawsze fałszywego F. Wynika z tego, że formuła jest niespełnialna, jeśli w powtarzanym procesie formowania rezolwentów i dodawania ich do formuły otrzymamy w wyniku pustą klauzulę.

(b) Wykaż, że prawdziwe jest odwrócenie części (a); to znaczy, jeśli w wyniku procesu tworzenia rezolwentów i dodawania ich do formuły nie powstaje pusta klauzula, to wtedy oryginalna formuła (i wszystkie formuły jej równoważne utworzone z niej przez rezolucję) są prawdziwe przy pewnym wartościowaniu. Wskazówka: Niech C będzie formułą utworzoną poprzez dodawanie do niej nowych rezolwentów tak długo, aż żaden nowy nie może zostać utworzony (dlaczego ten proces się kończy?). Przypuśćmy, że C jest niespełnialna, ale wśród wywiedzionych klauzul nie ma klauzuli pustej. Jeśli oryginalna formuła zawiera k zmiennych zdaniowych p1, …, pk, to niech Ci będzie formułą składającą się z wyłącznie tych klauzul z C, w których zmienne zdaniowe znajdują się wśród pi, …, pk (więc C1 = C). Udowodnij przez indukcję po i, że dla każdego i = 1, …, k + 1 żadne wartościowanie zmiennych pi, …, pk nie sprawia, że Ci jest prawdziwe. Jedyną jednak klauzulą, która mogłaby być fałszywa z Ck + 1 jest klauzula pusta, co prowadzi do sprzeczności i kończy dowód.

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.