12
06/11/2010 1 ING. JORGE BUABUD LENGUAJES REGULARES Y AUTÓMATAS FINITOS U.T.N. – F.R.T. S. y S. de los L. AUTÓMATAS FINITOS NO DETERMINISTAS: Son aquellos AF cuyas relaciones de transición pueden tener varias reacciones para un mismo estímulo. Podemos distinguir 3 modelos que tienen esta característica, los mismos difieren en el dominio de la relación de transición y son totalmente equivalentes: 1) AFND = Q, Σ, Q 0 , F, f con f: Q x Σ 2 Q donde Q 0 Q es un subconjunto de estados iniciales. 2) AF-λ = Q, Σ, q 0 , F, f con f: Q x Σ∪ Σ∪ Σ∪ Σ∪{λ} 2 Q donde la entrada puede ser vacía o sea transicionar sin leer. 3) AF-Lazy = Q, Σ, q 0 , F, f con f: Q x Σ* 2 Q donde la entrada puede ser una palabra cualquiera sobre Σ. ING. JORGE BUABUD LENGUAJES REGULARES Y AUTÓMATAS FINITOS U.T.N. – F.R.T. S. y S. de los L. AUTÓMATAS FINITOS NO DETERMINISTAS: EJEMPLOS DE AUTÓMATAS NO DETERMINISTAS : ER = a.(a+b)*.b AFND2 a,b 2 3 1 a b ER = c.a*.b*+(c.b)*.c.a.c.b* AFND1 a 3 1 c b 5 c b 2 b c 4 6 a c ER = c.a*.b*+(c.b)*.c.a.c.b* AF-λ1 a 3 1 c λ 5 c b b c 4 6 a c 7 ER = c.a*.b*+(c.b)*.c.a.c.b* AF-Lazy1 a 3 1 c λ 4 cac b cb 2 λ 7 2 λ

CLASE-9 Automatas No Deterministas

Embed Size (px)

DESCRIPTION

Sintaxis

Citation preview

Page 1: CLASE-9 Automatas No Deterministas

06/11/2010

1

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

AUTÓMATAS FINITOS NO DETERMINISTAS:

Son aquellos AF cuyas relaciones de transición pueden tener varias reacciones para un mismo estímulo.Podemos distinguir 3 modelos que tienen esta característica, los mismos difieren en el dominio de la relación de transición y son totalmente equivalentes:

1) AFND = ⟨⟨⟨⟨Q, ΣΣΣΣ, Q0 , F, f ⟩⟩⟩⟩ con f: Q x ΣΣΣΣ ⇒⇒⇒⇒ 2Q

donde Q0⊆⊆⊆⊆Q es un subconjunto de estados iniciales.

2) AF-λλλλ = ⟨⟨⟨⟨Q, ΣΣΣΣ, q0 , F, f ⟩⟩⟩⟩ con f: Q x Σ∪Σ∪Σ∪Σ∪{λλλλ} ⇒⇒⇒⇒ 2Q

donde la entrada puede ser vacía o sea transicionar sin leer.

3) AF-Lazy = ⟨⟨⟨⟨Q, ΣΣΣΣ, q0 , F, f ⟩⟩⟩⟩ con f: Q x ΣΣΣΣ* ⇒⇒⇒⇒ 2Q

donde la entrada puede ser una palabra cualquiera sobre ΣΣΣΣ.

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

AUTÓMATAS FINITOS NO DETERMINISTAS:

EJEMPLOS DE AUTÓMATAS NO DETERMINISTAS :ER = a.(a+b)*.b

AFND2

a,b

2 31 a b

ER = c.a*.b*+(c.b)*.c.a.c.b*

AFND1

a31 c b

5 c

b

2b c4

6 ac

ER = c.a*.b*+(c.b)*.c.a.c.b*

AF-λλλλ1

a31 c λλλλ

5 c

b

bc4

6 ac

7

ER = c.a*.b*+(c.b)*.c.a.c.b*

AF-Lazy1

a3

1c λλλλ

4

cac

b

cb

2

λλλλ7

2λλλλ

Page 2: CLASE-9 Automatas No Deterministas

06/11/2010

2

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

AUTÓMATAS FINITOS NO DETERMINISTAS:

REPRESENTACIÓN MATRICIAL :En esta formade representarla relación detransición, sedebe tener en cuenta que unelemento del

rango es en general un subconjunto.Por eso se los coloca entre llaves y cuando es vacío se usa el símbolo φφφφ.

