Grafos de precedencia

Grafos de precedencia

de Ramiro Facundo Lorenzo Rodriguez Inthamoussu -
Número de respuestas: 4

Buenas,

Existe algun metodo de demostrar efectivamente que un grafo de precedencia cualquiera no se puede o si se puede representar mediante cobegin-coend ?

(mas alla de las pruebas intuitivas de casos particulares que explicaron en teorico)

En respuesta a Ramiro Facundo Lorenzo Rodriguez Inthamoussu

Re: Grafos de precedencia

de Pablo Martin Baez Echevarria -
En el libro de Bic-Shaw, se usa la notación S(S_1,\dots,S_n) y P(S_1,\dots,S_n) para representar las ejecuciones secuencial y concurrente de S_1,\dots,S_n respectivamente. Si es posible expresar el grafo mediante la composición de los operadores P y S, entonces dicho grafo es representable mediante cobegin-coend y si no, no.
En respuesta a Pablo Martin Baez Echevarria

Re: Grafos de precedencia

de Pablo Martin Baez Echevarria -

De forma más práctica, se me ocurre lo siguiente. Por ejemplo, dado el siguiente grafo:

Grafo no representable mediante cobegin-coend

podemos usar una flecha S_1\rightarrow S_2 para representar la ejecución secuencial (lo que vendría a ser el operador S del libro) y (S_1, S_2) para la ejecución concurrente (lo que vendría a ser el operador P). Entonces uno empieza a hacer la traducción:


\begin{align*} S_1\\ S_1\rightarrow (S_2,S_3)\\ S_1\rightarrow (S_2\rightarrow S_4, S_3\rightarrow S_6)\\ S_1\rightarrow (S_2\rightarrow S_4\rightarrow (S_5,S_6), S_3\rightarrow S_6\rightarrow S_7)\\ S_1\rightarrow (S_2\rightarrow S_4\rightarrow (S_5\rightarrow
    S_7,S_6\rightarrow S_7), S_3\rightarrow S_6\rightarrow S_7) \end{align*}


Una vez que se ha llegado a desarrollar en profundidad todas las ramas, empieza a simplificarse con la regla de que si en un paréntesis está la misma tarea al final, puede "extraerse" para afuera. O sea, (\cdots \rightarrow A, \cdots \rightarrow A) se simplifica a (\cdots,\cdots)\rightarrow A. Esta simplificación empieza a hacerse desde el paréntesis más interno:


\begin{align*} S_1\rightarrow (S_2\rightarrow S_4\rightarrow (S_5\rightarrow S_7,S_6\rightarrow S_7), S_3\rightarrow S_6\rightarrow S_7) \\
  S_1\rightarrow (S_2\rightarrow S_4\rightarrow (S_5,S_6) \rightarrow S_7, S_3\rightarrow S_6\rightarrow S_7) \\
  S_1\rightarrow (S_2\rightarrow S_4\rightarrow (S_5,S_6), S_3\rightarrow S_6) \rightarrow S_7
  \end{align*}


En este punto, no puede simplificarse más. Se ha llegado, en cierto modo, a una expresión "canónica" del grafo. Si en esta expresión reducida hay una etiqueta que aparece más de una vez, el grafo no es representable mediante cobegin-coend. En este ejemplo, aparece S_6 dos veces por lo que no es representable mediante cobegin-coend.

En respuesta a Pablo Martin Baez Echevarria

Re: Grafos de precedencia

de Nicolas Martin Serra Bassetti -
Buenos días,

¿En esta edición del curso se cuenta como valido este método para demostrar si un grafo de precedencia se puede o no representar mediante cobegin-coend?

Desde ya gracias
Saludos cordiales
En respuesta a Nicolas Martin Serra Bassetti

Re: Grafos de precedencia

de Leonardo Alberro Zimmermann -
Hola,
si das una representación con cobegin-coend -> se puede representar (presentas un ejemplo/testigo)
lo que no vale, es justificar que si no encontrás una representación -> no se puede representar (puede que no se te haya ocurrido)
Para demostrar que no es representabe, basta con identificar uno de los subgrafos que sabemos que no pueden representarse (mostrados en el teórico), ya sea explícitamente como un subgrafo del grafo general o en una reducción del mismo.
Saludos