graphs, strings, languages and boolean logic

42
Graphs, Strings, Languages and Boolean Logic Graphs, Strings, Languages and Boolean Logic – p.1/41

Upload: others

Post on 18-Dec-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Graphs, Strings, Languages and Boolean Logic

Graphs, Strings, Languages andBoolean Logic

Graphs, Strings, Languages and Boolean Logic– p.1/41

Page 2: Graphs, Strings, Languages and Boolean Logic

Graphs• An undirected graph, or simple agraph, is a set of

pointswith linesconnecting some points.• Thepointsare callednodesor vertices, and the

linesare callededges

Graphs, Strings, Languages and Boolean Logic– p.2/41

Page 3: Graphs, Strings, Languages and Boolean Logic

Example graphs

j5 j2

j1j3 j4ZZ

ZZ

ZZ��

��

��

��

��

��

LLLLLL

Graph (a)

j3j1 j2

j4��

��

@@

@@

Graph (b)

Figure 1:Examples of graphs

Graphs, Strings, Languages and Boolean Logic– p.3/41

Page 4: Graphs, Strings, Languages and Boolean Logic

Note• No more thanone edgeis allowed between any

two nodes• Thenumber of edges at a particular nodeis called

thedegreeof that node• In Figure1, Graphs (a), (b)?

Graphs, Strings, Languages and Boolean Logic– p.4/41

Page 5: Graphs, Strings, Languages and Boolean Logic

Note• No more thanone edgeis allowed between any

two nodes• Thenumber of edges at a particular nodeis called

thedegreeof that node• In Figure1, Graph (a) each node has the degree 2;

in Figure1, Graph (b) each node has the degree 3

Graphs, Strings, Languages and Boolean Logic– p.5/41

Page 6: Graphs, Strings, Languages and Boolean Logic

Edge representation• In a graphG that contains nodesi andj, thepair

(i, j) represents theedgethat connectsi andj

• Theorderof i andj doesn’t matterin anundirected graph, so the pairs(i, j) and(j, i)represent thesame edge

• Because the order of the nodes is unimportant,we can also describeedges by setssuch as{i, j}

Graphs, Strings, Languages and Boolean Logic– p.6/41

Page 7: Graphs, Strings, Languages and Boolean Logic

NoteIn a directed graphthe edge(i, j) has as thesource

nodei and astarget nodej

Graphs, Strings, Languages and Boolean Logic– p.7/41

Page 8: Graphs, Strings, Languages and Boolean Logic

Formalizing the graph• If V is theset of nodesof a graphG andE is the

set of its edges, we say thatG = (V, E)

• Hence, one canspecify a graphby adiagramorby specifyingthe setsV andE

• Example: a formal description of the Graph (a)in Figure1 is:

Graphs, Strings, Languages and Boolean Logic– p.8/41

Page 9: Graphs, Strings, Languages and Boolean Logic

Formalizing the graph• If V is theset of nodesof a graphG andE is the

set of its edges, we say thatG = (V, E)

• Hence, one canspecify a graphby adiagramorby specifyingthe setsV andE

• Example: a formal description of the Graph (a)in Figure1 is:G=({1,2,3,4,5},{(1,2),(2,3),(3,4),(4,5),(5,1)})

Graphs, Strings, Languages and Boolean Logic– p.9/41

Page 10: Graphs, Strings, Languages and Boolean Logic

Graph usage• Graphs are frequently used torepresent data• Examples:

1. nodesmight becitiesandedgesmight be theconnecting highways

2. nodesmight beelectrical componentsandedgesmight bewires

between them

• Sometimes, for convenience, we maylabel nodes(and edges)of a graph, thus obtaining alabeledgraph, Figure2

Graphs, Strings, Languages and Boolean Logic– p.10/41

Page 11: Graphs, Strings, Languages and Boolean Logic

Example labeled graph

&%'$

Boston &%'$

San

Francisco378

&%'$

NeyYork

104 &%'$

Oswego

QQ

QQ

QQ

QQ

QQ

378

&%'$

Ithaca98

Figure 2:Cheapest air fares between cities

Graphs, Strings, Languages and Boolean Logic– p.11/41

Page 12: Graphs, Strings, Languages and Boolean Logic

SubgraphA graphG = (V1, E1) is asubgraphof a graphH = (G2, E2) if V1 ⊆ V2

