Artículos Relacionados

  • Tienes que instalar el plugin 'similar post' para ver esta sección.
  • Hay 22 Comentarios para “Algoritmo Genético para el Problema del Viajero”

    1. sick Dice:

      saludos, da un error o.o!
      ??? Attempted to access pobInt(10,:); index out of bounds because size(pobInt)=[9,10].

      Error in ==> Untitled at 156
      cruz(i+1,:)=pobInt(i+1,:);

      Responder

      • GianBros Dice:

        Con que datos lo intentaste compilar?
        Ya que los que viene de prueba si funciona te lo paso nuevamente:
        Número de generaciones=1
        Tamaño de la población=5
        Probabilidad de cruce=8
        Probabilidad de mutación=6
        Al finalizar obtengo los siguientes datos de resultados:
        La mejor ruta es: FCGHEABDIJ
        Con un costo de: 190
        FCGHEABDIJ

        Y se despliega el grafo.

        Saludos cordiales :)

        Responder

    2. wilbedram Dice:

      SAludos , primero buen codigo muchas gracias por el aporte,
      te pregunto si conoces un articulo donde se relacione el tema del Algoritmo Genético para el Problema del Viajero para entender y profundizar un poco mas en este interesante tema .

      gracias

      Responder

    3. DAUA87 Dice:

      Hola! Gracias por compartir el código fuente, me servirá de mucho. Te quería preguntar si para ejecutar este código se lo copia directamente en la pantalla principal del Matlab?

      Muchas gracias.-

      Responder

      • GianBros Dice:

        Así solo copias y pegas el código además de copiar y pegar en otros archivos las funciones (son 2 la de comprobar y puntoLetra) ejecutas y debe de funcionar sin problemas.

        Responder

        • DAUA87 Dice:

          Gracias por la consulta, ya pude hacerlo funcionar. Ahora tengo otra consulta: En la fórmula de la función de aptitud, por qué la calculas como: f(x) = (costo mayor + costo menor) – costo actual

          Podrías explicarme esa fórmula, por qué la planteaste así?

          Muchísimas gracias! :)

          Responder

    4. kike Dice:

      hola tu codigo si me funciona y todo muy bien….solo queria saber si puedes darme como una introduccion algo asi como el objetivo que se desea solucionar con este codigo y que formulas utilizas para desarrollarlo

      Responder

    5. Fabian Dice:

      el progama me sale un error y es el siguiente
      “??? Error: File: biograph.m Line: 5 Column: 7
      The expression to the left of the equals sign is not a valid target for an assignment.

      Error in ==> Fabian_Liceth at 29
      bg = biograph(VV, V,’ShowWeights’,’on’);%unimos” no se mucho de matlab espero que me ayudes en ese problema; que mal estoy haciendo

      Responder

    6. Fabian Dice:

      Hola! mi problema es si biograph es una function o en que lado se debe pegar el codigo que realizaste para el grafo por que me sale este error

      ??? Attempt to execute SCRIPT biograph as a function:
      C:\Users\efarc\Desktop\IA\OR\biograph.m

      Error in ==> Fabian_Liceth at 29
      bg = biograph(VV, V,’ShowWeights’,’on’);%unimos ”

      Y no se que hacer

      Responder

      • GianBros Dice:

        Si estás corriendo los otros 2 programas? intenta ejecutarlo sin modificar.

        Responder

        • Fabian Dice:

          pues yo solamente hice 4 archivos .m una principal llamado Fabian_Liceth.m y las dos funciones llamados puntoLetra.m y comprobarCad.m; pues lo que no tengo claro es donde pego el codigo que tu creaste llamado biograph; Lo que hice fue copiarlo y pegarlo en un archivo llamado biograph.m y ahi me sale el bendito error

          Responder

          • GianBros Dice:

            Hola Fabian, deberás primero crear un archivo llamado “puntoLetra.m” (sin lass comillas dobles) y otro llamado “comprobarCad.m” (sin comillas dobles) y el último y principal que se llamará: “fabianLiceth.m” (primera en minúsculas y sin guiones por si las dudas), este último contendrá todo el programa el más grande.
            El siguiente código sólo es una explicación:”disp(cad);
            for i=1:n-1
            edgesSel=getedgesbynodeid(bg,cad(i),cad(i+1));
            set(edgesSel,’LineColor’,[1 0 0]);
            end
            bg.view;” NO hace falta que lo pongas en otro programa ya va incluido dentro del programa principal al cual hemos llamado en este caso “fabianLiceth.m”, espero te sirva esta pequeña explicación y logres ejecutarlo sin problemas.

            Responder

    7. Darwin Dice:

      con que versión de matlab trabajaste el programa; yo estoy trabajando con el r2010b

      Responder

    8. Darwin Dice:

      Ha con razon tengo el mismo problema que fabian al correr el programa me sale en la linea 31 por la funcion biograph debe ser que se escribio para el matlab r2008b y ahora que esta mas actualizado habra un error de sintaxis o algo asi

      Responder

    9. Adolfo Dice:

      como creas la matrix V,VV y V2, en caso de querer agregar otro punto como se haria.. gracias

      Responder

      • GianBros Dice:

        Para agregar otro punto del vector y la matriz V,VV y V2 deberías de:
        V=[‘A’ ‘B’ ‘C’ ‘D’ ‘E’ ‘F’ ‘G’ ‘H’ ‘I’ ‘J’,…,’m’,’n’…’z’];
        V2=[1 2 3 4 5 6 7 8 9 10 … n];
        VV=[0 20 15 30 25 40 30 60 50 95;
        20 0 30 20 15 15 20 40 40 30;
        15 30 0 25 30 20 30 40 45 50;
        30 20 25 0 20 30 10 50 40 30;
        25 15 30 20 0 10 20 20 30 40;
        40 15 20 30 10 0 20 30 20 30;
        30 20 30 10 20 20 0 25 40 30;
        60 40 40 50 20 30 35 0 30 15;
        50 40 45 40 30 20 40 30 0 20;
        95 30 50 30 40 30 30 15 20 0
        //aquí agregas los demás elementos pero ahora serán hasta n.
        ];

        Responder

    10. Francisco Dice:

      Amigo, muchas gracias por el codigo.
      Tengo una duda respecto a la matriz VV. Esta representa las distancias entre cada nodo? o los costos?.
      Ahora bien, como vas calculando los costos?
      Y lo último, este problema es asimilable al VRP? o son distintos?

      Saludos

      Responder

    Deja un Comentario