52 lines
1.5 KiB
Markdown
52 lines
1.5 KiB
Markdown
Lecture Topic:
|
|
|
|
# Equivalence Classes
|
|
You can represent equivalence classes by writing each one as a set:
|
|
$$C_0 = \{..., -10, -5, 0, 5, 10, 15, ...\} \text{ or } \{5p | p \in \mathbb{Z}\}$$
|
|
$$C_0 = \{..., -9, -4, 1, 6, 11, 16, ...\} \text{ or } \{5p + 1| p \in \mathbb{Z}\}$$
|
|
$$\text{and so on...}$$
|
|
# Graphs
|
|
Definitions:
|
|
- For each *vertex* v, the **degree** of v is the number of edges incident on v
|
|
- A *path* is a **sequence** of vertices connected by edges
|
|
- A *cycle* is a path that **starts and ends** at the same vertex
|
|
- A *simple path* is a path that has **no repeated** vertices
|
|
- A *connected graph* contains a path between **every pair** of vertices
|
|
- A *disconnected graph* is the opposite (look at slides for real def)
|
|
|
|
# Regular Languages
|
|
A class of languages that can be processed by simple computers called **finite automata**
|
|
|
|
## Simple Example of a finite automaton
|
|
Vending machine/toll booth gate
|
|
Requires 25 cents or more to be deposited (gives no change)
|
|
|
|
Takes as input, 5 cent, 10 cent, 25 cent coins
|
|
Uses **states** to remember how much has been deposited so far
|
|
|
|
States:
|
|
- q_0 : 0 cents deposited (START STATE)
|
|
- q_5 : 5 cents
|
|
- q_10 : 10 cents
|
|
- q_15 : 15 cents
|
|
- q_20 : 20 cents
|
|
- q_25 : 25 cents (ACCEPT STATE)
|
|
|
|
We represent the input as a **string** of symbols.
|
|
- n = nickel
|
|
- d = dime
|
|
- q = quarter
|
|
Examples:
|
|
- ddn
|
|
- ndd
|
|
- dnd
|
|
- q
|
|
Not accepted examples:
|
|
- nd
|
|
- d
|
|
- $\epsilon$
|
|
## State Diagram
|
|
(not really possible without an image in obsidian)
|
|
|
|
# Finite Automata
|
|
(look at slides, didn't catch it) |