Проблемы, связанные с алгоритмом Беллмана-Форда [закрыто]C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Проблемы, связанные с алгоритмом Беллмана-Форда [закрыто]

Сообщение Anonymous »

У меня возникли проблемы с алгоритмом Беллмана-Форда. Это моя попытка, и я получаю результат «Нет пути», который отличается от ожидаемого: «A E». Может ли кто-нибудь объяснить, что не так с моим кодом, и, возможно, найти решение?
void BF(int G[MAX_NODES][MAX_NODES], int n, int BFValue[], int BFPrev[]) {
for (int i = 0; i < n; ++i) {
BFValue = MAX_VALUE;
BFPrev = -1;
}

int src = 0; // Assuming 'A' is the source
BFValue[src] = 0;

for (int k = 0; k < n - 1; ++k) {
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (G[j] && BFValue + G[j] < BFValue[j]) {
BFValue[j] = BFValue + G[j];
BFPrev[j] = i;
}
}
}
}
}

string BF_Path(int G[MAX_NODES][MAX_NODES], int n, char srcChar, char destChar) {
int BFValue[MAX_NODES], BFPrev[MAX_NODES];
BF(G, n, BFValue, BFPrev);

int src = srcChar - 'A';
int dest = destChar - 'A';
int path[MAX_NODES], pathLength = 0;

// Reconstruct the path in reverse
for (int at = dest; at != -1; at = BFPrev[at]) {
path[pathLength++] = at;
}

if (pathLength == 1 && src != dest) { // If pathLength is 1, only dest was added and there's no path from src to dest
return "No path";
}

// Construct path string in the correct order
string pathStr = "";
for (int i = pathLength - 1; i >= 0; --i) {
pathStr += (char)('A' + path);
if (i > 0) {
pathStr += " ";
}
}

return pathStr;
}

int main() {
std::ifstream fin;
int G[20][20];
int BFValue[20];
int BFPrev[20];
fin.open("inMat2.txt");
int n = 8;
for (int i = 0; i < n; i++) {
BFValue = -1;
BFPrev = -1;
for (int j = 0; j < n; j++) {
fin >> G[i][j];
}
}
cout

Подробнее здесь: https://stackoverflow.com/questions/785 ... -algorithm
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Что не так в моей реализации алгоритма Форда-Беллмана? [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Я хочу переслать оставшиеся сети от Форда Фулкерсона,
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Я хочу переслать оставшиеся сети от Форда Фулкерсона,
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Как избежать броски httpmessageConversionException, связанные с классами, связанные с весной
    Anonymous » » в форуме JAVA
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как избежать броски httpmessageConversionException, связанные с классами, связанные с весной
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»