Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
11 / 11 / 0
Регистрация: 13.10.2012
Сообщений: 163

Задача о назначениях (венгерский алгоритм)

20.03.2013, 19:54. Показов 3094. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уже не первый день бьюсь с данным методом, почитал 3-4 источника, везде алгоритм описывается, примерно одинаково, но вот незадача Когда я пытаюсь его разобрать, я застреваю на последнем пункте (либо зацикливаюсь). Вот допустим у нас есть пример, который не решился сразу "полным набором" и в итоге, нам приходится прибегнуть к этому самому венгерскому методу:

#Пример:
3 0 4
0 1 0
2 0 1

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

Венгерский алгоритм:
Кликните здесь для просмотра всего текста
1) Просматривая матрицу в определенном порядке, например, строчки
сверху вниз, в строчках по элементам слева направо, включаем в
правильный набор нули, которые отмечаем звездочкой - 0*.
2) Проверяем, является ли полученный правильный набор полным. Если
"да" - процесс закончен, "нет" - переходим к п.3.
3) Отмечаем (например, знаком "+" сверху) столбцы, в которых имеется
0*. Считаем эти столбцы занятыми. Будем называть элементы матрицы,
находящиеся в занятых столбцах и строках, "занятыми". В противном
случае - элементы "незанятые".
4) Ищем незанятые нули, просматривая матрицу в принятом (п.1) порядке.
Если незанятых нулей нет, переходим к п.6.
Если незанятый нуль найден, отмечаем его штрихом, например, 0' и
переходим к п.5.
5) Проверяем, есть ли 0* в строчке, в которой появился 0'. Если "да", то
занимаем (знаком "+") эту строчку и "освобождаем" (убираем знак "+")
столбец, в котором находится 0* вновь занятой строки. Возвращаемся к
п.4. Если "нет", то переходим к п.7.
6) Находим минимальный среди незанятых элементов, вычитаем его из
всех элементов незанятых строк и прибавляем ко всем элементам занятых
столбцов. Все знаки сохраняются. Возвращаемся к п.4.
7) Строим цепочку от 0' по столбцам к 0* и от 0* по строчкам к 0'.
Цепочка начинается от 0', стоящего в строчке, в которой не оказалось 0* и
заканчивается 0', стоящим в столбце, где нет 0*.
Заменяем в цепочке штрих у нулей на звездочку: 0' -> 0*, а у 0*
звездочку стираем. Убираем в матрице все отметки, кроме "*" у нулей и
переходим к п.2.


Добавлено через 17 часов 31 минуту
Я уже разобрался, в принципе можно и не отвечать
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.03.2013, 19:54
Ответы с готовыми решениями:

Венгерский алгоритм (задача о назначениях)
Здравствуйте. Необходимо реализовать венгерский алгоритм. Поиски в интернете ни к чему не привели. Наткнулась на псевдокод Лопатина. Но с...

Венгерский метод. Классическая задача о назначениях
помогите найти ошибки в коде не определяет заполнены ли ячейки(всегда заполнены,даже если пропуски) и вылетает на кнопке рассчитать(unit5)

Задача коммивояжера венгерский алгоритм
Составить программу решения “задачи коммивояжера”. Необходимо определить минимальную стоимость проезда коммивояжера по N городам с...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.03.2013, 19:54
Помогаю со студенческими работами здесь

Венгерский алгоритм
Ребята прошу Вашей помощи, нужен исходник Венгерского алгоритма на C#

Векторы. Венгерский алгоритм
Имеется следующий код для решения задачи о назначениях, отрытый на просторах интернета : /* Венгерский алгоритм. * Даниил Швед,...

Венгерский алгоритм, используя дерево
Есть такая задачка: Проблема назначения формулируется так: есть n людей, назначаемых на n работ. Стоимость назначения i-человека на...

задача о назначениях
вычислительная сеть объединяет n специализированных ЭВМ. на вход сети поступают задачи. каждую задачу каждая ЭВМ решает за разные...

Задача о назначениях (ЗЛП)
Задача о назначениях (ЗЛП) Выполните лабораторную работу № 3 из учебно-методического пособия по курсу "системный анализ" ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru