Title: Presentaci
1(No Transcript)
23. Estrategia secuencial-modular
Grafos
Un grafo G es un conjunto de vértices (V) y un
conjunto de arcos que unen los vértices.
5
4
1
3
2
Digrafo es un grafo en el cual los arcos tienen
una dirección. La dirección que marcan indica el
flujo de una cantidad.
5
4
1
3
2
3Matriz de adyacencia o estructural
vértices
1 2 3 4 5
1 1
2 1
3 1 1
4 1 1 1 1
5 1 1
Matriz simétrica
5
4
vértices
1
3
Indica que vértices están unidos
2
v. destino
1 2 3 4 5
1 1
2
3 1 1
4 1 1
5
d
Son valores lógicos. Booleanos.
5
a
v. origen
4
e
1
b
c
3
2
arcos
a b c d e
1 -1
2 1
3 -1 -1
4 1 -1 1 -1
5 1 1
Matriz signos
vértices
Negativo salida Positivo llegada
4Identificación de bucles
Sobre la matriz de adyacencia
5
4
1
3
2
v. destino
1 2 3 4 5
1 1 1
2 1
3 1 1
4 1
5 1
1 2 3 4 5
1 1 1
2 1 1
3 1 1
4 1 1
5 1
v. origen
A
A2
1 2 3 4 5
1 1 1 1
2 1 1
3 1 1 1
4 1 1
5 1 1
1 2 3 4 5
1 1 1 1
2 1 1 1
3 1 1 1 1
4 1 1 1
5 1 1
A3
A4
5Poner el digrafo correspondiente
6Diagrama de flujo
Hay bucles en el diagrama?Cuántos?Se pueden
identificar de forma automática? Cuál es el
mejor orden para resolverlos? Cómo resolver los
subsistemas que forman parte de un bucle?
7Particionado (y ordenación)
El particionado consiste en la identificación de
los subsistemas que están interrelacionados. Es
decir, que constituyen un bucle y que hay que
tratar en su conjunto a la hora de resolver el
diagrama de flujo.
Algoritmo de Sargent y Westerberg
- Seleccionar un vértice (de forma arbitraria)
- Trazar un camino desde el vértice siguiendo un
arco no explorado (formando un conjunto con los
vértices que aparecen) hasta que - Se encuentra un vértice que no tiene salida (o no
va a otra unidad). Borrar el vértice (y sus arcos
incidentes) y ponerlo en cabeza de una lista.
Continuar desde el vértice anterior. - Se encuentra un vértice que ya está en el
conjunto de vértices (bucle). Agrupar todos los
vértices del bucle en un único conjunto. - Si queda algún vértice repetir otra vez desde el
paso uno hasta que no quede ningún vértice.
Otros algoritmos de particionado que se basan en
la matriz de adyacencias algoritmo de Norman y
el algoritmo de Keham y Shacham
8Ejemplo
A
B
C
D
F
E
G
Empieza por C
C ?D?F?G (sin salida)
Lista G
A
B
C
D
F
E
Sigue con F (sin salida)
Lista F G
9A
B
C
D
Sigue con D (sin salida)
Lista D F G
E
A
B
C
Sigue con C?E (sin salida)
Lista E D F G
E
A
Sigue con C (sin salida) y ya igual A y B
Lista C E D F G
B
C
Las listas NO son únicas
Lista A B C E D F G
10Ejemplo
A
B
C
D
F
E
Empieza por C
C ?D?F? (sin salida)
ListaF
A
B
C
D
E
C ?D?A?B?C (BUCLE)
CDAB?E (sin salida)
11CDAB
CDAB?E (sin salida)
E
Lista E F
Lista CDAB E F
CDAB (sin salida)
12Ejercicio Particionar el siguiente diagrama de
flujo.
I
IJKLMNL
IJKLMN
IJKLMNOPK
IJKLMNOP
JKLMNOPSQR
I
F
H
FGCDEABC
FGCDEAB
FGCDEABF
FGCDEAB
13Ejercicio Particionar el siguiente diagrama de
flujo.
1
2
3
4
5
6
7
8
9
10
11
12
1 ?2 3 6 9?12 4 5?7 8?10?11
14Ejercicio Particionar el siguiente diagrama de
flujo.
React. Cloracion?Columna ?Resto
15Procedimiento de resolución secuencial modular
Qué ocurre si hay un reciclo?
16Selección de variables de corte. (Rasgado)
Para resolver un grupo de unidades que están
interconectadas con algún bucle es necesario dar
un valor inicial a una corriente desconocida. Esa
corriente es la corriente de rasgado y sobre ella
es necesario iterar para obtener el valor final.
corriente de rasgado
valor estimado
valor calculado
Cómo seleccionar la mejor corriente de rasgado?
Cómo actualizar el valor estimado tras cada
iteración para tener una rápida convergencia?
17Algoritmo de Barkeley Motard (número mínimo de
corrientes)
- Realizar el grafo dual. Las corrientes son nodos
y los equipos que las unen son arcos. - Se recorre el grafo. Si una corriente tiene sólo
una entrada es eliminada del grafo (y sustituida
por la entrada). - Cuando se llega a un autobucle (autociclo) ésta
es una corriente de corte. Se elimina del grafo y
se vuelve al punto 2) hasta eliminar el grafo. - NOTA Si se llega a una situación donde el
algoritmo no puede avanzar se escoge una variable
de corte y se procede.
- Criterios para escoger variables de corte
- Conocer de forma aproximada el valor que va a
tener en la solución. - El número de variables que tenga dicha
corriente. - El número de equipos a los que entra una
corriente - etc,...
18Ejemplo
S1
S6
S2
Proceso
2
3
6
9
S3
S4
S5
6
S1
S2
S6
9
Grafo dual de corrientes
2
2
6
6
9
6
3
S3
S4
S5
Las corrientes S1, S4 y S6 sólo tienen una
entrada, luego son eliminadas del grafo.
196
S2
9
2
2
6
6
9
6
3
S3
S5
S5 es un autociclo, se elimina, junto con las
corrientes que entran y salen de el.
S2
S5 es la primera corriente de rasgado.
S3
S5
S2
S3
Se escoge según algún criterio una de las dos
como corriente de corte.
S2
Conjunto final S5,S2
S2 es la primera corriente de rasgado.
S2
20Ejercicio. Seleccionar las corrientes de rasgado.
218
Grafo del proceso
6
5
K
O
4
1
7
2
L
M
S
3
K
1
8
S
L
M
Conjunto final S1,S2
2
7
S
L
M
K
L
3
L
5
6
4
O
O
22Algoritmo de Upadyhe y Grens
- Identificar los bucles presentes
- Empezar por una unidad cualquiera hasta que
aparezca una repetida - Cuando aparezca una repetida anotar las
corrientes que conforman el bucle hallado - Seguir por la corriente anterior a la corriente
repetida hasta que vuelva a repetirse otra unidad - Continuar hasta que se han recorrido todas las
corrientes - Escoger la familia de corrientes de rasgado que
rompe los bucles una única vez. - Escoger un conjunto de corrientes que rasga todos
los bucles una única vez - Seleccionar una unidad que tenga todas sus
salidas en ese conjunto de corrientes - Reemplazar en ese conjunto de corrientes de
rasgado las salidas de esa unidad por sus
entradas - Repetir hasta que no quedan conjuntos de rasgado
nuevos por salir - Todos los conjuntos de rasgado que han aparecido
son equivalentes. Como opción definitiva escoger
un conjunto con un menor número de corrientes.
23S1
Ejemplo
S6
S2
2
3
6
9
S3
S4
S5
- Identificar los bucles presentes
S3
S4
S5
S1
Bucle 1 S3,S4,S5,S1
2
3
6
9
2
S3
S4
S5
S1
2
3
6
9
2
Bucle 2 S5,S6
S6
6
S3
S4
S5
S1
2
3
6
9
2
Bucle 3 S3,S4, S2
S6
6
S2
2
24 Corriente Bucle S1 S2 S3 S4 S5 S6
1 X X X X
2 X X
3 X X X
2) Escoger la familia de corrientes de rasgado
que rompe los bucles una única vez.
2
9
6
3
S6,S3
S3,S6
S1,S2,S6
S2,S5
S6,S4
El objetivo es rasgar todos los bucles para poder
integrar, la idea es que si se escoge un conjunto
que rasga más de una vez un bucle (ej
S1,S2,S5), esto implica que la convergencia va
a ser más lenta.
25Ejercicio. Seleccionar las corrientes de rasgado.
Grafo del proceso
8
6
5
K
O
4
1
7
2
L
M
S
3
268
6
5
K
O
4
1
7
2
L
M
S
3
Bucle 1 2,7,8,1
2
7
8
1
Bucle 2 1,4,5
L
M
S
K
L
Bucle 3 8,1,4,6
4
3
5
O
L
K
Bucle 4 2,3
6
S
Corriente Bucle 1 2 3 4 5 6 7 8
1 X X X X
2 X X X
3 X X X X
3 X X
M
K
S
O
1,3
5,8,3
5,6,7,3
5,6,2
4,2
27Procedimiento de resolución secuencial modular
(con reciclo)
Qué ocurre si hay un diseño de especificación?
28Diseño de especificación
Controladores computacionales.
Unidad 2
Unidad 1
Unidad 3
Unidad 1
Unidad 2
Unidad 3
Alguna relación?
29Diseño de especificación
Set Point
CC
medido
x1?
y1
Unidad 3
Unidad 2
Unidad 1
Iteración implícita
Reciclo
x2,guess
x2,calc
x1
Unidad 3
Unidad 2
Unidad 1
Iteración explícita
Pueden resolverse por el método de sustitución
sucesiva?
30Diseño de especificación
Set Point
CC
dado
x1?
y1
Unidad 1
Unidad 2
Unidad 3
Iteración implícita
Hay que iterar sobre una corriente determinada
Reciclo
x2,guess
Conv
x2,calc
x1
Unidad 2
Unidad 3
Unidad 1
Iteración explícita
Se puede iterar sobre cualquier corriente
31Realizar la simulación del sistema de forma
gradual. Utilizar resultados de simulaciones
anteriores (más sencillas) para las nuevas
simulación
324. Estrategia orientada a ecuaciones
Matriz de incidencia
Matriz (booleana) que indica qué variables
aparecen en qué ecuaciones de un sistema.
Sistema de ecuaciones
Matriz de incidencia
33Grafo bipartito
Grafo en el que hay dos conjuntos de vértices y
todos los arcos van de un vértice del primer
conjunto a un vértice del segundo conjunto.
x1
ec1
x2
ec2
x3
ec3
Se emplea para identificar el conjunto de
variables a especificar.
34Asignación de variables de salida.
Qué variable se va a calcular con qué ecuación.
Dado un sistema cuadrado y un conjunto de salida
asignado se puede obtener un grafo dirigido.
ec1
ec3
ec2
Qué implica la presencia de bucles?
Se emplea para realizar el particionado del
sistema.
35Grados de libertad e identificación de un
conjunto de variables a especificar (variables de
entrada).
Algoritmo de Christensen-Rudd
- Se emparejan las variables que sólo aparecen en
una ecuación o las ecuaciones que sólo tienen una
variable. Se eliminan los nodos (y sus arcos) del
grafo. - Se procede así sucesivamente hasta que quedan
nodos sin arcos, estos son los grados de
libertad. - Si se llega a una situación donde todos los nodos
tienen 2 ó más arcos, es necesario asignar (de
forma arbitraria) una variable a una función y
proceder a continuación como en el punto uno. - NOTA Este algoritmo proporciona una secuencia de
resolución acíclica, excepto en el caso del punto
3) que indica la presencia de bucles algebraicos.
En ese caso las variables asignadas
arbitrariamente serían variables de rasgado que
permitirían resolver el sistema de forma
acíclica. El uso de variables de rasgado en
simulaciones orientados a ecuaciones está hoy en
desuso (NO en simulación secuencial-modular!)
36Ejemplo
x1
f1
f2
x2
f3
x3
f4
x4
x5
f5
La variable 7 sólo aparece en la ec 5
x6
La variable 5 sólo aparece en la ec 4
x7
La variable 3 sólo aparece en la ec 3
x8
37x1
f1
La variable 8 sólo aparece en la ec 2
La variable 6 sólo aparece en la ec 1
f2
x2
Quedan como grados a especificar
x4
x1
x4
x2
x6
Nótese que cuando hay varias posibilidades el
criterio ha sido arbitrario. Es mejor apoyarse en
el conocimiento heurístico del modelo.
x8
38Descomposición de Dulmage-Mendelsohn.
En lugar de actuar sobre el grafo bipartito actúa
sobre la matriz de incidencia.
- Descompone la matriz de incidencia en
submatrices - Una parte sobredeterminada indica que hay más
ecuaciones que incógnitas, puede ser alguna
redundante,... - Una parte cuadrada tiene forma de matriz
triangular inferior. El subsistema está
correctamente especificado y por tanto no aporta
grados de libertad. - Una parte infradeterminada indica que hay más
variables que ecuaciones y que por tanto hay un
número de grados de libertad que hay que
especificar. La forma de proceder es seleccionar
uno, volver a realizar la descomposición de D-M y
escoger otra. Así hasta que se obtiene únicamente
una matriz cuadrada triangular inferior por
bloques.
39Algoritmo de asignación de variables de salida.
Algoritmo de Steward
- Selecciona la fila (columna) con menor número de
incidencia. - En esa fila (columna) selecciona la variable que
pertenece a la columna (fila) con menor número de
incidencia. - Asigna esa variable (fila) a la ecuación
(columna) y se eliminan de la matriz de
incidencia.
Asigna la variable 2 con la ecuación 1
Asigna la variable 3 con la ecuación 2 Asigna la
variable 1 con la ecuación 3
40Algoritmo de Duff (es una implementación más
eficiente y que permite detectar singularidad
estructural)
- Va permutando las filas en función de que haya o
no un cero en la diagonal de la matriz de
incidencia. - Intercambia las filas sin perder las
asignaciones realizadas. - En caso de no poder obtener una matriz
transversal máxima (todos los elementos de la
diagonal distintos de cero) el problema presenta
una singularidad estructural.
41(No Transcript)
42Singularidad estructural
Cuando no se puede obtener un conjunto de salida
la matriz es estructuralmente singular.
Implica que hay un subconjunto de ecuaciones que
tiene menos variables que el número de ecuaciones
del subconjunto.
La especificación de las variables de entrada
puede hacer que un sistema de ecuaciones sea o no
estructuralmente singular.
43Particionado del sistema de ecuaciones y orden de
resolución. Algoritmo de Tarjan
Más eficiente que el de Sargent y Westerberg
(también aplicable). Obtiene una matriz
triangular inferior por bloques.
Cada bloque es un sistema de ecuaciones que hay
que resolver de forma simultánea.
ec1
ec3
ec2
44Matriz con variables de salida asignadas.
Grafo dirigido
f1
f5
f2
f3
f4
Ejemplo del algoritmo de particionado de Tarjan.
path
stack
lowlink
Particionado y orden de resolución
f2 f1? f3 ?f4 f5
45Singularidad funcional
Singularidad funcional implica que el Jacobiano
es singular para cualquier valor de las
variables, x. Ejemplo
- La causa de singularidad funcional suele ser un
modelo mal construido o con un conjunto de
especificaciones mal seleccionado - O es redundante lo que implica un número infinito
de soluciones. - O es inconsistente lo que implica que no existe
una solución.
En el ejemplo anterior si k9 el sistema es
redundante si kltgt9 el sistema es inconsistente
Singularidad numérica (o local)
El Jacobiano es singular sólo para algunos
valores de las variables.