15 votos

¿Un buen algoritmo para encontrar el diámetro de un gráfico (disperso)?

Mi pregunta sobre el desbordamiento de la pila fue recientemente etiquetado como "matemáticas". A pesar de la recompensa, nunca recibió una respuesta satisfactoria, así que pensé en preguntarle aquí:

Tengo un gráfico grande, conectado y disperso en forma de lista de adyacencias. Me gustaría encontrar el el diámetro del gráfico y dos vértices que lo logran.

¿Hay un mejor enfoque que computar todos los pares de caminos más cortos?

Me interesa este problema tanto en los casos no dirigidos como en los dirigidos, para diferentes aplicaciones. En el caso dirigido, por supuesto me interesa la distancia dirigida (el máximo sobre pares de vértices de la longitud del camino dirigido más corto desde el primer vértice al segundo).

13voto

Herms Puntos 13069

Resumen de mi respuesta. Me gusta el modelado de la cadena de Markov, pero echa de menos el aspecto "temporal". En el otro extremo, centrándose en el aspecto temporal (por ejemplo, el tiempo medio en $-1$ ) echa de menos el aspecto de "transición". Yo entraría en el siguiente modelado general (que con una suposición adecuada puede llevar al [proceso de Markov][1]). También hay mucha estadística "censurada" detrás de este problema (que es ciertamente un problema clásico de la fiabilidad del software ? ). La última ecuación de mi respuesta da el estimador de máxima probabilidad de la intensidad del voto (arriba con "+" y abajo con "-") para un estado de voto dado. Como podemos ver en la ecuación, es un intermedio del caso en que sólo se estima la probabilidad de transición y del caso en que sólo se mide el tiempo de permanencia en un estado dado. Espero que esto ayude.

Modelización general (para replantear la cuestión y los supuestos). Deje que $(VD_i)_{i \geq 1}$ y $(S_{i})_{i \geq 1}$ ser variables aleatorias que modelen respectivamente las fechas de votación y el signo de votación asociado (+1 para el voto ascendente, -1 para el voto descendente). El proceso de votación es simplemente

$$Y_{t}=Y^+_t-Y^-_t$$ donde

$$Y^+_t= \sum_ {i=0}^{ \infty }1_{VD_i \leq t,S_i=1} \; \text { and } \;Y^-_t= \sum_ {i=0}^{ \infty }1_{VD_i \leq t,S_i=-1}$$

La cantidad importante aquí es la intensidad de $ \epsilon $ -salta $$ \lambda ^{ \epsilon }_t= \lim_ {dt \rightarrow 0} \frac {1}{dt} P(Y^{ \epsilon }_{t+dt}-Y^{ \epsilon }_t=1| \mathcal {F}_t) $$ donde $ \epsilon $ puede ser $-$ o $+$ y $ \mathcal {F}_t$ es una buena filtración, en el caso de los géneros, sin otros conocimientos lo sería: $$ \mathcal {F}_t= \sigma \left (Y^+_t,Y^-_t,VD_1, \dots ,VD_{Y^+_t+Y^-_t},S_{1}, \dots ,S_{Y^+_t+Y^-_t} \right )$$ .

pero en la línea de tu pregunta, creo que implícitamente asumes que $$ P \left ( Y^{ \epsilon }_{t+dt}-Y^{ \epsilon }_t=1 | \mathcal {F}_t \right )= P \left (Y^{ \epsilon }_{t+dt}-Y^{ \epsilon }_t=1| Y_t \right ) $$ Esto significa que para $ \epsilon =+,-$ existe una secuencia determinista $( \mu ^{ \epsilon }_i)_{i \in \mathbb {Z}}$ de tal manera que $ \lambda ^{ \epsilon }_t= \mu ^{ \epsilon }_{Y_t}$ .

Dentro de este formalismo, su pregunta puede ser replanteada como: "es probable que $ \mu ^{+}_{-1} - \mu ^{+}_{0}>0$ " (o al menos es la diferencia mayor que un umbral determinado).

Bajo esta suposición, es fácil mostrar que $Y_t$ es un [proceso homogéneo de Markov][3] en $ \mathbb {Z}$ con el generador $Q$ dado por

$$ \forall i,j \in \mathbb {Z}\;\;\; Q_{i,i+1}= \mu ^{+}_{i}\;\; Q_{i,i-1}= \mu ^{-}_{i}\;\; Q_{ii}=1-( \mu ^{+}_{i}+ \mu ^{-}_{i}) \;\; Q_{ij}=0 \text { if } |i-j|>1$$

Responder a la pregunta (proponiendo un estimador de máxima probabilidad para el problema estadístico) A partir de esta reformulación, la solución del problema se hace estimando $( \mu ^{+}_i)$ y construyendo una prueba para aumentar sus valores. Arreglemos y olvidemos el $i$ sin pérdida de generalidad. La estimación de $ \mu ^+$ (y $ \mu ^-$ ) se puede hacer en respuesta a la observación de

