Unidad 9

Anuncio
UNIDAD TEMATICA IX
SISTEMATIZACION DE DIAGRAMAS DE FLUJO
PREPROCESAMIENTO DE LA INFORMACIÓN
1- INTRODUCCIÓN
La resolución por computadora de los balances de materia y energía en estado
estacionario en esquema modular, consta de dos partes:
a) Preparación de la información
b) Resolutiva
Cada módulo debe ser resuelto a través de sus ecuaciones de balance de masa y
energía y para completar la resolución del Diagrama de Flujo de Información (DFI),
deben ser resueltos todos los módulos. Para ello debe proveerse a la etapa b) la
secuencia de resolución de los equipos, que debe ser tal que las corrientes de entrada
de un módulo hayan sido salida de módulos resueltos anteriomente.
La primera etapa (a), de sistematización de la información asociada al DFI se
denomina PREPROCESAMIENTO, que será tratada a continuación
2- REPRESENTACIÓN COMPUTACIONAL DEL DIAGRAMA DE FLUJOS
El DFI es el conjunto de módulos (equipos) y corrientes que representan unívocamente
la planta química a simular
La representación de una operación de un equipo es:
x N-1
xN
N
figura 1
x N-1 = vector de propiedades de todas las corrientes de entrada a N
x N = vector de propiedades de todas las corrientes de salida a N
N = módulo, representación de una unidad de operación tal que:
xN=
fN
(x N-1)
1
Para que el sistema de ecuaciones de balance representado por (f N ) sea
computable, se deberá cumplir al momento de resolución de N, que x N-1 contenga:
* Propiedades de salida de un equipo M, tal que M preceda a N en la secuencia de
resolución.
* Propiedades de corrientes alimentadoras de la planta.
* Propiedades propuestas, para las corrientes iteradoras.
Dado que las propiedades de las corrientes de alimentación son impuestas por el
exterior y las de las corrientes iteradoras son procesadas en unidades de resolución
diferentes a los módulos, es necesario garantizar que la información de x
que se
origina en módulos Mi = N, haya sido obtenida con anterioridad a la resolución de N.
Por lo tanto el PREPROCESAMIENTO es la etapa previa a la de resolución de los
módulos.
Diagrama de Flujo de Información sin reciclos
1
2
1
3
2
5
4
9
10
6
5
8
4
3
11
6
7
7
figura 2
Al no existir reciclos se establece muy facilmente el orden en la resolución.
( 1, 2, 5, 3, 4, 7, 6)
o también:
(1, 7, 2, 5, 3, 4, 6)
Diagramas de flujo sin reciclos no es frecuente en plantas químicas, generalmente se
presentan plantas con retorno de corrientes. Sin embargo siempre es posible a los
efectos del tratamiento reducir un DFI con reciclos a uno sin ello.
Diagramas de Flujo de Información con reciclos
1
1
2
3
2
10
4
3
8
5
4
6
8
11
figura 3
7
9
6
7
5
9
12
2
Es necesario decidir qué corrientes son elegidas como iteradoras.
Al pretender resolver el equipo 2, las propiedades de la corriente 10 no son conocidas
porque es salida del equipo 7, que requiere resolución previa de 6, 5, 4, 3 y 2. Se ha
identificado una zona con retroalimentación.
Si llamamos A al subconjunto del DFI formado por los equipos 2, 3, 4, 5, 6, 7 y sus
corrientes asociadas, podemos obtener un DFI sin reciclos como el siguiente:
1
1
2
A
5
8
11
figura 4
12
9
En este caso la secuencia de resolución es: (1, A, 8, 9)
El preprocesamiento deberá reducir entonces todo DFI con reciclos a uno sin ellos, o
sea que se ha identificado la zona con reciclo y se ha transformado en un
pseudonodo. El paso siguiente es determinar las corrientes de cada pseudonodo, que
se definirán como iteradoras. Esto se aplica a cada uno de los pseudonodos
constituidos.
Finalmente, una vez eliminados los reciclos, se establece el orden definitivo de
resolución, que de este modo es sencillo.
El diagrama de bloques que representa este tratamiento es el que se muestra en la
figura 5
Esta sistematización permite caracterizar las tres etapas que componen toda
tarea de preprocesamiento:
A: PARTICIONADO: Detección de los tramos que contienen reciclos, tal que puedan
ser
reducidos a pseudonodos que eliminen los reciclos.
B: RASGADO: Definición de las corrientes iteradoras de cada pseudonodo
C: ORDENAMIENTO: Determinación del orden de precedencia de los módulos
(secuencia
de resolución), una vez elegidas las corrientes
iteradoras.
3
DFI
NO
¿Existen reciclos?
SI
A
Se identifica y funden
en pseudonodos que
los eliminan
Se eligen las
corrientes iteradoras
de cada pseudonodo
B
Se establece el orden
de precedencia
C
FIN
figura 5
A continuación se analiza un ejemplo:
1
1
2
3
2
11
7
4
3
10
12
6
5
4
9
13
5
8
6
8
9
7
10
14
figura 6
4
A- PARTICIONADO
Se obtienen los pseudonodos siguientes:
A: [ 2, 3, 4, 5, 6, 7 ]
B: [ 8, 9, 10 ]
que permiten obtener como secuencia [ 1, A, B ] (DFI sin reciclos)
B- RASGADO
Se definen como iteradoras las corrientes 9 en A y 8 en B y se obtiene el siguiente
grafo:
1
1
2
3
2
11
7
4
3
4
10
12
6
5
6
8
9
13
9
8
5
7
10
14
figura 7
C- ORDENAMIENTO
Una posible secuencia de nodos derivada de este rasgado es:
[ 1, 5, 6, 7, 2, 3, 4, 8 , 9, 10 ]
Nótese que si se hubiera tomado como pseudonodo A al conjunto (3, 4, 5, 6), se
hubiera obtenido el siguiente grafo, que aún es cíclico:
1
2
3,4,5,6
figura 8
B
7
5
3- ELEMENTOS DE LA TEORÍA DE GRAFOS FINITOS
GRAFO: Es la representación formada por el conjunto finito de N nodos, vinculados
entre sí por pares, mediante C corrientes.
N = { M1 , M2 , M3
.................... , MN }
NODOS
C = { C12 , C1J ,........... CIK , ...........Cm n }
CORRIENTES
C42
M2
M4
C12
C25
C45
M1
M3
figura 9
GRAFO DIRIGIDO: Es un grafo dirigido cuando todas sus corrientes son dirigidas. Se
simboliza con “G”. Sinónimo es Digrafo.
C24
M2
C12
C32
M4
C45
C34
M1
M33
figura 10
CORRIENTE DIRIGIDA: Dos nodos se vinculan a través de una corriente dirigida si y
solo si la corriente nace en uno de ellos y termina en el otro (Tiene sentido
establecido).
PREDECESORES Y SUCESORES INMENDIATOS: Sea una corriente dirigida Cij que
nace en Mi y termina en Mj a través de Cij y a Mi como predecesor inmediato de Mj a
través de Cij y a Mj como sucesor inmediato de Mi a través de Cij.
6
CAMINO (r): entre dos nodos Mi y Mq en un grafo finito “G”, es un conjunto de
corrientes dirigidas, ordenadas según la secuencia de recorrido por medio de sus
sentidos, que se originan en Mi y termina en Mq
r ij =
Cij, Cjk, ..................., Cmp, Cpq
NODOS PREDECESORES Y SUCESORES: Se dice que Mi es predecesor de Mq si
existe al menos un camino de Mi a Mq (Mq es sucesor de Mi).
CAMINO CICLICO: Si un camino se origina y termina en un mismo nodo, es cíclico (Mi
= Mq). Es útil aclarar que en un camino cíclico, los nodos que éste atraviesa pueden
aparecer más de una vez en el recorrido.
CICLO: Dado un grafo finito dirigido G, se define como ciclo Cr al subconjunto de
nodos que determinan el camino cíclico ( r ).
SUBGRAFO CICLICO: Si existe Cr y Cr es un subconjunto propio de N, el subconjunto
determinado por Cr y todas sus corrientes asociadas se denomina Subgrafo Cíclico. Si
Cr existe y no es un subconjunto propio de N, se denomina Grafo Cíclico G.
CAMINO SIMPLE: Se dice que un camino es simple si todos los nodos que el camino
atraviesa, incluidos el inicial y final, aparecen solo una vez en el recorrido.
EJEMPLO: En el grafo de la figuna anterior:
C12 = es una corriente dirigida entre M1 y M2
r14 = {C12 , C24 } es un camino simple entre M1 y M4
M2 = es sucesor inmediato de M1
M4 = es sucesor de M1
r33 = {C32 , C24 , C43 } es un camino cíclico de M3 a M3
Cr33 = M2 , M4 , M3 } ciclo correspondiente
La siguiente figura representa un subgrafo cíclico de G
M2
M4
C32
M3 C45
C24
C34
figura 11
CICLO MAXIMO: Un ciclo es máximo sí y solo sí todos los demás ciclos de G, o tienen
sus nodos contenidos en CM, o no tienen ningún nodo común con él.
7
Si se aplica la definición del grafo de la fig 6, donde se pueden identificar los siguientes
ciclos:
C1 = {8, 9, 10}
C2 = {3, 4, 5, 6}
C3 = {2, 3, 4, 5, 6, 7}
Se puede ver que:
C1 es un ciclo máximo (ninguno de los otros ciclos C2 y C3 poseen un nodo común
con él)
C2 no es ciclo máximo, los nodos (3) , (4) , (5) y (6) son comunes a C3, pero C2 no
contiene a C3
C3 sí es un ciclo máximo
GRAFO SIMPLE: Es aquel grafo dirigido en el cuál puede existir a lo sumo una
corriente entre un dado par de nodos Mi y Mj, que nace en Mi y termina en Mj.
CAMINO CICLICO SIMPLE: Es el camino simple que empieza y termina en un mismo
nodo.
CICLO SIMPLE: Es el conjunto de nodos que determinan el camino cíclico simple.
4- PARTICIONADO
Se trata en esta sección de redefinir los conceptos ya introducidos a partir de los
elementos de la teoría de grafos. Retomamos el ejemplo de la fig 6:
a) Todo DFI es un grafo dirigido en el que sus nodos son los módulos del DFI y las
corrientes dirigidas del grafo, las corrientes del DFI. A este grafo se lo llama grafo de
equipos o simplemente grafo.
b) Un pseudonodo máximo es un subgrafo cíclico (GCM) determinado por un ciclo
máximo (CM)
Por lo tanto, el Particionado es la operación de reducción de un Grafo a otro, en
el cuál se reemplazan por nodos todos los subgrafos cíclicos determinados por
ciclos máximos.
Se analizan a continuación algunos métodos de particionado.
8
Métodos Matriciales de Detección de Ciclos. Matriz de Adyacencia.
1
2
3
4
figura 12
5
Se define como Matriz de Adyacencia ( A ) de orden ( n x n), donde n es el número de
nodos del dígrafo, a la matriz de elemento genérico [aij] = 1 si existe una corriente
dirigida Cij que nace en el nodo (i) y termina en el nodo (j). En caso contrario [ aij ] = 0
La matriz de adyacencia asociada al grafo anterior es:
1
A =
1
2
3
4
5
2
3
4
5
1
1
1
1
1
La fila q vacía denota que el nodo (q) no es antecesor inmediato de ningún otro nodo
en G y la columna p vacía indica que en nodo (p) no es sucesor inmediato de nodo
alguno en G.
El algoritmo que se emplea permite la detección sistemática y posterior fusión en
pseudonodos de ciclos en el grafo y finalmente, de los subgrafos cíclicos a través de
los ciclos máximos que los definen. La base del algoritmo es la multiplicación por sí
misma (potenciación) de la matriz de adyacencia obteniéndose las sucesivas matrices
Ar
con r = 1, 2, 3, ........................., n
La propiedad fundamental de A es presentada por el sig. teorema:
En la matriz Ar
un elemento genérico [aij] no nulo, indica con su valor el
número de caminos formados por ( r ) corrientes que nacen en el nodo (i) y
terminan en el nodo (i)
De este teorema se deduce que si para un valor de (r) existen en Ar elementos no
nulos en posiciones de la diagonal principal de la matriz [aii]  0 existirán [aii]r
caminos de ( r) corrientes que nacen en (i) y terminan (i) . O sea [aii] r ciclos de los
cuáles el nodo (i) forma parte.
9
El método se basa entonces en la obtención de las sucesivas potencias de la matriz de
adyacencia hasta detectar la presencia de elementos no nulos en la diagonal principal
de A
Ejemplo:
A2
A
1
2
3
4
5
1 2
1
3 4
1
1 1
1
5
1
1
2
3
4
5
2 3 4
1
1 1
1
1
A3
5
1 2
1
2
3
4
5
3 4
1 1
5
1
1
1 1
Si la matriz potencia Ar presenta elementos no nulos en su diagonal principal, es
porque existe un camino de ( r ) corrientes que saliendo de (i) llega a (i) y por lo tanto
ha detectado un ciclo.
En r = 3 aparecen en la diagonal ppal de A 3 los nodos (2) (3) y (5) con elementos no
nulos, ya que éstos son los elementos del ciclo asociados al camino cíclico de r = 3
corrientes en el problema analizado.
Método de Particionado de Kehat y Shacham
En este método se eliminan las desventajas del método matricial de detección
subgrafos cíclicos anterior, en cuanto al tamaño de la matriz de adyacencia y de su
escaso volumen de información (matriz dispersa) y de las operaciones matriciales en
las áreas vacías de aquellas.
Se adopta una representación tabular, con una tabla o lista, de la información del
Diagrama de Flujo de Información a pesar de que los fundamentos del método es
matricial.
Apliquemos los conceptos de matriz de adyacencia al grafo de la figura 13
Cuando se obtiene Ar con r = 4 se detecta el ciclo [ 2, 3, 7, 6 ]
Del análisis de las potencias de Ar, se nota:
* Puesto que A es dispersa (7 posiciones de información sobre 49), una elevada
proporción de espacio no es usada. Esto se repite en las otras potencias.
* Las filas y las columnas que en A no poseían elementos no nulos, no los tienen en
las sucesivas potencias. En el caso de filas de A, el nodo (4) corresponde a un nodo
sin sucesores inmediatos (nodo terminal), no se inicia ningún camino r.
Igual en el caso de las columnas, (5) es nodo sin antecesores inmediatos, nodo inicial.
Esto nos hace remarcar que en la matriz A no solo hay espacios sin información sino
que hay filas y columnas que no aportan información en A y en sus potencias
sucesivas.
10
* En una matriz altamente dispersa como A, las operaciones matriciales de
multiplicación implican cálculos sobre las posiciones vacías que solamente aumentan
los tiempos de cálculo.
Estas desventajas sirven para justificar el algoritmo de Kehat y Shacham:
Fundamentos:
Se eliminan en las matrices del ejemplo las filas (columnas) vacías y las columnas
(filas) correspondientes al mismo nodo. De este modo se obtienen las matrices :
2
2
3
6
7
3
6
7
1
2
jk
1
1
1
2
3
6
7
3
2
3
6
7
7
1
1
1
1
A1
2
6
A2
3
6
7
1
1
1
1
A3
2
2
3
6
7
3
6
7
1
1
1
1
A4
Esta reducción es solo la eliminación de los nodos terminales de entrada o salida que
no tienen posibilidades de integrar un ciclo.
En este punto se define la Matriz de Indices B, de (m x 2), donde cada una de las m
filas corresponde a cada uno de los elementos no nulos contenidos en la matriz
cuadrada asociada, o sea a cada una de las corrientes del grafo.
Para una fila h de esta matriz el elemento de la columna de la izquierda (I 1h ) es el
número de nodo (i) en la matriz cuadrada asociada, que corresponde a cada [aij]  0
en ésta. El elemento de la columna de la derecha ( I 2h ) es el número (j) del mismo
[aij]  0 en la cuadrada asociada.
Por lo tanto, a cada una de las matrices Ar del ejemplo con r = 1, 4, se le puede
asignar una matriz de índices Br .
En cada una de estas matrices Br , la columna de la izquierda representa todos y cada
uno de los nodos antecesores de un camino de r corrientes que nace en ( I1h ) y la
columna de la derecha los nodos sucesores (I2h ) que corresponden a un camino de
r corrientes originado de (I1h ) para todo h = 1, m.
11
Las matrices de índices Br de la siguiente figura, contienen la misma información que
las Ar asociadas, con el consiguiente ahorro de posiciones de memoria.
1
2
3
3
5
6
7
2
3
4
7
6
2
6
B
A
2
3
6
7
B1
3
7
2
6
2
3
6
7
B12
A1
7
6
3
2
A12
2
3
6
7
6
2
7
3
B13
A13
2
3
6
7
B14
2
6
7
A14
Se observa que en B1 se han eliminado los nodos terminales, que a partir de allí no
participarán en el cálculo de las sucesivas potencias.
Si tomamos la matriz B12, se puede obtener B13 a partir de aquélla reemplazando
cada elemento (I2 ) en B12 por el sucesor inmediato de ( I2 ) en B1.
Así si ( 1 ) = ( 2 ) , el nodo I2 = ( 7 ) será reemplazado en B13 por el sucesor inmediato
de (7) , que según consta en B1 , es el nodo (6). De este modo:
En B12
(6) se reemplaza por
(3)
“
(2)
“
(2) en B13
(7)
“
(3)
“
obteniéndose las siguientes matrices
2
3
6
7
7
6
3
2
B12
2
3
6
7
6
2
7
3
B13
La matriz de índices B13 es asociada a la matriz de potencia A13. O sea que con este
procedimiento se reemplaza la operación de multiplicación de A12 x A1 , por el
mecanismo de reemplazar los sucesores en B12 por sus sucesores inmediatos para
generar B13 .
Se reitera este procedimiento para obtener la B14 asociada a A14 . Se puede observar
que la presencia de nodos en la diagonal ppal, se convierte en la existencia de un par
de nodos iguales en ciertas filas de B14 (I1 = I2 ). Si un nodo es sucesor de sí mismo,
a través de un camino de r corrientes, forma parte de un ciclo de r nodos.
12
Resumen del algoritmo de Kehat y Shacham
Conceptos básicos:
a) A cada matriz potencia Ar se asocia una representación tabular (matriz de índices)
que mantiene la misma información que Ar a través de los subíndices de los
elementos [aij]  0
b) El producto de matrices se reemplaza por el procedimiento de reemplazo de los
nodos sucesores en Br , por sus respectivos sucesores inmediatos para obtener Br+1
c) La matriz de adyacencia A , a través de su “tabla” asociada B, se simplifica en
cada etapa del cálculo por eliminación de los nodos terminales del grafo.
Etapas del algoritmo
1) Los nodos sin corrientes de entrada son eliminados del tratamiento y almacenados
como nodos de entrada.
En el caso de la matriz A esto significa prescindir de las columnas vacías y las filas de
igual número. En las tablas B, implica eliminar todos los nodos que existiendo en la
columna de la izquierda, no figuran en ninguna posición de la columna de la derecha
(no son sucesores de ningún nodo y por lo tanto no poseen corrientes de entrada).
2) Los nodos sin corrientes de salida son eliminados del tratamiento y almacenados
como nodos de salida.
En A se prescinde de las filas vacías y las columnas de igual número. En B, se
eliminan los nodos de la derecha que no figuran en ninguna posición en la columna
izquierda. O sea estos nodos no son antecesores de ningún nodo y por lo tanto no
poseen corrientes de salida.
3) Se repiten los pasos 1 y 2 hasta que no queden en B nodos sin sucesores ni
antecesores inmediatos.
4) Se computan por el mecanismo de búsqueda de sucesores inmediatos, las
sucesivas potencias de A a través de la representación de índices B. Si un sucesor en
Br-1 tuviera más de un sucesor inmediato en B se repetirá en Br el elemento (I1) de
Br-1 hasta computar todas las ramificaciones producidas por las existencia de
sucesores inmediatos múltiples.
5) Luego del cómputo de Br se identifican los ciclos de ( r ) nodos. Esta identificación
que en A significaba detectar la aparición de elementos no nulos en la diagonal
principal de Ar , consiste en detectar las (p) igualdades I1 = I2 , que pueden aparecer
en Br.
6) Se comparan ( p ) y ( r ). Si ( p ) es mayor que ( r ), se han detectado mas de un
ciclo de r equipos. Puesto que las potencias de B de orden ( r ) implican caminos de (
r ) corrientes, el hallar un camino cíclico de orden r implica un ciclo de ese orden.
13
Por lo tanto, si (p) que es el número de igualdades I 1 = I2 es mayor que ( r ), esto
puede corresponder solo al caso de que se hayan detectado simultáneamente mas de
un ciclo de r nodos. Por lo tanto (p) solamente puede ser múltiplo entero de ( r ).
En el caso de p = q x r , con q entero positivo, se emplea el método de identificación
de cada ciclo desarrollado por Norman.
7) Si p = r se funden los p elementos del ciclo en único pseudonodo y se almacena la
composición del mismo.
Ej: si (2, 3, 4) forman un ciclo de p = r = 3, se reemplaza en B 2, 3 y 4 por un
pseudonodo. Si se usa el mismo número (2) para identificar al pseudonodo, se
almacenará la composición de (2) = 2, 3, 4 y luego se reemplazará en B , toda vez
que aparezcan (3) y (4) por (2). Nótese que si luego del reemplazo se presentara una
fila con I1 = 2 y I2 = 2 en B, se eliminarán ambos valores, ya que la información que
aportan es trivial. Una vez reemplazado el pseudonodo en B, se vuelve al paso 1 y se
reinicia la secuencia.
El algoritmo se considera concluido cuando la tabla B se vacía, sea luego de la fusión
de ciclos en pseudonodos o luego de la eliminación de nodos sin sucesores o
antecesores inmediatos
14
RASGADO DE DIAGRAMAS DE FLUJO DE INFORMACIÓN
Una vez aplicado el particionado al DFI, se ha reducido el grafo original a otro en el
que los subgrafos cíclicos detectados están enlazados en secuencia lineal.
El rasgado conduce a la selección de corrientes de corte asociadas a cada
subgrafo cíclico, que lo transforman en una secuencia lineal de resolución
iterativa, hasta convergencia de las propiedades de las corrientes de corte.
Supongamos el sugrafo de la figura 13 (c), que corresponde al sector del DFI indicado
en (a). En (b) se indica el subgrafo asociado y en (c) el mismo subgrafo sin la
información terminal de las corrientes de entrada y salida.
4
7
10
11
2
1
6
9
8
3
2
3
0
5
1
fig. 13 (a)
15
Para resolver este subgrafo cíclico como parte de una simulación, será necesario
rasgar el grafo linealizándolo. Si los criterios del caso aconsejan elegir la corriente (8)
como de corte, el esquema se reduce a lo mostrado en (d).
En la etapa resolutiva se seguirán los siguientes pasos:
1- Proponer valores a las propiedades de la corriente 8º.
2- Computar las secuencias de equipos 3, 2, 4, 1, que producirán como salida 8*.
3- Comparar los valores de 8* con 8º
4- Repetir el proceso luego de una nueva propuesta de valores 8º para obtener una
salida 8* .Este proceso se reitera (n) veces, hasta que se cumpla que las propiedades
de 8* sean iguales a las de 8º
5- En este punto el subgrafo se considera resuelto y las propiedades de las corrientes
asociadas a él, totalmente conocidas.
En general, este procedimiento implicó dos pasos:
a) Elección de un criterio para seleccionar las corrientes de corte
b) Elección de las corrientes de corte a partir de ese criterio.
Criterios de selección de corrientes de corte
Los criterios de selección de los conjuntos de las corrientes de corte es el
problema mas crítico y específico del preprocesamiento del DFI .
Crítico porque de ello depende la velocidad de convergencia de la computación y
específico porque es imposible establecer a priori un criterio de selección óptimo que
sea independiente del DFI a resolver.
16
Aún no existe un criterio universal que permita elegir el conjunto óptimo, por lo que es
tema de muchas investigaciones. De todos modos, puede adoptarse como criterio de
optimización que “el mejor conjunto de corte” es aquel que minimiza los tiempos de
computación, que establece un punto de partida.
La resolución iterativa de un conjunto de corrientes de corte implica en una iteración n
el trabajo de proponer los valores de la corr. iteradoras.
Si llamamos x1 , x2,......, xj , ....., xu , a los vectores de propiedades de la “u”
corrientes de corte, en cada iteración deberán proponerse los m1 + m2 + .......... +
mu valores de las variables independientes de las corrientes.
En gral. el trabajo de proposición se hace en base a mecanismos de aceleración de la
convergencia del tipo:
( xjº )
= F [ ( xj* )n-1 ; ( xj* )n-2 .......]
o sea que se tienen en cuenta para proponer los nuevos valores, los valores de salida
de una o más iteraciones anteriores. En algunos de los métodos de aceleración de la
convergencia, la operativa es muy complicada y por lo tanto el tiempo de computación
es considerables. Aún más crítico es que en gral. es función creciente del número de
variables que es necesario acelerar.
Como consecuencia un buen criterio inicial de selección de corrientes de corte que
optimicen el tiempo de computación, es elegir el menor número de variables en el
conjunto de corrientes de corte.
Se define como “peso” (w) de una corriente, a un valor numérico asociado a la
misma que permite reflejar cuantitativamente alguna propiedad diferencial de la
misma respecto de la convergencia en un sistema iterativo.
Dadas 2 corrientes i y j , si el peso de i (wi) es > que el peso de j (wj) , esto indica
que j es preferible a i en cuanto a la optimización de la convergencia.
Una de las formas de definir pesos es asignar a toda corriente un peso igual al
número de variables independientes de la misma. “Por lo tanto el primer criterio de
selección de corrientes puede definirse como:
Sea CC = [ c1, c2, c3, .........., cu ] un conjunto de u corrientes que lineariza
totalmente el subgrafo. Sea W = [ w1 , w2 , w3 , ......, wu ] el conjunto de pesos de las
corrientes asignados, iguales al número de variables independientes de cada
corriente. Se deberá buscar el conjunto CC tal que P sea mínimo, con:
u
P =  wi
i=1
En el caso de un DFI en el que todas las corrientes tengan igual nº de variables
independientes, buscar el mínimo de P es buscar el mínimo nº de corrientes de corte
según:
17
W = [ w1 , w2 , w3 , ......, wu ] ; w1 = w2 = w3 = ...... = wu = w
u
u
P =  wi =  w = u * w
i=1
i=1
Por lo tanto el mínimo de ( P ) = mín ( u x w ) = w x mín (u)
Resumiendo dos criterios posibles para optimizar el conjunto de corrientes de corte
son:
1) Buscar el set de corte que minimice la sumatoria de los pesos de las corrientes del
set
2) Buscar el mínimo nº de corrientes de corte. En el caso en que el nº de variables
independientes de todas las corrientes sea el mismo, los dos criterios son uno solo.
El segundo criterio es el mas simple y es el que se aborda en este curso. A partir de
éste se desarrolla un algoritmo clásico que permite implementar este criterio.
Algoritmo de Lee y Rudd
Estos autores desarrollaron un algoritmo que permite utilizar cualquiera de los dos
criterios expuestos. Solo se verá la primera parte del mismo, que operando sin asignar
pesos a las variables, obtiene el mínimo conjunto de corrientes de corte.
Elementos
Una de las características fundamentales del algoritmo de Lee Rudd (LRI) es que
requiere el conocimiento de todos los ciclos simples que componen el subgrafo a
estudiar. Esto exige un tipo especial de particionado, en el cuál se computan todos y
cada uno de los ciclos simples detectados al buscar ciclos máximos.
La información de los ciclos que componen el ciclo máximo a rasgar, se sistematiza en
una matriz de ciclo C de dimensiones ( m x n ) donde m es el nº de caminos cíclicos
simples del subgrafo y n el nº de corrientes del subgrafo. Un elemento genérico de la
matriz [cij] distinto de cero, si el camino cíclico (i) incluye la corriente j . Caso contrario
será nulo.
1
5
B
A
8
3
2
D
4
E
7
C
6
figura 14
18
En el subgrafo cíclico de la fig 14 se pueden detectar los siguientes caminos cíclicos
simples:
L1 : (2, 3)
L2: (1, 2, 4)
L3 : (7, 8)
L4 : (4, 5, 6, 7)
Rango de un camino cíclico r es el nº de corrientes que componen ese ciclo simple
Li
n
ri =  cij
n = nº de corrientes del subgrafo
i=1
Frecuencia de una corriente fj es el nº de veces que una corriente aparece con
elementos no nulos en C . O sea el nº de ciclos en los que participa cada corriente
n
fj =  cij
n = nº de ciclos simples del subgrafo
j=1
CORRIENTES
RANGO
1
1
1
1
1
1
1
1
1
1
2
1
1
2
CICLOS
FRECUENCIA
A
1
2
1
1
1
2
3
2
4
Esta es la matriz de ciclos del subgrafo ampliada con los vectores rango y frecuencia
Corriente contenida: Se dice que una corriente j1 está contenida en otra j2 si se
cumplen las siguientes condiciones:
1) f j2 
f j1
2) [ cij1 ] + [ cij2 ] = [ c ij2 ] para todo i = 1, m . Donde el operador + indica suma
booleana
-------------------------------------------------------------------------------------------------------------------Nota: El álgebra de Boole es aquella que utiliza variables que sólo pueden tomar 2
valores llamadas variables booleanas.
19
A los dos valores diferentes de una variable booleana se les codifica con los bits “0” y
“1”. Estos valores no representan dígitos numéricos, sino que representan dos estados
distintos de un dispositivo.
OPERACIONES BÁSICAS DEL ÁLGEBRA DE BOOLE. OPERACIONES LÓGICAS.
La suma lógica: Representa la unión de dos conjuntos (AUB).
Supuestas dos variables lógicas A y B.
A+B=1
A+B=0
Si A ó B ó A y B = 1
Si A y B = 0
El producto lógico: Representa la intersección de dos conjuntos (A Ω B).
Supuestas dos variables lógicas A y B.
A · B = 1 Si A y B = 1
A · B = 0 Si A ó B = 0
--------------------------------------------------------------------------------------------------------------------Aplicando las condiciones del algoritmo al ejemplo.
Si se toma j1 = 3 y j2 = 2 puede verse que j1 está contenida en j2
a)
puesto que:
f j2 = f 2 = 2
f j1 = f 3
= 1
f j2 > f j1
b)
[ c1j1 ] + [ c1j2 ] = 1 + 1 = 1 = [ c ij2 ]
[ c2j1 ] + [ c2j2 ] = 0 + 1 = 1 = [ c ij2 ]
Es importante el sentido físico del concepto de corriente contenida. Dado que el
objetivo del algoritmo es encontrar el menor nº de corrientes que corten el subgrafo,
será de particular interés detectar qué corrientes tienen más poder que otras para
linearizar un grafo.
Si se observa en la fig. 14 las corrientes usadas para ejemplificar la corriente
contenida, se obtendrá que la corriente 3 sólo participa en el camino cíclico ( 2, 3 ).
Esto se refleja cuantitativamente en su f = 1. Por el contrario la corriente 2 con f = 2
forma parte de (2, 3) y de (2, 1, 4)
Si se recuerda que basta con cortar una corriente para abrir un ciclo, cortando 3 solo
abriremos (2, 3 ). Sin embargo eligiendo 2 como corr. de corte, se abre además (1, 2,
4). O sea que la potencialidad de 3 para abrir el camino cíclico (2, 3) está contenida
20
como parte de la capacidad de corte de 2, que ejecuta la linearización de dos ciclos
con una sola corriente de corte.
En gral, una corriente contenida no posee más posibilidades de linearización que
aquélla que la contiene y por lo tanto no debe ser tenida en cuenta en el análisis.
Operativa
El algoritmo de Lee y Rudd se basa en la reducción de la matriz de ciclos C , por
eliminación de las corrientes contenidas, hasta lograr que los rangos de los ciclos se
reduzcan a r = 1
En el ejemplo, además de 3 contenida en 2, se puede considerar 5 y 6 contenidas en
4, 8 en 7 y 1 en 2, con lo cuál la matriz de ciclos se reduce a :
2
1
1
L1
L2
L3
L4
4
7
1
2
1
2
1
1
1
1
En este punto, los caminos cíclicos L1 y L3, han reducido su rango a r1 = r3 = 1. Es
entonces obligatorio elegir la única corriente que determina el rango unitario para cada
ciclo, puesto que de no cortar esas corrientes después de la reducción, el ciclo no
sería abierto nunca. Se eligen entonces las corrientes: 2 que determina el rango de L 1
unitario y la corriente 7 que hace L3 =1. Al cortar 2 se abren los caminos cíclicos L1 y
L2 y al cortar 7 lo hacen L3 y L4. El grafo ha quedado totalmente linearizado.
Puede suceder que, luego de agotada la etapa de reducción, no aparezcan valores
unitarios en los rangos de los ciclos, tal como se muestra a continuación:
1
L1
L2
L3
L4
L5
L6
L7
L8
2
1
3
4
1
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
1
1
2
2
2
2
3
3
2
2
En este caso, se deben seguir los siguientes pasos:
1- Se construye una lista con las combinaciones de corrientes que no cortan cada uno
de los ciclos. Esta lista representa los conjuntos de corrientes que no solucionan el
21
problema de abrir todos los ciclos, ya que cualquier conjunto de corrientes que figure
en la lista, no abre al menos un ciclo y por lo tanto no lineariza el subgrafo,
L1 =
134
123
145
125
45
25
345
235
2- Se construye una tabla de las combinaciones de todas las n corrientes (5 en el
ejemplo) agrupadas de a q donde q es el nº de elementos del mayor conjunto de
corrientes que no abren un ciclo.
123
124
125
134
135
145
234
235
245
345
Se comparan los elementos de las dos tablas anteriores y se encuentra que las
combinaciones (124), (135), (234), (245) no figuran el la lista L 1 y por lo tanto
constituyen un set de corrientes de corte que abren totalmente el subgrafo.
Pero no estamos seguros de que este conjunto de q = 3 corrientes de corte, sea el
mínimo que lineariza el subgrafo.
Para buscar un conjunto mínimo, se toma q1 = q - 1 y se construyen la lista L2 y la
tabla de combinaciones de n corrientes tomadas de a q1 . L2 es ahora todo par de
corrientes que no abre el subgrafo y se construye a partir de L 1, tomando las
combinaciones de los elementos que componen cada conjunto en L 1, de a q1 según
la tabla de la fig. 15
La tabla de combinaciones se muestra en la fig. 16
Comparando con L2, se encuentra que solamente el par (2, 4) figura en la tabla de
pares de corrientes pero no en L2, se concluye que, para este caso, el set de
corrientes (2, 4) es un conjunto de corrientes de corte que abre totalmente el grafo.
22
L1
L2
134
123
145
125
45
25
345
235
13
12
14
12
45
25
34
23
14
13
15
15
34
23
45
25
35
25
45
35
figura 15
12
13
14
15
23
24
25
34
35
45
figura 16
Si finalmente se construye L3 , con q2 = q1 - 1 las cinco corrientes en L3 , a partir de
L2 y por lo tanto, no hay ninguna corriente capaz de linearizar totalmente el grafo.
Nótese que este paso era innecesario ya que al no existir ningún rango 1 en la ultima
matriz de ciclos, ninguna corriente era capaz por sí sola de abrir ni siquiera un ciclo,
mucho menos el total de ciclos del grafo.
En resumen, el conjunto mínimo de corrientes de corte que lineariza el grafo es un
conjunto de 2 corrientes: 2 y 4.
Desventajas del método:
* Requerimineto de la matriz de ciclos que exige un tratamiento de particionado con
detección de todos y cada uno de los ciclos. El mantenimiento de esta información en
memoria requiere áreas de almacenamiento de datos grandes.
* El procesamiento del análisis combinatorio requerido para completar el algoritmo
cuando la reducción no da resultados, es laborioso y puede elevar el tiempo de
computación a valores muy altos. Como contrapartida garantiza la obtención del
conjunto mínimo de corrientes de corte.
Los autores han propuesto variantes al método como un acelerador del cálculo
asociado al análisis combinatorio y la aplicación de pesos arbitrario que no se tratan
aquí.
23
ORDENAMIENTO
El particionado redujo el grafo del DFI a una secuencia lineal de subgrafos cíclicos
identificados como pseudonodos máximos.
El rasgado definió el conjunto de corrientes iteradoras para poder linearizar cada
subgrafo mediante la resolución iterativa de las propiedades de dicho conjunto.
En este momento se requiere establecer la forma final en que el procesamiento
entregará al programa de simulación la lista ordenada de los equipos a resolver y
las corrientes iteradoras que deberán ser inicializadas y posteriormente
aceleradas en su convergencia.
El Ordenamiento comprende dos problemas:
1) El ordenamiento de la secuencia de resolución de cada subgrafo
2) La secuencia de resolución final del DFI completo
1) Algoritmo de Ordenamiento de Subgrafos Cíclicos
Paso 1: Se identifican todas las corrientes conocidas al iniciar la etapa resolutiva, o
sea: las corrientes alimentadoras del subgrafo y las corrientes definidas como
iteradoras por el rasgado.
Paso 2: Se investigan uno a uno los nodos del subgrafo de manera de detectar uno en
el que todas sus corrientes de entrada sean conocidas.
Paso 3: Cuando ese equipo ha sido hallado, se lo ubica en el orden de precedencia en
la próxima posición y se adicionan en la lista de corrientes conocidas las salidas de
ese nodo.
Paso 4: Se repiten los pasos 1 a 3 hasta que todos los nodos del subgrafo hayan sido
ordenados
Esto se muestra en el diagrama de bloques de la figura 17.
2) Construcción de la Lista Ordenada de Equipos
Una vez establecido el orden de precedencia para cada subgrafo cíclico, siguiendo el
ordenamiento de los pseudonodos máximos del particionado, es posible construir dos
listas ordenadas de equipos:
a) La primera lista consiste en ordenar para la etapa ejecutiva, tantas
secuencias de resolución como pseudonodos máximos haya detectado el
particionado, enlazadas secuencialmente en el orden que éste produjo.
Esta sistemática indica que el programa de ejecución tomará cada uno de los
subgrafos y los resolverá sin abandonarlo, hasta haberlo concluído totalmente. Este
24
cálculo iterativo llevará a convergencia todas las corrientes de corte (uj) de un
subgrafo, antes de pasar al siguiente. En este caso, el programa ejecutivo opera cada
vez sólo con las corrientes de corte del subgrafo que trata.
EMPIECE
FIN
SI
¿LISTEQ
VACIA?
NO
i=1
Elimine Ni de
LISTEQ
i = i+1
NO
¿ Ni en
LISTEQ?
SI
cij  C
 j de Ni