Note: theedges ofG are theedges ofH on the corre-

sponding nodes, Figure3

Graphs, Strings, Languages and Boolean Logic– p.12/41

Page 13: Graphs, Strings, Languages and Boolean Logic

Example subgraph

j

j

�����

j@

@

j

LLLLL

j��LLLLL

@@

@@

j@@ �

Graph H

SubgraphG

Figure 3:GraphG, a subgraph ofH

Graphs, Strings, Languages and Boolean Logic– p.12/41

Page 14: Graphs, Strings, Languages and Boolean Logic

Graph paths• A pathin a graph is asequence of nodes

connected by edges• A simple pathis a path thatdoes not repeat any

node• A graph is connectedif every two nodes have a

path between them

Graphs, Strings, Languages and Boolean Logic– p.13/41

Page 15: Graphs, Strings, Languages and Boolean Logic

Graph cycles• A path is acycleif it starts and ends in the same

node• A simple cycleis a cycle thatdoesn’t repeat any

edge

Graphs, Strings, Languages and Boolean Logic– p.14/41

Page 16: Graphs, Strings, Languages and Boolean Logic

Trees• A graph is atreeif it is connectedandhas no

simple cycles, Figure4• Thenodes of degree1 in a tree are calledleaves• Sometimes there is aspecially designated node of

a treecalled theroot

Graphs, Strings, Languages and Boolean Logic– p.15/41

Page 17: Graphs, Strings, Languages and Boolean Logic

Example graphs

j

j j

��

j@

@

j@@

LLLL

A pathj

j

@@

LLLL

jj�

j@

@

A cycle j�

�@

@j��@@

j��@@j j j j

A tree

Figure 4:Path, cycle, and tree

Graphs, Strings, Languages and Boolean Logic– p.16/41

Page 18: Graphs, Strings, Languages and Boolean Logic

Directed graphs• If the edgesof a graphsare arrowsinstead of

lines the graph is adirected graph• Thenumber of arrows pointing froma particular

node is theoutdegreeof that node• Thenumber of arrows pointing toa particular

node is theindegreeof that node

Graphs, Strings, Languages and Boolean Logic– p.17/41

Page 19: Graphs, Strings, Languages and Boolean Logic

Example directed graph

j6 ����

-

j1

?

-

j5@@@I j4

j2�

?

j3

Figure 5:A directed graph

Graphs, Strings, Languages and Boolean Logic– p.18/41

Page 20: Graphs, Strings, Languages and Boolean Logic

Formal description• The formal representation of adirected graphG

is (V, E) whereV is the set of nodesandE is theset of directed edges

• Example: formal description of the graph inFigure5 is

Graphs, Strings, Languages and Boolean Logic– p.19/41

Page 21: Graphs, Strings, Languages and Boolean Logic

Formal description• The formal representation of adirected graphG

is (V, E) whereV is the set of nodesandE is theset of directed edges

• Example: formal description of the graph inFigure5 isG=({1,2,3,4,5,6},{(1,2),(1,5),(2,1),(2,4),(5,6),(6,1),(6,3)})

Graphs, Strings, Languages and Boolean Logic– p.20/41

Page 22: Graphs, Strings, Languages and Boolean Logic

Note• A path in whichall arrows point in the same

direction as its stepsis called adirected path• A directed graph isstrongly connectedif a

directed path connects every two nodes

Graphs, Strings, Languages and Boolean Logic– p.21/41

Page 23: Graphs, Strings, Languages and Boolean Logic

Example directed graphThe directed graph in Figure6 represents the relation

that characterizes the gamescissors, paper, stone:

Graphs, Strings, Languages and Boolean Logic– p.22/41

Page 24: Graphs, Strings, Languages and Boolean Logic

A game representation

&%'$

scissors &%'$

paper-

&%'$

stone

@@

@@@I �

��

��

Figure 6:The graph of a relation

Graphs, Strings, Languages and Boolean Logic– p.23/41

Page 25: Graphs, Strings, Languages and Boolean Logic

Applications• Directed graphsare a handy way of depicting

binary relations• If R is abinary relationwhosedomainandrange

is D, i.e.,R ⊆ D × D, a labeled graphG = (D, E) representsR with E = {(x, y)|xRy}

• Graph in Figure6 illustrate this fact

Graphs, Strings, Languages and Boolean Logic– p.24/41

