static double[] getNIJ(AdjacencyList g, List <CaminoOptimo> cs) { bool[] visitados = new bool[g.tamanioGrafo()]; char[] letras = new char[] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I' }; foreach (int i in Enumerable.Range(0, g.tamanioGrafo())) { visitados[i] = false; } //OBTENER ARREGLO CON nij List <int> tmpCosts = new List <int>(); List <double> nij = new List <double>(); for (int i = 0; i < g.tamanioGrafo() - 1; i++) { visitados[i] = true; var vecinos = g[i]; foreach (var j in vecinos) { if (!visitados[j.Item1]) { double x = (double)1 / (double)j.Item2; nij.Add(x); primerosArcos.Add(new Tuple <int, int>(i, j.Item1)); tmpCosts.Add(j.Item2); } } } foreach (var i in primerosArcos) { Console.WriteLine($"{letras[i.Item1]} - {letras[i.Item2]}"); } costosPrimerosArcos = tmpCosts.ToArray(); return(nij.ToArray()); }
static void Main(string[] args) { leerGrafo(); grafo.mostrarListaAdyacencia(); int raiz = 0; //SE BUSCA EN TODOS LOS VECINOS UN CAMINO var nodosVecinos = grafo[raiz]; int nodoInicial = raiz; var res = 0; List <CaminoOptimo> caminos = new List <CaminoOptimo>(); for (int i = 0; i < grafo.tamanioGrafo(); i++) { raiz = i; camino = new List <int>(); costos = new List <int>(); arcs = new List <Tuple <int, int> >(); costo = 0; inicializarArrVisitados(grafo.tamanioGrafo()); visitados[raiz] = true; res = busqueda(raiz, raiz); if (res == 200) //TRAJO UN CAMINO COMPLETO { caminos.Add(new CaminoOptimo(raiz, camino, costo, costos, arcs)); } /*else if(res == 500){ * return; //TERMINA PROGRAMA * }*/ } /* foreach(var i in caminos){ * i.imprimirCamino(); * } */ //CONTINUAR CON HORMIGAS AntColony.Init(grafo, caminos); Console.WriteLine("Hello World!"); }