AF-λλλλ1 a b c λλλλ→→→→ 1 φφφφ φφφφ {2} {5}

2 {2} φφφφ φφφφ {3}

* 3 φφφφ {3} φφφφ φφφφ4 φφφφ {4} φφφφ φφφφ5 φφφφ φφφφ {4,6} φφφφ6 {7} φφφφ φφφφ φφφφ7 φφφφ φφφφ {3} φφφφ

AF-Lazy1 a b c cb cac λλλλ→→→→ 1 φφφφ φφφφ {2} φφφφ φφφφ {4}

2 {2} φφφφ φφφφ φφφφ φφφφ {3}

*3 φφφφ {3} φφφφ φφφφ φφφφ φφφφ4 φφφφ φφφφ φφφφ {4} {3} φφφφ

AFND2 a b

→→→→ 1 {2} φφφφ2 {2} {2,3}

* 3 φφφφ φφφφ

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

AUTÓMATAS FINITOS NO DETERMINISTAS:

EQUIVALENCIA ENTRE LOS 3 MODELOS :Como dijimos anteriormente, los tres modelos no deterministas son equivalentes y se puede pasar de uno a otro fácilmente. Podemos afirmar que el formato del AF-Lazy incluye al AF-λλλλ. Por otro lado el AFND puede considerarse como un caso particular del AF- λλλλ, donde los distintos estados iniciales que se permite, pueden confluir en uno solo mediante transiciones λλλλ.De igual modo, cuando trabajamos con AF-λλλλ se puede unificar los estados finales con transiciones λλλλ.Las transiciones λλλλ permiten en general disminuir la cantidad de transiciones del AF y las transiciones con “palabras” contribuyen a la reducción de la cantidad de estados del AF.

Page 3: CLASE-9 Automatas No Deterministas

06/11/2010

3

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

AUTÓMATAS FINITOS NO DETERMINISTAS:

EJEMPLO DE EQUIVALENCIA ENTRE AFND Y AF- λλλλ :

AFND3

a

5

1

a

b2

bb

3b

a

4

a

a

7

a,b

a

a b

b

b

AF-λλλλ2

a1 b2

b

b

8

b

a

4

a

a

b

67

a,b

a

b

λλλλ

0 λλλλ

λλλλ

λλλλ3

6

5

λλλλ

λλλλ λλλλ

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

AUTÓMATAS FINITOS NO DETERMINISTAS:

EJEMPLO DE EQUIVALENCIA ENTRE AFND Y AF-Lazy :

AFND4 AF-Lazy2

a

6b

c2

b 3b

c

4

a

7a

a c

b

1

5c

cab, bb, cacbc4

ca

caa

aa

3

10

λλλλ

λλλλ

Page 4: CLASE-9 Automatas No Deterministas

06/11/2010

4

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

AUTÓMATAS FINITOS NO DETERMINISTAS:

ASOCIACIÓN ENTRE AF Y GR :Existe una analogía entre los AF = ⟨⟨⟨⟨ Q , ΣΣΣΣ , q0 , F, f ⟩⟩⟩⟩ descriptos hasta ahora, ya sean deterministas o no, con las GR = ⟨⟨⟨⟨ ΣΣΣΣN , ΣΣΣΣT , P, S ⟩⟩⟩⟩.

ALGORITMO AF ⇒⇒⇒⇒GR

ΣΣΣΣN=Q , ΣΣΣΣT=ΣΣΣΣ , S=q0

f(q,w)=p ⇒⇒⇒⇒ q→→→→wp

P f(q,w)∈∈∈∈F ⇒⇒⇒⇒ q→→→→w

q0∈∈∈∈F ⇒⇒⇒⇒ q0→λ→λ→λ→λ

ALGORITMO GR ⇒⇒⇒⇒AF

Q=ΣΣΣΣN∪∪∪∪{E} , ΣΣΣΣ=ΣΣΣΣT , q0=S , F={E}

N1→→→→wN2 ⇒⇒⇒⇒ f(N1,w)=N2

f N1→→→→w ⇒⇒⇒⇒ f(N1,w)=E

S→λ→λ→λ→λ ⇒⇒⇒⇒ f(S,λλλλ)=E

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

AUTÓMATAS FINITOS NO DETERMINISTAS:

EJEMPLOS DE TRANSFORMACIÓN DE AF A GR :Para mayor claridad se ha realizado algunos cambios en los nombres de los estados y se ha eliminado no-terminales inútiles:

