Hardprob/Maximum Priority Flow — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
(Массовая правка: замена <!-- start --> на <!-- start --><!-- {{svg-image-for-hard-problem|{{PAGENAME}}}} -->)
(Массовая правка: замена \ldots на …)
 
(не показано 8 промежуточных версий этого же участника)
Строка 1: Строка 1:
 
<!-- start --><!-- {{svg-image-for-hard-problem|{{PAGENAME}}}} -->
 
<!-- start --><!-- {{svg-image-for-hard-problem|{{PAGENAME}}}} -->
* Направленный граф <m>G=\left(V,E\right)</m>, вершины-источники <m>s_1, \ldots, s_k \in V</m>, вершины-стоки <m>t_1, \ldots, t_k \in V</m>, емкость ребер <m>c:E \rightarrow R</m>, ограничения на вершинах <m>b: V \rightarrow R</m>, и для любой вершины <em>v</em>, есть некий порядок исходящих ребер.
+
* Направленный граф <em>G=(V,E)</em>, вершины-источники <m>s_1, , s_k ∈  V</m>, вершины-стоки <m>t_1, , t_k ∈  V</m>, емкость ребер <em>c: E R</em>, ограничения на вершинах <em>b: V R</em>, и для любой вершины <em>v</em>, есть некий порядок исходящих ребер.
* Найти приоритетный поток <em>f</em>, т.е. функция <m>f:E \rightarrow  R</m>, такая что  
+
* Найти приоритетный поток <em>f</em>, т.е. функция <em>f: E→R</em>, такая что  
** для любого ребра <em>e</em>, <m>f(e) \leq c(e)</m>
+
** для любого ребра <em>e</em>, <em>f(e) c(e)</em>
** для любой вершины <m>v \in V-\{s_1, \ldots,
+
** для любой вершины <m>v ∈  V-\{s_1, ,
s_k, t_1, \ldots, t_k\}</m>, поток сохраняется в <em>v</em>
+
s_k, t_1, , t_k\}</m>, поток сохраняется в <em>v</em>
 
** для любой вершины <em>v</em>
 
** для любой вершины <em>v</em>
 
*** поток покидающий <em>v</em> не превышает <em>b(v)</em>
 
*** поток покидающий <em>v</em> не превышает <em>b(v)</em>
 
*** для исходящей любой пары ребер <m>e_1, e_2</m>, если  <m>f(e_1) < c(e_1)</m> и <m>e_1 < e_2</m>, то <m>f(e_2)=0</m>.
 
*** для исходящей любой пары ребер <m>e_1, e_2</m>, если  <m>f(e_1) < c(e_1)</m> и <m>e_1 < e_2</m>, то <m>f(e_2)=0</m>.
* Максимизировать поток, приходящей в первый сток <m>t_1</m>, т.е. <m>\sum_{(x,t_1) \in E}f(x,t_1)</m>.
+
* Максимизировать поток, приходящей в первый сток <em>t<sub>1</sub></em>, т.е. <m>\sum_{(x,t_1) ∈  E}f(x,t_1)</m>.
  
 
----
 
----
 
{{hard-problem-on-lab17|{{PAGENAME}}}}
 
{{hard-problem-on-lab17|{{PAGENAME}}}}
 +
<!-- * {{has-testdata-and-visualization}} -->
 +
<!-- * {{has-pyomo-model}} -->
 +
<!-- * {{has-npc-reduction}} -->
 +
<!-- * {{add-random-fuzzing-tests}} -->
 
----
 
----
 
<small>
 
<small>

Текущая версия на 22:45, 17 апреля 2023

  • Направленный граф G=(V,E), вершины-источники , вершины-стоки , емкость ребер c: E → R, ограничения на вершинах b: V → R, и для любой вершины v, есть некий порядок исходящих ребер.
  • Найти приоритетный поток f, т.е. функция f: E→R, такая что
    • для любого ребра e, f(e) ≤ c(e)
    • для любой вершины , поток сохраняется в v
    • для любой вершины v
      • поток покидающий v не превышает b(v)
      • для исходящей любой пары ребер , если и , то .
  • Максимизировать поток, приходящей в первый сток t1, т.е. .

Задача в лаб22 (рид-онли просмотр)