90 likes | 273 Vues
This text explores the role of the empty string (λ) in formal languages and finite state automata (FSA). It defines an alphabet, strings, substrings, prefixes, and suffixes, illustrating how λ facilitates clearer definitions. The formal definition of FSA as a 5-tuple is provided, along with examples, including a specific FSA that accepts various strings. The discussion emphasizes the significance of λ transitions in FSAs and their utility in proving the acceptance of languages by FSAs through the construction of equivalent FSAs for regular expressions.
E N D
A bit like zero you may think you can do without but it makes definitions & calculations easier Definitions: An alphabeth is a finite set of symbols assume is not a symbol u is a string over an alphabet T iff u consists of only symbols in T Hence is a string over any T allows us to define certain things more elegantly Example: the notions “substring”, “prefix”, etc: Why empty strings?
Definitions (from first lecture) • A string u is a substring of w if there exist other • strings x & y s.t. w = xuy. • bab is a substring of babba. • If u is a substring of w, and x above is , then u • is a prefix of w. • If uw, then u is a proper prefix. • ba is a prefix of babba. • If u is a substring of w, and y above is , then u • is a suffix of w. • If uw, then u is a proper suffix. • bba is a suffix of babba.
for any string u, u=u=u it follows that === ... some properties
for any string u, u=u=u it follows that === ... some properties
We could easily have defined FSAs in such a way that edges don’t exist Yet, our definition allowed FSAs to contain edges We did this by allowing such moves explicitly: edges
FSA: Formal Definition • A Finite State Automaton (FSA) is a 5-tuple (Q, I, F, T, E) where: • Q = states = a finite set; • I = initial states = a nonempty subset of Q; • F = final states = a subset of Q; • T = an alphabet; • E = edges = a subset of Q (T + ) Q. FSA = labelled, directed graph = set of nodes (some final/initial) + directed arcs (arrows) between nodes + each arc has a label from the alphabet. a Example: formal definition of A1 Q = {1, 2, 3, 4} I = {1} F = {4} T = {a, b} E = { (1,a,2), (1,b,4), (2,a,3), (2,b,4), (3,a,3), (3,b,3), (4,a,2), (4,b,4) } a,b 2 3 a b 1 a A1 b 4 b
Recall a string is accepted by an FSA iff the string is the label of a path from initial to final node Example: this NDFSA accepts the string 01 and the string 001. After reading the first 0, the FSA can either read a 0 or a λ implications for strings accepted by FSA 1 j k f i 0 0 1 m
Sometimes we want to prove things like “Every so-and-so language can be accepted by an FSA” One often proves such things by showing how FSAs can actually be constructed The resulting FSAs often contain edges Example: proof that every Regular Expression has an equivalent FSA. usefulness of edges in FSAa