$(T^{1}, \eta ^1), \dots ,(T^{p}, \eta ^p)$ donde $T^j$ son las longitudes de la $j^{th}$ de la $p$ los períodos pasados en el estado $i$ (es decir, sucesivas veces con $Y_t=i$ ) y $ \eta ^j$ es $+1$ si la pregunta fue votada, $-1$ si se votó a favor y $0$ si era el último estado de observación.

Si se olvida el caso con el último estado de observación, las parejas mencionadas son de una distribución que depende de $ \mu_i ^+$ y $ \mu_i ^-$ se distribuye como $( \min (Exp( \mu_i ^+),Exp( \mu_i ^-)), \eta )$ (donde Exp es una varilla aleatoria de una distribución exponencial y $ \eta $ es + o -1 dependiendo de quién se dé cuenta del máximo). Entonces, puedes usar el siguiente lema simple (la prueba es sencilla):

Lemma Si $X_+ \leadsto Exp( \mu_ +)$ y $X_{-} \leadsto Exp( \mu_ {-})$ entonces, $T= \min (X_+,X_-) \leadsto Exp( \mu_ ++ \mu_ -)$ y $P(X_+1<X_-)= \frac { \mu_ +}{ \mu_ ++ \mu_ -}$ .

Esto implica que la densidad $f(t, \epsilon )$ de $(T, \eta )$ está dada por: $$ f(t, \epsilon )=g_{ \mu_ ++ \mu_ -} \left ( \frac {1( \epsilon =+1)* \mu_ ++1( \epsilon =-1)* \mu_ -}{ \mu_ ++ \mu_ -} \right )$$ donde $g_a$ para $a>0$ es la función de densidad de una variable aleatoria exponencial con el parámetro $a$ . A partir de esta expresión, es fácil derivar el estimador de máxima probabilidad de $ \mu_ +$ y $ \mu_ -$ :

$$( \hat { \mu }_+, \hat { \mu }_-)=argmin \ln ( \mu_ -+ \mu_ +) \left ( ( \mu_ -+ \mu_ +) \sum_ {i=1}^p T^i+p \right )- p_- \ln\left ( \mu_ - \right ) -p_+ \ln \left ( \mu_ + \right )$$ donde $p_-=|{i: \delta_i =-1}|$ y $p_+=|{i: \delta_i =+1}|$ .

Comentarios sobre enfoques más avanzados

Si quiere tomar en cuenta los casos cuando $i$ es el último estado observado (ciertamente más inteligente porque cuando pasas por $-1$ ...a menudo es tu última puntuación...) tienes que modificar un poco el razonamiento. La censura correspondiente es relativamente clásica...

Otro posible enfoque puede incluir la posibilidad de

  • Teniendo una intensidad que disminuye con el tiempo
  • Teniendo una intensidad que disminuye con el tiempo transcurrido desde la última votación (prefiero esta. En este caso hay una forma clásica de modelar cómo la densidad disminuye...
  • Puede que quieras asumir que $ \mu_i ^+$ es una función suave de $i$
  • .... puedes proponer otras ideas !

11voto

Andrea Marino Puntos 51

Sí, es porque estás usando el oscilador de "silicio".

El tablero del basys2 también proporciona un enchufe para un oscilador de cristal. Si conectas un oscilador de cristal y usas su señal de reloj, el jitter desaparece y la imagen VGA estará bien. Lo he probado yo mismo.

El manual te dice eso:

El oscilador de silicio primario es flexible y barato, pero carece de la estabilidad de frecuencia de un oscilador de cristal. Algunos circuitos que impulsan un El monitor VGA puede notar una ligera mejora en estabilidad de la imagen mediante el uso de un oscilador de cristal instalado en el enchufe IC6. Para estas aplicaciones, un oscilador de cristal de 25MHz (o 50MHz), disponible de cualquier distribuidor de catálogo, se recomienda

("puede notar una ligera mejoría" es un fuerte eufemismo)

Ver página 3 en el manual de Basys2 .

7voto

Dominika Puntos 31

Es un problema abierto desde hace mucho tiempo si es posible calcular el camino más corto entre un par particular de vértices en un tiempo menor que los algoritmos conocidos para calcular el camino más corto de todos los pares. Por lo tanto, se pregunta si existe un algoritmo para calcular el máximo sobre el conjunto de todos los caminos más cortos que sea más rápido que cualquier algoritmo conocido para calcular cualquier camino más corto en particular.

Estoy bastante seguro de que la respuesta es no, pero no puedo pensar en una reducción del problema del camino más corto de un par.

7voto

Flow Puntos 14132

Sólo es útil en el caso denso, no en el caso disperso por el que preguntas, pero Yuster ha demostrado recientemente que el diámetro de un grafo dirigido no ponderado puede calcularse de hecho de forma más eficiente que los algoritmos conocidos para todos los pares de caminos más cortos. Véase su artículo "Computing the diameter polynomially faster than APSP" en arXiv:1011.6181 .

2voto

Urakov Puntos 21

Para las redes de carreteras: http://arxiv.org/abs/1209.4761

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X