Page 26: Graphs, Strings, Languages and Boolean Logic

Strings• Strings of charactersare fundamentalbuilding

blocksin CS• Thealphabetover which strings are definedmay

varywith application• Alphabetis afinite set• Membersof the alphabet are thesymbols

Graphs, Strings, Languages and Boolean Logic– p.25/41

Page 27: Graphs, Strings, Languages and Boolean Logic

Notation• We useGreek lettersΣ andΓ to designate

alphabets• We also usetypewriter fontsto denotesymbols of

an alphabet• Examples:

Σ1 = {0, 1}

Σ2 = {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z}

Γ = {0, 1, x, y, z}

Graphs, Strings, Languages and Boolean Logic– p.26/41

Page 28: Graphs, Strings, Languages and Boolean Logic

Strings over an alphabet• A string over an alphabetis afinite sequence of

symbols from that alphabet, usually written nextto one another

• Examples:if Σ1 = {0, 1} then01001 is a string overΣ1

if Σ2 = {a, b, c, . . . , z} thenabracadabra is a string overΣ2

Graphs, Strings, Languages and Boolean Logic– p.27/41

Page 29: Graphs, Strings, Languages and Boolean Logic

String properties• If w is a string overΣ, thelength ofw, written|w|, is thenumber of symbols contained inw

• Thestring of length zerois called theemptystring, writtenǫ

• Theempty stringplays therole of0 in a numbersystem

• If |w| = n, we can writew = w1w2 . . . wn, wi ∈ Σ, i = 1, 2, . . . , n

Graphs, Strings, Languages and Boolean Logic– p.28/41

Page 30: Graphs, Strings, Languages and Boolean Logic

More properties• Thereverseof w = w1w2 . . . wn, writtenwR, is

wR = wn . . . w2w1

• A string z is asubstringof w if w = xzy for x, ynot necessarily the empty strings

• Example: cad is a substring ofabracadabraandx = abra, y=abra

Graphs, Strings, Languages and Boolean Logic– p.29/41

Page 31: Graphs, Strings, Languages and Boolean Logic

String operations• Concatenation:two stringsx = x1x2 . . . xm and

y = y1y2 . . . yn, by concatenation define a newstringxy =x1x2 . . . xmy1y2 . . . yn

• The concatenationxx . . . x, k-times is writtenxk

• Lexicographic ordering:is the familiardictionaryorderingof strings, whereshorterstringsprecedelongerstrings

• Example: lexicographic ordering of all stringsoverΣ = {0, 1} is{ǫ, 0, 1, 00, 01, 10, 11, 000, . . .}

Graphs, Strings, Languages and Boolean Logic– p.30/41

Page 32: Graphs, Strings, Languages and Boolean Logic

LanguageA languageis aset of stringsover a given alphabet.

Let Σ be an alphabet,Σ∗ be the set of all strings overΣ, andW ⊆ Σ∗. Then we have:

• Σ is a finite set of symbols. Forx, y ∈ Σ, x andyare distinguishable symbols.

• Σ∗ is formally defined as thesemigroupof wordsgenerated by theconcatenationoperation (◦) overthe alphabetΣ. Thegeneration rulesare:1. ǫ ∈ Σ

2. For eachx ∈ Σ, x ∈ Σ∗.

3. If x, y ∈ Σ∗ thenx ◦ y = xy ∈ Σ

∗.

• W is alanguageoverΣ.

Graphs, Strings, Languages and Boolean Logic– p.31/41

Page 33: Graphs, Strings, Languages and Boolean Logic

Fundamental problemsForΣ an alphabet andL ⊆ Σ∗ a language thefollowing are fundamental problems:

• Language specification:devise a specification mechanismSML that

discriminatesstringsx ∈ L from strings iny ∈ Σ∗ andy 6∈ L.

Examples language specification mechanisms?

• Language recognition:device a recognition mechanismRML that for

any stringx ∈ Σ∗ decides whetherx ∈ L or x 6∈ L.

Examples language recognition mechanism?

• Language translation:let L1 andL2 be languages over the alphabetsΣ1

andΣ2, f : Σ1 → Σ2 a function andF : Σ∗

1→ Σ

2the semigroup

homomorphism induced byf . Device a translation mechanism

T : L1 → L2 thatpreserves the semigroup structuresof Σ∗

1andΣ

2on

L1 andL2.

