Notes (Thai) - Discrete Mathematics & Graph Theory
บันทึกย่อสาระสำคัญ (Thai) ของวิชาวิยุตคณิตสำหรับวิศวกรคอมพิวเตอร์
Page 1–2: แนวคิดพื้นฐาน
- Discrete Mathematics คือการศึกษาสิ่งที่ไม่ต่อเนื่อง ไม่เป็นอนันต์ในลักษณะรบกวนต่อเนตเวิร์กคอมพิวเตอร์
- ความสำคัญของตรรกศาสตร์และคณิตศาสตร์ในการพิสูจน์ความถูกต้องของวิธีคิดทางคอมพิวเตอร์
- คำศัพท์พื้นฐาน: proof, proposition, axiom, theorem, lemma, corollary, conjecture, inference (ตรรกะ), predicate, quantifier
- ตัวอย่างสั้น ๆ: ประโยคพิสูจน์เท่ากับจริง/เท็จผ่านหลักฐานจาก axioms และสัจพจน์ เช่น
- Example:
2+3=5 - Example: ∀n ∈ ℕ, n^2 + n + 41 เป็นจำนวนเฉพาะ (ขยายในเนื้อหาและข้อจำกัด)
- แนวคิดการอนุมานตรรกะและการพิสูจน์ทางคณิตศาสตร์ไม่ใช่เฉพาะคณิตศาสตร์เท่านั้น แต่อยู่ในชีวิตประจำวันด้วย
1.2 Terminology (นิยามพื้นฐาน)
- Definition (นิยาม): กำหนดคำจำกัดความเพื่อสะดวกในการใช้งาน
- Axiom (สัจพจน์): ประพจน์ที่สมมุติว่าเป็นจริงเสมอ
- Conjecture (บทคาดเดา): ประพจน์ที่คิดว่าน่าจะจริงแต่ยังพิสูจน์ไม่ได้
- Theorem (ทฤษฎีบท): ประพจน์ที่พิสูจน์แล้วว่าเป็นจริง
- Lemma (บทตั้ง): ประพจน์ที่พิสูจน์ได้แต่มีบทบาทรองในทฤษฎีบทที่สำคัญกว่า
- Corollary (บทแทรก): ประพจน์ที่พิสูจน์ได้จากทฤษฎีบทที่พิสูจน์แล้ว
- Proposition/Inference: กระบวนการสืบเหตุผล/อนุมานจากข้อมูล
2. Logical reasoning (เหตุผลเชิงตรรกะ)
- 2.1 Logical operators (ตัวดำเนินการตรรกะ)
- and: P \land Q เป็นจริงเมื่อ P และ Q เป็นจริง
- or: P \lor Q เป็นจริงเมื่ออย่างน้อยหนึ่งเป็นจริง
- implies: P \(implies) Q จริงเมื่อ P เป็นจริงแล้ว Q ต้องจริง; ถ้า P is false แล้วผลลัพธ์เป็นได้ทั้งจริง/เท็จ
- if and only if: P \leftrightarrow Q จริงเมื่อทั้งสองทิศทางเป็นจริง
- negation: \neg P เท่ากับ P เป็นเท็จ
- precedence & associativity (ลำดับความสำคัญและการนิยาม) ของตรรกะเทียบเท่ากับคณิตศาสตร์แบบทั่วไป
- truth tables (ตารางค่าความจริง) และตัวอย่างการประยุกต์
- 2.2 Logical inference
- Inference rules (กฎอนุมาน) เช่น modus ponens, modus tollens, intro/elimination rules
- ตัวอย่าง: ถ้าคุณอ่านหนังสือแล้วผ่านวิชา, ถ้าอ่านหนังสือจะผ่าน และถ้าไม่อ่านจะตกวิชา → สรุปว่าุณอ่านหนังสือแล้วจะผ่าน? (ดูกรณี) โดยใช้กฎ • -INTRO, -ELIM, AXIOM
- 2.3 Proving equivalence
- ความหมายของ equivalence (สมมูล) ระหว่าง P ⇒ Q และ Q ⇒ P
- contrapositive: (P ⇒ Q) ≡ (¬Q ⇒ ¬P)
- 2.4 Quantifiers
- Universal quantifier: \forall x ∈ D: P(x) เป็นจริงเมื่อ P(x) จริงสำหรับทุก x ในโดเมน D
- Existential quantifier: \exists x ∈ D: P(x) เป็นจริงเมื่อมีอย่างน้อยหนึ่ง x ใน D ที่ P(x) จริง
- Nested quantifiers, scope, และ negating quantifiers
- Example: prime(n) เกมตัวอย่างในเอกสาร
- 2.5 Predicate formalization
- ตัวอย่าง predicate เช่น divides(a,b): a|b แปลว่า ∃ c ∈ ℤ : b = a c
- predicate เช่น prime(n): n ∈ ℤ, n > 1 และ ∀ d ∈ ℤ: d|n ⇒ d ∈ {1,n}
- 2.6 Proof by cases
- กรณีต่าง ๆ ที่สม่ำเสมอในผลลัพธ์
- 2.7 Proof by contradiction
- ใช้ negation และ contrapositive เพื่อหาข้อพิสูจน์โดยข้อขัดแย้ง
- ตัวอย่าง: √2 เป็นจำนวนนอตรรกยะ (irrational) โดยใช้การพิสูจน์โดยข้อขัดแย้ง
- 2.8 Proof of uniqueness
- วิธีแสดงว่ามีค่าเพียงค่าเดียวที่ทำให้ประพจน์จริง เช่น ∃! x ∈ ℤ ∀ y ∈ ℤ: x y = x
3 Collections (เซต/รายการ/ความสัมพันธ์)
- 3.1 Sets (เซต)
- นิยาม: เซตคือ collection ที่ไม่มีสมาชิกซ้ำและไม่เรียงลำดับ;
ตัวอย่าง: A ⊆ B, A ∪ B, A ∩ B, A − B, A ⊆ B - power set pow(A) = { X | X ⊆ A } หรือ 2^A
- ความสัมพันธ์ระหว่าง logic และ sets: ∧ ↔ ∩, ∨ ↔ ∪, ¬ ↔ complement, ⟹ ↔ ⊆, ⟺ ↔ =
- 3.1.1 Connections between logic and sets (สอดคล้องระหว่างตรรกะกับเซต)
- 3.1.2 Power sets
- Theorem: x ∈ A ⇔ {x} ∈ pow(A)
- 3.2 Lists (ลิสต์)
- ตรงกับ tuples; concatenation ++ defined recursively
- 3.3 Relations (ความสัมพันธ์)
- R ⊆ A × B; domain(A) and codomain(B)
- graph of a relation; image R(a); R(A) as image of A under R
- inverse relation R^{-1}
- properties of relations: reflexive, irreflexive, symmetric, antisymmetric, transitive
- functions, total functions, injections, surjections, bijections
- relational compositions: S ∘ R
- 3.1.1 ถอดความ: ความสัมพันธ์และเซตเชื่อมโยงกับตรรกะและการคำนวณ
4 Induction (อุปนัย)
- 4.1 Inductive definitions: base case และ inductive case
- 4.2 Structural induction: กรณีฐานและ inductive step สำหรับโครงสร้างที่นิยามโดย inductive definitions
- 4.3 Proof by induction: ใช้ induction axiom
- 4.3.1 Problem solving using induction: ตัวอย่างสวนหย่อมลายตัว L และการพิสูจน์
- 4.3.2 Induction pitfalls: ตัวอย่าง not! (ล้มพิสูจน์ด้วยเหตุผลผิด) เช่น unstacking game
- 4.4 Strong induction: นิยามและความแตกต่างจาก ordinary induction (IH holds for all smaller cases)
- 4.4.1 The unstacking game (ตัวอย่าง strong induction)
- 4.4.2 Induction vs strong induction: strong ใช้งานสะดวกกว่าในบางกรณี
- 4.5 Loop invariants (ตัวยืนของลูป)
- Establishment (initialization): ตรวจสอบ invariants ก่อน loop เริ่มต้น
- Preservation (maintenance): invariants ยังคงจริงหลังรอบทุกครั้ง
- Postcondition: ตรวจสอบผลลัพธ์เมื่อ loop สิ้นสุด
- Termination: แสดงว่า loop จะจบเมื่อเงื่อนไขหยุดทำงาน
- ตัวอย่าง: insertion sort; มีการวิเคราะห์ invariant ทั้ง outer loop และ inner loop
5 Automata theory (ทฤษฎีออโตมาตา)
- 5.1 State machines (เครื่องสถานะ)
- deterministic vs nondeterministic
- ปฏิบัติการด้วย state diagrams และ formal definitions
- 5.2 Invariants (ตัวยืนในออโตมาตา)
- ตัวอย่าง: invariant ในกรณี automata ที่เดิน diag ให้เป็นจริงตลอดเวลา
- 5.3 Deterministic Finite Automata (DFA)
- components: Q, q0, Σ, δ, F; δ : Q × Σ → Q (total); accept states F
- 5.4 Regular languages
- ภาษาใดที่มี DFA รับรู้เป็น regular language
- ตัวอย่างภาษา: w ลงท้ายด้วย 1 หรือ w ลงท้ายด้วย 0, ฯลฯ
- 5.4.1 Automata construction (Construction of DFAs) และ Regular operations
- 5.5 Nondeterministic Finite Automata (NFA)
- δ : Q × Σ_ε → P(Q) (ε-transitions allowed)
- accept if any computation path ends in accept state
- การแปลง NFA เป็น DFA (subset construction) ตาม Theorem 5.5.6
- 5.6 Regular expressions (REs)
- REs สามารถแทน languages ที่ DFA รับรู้ได้
- การแปลง DFA → GNFA → RE (process of eliminating states)
- เรื่องของ epsilon-transitions และการชดเชย transitions เมื่อกำจัด states
- 5.7 Nonregular languages
- ตัวอย่างเช่น B = {0^n 1^n | n ≥ 0}, C = {w | w มีจำนวน 0 และ 1 เท่ากัน}, D = {w | w มี 01 และ 10 เป็น substrings ที่เท่ากัน}
- Pumping lemmas: pumping lemma for regular languages (Theorem 5.7.4)
- 5.8 Context-free grammars (CFG) และ Pushdown automata (PDA)
- CFG: V, Σ, R, S, รูปแบบ production rules ในแบบ N → (V ∪ Σ)^* และรูปแบบทั่วไป
- CFG ตัวอย่าง: S → 0S1 ∣ ε; B = {0^n 1^n | n ≥ 0}
- PDA: PDA เป็น automaton ที่มี stack เพื่อรับ CFL
- non-context-free languages เช่น {a^n b^n c^n}, {ww} (เหมือนข้อมูลที่กล่าวถึง)
6 Sums and products (ผลรวมและผลคูณ)
- 6.1 Annuity (เงินงวด) และ break-even value
- 6.2 Sums: การเขียนสรุปผลรวมแบบปิด (closed form)
- 6.3 Approximating sums (ประมาณผลรวม)
- Increasing function: lower bound via integral, upper bound via sum; leading term ~ 2/3 n^{3/2} for sqrt(i) (นำเข้าสูตรใหญ่)
- Decreasing function: similar bounds
- 6.4 Products: แปลงไปสู่การหาผลรวมด้วย ln และ exponents
- 6.5 Harmonic numbers: Hn = ∑{i=1}^n 1/i; bounds via integrals and asymptotics H_n ~ ln n; ใช้กรณีที่นำไปวางไม้เหนือโต๊ะ
7 Combinatorics (การนับ)
- 7.1 Counting rules (กฎการนับพื้นฐาน)
- 7.1.1 Product rule: จำนวนวิธีเลือกหลายชุดในลำดับเดียวกันคือ product ของขนาดแต่ละชุด
- ตัวอย่าง: การกินอาหาร 3 มื้อในแต่ละมื้อมีตัวเลือกต่าง ๆ
- สูตร: |A1 × A2 × … × An| = ∏ |A_i|
- 7.1.2 Sum rule: ถ้า sets ที่ไม่ทับซ้อนกัน (pairwise disjoint) แล้วรวมกันได้โดยบวก
- 7.1.3 Generalized product rule (ไล่เรียงมุมมองของตำแหน่ง)
- สถานะที่มีความยาว k, จำนวนมุมมอง: m1, m2, …, mk; |S| = ∏ m_i
- 7.1.4 Division rule: ถ้า f: A → B เป็น k-to-1 mapping, และ |A| = k |B|, จำนวนวิธีใน A มีค่าเป็น k เท่า B
- 7.1.5 Subset rule: จำนวน subsetsของเซตขนาด n ที่มีขนาด k คือ
{n \choose k} = \frac{n!}{k!(n-k)!} . (Pascal's triangle context) - 7.2 Stars and bars (ถังขนมกับไม้คั่น)
- วิธีแก้ปัญหาการแจกจ่าย n ชิ้นให้ k คุก (แต่ละส่วนมีอย่างน้อย 1) หรือเช่นแจก 10 ชิ้นให้ 4 รสที่ต่างกัน
- Reduction: ปรับให้เป็นปัญหาการแจกแบบเดิมที่มีสูตร ${n-1 \choose k-1}$
- 7.3 Combinatorial proofs (การพิสูจน์ด้วยการนับแบบ combinatorial)
- ตัวอย่าง: Proving identities like ${n \choose k} = {n-1 \choose k-1} + {n-1 \choose k}$ โดย reasoning ผ่านการเลือกทีมหรือการแจกจ่าย
- 7.4 Pigeonhole Principle (หลักช่องนกพิราบ)
- Axiom และรูปนัย: ถ้ามีนกมากกว่าจำนวนช่อง ต้องมีช่องที่มีอย่างน้อย k+1 ตัว
- 7.5 Binomial Theorem (ทฤษฎีบททวินาม)
- $(a+b)^n = \sum_{k=0}^n {n \choose k} a^{n-k} b^k$
- 7.6 Inclusion–exclusion (การบวก–ลบแบบรวม–ตัดซ้ำ)
- กรณี 2 ชุด, 3 ชุด และกรณีหลายชุดให้รวมส่วนที่ซ้อนซ้อนอยู่ใน intersections
8 Graph theory (ทฤษฎีกราฟ)
- 8.1 Basics of graph theory
- Graph = (V, E): vertices set V และ edges set E (แต่ละ edge คือ pair ของ vertices)
- adjaceny: u ∼ v ถ้า {u,v} ∈ E
- degree deg(v): จำนวน edges ที่ v เชื่อมกับ
- subgraphs: กราฟย่อย (V′ ⊆ V, E′ ⊆ E, และทุก edge ∈ E′ ต้องมี endpoints ใน V′)
- isomorphism: กราฟ G และ H เป็น isomorphic ถ้าสามารถจับคู่ vertices เพื่อให้ edges ตรงกัน
- 8.2 Euler tours and trails
- Euler trail: traversal ผ่านทุก edge exactly once (ไม่จำเป็นต้องเริ่ม/จบที่เดียวกัน)
- Euler tour: Euler trail ที่เริ่มต้นและจบที่ vertex เดียวกัน
- Theorem (สำหรับ connected graphs):
- G มี Euler tour ก็ต่อเมื่อทุก vertex มี degree เป็นจำนวนเต็มอย่างน้อย 0 และตามลำดับ
- G มี Euler trail ก็ต่อเมื่อมี exactly 2 vertices with odd degree และเริ่มต้น/จบที่ vertex เหล่านั้น
- ตัวอย่าง: กราฟที่มี degree ของจุดต่าง ๆ เป็น 3 (odd) ทำให้ไม่มี Euler tour แต่มี Euler trail ระหว่างจุดที่มี degree เป็น 3
- 8.3 Graph coloring & 8.3.1 Bipartite graphs
- การระบายสีกราฟให้เพื่อนกันต่างสีเมื่อ edge เชื่อมระหว่างชุด (สีอาจนำไปสู่ bipartite property)
- 8.4 Planar graphs (กราฟในระนาบ) – ภาพรวม
หมายเหตุสำคัญในการเตรียมสอบ:
- เน้นความเข้าใจในแนวคิดหลักและวิธีการพิสูจน์มากกว่าคำตอบจำเพาะ
- จดจำนิยามและตัวอย่างสำคัญ ได้แก่ proof, axiom, proposition, theorem, lemma, corollary; universal/existential/negating quantifiers; mechanisms ของการพิสูจน์ด้วย induction, strong induction, loop invariants; periodic properties ของ automata (DFA/NFA) และการใช้งาน Pumping Lemma; การสร้าง CFG/PDA และแนวคิด nonregular/non-CFL languages; ปรัชญาและวิธีคิดใน combinatorics และ graph theory
- ทบทวนสูตรสำคัญใน LaTeX เช่น
- ทฤษฎีบททวินาม: (a+b)^n = \sum_{k=0}^{n} {n \choose k} a^{n-k} b^k
- Subset: {n \choose k} = \frac{n!}{k!(n-k)!}
- ความสัมพันธ์ระหว่างการนับในกราฟ: \sum_{v \in V} deg(v) = 2|E|
- คำศัพท์ที่มักสับสน: pump in/out, GNFA, NFA vs DFA, isomorphism, planarity