AFND2 ⇒⇒⇒⇒ GR

ΣΣΣΣN={S, A} , ΣΣΣΣT={a, b}P={ S→→→→aA , A→→→→aA|bA|b }

AF-λλλλ2 ⇒⇒⇒⇒ GR

ΣΣΣΣN={S, A, B, C, D, E, F, G}

ΣΣΣΣT={a, b}

P={ S→→→→A|D|F , A→→→→aA|bB , B→→→→aC|bE|aD , C→→→→aC|λλλλ , D→→→→bA|bE , E→→→→bE|λλλλ , F→→→→aG|bF|λλλλ , G→→→→B|aG|bG}

AF-Lazy1 ⇒⇒⇒⇒ GR

ΣΣΣΣN={S, A, B, C} , ΣΣΣΣT={a, b, c}P={ S→→→→cA|C , A→→→→aA|B|λλλλ ,

B→→→→bB|b , C→→→→cacB|cbC|cac }

Page 5: CLASE-9 Automatas No Deterministas

06/11/2010

5

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

AUTÓMATAS FINITOS NO DETERMINISTAS:

EJEMPLOS DE TRANSFORMACIÓN DE GR A AF :

aa

FSaba

λλλλ Aba

B λλλλ

bb , λλλλ

aAF-Lazy3

GR=⟨⟨⟨⟨{S, A, B} , {a, b} , P , S ⟩⟩⟩⟩

S →→→→ abaB | bb | λλλλ | AP A →→→→ baS | a

B →→→→ aaA | λλλλ

F

Ba

a

ACa

b

b

Sa

b

b

GR=⟨⟨⟨⟨{S, A, B, C} , {a, b} , P , S ⟩⟩⟩⟩

S → → → → aBA →→→→ bC | bA | bB →→→→ aC | bB | aC → → → → aA

P

AFND5

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

OPERACIONES CON AUTÓMATAS FINITOS:

UNIÓN: La Unión de dos AF, ya sean deterministas o no, en general da como resultado un AF-Lazy tal que reconoce la unión de los lenguajes que aceptan los autómatas operandos. El mecanismo consiste en crear un estado inicial nuevo y definir transiciones-λλλλ desde éste hacia los estados iniciales de los AF de partida.

λλλλ

λλλλ AF1

AF2

AF3

AF3 = AF1∪∪∪∪AF2

L(AF3)=L(AF1) ∪∪∪∪L(AF2)

Page 6: CLASE-9 Automatas No Deterministas

06/11/2010

6

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

EJEMPLO DE UNIÓN :ER = ((a+b+c).(a+b+c))*+ c.a*.b*+(c.b)*.c.a.c.b*

OPERACIONES CON AUTÓMATAS FINITOS:

AF-Lazy4

AFD7

6 75a, b, c

a, b, c

a, b, c

AF-Lazy1a

3

1c

λλλλ

4

cac

b

cb

2

λλλλ0

λλλλ

λλλλ

AF-Lazy4 a b c cb cac λλλλ→→→→ 0 φφφφ φφφφ φφφφ φφφφ φφφφ {1,5}

1 φφφφ φφφφ {2} φφφφ φφφφ {4}

2 {2} φφφφ φφφφ φφφφ φφφφ {3}

*3 φφφφ {3} φφφφ φφφφ φφφφ φφφφ4 φφφφ φφφφ φφφφ {4} {3} φφφφ

*5 {6} {6} {6} φφφφ φφφφ φφφφ6 {7} {7} {7} φφφφ φφφφ φφφφ

*7 {6} {6} {6} φφφφ φφφφ φφφφ

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

OPERACIONES CON AUTÓMATAS FINITOS:

CONCATENACIÓN : La Concatenación o Producto de dos AF, ya sean deterministas o no, en general da como resultado un AF-Lazy tal que reconoce el producto de los lenguajes que aceptan los autómatas operandos. El mecanismo consiste en colocar transiciones-λλλλ desde todos los finales del primero al inicial del segundo. Estos estados pasan a ser comunes.

AF3 = AF1.AF2 , L(AF3)=L(AF1).L(AF2)

λλλλ

AF1 AF2AF3λλλλ

Page 7: CLASE-9 Automatas No Deterministas

06/11/2010

7

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

OPERACIONES CON AUTÓMATAS FINITOS:

EJEMPLO DE CONCATENACIÓN :ER = ((a+b+c).(a+b+c))*.(a.b.a.a.a.b.a+b.a)*.(a.b.a.a.a.a+a.b.a+b.b+a+λλλλ)

