Witajcie Cywilizacjo przyszłości, mam problem z napisaniem algorytmu dla komiwojażera, który przy okazji robi odczyt z pliku dla danych macierzy , to tyle i aż tyle dla C++. Jakoś / mi się to rozjeżdża , męczę się z tym , ale totalnie nie mam pomysłu jak to zrobić i musiałem kapitulować. Mogę liczyć na pomoc? Ewentualnie na jakiś przykładowy pomocniczy kodzik?? ? ;)
0
0
https://wnuk.me/problem-komiwojazera/
A co sam zrobiłeś? Pokażesz nam?
0
możesz podać trochę więcej szczegółów ?
0
daniel1302 napisał(a):
https://wnuk.me/problem-komiwojazera/
A co sam zrobiłeś? Pokażesz nam?
Wiem, że gdzieś tam brakuje podwójnej pętli for i zapewne wielu rzeczy, co prawda za dużo tego nie mam, ale tak ta moja "twórczość" wygląda:
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
int [ ] [ ];
int main()
{
fstream plik;
plik.open("tsp15.txt, tsp26.txt", ios :: in);
if (plik.good()==false)
{
cout << "Plik nie istnieje! ";
exit(0);
}
string linia;
int nr_linii=1;
while(getline(plik,linia))
{
switch(nr_linii)
{
case break;
}
nr_linii++;
}
plik.close();
return 0;
}
Do tego jeszcze są te dwa plik i z macierzami w załączniku, dla których chcę stworzyć algorytm komiwojażera
Kinomax napisał(a):
możesz podać trochę więcej szczegółów ?
Fakt, zbyt mało jasno się wyraziłem...
0
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
istream& loadAdjacencyMatrix(istream& input, std::vector<std::vector<int> >& matrix) {
int size;
if (!(input >> size)) {
return input;
}
matrix = std::vector<std::vector<int> >(size, std::vector<int>(size, 0));
for (int i=0; i < size; ++i) {
for (int j=0; j < size; ++j) {
input >> matrix[i][j];
}
}
return input;
}
…
ifstream file("tsp15.txt");
std::vector<std::vector<int> > matrix;
loadAdjacencyMatrix(file, matrix);
…