С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/74: Рейтинг темы: голосов - 74, средняя оценка - 4.86
0 / 0 / 1
Регистрация: 14.07.2017
Сообщений: 2

Алгоритм Беллмана-Форда

25.04.2013, 18:01. Показов 15530. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уже какой день мучаюсь с реализацией этого алгоритма в С#, прочитал Википедию и мн-во других сайтов по поводу этого Алгоритма, и понял его действие "на бумаге", но запрограммировать ни как не удается, даже разжевывание на http://e-maxx.ru/algo/export_ford_bellman (код С++), не помогает. Господа, прошу помощи!

(Использую матрицу смежности, ниже прикрепил свой шаблон формы, для наглядности)
Миниатюры
Алгоритм Беллмана-Форда  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.04.2013, 18:01
Ответы с готовыми решениями:

Визуализировать алгоритм Форда – Беллмана нахождения минимального пути на графе
Возможно пишу не совсем туда, но все же: Необходимо визуализировать алгоритм Форда – Беллмана нахождения минимального пути на графе ...

Алгоритм Форда-Беллмана
У меня есть код алгоритма, но мне его надо переделать так, чтобы я сам вводил матрицу ( состоящую из чисел, бесконечностей), а он мне...

Алгоритм Беллмана-Форда
Здравствуйте. Может ли быть на входе доя алгоритма Беллмана-Форда граф, состоящий из ДВУХ вершин? Если да, то как обрабатывать этот...

2
 Аватар для dr.curse
404 / 360 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
25.04.2013, 18:04
код в студию!
0
0 / 0 / 1
Регистрация: 14.07.2017
Сообщений: 2
25.04.2013, 18:07
Лучший ответ Сообщение было отмечено как решение

Решение

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
 V = (int)nudV.Value;
            int minindex = 0, count = 0; //  minindex-(из алгоритма "обводка")
            double min; // min - минимум (для сравнения пути)
            double[] a = new double[V];  // массив а 
            double[] b = new double[V];  //массив b 
 
            a[0] = 0;    // т.к расстояние от 1ой вершины в самой себе равно 0!
            for (int i = 1; i < V; i++)
                a[i] = double.PositiveInfinity;  // расстояние до других вершин ( как бы бессконечность ) 
            //double.PositiveInfinity - +бессконечность 
            for (int i = 0; i < V; i++)
                b[i] = 0;    // зануляем массив b
 
            rtb.Text += " Проход по столбцам, поиск веса ребер..." + "\n";  // Ведем запись значение ячеек по Столбцам, без учёта 0 
 
 
            /*Начало Алгоритма*/
            for (int i=0; ;i=minindex )
            {
                
                double A;
                A = a[i];
                
                    /*1ый цикл  */
                    for (int j = 0; j < V; j++)  // проход по столбцу
                    {
                        double N;
                        N = Convert.ToDouble(dgvMatrix[i, j].Value);  // N - вес ребра;
                        if (N != 0)
                        {
                            rtb.Text += N + " , "; // Если Вес Ребра !=0, записываем в rtb
                        }
                        if (N == 0)
                        {
                            continue; // Если в ходе цикла есть ячейка со значение 0, пропустить - идти дальше
                        }
 
                        if ((A + N) < a[j])
                        {
                            b[j] = A + N; // Элемент алгоритма - Сравнение 
                            
                            
                        }
                        
                        
                    }
                   
                  
                    /*Конец 1го цикла*/
                
                
            
                                min =Double.PositiveInfinity ; 
                /*2ой*/          for (int k = 0; k < V; k++)
                                {
                                    if (b[k] != 0) 
                                        a[k] = b[k];
                                             if ((b[k] < min) && (b[k] != 0))  // Сравниваем выбираем наименьшее число
                                            {
                                             minindex = k;   // обводка
                                             min = b[k];
                                            }
                                }
                                // b[minindex] = 0;
                                 a[minindex] = min;
                                 count++;
                                 if (count == (V - 1))
                                     break;
                 /*Конец*/        }
                         rtb.Text += "------------------------------------------------------------\n";
                         for (int i = 0; i < V; i++)
                         {
 
                             if (a[i] == 10000)
                             {
                                 rtb.Text += "Кратчайший путь до вершины " + (i + 1) + " = " + "Не существует - Вершина не является смежной " + "\n";
                             }
                             else if (i != 0)
                             {
                                 rtb.Text += "Кратчайший путь до вершины " + (i + 1) + " = " + a[i] + "\n";
                             }
                         } 
            }
Код кнопки "Вычислить" или "Мои бесполезные наброски"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.04.2013, 18:07
Помогаю со студенческими работами здесь

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

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

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

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

Алгоритм Беллмана-Форда
В википедии описан такой алгоритм...


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

Или воспользуйтесь поиском по форуму:
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