Graphs, Strings, Languages and Boolean Logic– p.32/41

Page 34: Graphs, Strings, Languages and Boolean Logic

Boolean logic• Boolean logicis a mathematical system built

aroundtwo values, TRUE andFALSE, calledboolean valuesand often represented by1 and0,respectively

• Thoughoriginally conceived aspuremathematics, now this system is considered to bethefoundation of digital electronics andcomputer design

• Boolean values are used insituations with twopossibilitiessuch ashigh or low voltage,trueorfalseproposition,yesor noanswer

Graphs, Strings, Languages and Boolean Logic– p.33/41

Page 35: Graphs, Strings, Languages and Boolean Logic

Boolean operationsBoolean values are manipulated by booleanoperations:

• Negation or NOT,¬:

• Conjunction or AND,∧:

• Disjunction or OR,∨:

Graphs, Strings, Languages and Boolean Logic– p.34/41

Page 36: Graphs, Strings, Languages and Boolean Logic

Boolean operationsBoolean values are manipulated by booleanoperations:

• Negation or NOT,¬:¬0 = 1; ¬1 = 0

• Conjunction or AND,∧:0 ∧ 0 = 0; 0 ∧ 1 = 0; 1 ∧ 0 = 0; 1 ∧ 1 = 1

• Disjunction or OR,∨:0 ∨ 0 = 0; 0 ∨ 1 = 1; 1 ∨ 0 = 1; 1 ∨ 1 = 1

Graphs, Strings, Languages and Boolean Logic– p.35/41

Page 37: Graphs, Strings, Languages and Boolean Logic

Boolean expressions• Boolean operationsare used tocombine simple

statementsinto more complexbooleanexpressionsjust as thearithmetic operations+and× are used to constructarithmeticexpressions

• Examples: Let P andQ be Boolean valuesrepresenting the truth of statements “the sun isshining" and “today is Monday":• P ∧ Q represent the truth value of statement:

“the sun is shining and today is Monday"

• P ∨ Q represents the truth value of statement:

“the sun is shining or today is Monday"

Graphs, Strings, Languages and Boolean Logic– p.36/41

Page 38: Graphs, Strings, Languages and Boolean Logic

Other Boolean operations• Exclusive OR or XOR,⊕:

• Equality,↔:

• Implication,→:

Graphs, Strings, Languages and Boolean Logic– p.37/41

Page 39: Graphs, Strings, Languages and Boolean Logic

Other Boolean operations• Exclusive OR or XOR,⊕:

0 ⊕ 0 = 0; 0 ⊕ 1 = 1; 1 ⊕ 0 = 1; 1 ⊕ 1 = 0

• Equality,↔:0 ↔ 0 = 1; 0 ↔ 1 = 0; 1 ↔ 0 = 0; 1 ↔ 1 = 1

• Implication,→:0 → 0 = 1; 0 → 1 = 1; 1 → 0 = 0; 1 → 1 = 1

Graphs, Strings, Languages and Boolean Logic– p.38/41

Page 40: Graphs, Strings, Languages and Boolean Logic

Properties• One can establish variousrelationship among

Boolean operations• All Boolean operationscan be expressedin terms

of AND andNOT by the following identities:

P ∨ Q = ¬(¬P ∧ ¬Q)

P → Q = ¬P ∨ Q

P ↔ Q = (P → Q) ∧ (Q → P )

P ⊕ Q = ¬(P ↔ Q)

Graphs, Strings, Languages and Boolean Logic– p.39/41

Page 41: Graphs, Strings, Languages and Boolean Logic

Distribution law• Distribution lawfor AND andORcomes in

handy while manipulating Boolean expressions• This law issimilar to distribution lawfor addition

andmultiplicationin arithmetic:

a × (b + c) = (a × b) + (a × c)

• Boolean version:two dual laws

P ∧ (Q ∨ R) equals(P ∧ Q) ∨ (P ∧ R)P ∨ (Q ∧ R) equals(P ∨ Q) ∧ (P ∨ R)

Graphs, Strings, Languages and Boolean Logic– p.40/41

Page 42: Graphs, Strings, Languages and Boolean Logic

NoteThedualof the distribution law foradditionandmultiplicationdoes not holdin general, i.e.

a + (b ∗ c) 6= (a + b) ∗ (a + c)

Graphs, Strings, Languages and Boolean Logic– p.41/41