*   >> Lectura Educación Artículos >> science >> programación

Dijkstra & amp; rsquo; s Algorithm

Planteamiento del problema: -

Para el árbol de expansión mínima utilizando el algoritmo de dijkstar

Teoría: -

Un árbol es un circuito. Gráfico menos conectados. Sea G = (V, E) un grafo conectado.

Un subgrafo T = (V1, E1) de G es un árbol de expansión de G si y sólo si, España

  1. V1 = V

  2. E1 es un subconjunto de E

  3. T es un árbol

    dijkstar'salgorithm es un método codicioso para obtener la ruta más corta entre cada vértice de un vértice inicial y mínima árbol de expansión. Se acumula el borde del árbol a la orilla.

    Los criterios para elegir un borde que se traduce en un aumento mínimo en la suma de los costos de los bordes hasta el momento incluidos

    Algoritmo: -.

    El algoritmo se le da la longitud de la matriz gráfico que contiene la información sobre toda la longitud gráficos borde. El algoritmo comienza con un vértice v inicial 0 con cada uno contra tres cantidades asociadas. Un statusdenoted por estado [v], que será o bien '!'

    es decir, el camino más corto para v v 0 tiene que ser encontrado, '?', Que significa que no tiene.

    A distancedenoted por dist [v] representa la longitud de la ruta más corta desde v a v 0 encontradas. Hasta ahora un nextvertex denotado por el próximo v será el vértice rápido en el camino a v 0 lo largo de la ruta más corta encontrado tan lejos de vto v 0.

    /* INITIALIZATION * /

    Estado [v 0] = '!'

    dist [v 0] = 0

    siguiente [v 0] = '*'

    para todo v ≠ V 0

    Estado [v] = '?'

    dist [v] = l (v, v 0)

    siguiente [v] = v 0

    end para

    /* PROCESAMIENTO * /

    Porque hay restante? vértices

    v * =? vértice para los que dist es más pequeño

    Estado [v *] = '!'

    para cada restante? vértice v

    si dist [v]> dist [v *] + l (v *, v)

    dist [v]> dist [v *] + l (v *, v )

    siguiente [v] = v *

    final si

    end para

    end para

    Código del programa: -

    #include

    #include

    void main ()

    {

    int a [17] [17], i, j , n, dist [12], min, r, s = 0;

    Estado char [12], al lado [12], v0, v [12], v1;

    clrscr ( );

    printf ("\\ n \\ t \\ t \\ tDIJKSTAR DEL ALGORITMO");

    printf ("\\ n \\ t \\ t \\ t ---------- ---------- \\ n \\ n ");

    printf (" \\ nNo el número de vértices

    Page   <<       [1] [2] [3] [4] >>
Copyright © 2008 - 2016 Lectura Educación Artículos,https://lectura.nmjjxx.com All rights reserved.