aa74

aba

λλλλ 5ba

6 λλλλ

bb , λλλλ

aAF-Lazy3AFD7

2a, b, c

a, b, c

a, b, c

λλλλ

λλλλ1 3

AF-Lazy5

AF-Lazy5

a b c aa ba bb aba λλλλ

→→→→1 {2} {2} {2} φφφφ φφφφ φφφφ φφφφ {4}

2 {3} {3} {3} φφφφ φφφφ φφφφ φφφφ φφφφ

3 {2} {2} {2} φφφφ φφφφ φφφφ φφφφ {4}

4 φφφφ φφφφ φφφφ φφφφ φφφφ {7} {6} {5,7}

a b c aa ba bb aba λλλλ

5 {7} φφφφ φφφφ φφφφ {4} φφφφ φφφφ φφφφ

6 φφφφ φφφφ φφφφ {5} φφφφ φφφφ φφφφ {7}

*7 φφφφ φφφφ φφφφ φφφφ φφφφ φφφφ φφφφ φφφφ

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

OPERACIONES CON AUTÓMATAS FINITOS:

ESTRELLA DE KLEENE : La operación Estrella de Kleene de un AF, ya sea determinista o no, en general da como resultado un AF-Lazy tal que reconoce la estrella de Kleene del lenguaje que acepta el autómata base. El mecanismo consiste en colocar transiciones-λλλλ desde todos los finales al inicial y crear un nuevo inicial/final con una transición-λλλλ al inicial viejo.

AF3 = AF1*

L(AF3)=L(AF1)*λλλλ

AF1AF3 λλλλ

λλλλ

Page 8: CLASE-9 Automatas No Deterministas

06/11/2010

8

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

OPERACIONES CON AUTÓMATAS FINITOS:

EJEMPLO DE ESTRELLA DE KLEENE :

ER = (b.b*.(a.b.(a+b.b.b)*.(a+b.b.b+b)+a.b+b)+b)*

AF-λλλλ3

b

1

4

32

6

5

b

b,a

a

ba

a ba

ab

AFD4

0λλλλλλλλ

λλλλλλλλ

AF-λλλλ3 a b λλλλ→*0 φφφφ φφφφ {1}

1 {4} {2} φφφφ*2 {3} {2} {1}

3 {4} {6} φφφφ4 {4} {4} φφφφ

*5 {4} {3} {1}

*6 {6} {5} {1}

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

OPERACIONES CON AUTÓMATAS FINITOS:

ESTRELLA POSITIVA : La operación Estrella Positiva de un AF, ya sea determinista o no, en general da como resultado un AF-Lazy tal que reconoce la estrella positiva del lenguaje que acepta el autómata base. El mecanismo consiste en colocar transiciones-λλλλ desde todos los finales al inicial.

AF3 = AF1+

L(AF3)=L(AF1) +

λλλλ

AF1AF3 λλλλ

Page 9: CLASE-9 Automatas No Deterministas

06/11/2010

9

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

OPERACIONES CON AUTÓMATAS FINITOS:

EJEMPLO DE ESTRELLA POSITIVA :

ER = X.X*

X = a*.b.b*.(a.b.b*+a+b)+ a*.b

ER = ((a+b+c).(a+b+c))*

AF-λλλλ5AFD7

2 31 a, b, c

a, b, c

a, b, cλλλλ

AF-λλλλ4 a b λλλλ→ 1 {1} {2} φφφφ*2 {3} {2} {1}

*3 {4} {3} {1}

4 {4} {4} φφφφ

AF-λλλλ5 a b c λλλλ→ *1 {2} {2} {2} φφφφ

2 {3} {3} {3} φφφφ*3 {2} {2} {2} {1}

AF-λλλλ4b

12

3

ba

4b,a

a

ba

AFD2λλλλ

λλλλ

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

OPERACIONES CON AUTÓMATAS FINITOS:

INVERSA: La Inversa de un AF, ya sea determinista o no, en general da como resultado un AF-Lazy tal que reconoce la inversa del lenguaje que acepta el autómata base. El mecanismo consiste en invertir todas las transiciones del AF, luego crear un nuevo estado inicial con transiciones-λλλλ hacia todos los estados finales, éstos pierden tal condición y el estado inicial viejo pasa a ser el único final.

λλλλ

AF1AF3λλλλAF3 = AF1-1

