С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 1
Регистрация: 05.02.2014
Сообщений: 2

Матрица Форда Беллмана и метод Дейкстра

05.02.2014, 15:48. Показов 2498. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Тут такая проблема , задали написать матрицу с помощью єтих методов/ вопрос : Как вставить сюда матрицу (тоесть с помощью методов Беллмана и Дейкстра нужно написать матрицу)
Вот они :

std::vector<int> FORD_BELLMAN(int n, std::vector<std::vector<int> > &A, int s)
{
std::vector<int> D(n+1);
for (int v=1; v<=n; ++v)
D[v] = A[s][v];
D[s]=0;
for (int k=1; k<=n-2; ++k)
for (int v=1; v<=n; ++v)
if (v!=s)
for (int u=1; u<=n; ++u)
D[v]=std::min(D[v], D[u] + A[u][v]);
return D;
}



std::vector<int> DIJKSTRA(int n, std::vector<std::vector<int> > &A, int s)
{
std::vector<int> D(n+1);
for (int v=1; v<=n; ++v)
D[v] = A[s][v];
D[s]=0;
std::list<int> T;
/* T = V/{s} */
for (int v=1; v<=n; ++v)
if (v!=s)
T.push_back(v);

while (!T.empty()){
/* u = dowolny wierzcholek r taki, ze D[r]=min{D[p]: p nalezy do T} */
/* it - iterator na u */
std::list<int>::iterator it = T.begin();
for(std::list<int>::iterator i = T.begin(); i!=T.end(); ++i)
/* UWAGA na blad w ksiazce -> if(*i < *it) it = i; */
if (D[*i] < D[*it]) it = i;
int u = *it;
T.erase(it); /* T=T/{u} */

for (std::list<int>::iterator i=T.begin(); i!=T.end(); ++i){
int v=*i;
D[v]=std::min(D[v], D[u] + A[u][v]);
}

}
return D;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.02.2014, 15:48
Ответы с готовыми решениями:

Алгоритм форда беллмана
Необходимо реализовать поиск кратчайшего пути в графе между заданными вершинами методом форда-беллмана без использования структур, списков...

Алгоритм Форда - Беллмана
Помогите пожалуйста понять что не так у меня. ограничение времени на тест: 1 сек. ограничение памяти на тест: 32768 KB. ввод:...

Алгоритм Форда-Беллмана
Народ если есть у кого нибудь исходник выложите пожалуйста очень надо. А то везде одно и то же... И ничего не понятно толком=)

2
60 / 48 / 13
Регистрация: 12.11.2012
Сообщений: 373
Записей в блоге: 2
05.02.2014, 16:40
Лучший ответ Сообщение было отмечено vitalicok как решение

Решение

Если реч об этом и вот этом, то Вам, скорее всего, нужно сначала откуда-то граф взять. Если нет, то уточните вопрос.



PS: хорошо бы для кода использовать теги [CODE] или [CPP], что бы было проще читать Ваши сообщения.
0
0 / 0 / 1
Регистрация: 05.02.2014
Сообщений: 2
06.02.2014, 21:59  [ТС]
Возможно граф и есть , но сейчас у меня его , а без него можно как то?
Как я уже написал, нужно написать код матрицы на основе этог0 метода(какбы простая матрица но с элементами этого метода(матрица любая может быть , например 2х3)


вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
std::vector<int> FORD_BELLMAN(int n, std::vector<std::vector<int> > &A, int s)
{
std::vector<int> D(n+1);
for (int v=1; v<=n; ++v)
D[v] = A[s][v];
D[s]=0;
for (int k=1; k<=n-2; ++k)
for (int v=1; v<=n; ++v)
if (v!=s)
for (int u=1; u<=n; ++u)
D[v]=std::min(D[v], D[u] + A[u][v]);
return D;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
std::vector<int> DIJKSTRA(int n, std::vector<std::vector<int> > &A, int s)
{
std::vector<int> D(n+1);
for (int v=1; v<=n; ++v)
D[v] = A[s][v];
D[s]=0;
std::list<int> T;
for (int v=1; v<=n; ++v)
if (v!=s)
T.push_back(v);
 
while (!T.empty()){
std::list<int>::iterator it = T.begin();
for(std::list<int>::iterator i = T.begin(); i!=T.end(); ++i)
if (D[*i] < D[*it]) it = i;
int u = *it;
T.erase(it);
 
for (std::list<int>::iterator i=T.begin(); i!=T.end(); ++i){
int v=*i;
D[v]=std::min(D[v], D[u] + A[u][v]);
}
 
}
return D;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.02.2014, 21:59
Помогаю со студенческими работами здесь

Алгоритм Форда-Беллмана
Доброго времени суток. Есть кривой код: #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; const int inf = 1555; struct...

Алгоритм Беллмана-Форда
Здравствуйте всем. Я вообще редко обращаюсь сюда за помощью решить задачу и стыдно как то, но я не понимаю в чём дело. Написал алгоритм а...

Восстановление пути из алгоритма Форда-Беллмана
Реализовал алгоритм Форда-Беллмана, но не получается правильно восстановить пути, подскажите, где ошибаюсь. #define...

Графы: реализация алгоритма Беллмана-Форда
Написать программу, реализующую алгоритм Беллмана-Форда.

Как реализовать Алгоритм Беллмана-Форда со смежной матрицей?
Ребят,есть код и его нужно реализовать со смежными графами. Помогите!!!) #include &quot;pch.h&quot; #include &lt;iostream&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru