none
Algoritmo de Prim copiado, desarrollado en C# que no me corre bien y no puedo encontar la razon. RRS feed

  • Pregunta

  • Hola Mucho agradeceria que alguien me ayudara en encontrar cual es el problema por el cual el algoritmo de Prim adjunto no corre bien: Si el problema, es porque de mi  parte no entiendo como en el algoritmo se cargan los otros datos necesarios descartando la matriz de Adayacencia,  o que el programa copiado del sitio www.GeeksforGeeks.com tiene algun problema que no puedo encontrar.

    Gracias nuevamente por su tiempo. Luis E. Guzman.

    A continuacion le copio solamente el program otras partes de detallada descripcion de como trabaja sobre un grafo el algoritmo lamentablemente no lo puedo cargar porque todo el material ocupa mucho espacio y no cabe en esta pagina....

    How to implement the above algorithm?
    We use a boolean array mstSet[] to represent the set of vertices included in MST.  If a value mstSet[v] is true, then vertex v is included in MST, otherwise not. Array key[] is used to store key values of all vertices. Another array parent[] to store indexes of parent nodes in MST. The parent array is the output array which is used to show the constructed MST.

    using System;
    class MST {     
        // Number of vertices in the graph

        staticintV = 5; 

        static int minKey(int []key, bool []mstSet)

                     
            int min = int.MaxValue, min_index = -1;
      
            for (int v = 0; v < V; v++)
                if (mstSet[v] == false && key[v] < min)
                {
                    min = key[v];
                    min_index = v;

                

            return min_index;

        }
       static void printMST(int []parent, int n, int [,]graph)
        {
            Console.WriteLine("Edge \tWeight");
            for (int i = 1; i < V; i++)
                Console.WriteLine(parent[i]+" - "+ i+"\t"+
                                graph[i,parent[i]]);
        }
          static void primMST(int [,]graph)
        {
                   
           int []parent = new int[V];      
            int []key = new int [V];     
            bool []mstSet = new bool[V];
      
            // Initialize all keys
            // as INFINITE
            for (int i = 0; i < V; i++)
            {
                key[i] = int.MaxValue;
                mstSet[i] = false;

            }

              key[0] = 0; 
            parent[0] = -1; 
      
            // The MST will have V vertices
            for (int count = 0; count < V - 1; count++)
                                
                int u = minKey(key, mstSet);
              
                mstSet[u] = true;
      
            

                for(intv = 0; v < V; v++) 

                if (graph[u,v] != 0 && mstSet[v] == false &&

                    graph[u,v] < key[v])
                    {
                        parent[v] = u;
                        key[v] = graph[u,v];
                    }
            }
      
            // print the constructed MST
            printMST(parent, V, graph);
        }

     

      

    <button id="copyCodeBtn">Copy Code</button><button class="runIdeBtn">Run on IDE</button>


    leg2014




    • Editado leg2014 viernes, 23 de noviembre de 2018 18:01
    jueves, 22 de noviembre de 2018 0:59

Respuestas

  • Hola  leg2014

    Dando seguimiento a tu pregunta, te comparto algunos procedimientos que puedes intentar.  

    https://docs.microsoft.com/es-es/dotnet/api/system.array.copy?view=netframework-4.7.2

    Espero que te sean de utilidad.

    Gracias por usar los foros de MSDN.

    Pablo Rubio
     ____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    • Marcado como respuesta leg2014 jueves, 22 de noviembre de 2018 17:39
    jueves, 22 de noviembre de 2018 17:14
    Moderador
  • Gracias por sus Atencion Sr. rubio.

    Revisare el sitio recomendado en la esperaza de que alguien me "ilumine".. y pueda ver el o los detalles que me dificultan que el algoritmo corra bien.

    Deseandole lo mejor. Pase buen Dia.

    Luis E. Guzman


    leg2014

    • Marcado como respuesta leg2014 jueves, 22 de noviembre de 2018 17:44
    jueves, 22 de noviembre de 2018 17:43

Todas las respuestas

  • Hola  leg2014

    Dando seguimiento a tu pregunta, te comparto algunos procedimientos que puedes intentar.  

    https://docs.microsoft.com/es-es/dotnet/api/system.array.copy?view=netframework-4.7.2

    Espero que te sean de utilidad.

    Gracias por usar los foros de MSDN.

    Pablo Rubio
     ____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    • Marcado como respuesta leg2014 jueves, 22 de noviembre de 2018 17:39
    jueves, 22 de noviembre de 2018 17:14
    Moderador
  • Gracias por sus Atencion Sr. rubio.

    Revisare el sitio recomendado en la esperaza de que alguien me "ilumine".. y pueda ver el o los detalles que me dificultan que el algoritmo corra bien.

    Deseandole lo mejor. Pase buen Dia.

    Luis E. Guzman


    leg2014

    • Marcado como respuesta leg2014 jueves, 22 de noviembre de 2018 17:44
    jueves, 22 de noviembre de 2018 17:43