SI
Coloque en C todo
cki de Ni y Ni en la
posición siguiente
de LISSAL
NO
figura 17
LISTEQ: Lista de nodos del subgrafo cíclico
LISSAL: Orden de precedencia
C: Conjunto de corrientes conocidas, formado por alimentadoras, iteradoras y salidas
de equipos ya incluídos en LISSAL.
Ni: Un nodo de LISTEQ
cij: Corr. de entrada a Ni (j = 1,.......nNi ) , nNi : número de corrientes de entrada a Ni
cki: Corr. de salida de Ni (k = 1,.......mNi ), mNi : número de corrientes de salida de Ni
25
b) La segunda lista se construye en base a una secuencia UNICA de resolución
de todo el DFI, por lo que el programa de cálculo deberá operar simultáneamente
con la convergencia de N corrientes iteradoras donde:
m
N =  uj
j=1
m = nº de subgrafos cíclicos detectados por el particionado.
En gral, la primera alternativa es la más conveniente, excepto en ciertos casos
particulares.
Ejemplo:
A
4
1
B
3
2
C
5
6
D
8
E
F
9
7
La información producida por las tres etapas de pre-procesamiento es:
Subgrafos cíclicos: 2 (A, B, C ) y ( D, E, F )
Corrientes de Corte : Subgrafo (A, B, C ) : corriente 2
Subgrafo ( D, E, F ) : corriente 6
Ordenamiento: Subgrafo ( A, B, C ) : ( C, A, B )
Subgrafo ( D, E, F ) : ( E, F, D )
Analizamos el comportamiento del programa de resolución a partir de la siguiente
secuencia de ejecución:
a) Se resuelve el primer subgrafo ( A, B, C ) iterando hasta convergencia de la
corriente 2. Al cumplirse este requisito, se conoce la corriente 5 y por lo tanto:
b) Se resuelve el subgrafo ( D, E, F ), iterando hasta convergencia de la corriente 6
Durante la etapa a) , el programa ejecuta los equipos según:
{( C, A, B ), ( C, A, B ), ( C, A, B ),.........., ( C, A, B )}
----------------------- r1 veces ----------------------------hasta lograr la convergencia de 2 (una sola corriente)
26
Durante la etaba b) , el programa ejecuta:
{( E, F, D ), ( E, F, D ), ( E, F, D ), ........... ( E, F, D )}
----------------------- r2 veces-----------------------------hasta lograr la convergencia de 6 (una sola corriente)
En cada etapa el programa debe resolver 3 equipos y converge 1 sola corriente de
corte.
Analizando otra alternativa:
a) Se resuelve todo el DFI en conjunto hasta convergencia simultánea de 2 y 6.
En este caso el programa debe calcular:
{( C, A, B, E, F, D ),
( C, A, B, E, F, D ), ............. ( C, A, B, E, F, D )
--------------------------------- r3 veces --------------------------------------El programa está obligado a manejar el total de los equipos en cada iteración, con la
desventaja adicional de tener que acelerar simultáneamente la convergencia de 2
corrientes. Además, durante la aceleración de la convergencia de la corriente 6, se
emplean valores de las propiedades de la corriente 5 que cambian hasta tanto 2 no
logre la convergencia.
Por ello, se puede afirmar que la alternativa de resolución secuencial, no
simultánea, de los distintos subgrafos cíclicos, es la más recomendable para la
simulación.
Es importante recalcar, que el pre-procesador deberá entregar su información de
salida, de acuerdo a la estructura del programa ejecutivo. Para éste no es lo
mismo operar de una u otra forma y a programa de simulación dado, será
necesario adecuar el procesador a sus necesidades
27
Descargar