Diagnostico de fallas en circuitos digitales
Circuito digital: Construido usando las siguientes compuertas.
NOT:
AND:
OR:
1
Ejemplo: Sumador binario
Un sumador binario recibe como entrada dos bits a y b y el resto c
de otra suma. Retorna el valor de la suma s y el resto r:
a b c s r
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
2
Ejemplo: Sumador binario
Construimos el circuito considerando los valores 1 en las salidas:
r
N2
N3
N1a
c
b
A7A1 A2 A3 A4 A5 A6
O2O1
s
3
Sumador binario: Representacion en logica proposicional
El comportamiento del circuito puede ser especificado usando
logica proposicional.
Usamos letras proposicionales que representan la salida de cada
compuerta.
4
Sumador binario: Representacion en logica proposicional
a5
N2
N3
N1a
c
b
A7A1 A2 A3 A4 A5 A6
O2O1
s r
a1 a3 a6 a7
n1
n2
n3
a4a2
5
Sumador binario: Representacion en logica proposicional
Entonces el comportamiento del circuito es representado por el
siguiente conjunto de formulas ESP :
- Compuertas NOT:
n1 ↔ ¬a n2 ↔ ¬b
n3 ↔ ¬c
- Compuertas AND:
a1 ↔ (n1 ∧ n2 ∧ c) a2 ↔ (n1 ∧ b ∧ n3)
a3 ↔ (a ∧ n2 ∧ n3) a4 ↔ (a ∧ b ∧ c)
a5 ↔ (n1 ∧ b ∧ c) a6 ↔ (a ∧ n2 ∧ c)
a7 ↔ (a ∧ b ∧ n3)
6
Sumador binario: Representacion en logica proposicional
- Compuertas OR:
s ↔ (a1 ∨ a2 ∨ a3 ∨ a4)
r ↔ (a4 ∨ a5 ∨ a6 ∨ a7)
Estas formulas especifican el comportamiento normal del circuito.
7
Sumador binario: Problemas de funcionamiento
Supongamos que hacemos funcionar el circuito con entrada a = 1,
b = 0 y c = 0, y que vemos como salida s = 0 y r = 0.
¿Que paso? El circuito no esta funcionando bien.
- ¿Como se refleja esto en nuestra especificacion del circuito?
Si OBS es el conjunto observado de entradas y salidas (OBS = {a,
¬b, ¬c, ¬s, ¬r}), entonces ESP ∪ OBS es inconsistente.
- No podemos usar ESP ∪ OBS para descubrir que paso.
Necesitamos una representacion que sea tolerante a fallas.
- No debe ser inconsistente si el circuito funciona mal.
8
Sumador binario: Modelo tolerante a fallas
Queremos usar la representacion del circuito para inferir
que compuertas estan funcionando mal.
Por cada compuerta X vamos a introducir una variable
proposicional normal X que indica que la compuerta
esta funcionando bien.
Si la compuerta X funciona mal, podemos satisfacer ESP ∪ OBS
tomando una valuacion σ tal que σ(normal X) = 0.
9
Sumador binario: Modelo tolerante a fallas
La nueva representacion ESP tolerante a fallas es definida de la
siguiente forma:
- Compuertas NOT:
normal N1 → (n1 ↔ ¬a)
normal N2 → (n2 ↔ ¬b)
normal N3 → (n3 ↔ ¬c)
10
Sumador binario: Modelo tolerante a fallas
- Compuertas AND:
normal A1 → (a1 ↔ (n1 ∧ n2 ∧ c))
normal A2 → (a2 ↔ (n1 ∧ b ∧ n3))
normal A3 → (a3 ↔ (a ∧ n2 ∧ n3))
normal A4 → (a4 ↔ (a ∧ b ∧ c))
normal A5 → (a5 ↔ (n1 ∧ b ∧ c))
normal A6 → (a6 ↔ (a ∧ n2 ∧ c))
normal A7 → (a7 ↔ (a ∧ b ∧ n3))
- Compuertas OR:
normal O1 → (s ↔ (a1 ∨ a2 ∨ a3 ∨ a4))
normal O2 → (r ↔ (a4 ∨ a5 ∨ a6 ∨ a7))
11
Sumador binario: Modelo tolerante a fallas
¿Por que al introducir las nuevas variables proposicionales usamos
→ en lugar de ↔?
Notese que si OBS = {a,¬b,¬c,¬s,¬r}, entonces ESP ∪ OBS es
consistente.
- La nueva representacion es tolerante a fallas.
¿Que representa una valuacion σ tal que σ(ESP ∪ OBS ) = 1?
- Es una posible explicacion del mal funcionamiento.
12
Sumador binario: Modelo tolerante a fallas
Ejemplo: una valuacion σ tal que σ(normal X) = 0 para toda
compuerta X satisface ESP ∪ OBS .
¿Que nos dice esta valuacion? Que todo esta funcionando mal. ¡No
es una buena explicacion!
No podemos saber con certeza que compuerta esta fallando. Pero si
podemos conjeturar alguna explicacion.
- Vamos a asumir que la probabilidad de falla de una compuerta es
baja.
- Nos interesan las explicaciones minimales.
13
Modelo tolerante a fallas: Diagnostico
Dada una valuacion σ tal que σ(ESP ∪ OBS ) = 1, definimos:
expl(σ) = { ¬normal X | σ(normal X) = 0 }.
expl(σ): explicacion asociada a σ.
Dada una valuacion σ tal que σ(ESP ∪ OBS ) = 1, decimos que la
explicacion asociada a σ es minimal si no existe σ′ tal que
σ′(ESP ∪ OBS ) = 1 y expl(σ′) ( expl(σ).
Diagnostico: explicacion minimal, vale decir,
diag(ESP ∪ OBS ) = { expl(σ) | σ(ESP ∪ OBS ) = 1 y
expl(σ) es minimal }.
14
Modelo tolerante a fallas: Diagnostico
En el ejemplo: La siguiente valuacion satisface a ESP ∪ OBS .
σ(a) = 1 σ(a2) = 0 σ(normal A1) = 1
σ(b) = 0 σ(a3) = 1 σ(normal A2) = 1
σ(c) = 0 σ(a4) = 0 σ(normal A3) = 1
σ(s) = 0 σ(a5) = 0 σ(normal A4) = 1
σ(r) = 0 σ(a6) = 0 σ(normal A5) = 1
σ(n1) = 0 σ(a7) = 0 σ(normal A6) = 1
σ(n2) = 1 σ(normal N1) = 1 σ(normal A7) = 1
σ(n3) = 1 σ(normal N2) = 1 σ(normal O1) = 0
σ(a1) = 0 σ(normal N3) = 1 σ(normal O2) = 1
expl(σ) = {¬normal O1} es minimal: Un posible diagnostico es que
la compuerta O1 esta funcionando mal.
15
Diagnostico y Otter
¿Como podemos descubrir otros diagnosticos? ¿Como podemos
usar Otter para descubrir diagnosticos?
Como el circuito esta funcionando mal, sabemos que:
ESP ∪ OBS ∪ {normal X | X ∈ {N1, N2, N3,
A1, A2, A3, A4, A5, A6, A7, O1, O2}}
es inconsistente.
Podemos usar Otter para demostrar esto.
16
Diagnostico y Otter
Entrada:
set(binary_res).
clear(factor).
clear(unit_deletion).
formula_list(usable).
normal_N1 -> (n1 <-> -a).
normal_N2 -> (n2 <-> -b).
normal_N3 -> (n3 <-> -c).
normal_A1 -> (a1 <-> (n1 & n2 & c)).
normal_A2 -> (a2 <-> (n1 & b & n3)).
normal_A3 -> (a3 <-> (a & n2 & n3)).
normal_A4 -> (a4 <-> (a & b & c)).
17
Diagnostico y Otter
normal_A5 -> (a5 <-> (n1 & b & c)).
normal_A6 -> (a6 <-> (a & n2 & c)).
normal_A7 -> (a7 <-> (a & b & n3)).
normal_O1 -> (s <-> (a1 | a2 | a3 | a4)).
normal_O2 -> (r <-> (a4 | a5 | a6 | a7)).
a.
-b.
-c.
-s.
-r.
end_of_list.
18
Diagnostico y Otter
formula_list(sos).
normal_N1.
normal_N2.
normal_N3.
normal_A1.
normal_A2.
normal_A3.
normal_A4.
normal_A5.
normal_A6.
normal_A7.
normal_O1.
normal_O2.
end_of_list.
19
Diagnostico y Otter
Parte de la salida:
---------------- PROOF ----------------
4 [] -normal_N2|n2|b.
6 [] -normal_N3|n3|c.
18 [] -normal_A3|a3| -a| -n2| -n3.
38 [] -normal_O1|s| -a3.
45 [] a.
46 [] -b.
47 [] -c.
48 [] -s.
51 [] normal_N2.
52 [] normal_N3.
55 [] normal_A3.
60 [] normal_O1.
20
Diagnostico y Otter
63 [binary,51.1,4.1] n2|b.
64 [binary,52.1,6.1] n3|c.
71 [binary,55.1,18.1] a3| -a| -n2| -n3.
84 [binary,60.1,38.1] s| -a3.
92 [binary,63.2,46.1] n2.
93 [binary,64.2,47.1] n3.
100 [binary,84.1,48.1] -a3.
101 [binary,71.1,100.1] -a| -n2| -n3.
105 [binary,101.1,45.1] -n2| -n3.
108 [binary,105.1,92.1] -n3.
109 [binary,108.1,93.1] $F.
------------ end of proof -------------
21
Diagnostico y Otter
Otter no uso todas las compuertas en la demostracion: No todo
funciona mal.
¿Que podemos inferir desde la demostracion? ESP ∪ OBS ∪
{normal N2, normal N3, normal A3, normal O1} es inconsistente.
Por lo tanto:
ESP ∪ OBS |= ¬normal N2 ∨ ¬normal N3 ∨
¬normal A3 ∨ ¬normal O1
Vale decir: N2, N3, A3 o O1 esta funcionando mal.
22
Diagnostico y Otter
Cualquier diagnostico tiene que incluir a una de las compuertas N2,
N3, A3 o O1.
¿Como podemos obtener mas informacion?
Podemos usar el mecanismo de pesos para buscar otras alternativas:
weight_list(pick_given).
weight(normal_N2,1000).
weight(normal_N3,1000).
weight(normal_A3,1000).
weight(normal_O1,1000).
end_of_list.
23
Diagnostico y Otter
Parte de la salida:
---------------- PROOF ----------------
4 [] -normal_N2|n2|b.
6 [] -normal_N3|n3|c.
18 [] -normal_A3|a3| -a| -n2| -n3.
38 [] -normal_O1|s| -a3.
45 [] a.
46 [] -b.
47 [] -c.
48 [] -s.
51 [] normal_N2.
52 [] normal_N3.
55 [] normal_A3.
60 [] normal_O1.
24
Diagnostico y Otter
91 [binary,51.1,4.1] n2|b.
93 [binary,91.2,46.1] n2.
94 [binary,93.1,18.4] -normal_A3|a3| -a| -n3.
95 [binary,52.1,6.1] n3|c.
96 [binary,95.2,47.1] n3.
97 [binary,60.1,38.1] s| -a3.
98 [binary,97.1,48.1] -a3.
99 [binary,94.1,55.1] a3| -a| -n3.
103 [binary,99.1,98.1] -a| -n3.
106 [binary,103.1,45.1] -n3.
107 [binary,106.1,96.1] $F.
------------ end of proof -------------
25
Diagnostico y Otter
Otter sigue diciendo que el problema esta en N2, N3, A3 o O1.
- Tenemos evidencia para creer que cualquier diagnostico va a decir
que una de estas tres compuertas no funciona bien.
Ahora que Otter ha reducido el espacio de busqueda, es mas facil
encontrar otros diagnosticos.
Ejercicio: Encuentre otros tres diagnosticos basado en la evidencia
entregada por Otter.
Las ideas que hemos presentado aquı pueden generalizarse para
encontrar diagnosticos usando resolucion.
- Vamos a presentar esto cuando veamos logica de primer orden.
26
Top Related