L(AF3)=L(AF1) -1

Page 10: CLASE-9 Automatas No Deterministas

06/11/2010

10

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

OPERACIONES CON AUTÓMATAS FINITOS:

EJEMPLO DE INVERSA :

ER = (b+b.a+(a+b.b.b+b).(a+b.b.b)*.b.a).b.b*+b

AF-λλλλ6 a b λλλλ→ 0 φφφφ φφφφ {2,5,6}

*1 φφφφ φφφφ φφφφ

2 φφφφ {2,1} φφφφ3 {2} {5} φφφφ4 {1,3,

4,5}{4} φφφφ

5 φφφφ {6} φφφφ6 {6} {3} φφφφ

AF-λλλλ6

b

0

4

3b

b,a

a

ba

a

ba

ab

AFD4

1 λλλλλλλλ

λλλλ

6

5

2

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

OPERACIONES CON AUTÓMATAS FINITOS:

COMPLEMENTO : Para obtener el Complemento de un AF, o sea el AF que reconozca el complemento del lenguaje que acepta el autómata base, se requiere que el modelo sea DETERMINISTA y completo.El mecanismo consiste en convertir en finales los estados no-finales y viceversa.

AF3 = ∼∼∼∼AF1

L(AF3)= ∼∼∼∼L(AF1)

AF1 = ⟨⟨⟨⟨ Q1 , ΣΣΣΣ , q10 , F1 , f1 ⟩⟩⟩⟩

AF3 = ⟨⟨⟨⟨ Q3 , ΣΣΣΣ , q30 , F3 , f3 ⟩⟩⟩⟩

Q3=Q1 , q30=q10 , f3=f1

F3=Q1-F1

Page 11: CLASE-9 Automatas No Deterministas

06/11/2010

11

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

OPERACIONES CON AUTÓMATAS FINITOS:

EJEMPLO DE COMPLEMENTO :

ER = b.b*.(a.(b.b.b)*.((a+b.a*.b.a).(a+b).(a+b)*+b.a.a+b.b.b+a)+a)+a.(a+b)*+λλλλ

AFD14

b2

6

5

1

4

3b

b,a

a

ba

a ba

ab

AFD4

AFD14 a b

→→→→*1 4 2

2 3 2

*3 4 6

*4 4 4

5 4 3

6 6 5

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

OPERACIONES CON AUTÓMATAS FINITOS:

INTERSECCIÓN : Para obtener la Intersección de dos AF, o sea el AF que reconozca la intersección de los lenguajes que aceptan los autómatas operandos, se requiere que los modelos sean DETERMINISTAS y completos.El mecanismo se representa formalmente a continuación:

AF1 = ⟨⟨⟨⟨ Q1 , ΣΣΣΣ , q10 , F1 , f1 ⟩⟩⟩⟩

AF2 = ⟨⟨⟨⟨ Q2 , ΣΣΣΣ , q20 , F2 , f2 ⟩⟩⟩⟩

AF3 = ⟨⟨⟨⟨ Q3 , ΣΣΣΣ , q30 , F3 , f3 ⟩⟩⟩⟩

Q3⊆⊆⊆⊆Q1xQ2 , q30=[q10 , q20] , F3⊆⊆⊆⊆F1xF2

f3([q1,q2],x)=[f 1(q1,x) , f2(q2,x)]

AF3 = AF1∩∩∩∩AF2

L(AF3)=L(AF1) ∩∩∩∩L(AF2)

Page 12: CLASE-9 Automatas No Deterministas

06/11/2010

12

ING. JORGE BUABUD

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

OPERACIONES CON AUTÓMATAS FINITOS:

EJEMPLO DE INTERSECCIÓN :

ER = (a+b+c).((a+b).(a+b))*.(a.c.a+b.c.a+c).(a.a)*AFD5

5 6a, b, c c4

a, b a

7a, b, cb, c

AFD7

2 31a, b, c

a, b, c

a, b, c

AFD15 a b c

→→→→0={1,4} 1 1 1

1={2,5} 3 3 2

*2={3,6} 4 5 5

3={3,5} 1 1 4

4={2,6} 2 6 6

5={2,7} 6 6 6

6={3,7} 5 5 5

Aplicando el mecanismo de minimización se determina que los nuevos estados 5 y 6 son equivalentes. Con lo que el AFD15 mínimo queda:

AFD15

0 1

3

5

2

4

a, b, c

c

c

a, b a a, b, c

b, c

b, c