<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=83.149.2.5&amp;*</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=83.149.2.5&amp;*"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/83.149.2.5"/>
		<updated>2026-08-05T10:50:32Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%B0_%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D0%BE%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BC_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2%D0%B4%D0%BE%D0%BB%D1%8C_%D0%BF%D1%83%D1%82%D0%B5%D0%B9_%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D0%BE%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8&amp;diff=18554</id>
		<title>Поиск потока минимальной стоимости методом дополнения вдоль путей минимальной стоимости</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%B0_%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D0%BE%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BC_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2%D0%B4%D0%BE%D0%BB%D1%8C_%D0%BF%D1%83%D1%82%D0%B5%D0%B9_%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D0%BE%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8&amp;diff=18554"/>
				<updated>2012-02-29T18:10:11Z</updated>
		
		<summary type="html">&lt;p&gt;83.149.2.5: /* Идея */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Идея==&lt;br /&gt;
В основе алгоритма лежит [[Теорема Форда-Фалкерсона о потоке минимальной стоимости|теорема Форда-Фалкерсона о потоке минимальной стоимости]]. На каждой итерации алгоритма будем находить путь минимальной стоимости из  &amp;lt;tex&amp;gt;s&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;t&amp;lt;/tex&amp;gt;  и дополнять поток вдоль этого пути. Выбирать алгоритм для поиска кратчайших путей следует с учетом того, что в ходе алгоритма появляются ребра отрицательного веса.&lt;br /&gt;
&lt;br /&gt;
==Реализация==&lt;br /&gt;
&lt;br /&gt;
 '''for''' &amp;lt;tex&amp;gt;e \in E&amp;lt;/tex&amp;gt; {&lt;br /&gt;
      &amp;lt;tex&amp;gt;f[e] \leftarrow 0&amp;lt;/tex&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
 '''while''' (существует путь &amp;lt;tex&amp;gt;s \leadsto t&amp;lt;/tex&amp;gt; в остаточной сети &amp;lt;tex&amp;gt;G_f&amp;lt;/tex&amp;gt;) {&lt;br /&gt;
       &amp;lt;tex&amp;gt;P \leftarrow&amp;lt;/tex&amp;gt; кратчайший в смысле стоимости путь &amp;lt;tex&amp;gt;s \leadsto t&amp;lt;/tex&amp;gt;&lt;br /&gt;
       дополнить поток &amp;lt;tex&amp;gt;f&amp;lt;/tex&amp;gt; вдоль &amp;lt;tex&amp;gt;P&amp;lt;/tex&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Корректность==&lt;br /&gt;
Непосредственно следует из [[Теорема Форда-Фалкерсона о потоке минимальной стоимости|теоремы Форда-Фалкерсона о потоке минимальной стоимости]].&lt;br /&gt;
&lt;br /&gt;
==Асимптотика==&lt;br /&gt;
Каждая итерация выполняется за время работы поиска кратчайшего пути, обозначим его &amp;lt;tex&amp;gt;F(V, E)&amp;lt;/tex&amp;gt;. В сетях с целочисленной пропускной способностью итераций будет не более &amp;lt;tex&amp;gt;|f|&amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Итого получаем время работы &amp;lt;tex&amp;gt;O(F(V, E) \cdot |f|)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
* Ravindra Ahuja, Thomas Magnanti, James Orlin. Network flows (1993)&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Задача о потоке минимальной стоимости]]&lt;/div&gt;</summary>
		<author><name>83.149.2.5</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_%D0%BE_%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%D1%85_%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B5_%D0%BE_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%B5_%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D0%BE%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8&amp;diff=18553</id>
		<title>Сведение задачи о назначениях к задаче о потоке минимальной стоимости</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_%D0%BE_%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%D1%85_%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B5_%D0%BE_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%B5_%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D0%BE%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8&amp;diff=18553"/>
				<updated>2012-02-29T18:06:59Z</updated>
		
		<summary type="html">&lt;p&gt;83.149.2.5: /* Сведение к задаче о потоке минимальной стоимости */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Постановка задачи ==&lt;br /&gt;
* Дана квадратная матрица &amp;lt;tex&amp;gt;A_{N\times N}&amp;lt;/tex&amp;gt;. Нужно выбрать в ней &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; элементов так, чтобы в каждой строке и в каждом столбце был выбран только один элемент, а сумма значений этих элементов была наименьшей.&lt;br /&gt;
* Имеется &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; заказов и &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; станков. Про каждый заказ известна стоимость его изготовления на каждом станке. На каждом станке можно выполнять только один заказ. Требуется распределить все заказы по станкам так, чтобы минимизировать суммарную стоимость.&lt;br /&gt;
&lt;br /&gt;
== Сведение к задаче о потоке минимальной стоимости ==&lt;br /&gt;
[[Файл:pic1.PNG|thumb|right|275x250px|Пример построенного графа для матрицы А]]&lt;br /&gt;
Построим ориентированный граф, состоящий из двух частей &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; следующим образом:&lt;br /&gt;
* Имеется исток &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt; и сток &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;.&lt;br /&gt;
* В первой части находятся &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершин, соответствующие строкам матрицы или заказам. &lt;br /&gt;
* Во второй &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt; вершин, соответствующие столбцам матрицы или станкам.&lt;br /&gt;
* Между каждой вершиной &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; первой части и каждой вершиной &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt; второй части проведём ребро с пропускной способностью 1 и стоимостью &amp;lt;tex&amp;gt;A_{ij}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
* От истока &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt; проведём рёбра ко всем вершинам &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; первой части с пропускной способностью 1 и стоимостью 0.&lt;br /&gt;
* От каждой вершины второй части &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt; к стоку &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; проведём ребро с пропускной способностью 1 и стоимостью 0.&lt;br /&gt;
&lt;br /&gt;
Найдём в полученном графе &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; максимальный [[Поток минимальной стоимости|поток минимальной стоимости]]. &amp;lt;br /&amp;gt;&lt;br /&gt;
Понятно, что величина потока будет равна &amp;lt;tex&amp;gt;N&amp;lt;/tex&amp;gt;. Заметим, что для каждой вершины &amp;lt;tex&amp;gt;i&amp;lt;/tex&amp;gt; из первой части найдётся только одна вершина &amp;lt;tex&amp;gt;j&amp;lt;/tex&amp;gt; из второй части, такая, что поток &amp;lt;tex&amp;gt;f(i, j) = 1&amp;lt;/tex&amp;gt;. Поскольку найденный поток имеет минимальную стоимость, то сумма стоимостей выбранных рёбер будет наименьшей из возможных. Поэтому это взаимно однозначное соответствие между вершинами первой части и вершинами второй части является решением задачи.&lt;br /&gt;
&lt;br /&gt;
== Асимптотика == &lt;br /&gt;
Асимптотика этого решения равна асимптотике алгоритма, выбранного для поиска потока.&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
* [http://e-maxx.ru/algo/assignment_mincostflow Задача о назначениях. Решение с помощью min-cost-flow]&lt;br /&gt;
* Ravindra Ahuja, Thomas Magnanti, James Orlin. Network flows (1993)&lt;br /&gt;
&lt;br /&gt;
[[Категория:Алгоритмы и структуры данных]]&lt;br /&gt;
[[Категория: Задача о потоке минимальной стоимости]]&lt;/div&gt;</summary>
		<author><name>83.149.2.5</name></author>	</entry>

	</feed>