S6 12 Viajante Bajo Resized

Embed Size (px)

Citation preview

  • 8/18/2019 S6 12 Viajante Bajo Resized

    1/22

    6.12 El problema del viajante (peso bajo)

    Aplicaciones de laTeoría de Grafosa la vida real

    Alberto Conejero y Cristina Jordán

    Depto. Matemática Aplicada

    E.T.S. Ingeniería Informática 

    Universitat Politècnica de València 

  • 8/18/2019 S6 12 Viajante Bajo Resized

    2/22

    El problema del viajante

    6.12. El problema del viajante (peso bajo)

     Aplicaciones de la Teoría de Grafos a la vida real

    Supongamos que un viajante ha de visitar varias poblaciones conectadas entre sí.

    ¿Cuál es el camino más corto para visitar todas las poblaciones yvolver al lugar de origen? 

  • 8/18/2019 S6 12 Viajante Bajo Resized

    3/22

     Aplicaciones de la Teoría de Grafos a la vida real

    El problema del viajante

    6.12. El problema del viajante (peso bajo)

    Este problema es un problema clásico de Teoría de grafos.

    Se le suele conocer como el Problema del Viajante de Comercio (Traveling Salesman Problem )

    El objetivo es que el viajante visite unas ciudades preestablecidas y vuelva al puntode partida recorriendo la mínima distancia.

    La modelización es similar a la vista en otros problemas:

    • Los vértices se corresponden con las ciudades.

    • Las aristas con las carreteras que unen determinadas ciudades.

    Existe solución al problema pero el coste computacional de la misma es muy elevado.

    Computacionalmente se dice que es un problema NP-completo.

  • 8/18/2019 S6 12 Viajante Bajo Resized

    4/22

     Aplicaciones de la Teoría de Grafos a la vida real

    El problema del viajante

    6.12. El problema del viajante (peso bajo)

    Supongamos que tenemos n ciudades y queremos intentar resolver el problema por“fuerza bruta”.

    n-1 n-2 n-3 1 = (n-1)!......................

  • 8/18/2019 S6 12 Viajante Bajo Resized

    5/22

     Aplicaciones de la Teoría de Grafos a la vida real

    El problema del viajante

    6.12. El problema del viajante (peso bajo)

    Este problema es un problema clásico de Teoría de Grafos.

    Sea G=(V,E) un grafo no dirigido hamiltoniano ponderado (con pesos).

    Se dice que un ciclo C es de peso bajo si se cumple:

    p(C)  ≤ 2 p(CH,min)

    donde p(C) es la suma de pesos de las aristas del ciclo C.

    Sea CH,min un ciclo Hamiltoniano del menor peso posible y sea p(CH,min) la sumade los pesos de las aristas de dicho ciclo.

  • 8/18/2019 S6 12 Viajante Bajo Resized

    6/22

     Aplicaciones de la Teoría de Grafos a la vida real

    El problema del viajante

    6.12. El problema del viajante (peso bajo)

    El siguiente algoritmo permite calcular un ciclo hamiltoniano de peso bajo en ungrafo hamiltoniano con un coste de n3, siendo n el número de vértices del grafo.

    • G=(V,E) un grafo no dirigido completo ponderado (con pesos) con al menos 3vértices, |V| ≥ 3.

    Condiciones necesarias para aplicar el algoritmo.

    • Los pesos verifican la desigualdad triangular:

    Para todo x,y,zεV p(x,y)  ≤ p(x,z) + p(z,y)

  • 8/18/2019 S6 12 Viajante Bajo Resized

    7/22

     Aplicaciones de la Teoría de Grafos a la vida real

    Algoritmo voraz para el problema del viajante

    6.12. El problema del viajante (peso bajo)

    G=(V,E) un grafo no dirigido completo ponderado (con pesos) con al menos 3vértices, |V| ≥ 3 donde los pesos verifican la desigualdad triangular.

    • C1 = {v} un ciclo de longitud 1.• C2 = {v,u,v} un ciclo de longitud 2.• …• C

    k= {v

    1,…,v

    k,v

    1} un ciclo de longitud k.

    NOTACIÓN:

    • V(Ck) los vértices del ciclo Ck.

    La idea es elegir un vértice y a partir de él ir calculando una sucesión crecientede ciclos añadiendo en cada paso el vértice más próximo.

  • 8/18/2019 S6 12 Viajante Bajo Resized

    8/22

     Aplicaciones de la Teoría de Grafos a la vida real

    Algoritmo voraz para el problema del viajante

    6.12. El problema del viajante (peso bajo)

    La idea es elegir un vértice y a partir de él ir calculando una sucesión crecientede ciclos añadiendo en cada paso el vértice más próximo.

    Paso 1C1={u}

    Paso 2C2={u,v,u}

  • 8/18/2019 S6 12 Viajante Bajo Resized

    9/22

     Aplicaciones de la Teoría de Grafos a la vida real

    Algoritmo voraz para el problema del viajante

    6.12. El problema del viajante (peso bajo)

    La idea es elegir un vértice y a partir de él ir calculando una sucesión crecientede ciclos añadiendo en cada paso el vértice más próximo.

    Paso 1C1={u}

    Paso 2C2={u,v,u}

  • 8/18/2019 S6 12 Viajante Bajo Resized

    10/22

     Aplicaciones de la Teoría de Grafos a la vida real

    Algoritmo voraz para el problema del viajante

    6.12. El problema del viajante (peso bajo)

    La idea es elegir un vértice y a partir de él ir calculando una sucesión crecientede ciclos añadiendo en cada paso el vértice más próximo.

    Paso 1C1={u}

    Paso 2C2={u,v,u}

    Paso 3C3={u,y,v,u}

  • 8/18/2019 S6 12 Viajante Bajo Resized

    11/22

     Aplicaciones de la Teoría de Grafos a la vida real

    Algoritmo voraz para el problema del viajante

    6.12. El problema del viajante (peso bajo)

    La idea es elegir un vértice y a partir de él ir calculando una sucesión crecientede ciclos añadiendo en cada paso el vértice más próximo.

    Paso 1C1={u}

    Paso 2C2={u,v,u}

    Paso 3C3={u,y,v,u}

  • 8/18/2019 S6 12 Viajante Bajo Resized

    12/22

     Aplicaciones de la Teoría de Grafos a la vida real

    Algoritmo voraz para el problema del viajante

    6.12. El problema del viajante (peso bajo)

    Apliquemos este algoritmo al grafo que modela el problema inicial:

    • Los vértices son los pueblos.

    • Las aristas son las carreteras que unen los distintos pueblos entre sí.

    • Los pesos son las distancias por carretera entre dos pueblos.

  • 8/18/2019 S6 12 Viajante Bajo Resized

    13/22

     Aplicaciones de la Teoría de Grafos a la vida real

    Algoritmo voraz para el problema del viajante

    6.12. El problema del viajante (peso bajo)

  • 8/18/2019 S6 12 Viajante Bajo Resized

    14/22

  • 8/18/2019 S6 12 Viajante Bajo Resized

    15/22

     Aplicaciones de la Teoría de Grafos a la vida real

    Algoritmo voraz para el problema del viajante

    6.12. El problema del viajante (peso bajo)

  • 8/18/2019 S6 12 Viajante Bajo Resized

    16/22

     Aplicaciones de la Teoría de Grafos a la vida real

    Algoritmo voraz para el problema del viajante

    6.12. El problema del viajante (peso bajo)

  • 8/18/2019 S6 12 Viajante Bajo Resized

    17/22

     Aplicaciones de la Teoría de Grafos a la vida real

    Algoritmo voraz para el problema del viajante

    6.12. El problema del viajante (peso bajo)

  • 8/18/2019 S6 12 Viajante Bajo Resized

    18/22

     Aplicaciones de la Teoría de Grafos a la vida real

    Algoritmo voraz para el problema del viajante

    6.12. El problema del viajante (peso bajo)

  • 8/18/2019 S6 12 Viajante Bajo Resized

    19/22

     Aplicaciones de la Teoría de Grafos a la vida real

    Algoritmo voraz para el problema del viajante

    6.12. El problema del viajante (peso bajo)

  • 8/18/2019 S6 12 Viajante Bajo Resized

    20/22

     Aplicaciones de la Teoría de Grafos a la vida real

    Algoritmo voraz para el problema del viajante

    6.12. El problema del viajante (peso bajo)

  • 8/18/2019 S6 12 Viajante Bajo Resized

    21/22

     Aplicaciones de la Teoría de Grafos a la vida real

    Algoritmo voraz para el problema del viajante

    6.12. El problema del viajante (peso bajo)

  • 8/18/2019 S6 12 Viajante Bajo Resized

    22/22

     Aplicaciones de la Teoría de Grafos a la vida real

    Algoritmo voraz para el problema del viajante

    6.12. El problema del viajante (peso bajo)

    El recorrido obtenido es:

    Hinojosa del Duque – Pozoblanco – Alcaracejos – Villaralto - El Viso –Hinojosa del Duque.

    Su longitud es 72km, que es menos de 2 veces el mínimo que es : 2*70=140.

    Un ciclo mínimo es Hinojosa – El Viso – Villaralto – Pozoblanco – Alcaracejos – Hinojosa.