Складність проблеми усиновлення кошеняти


14

Це з’явилося, коли я намагався відповісти на це питання щодо мінімізації довжини проводки . Я збирався назвати це проблемою "багатоженського шлюбу", але Інтернет, тож кошенята. Так!

Припустимо , що ми маємо кошенят , які повинні бути прийняті N людина, M > N . Для кожного кошеня, я та кожної людини j існує вартість c i j . Ми хотіли б мінімізувати загальні витрати на усиновлення всіх кошенят. Існує також безліч обмежень: кожна людина J може не прийняти не більше ˙U J кошенят.MNM>Nijcijjuj

Без обмежень проблема проста; кожен кошеня йде з людиною j, для якої c i j мінімальний. З обмеженнями існує ефективний алгоритм цієї проблеми чи це NP-важко?ijcij

Відповіді:


5

Це проблема мінімальної витрати на максимальну витрату.

Розглянемо графік , де A - безліч кошенят, B - сукупність людей.G=(AB{s,t},E)AB

Нехай - ємність ребер, а c : E R + - вартість ребра. Ми переконуємось у цьомуC:ER+c:ER+

  1. Між є ребро , де a iA і b jB , і C ( a i , b j ) = 1 , c ( a i , b j ) = c i , j .ai,bjaiAbjBC(ai,bj)=1c(ai,bj)=ci,j
  2. Існує ребро між і a iA , і C ( s , a i ) = 1 , c ( s , a i ) = 0 .saiAC(s,ai)=1c(s,ai)=0
  3. Існує ребро між і t , і C ( b j , t ) = u j , c ( b j , t ) = 0 .bjBtC(bj,t)=ujc(bj,t)=0

Якщо максимальний потік , то ми знаємо, що існує рішення. Ви можете сконструювати рішення мінімальної вартості з максимального потоку мінімальної вартості.M


4

Це мінімальна вага ідеального узгодження проблеми, яка є поліноміальною. Розглянемо повний двосторонній графік , в якому L містить вузол l i для кожного кошеня i , R складається з u j копій вузла r j для кожної людини j , а ребер e i jE між l i і кожна копія r j , з вагами c i j .(L,R,E)LliiRujrjjeijElirjcij

Ми знаємо, що , інакше не всіх кошенят можна призначити особам.|L||R|

Оскільки зроблене паросполучення має відповідати всім вузлам, нам потрібно додати фіктивні вузли (для отримання | L | = | R | ) і з'єднати їх з нульовим вагою ребер для всіх вузлів в R .L|L|=|R|R


2

Можливо, цікавим є спостереження, що можна звести розділ до варіанту цієї проблеми. Даний екземпляр Розбиття з елементами з q, навіть з якого нам потрібно вибрати підмножину S { 1 , , q } з | S | = q / 2 така, що i S x i = i S x i = K{x1,,xq}qS{1,,q}|S|=q/2iSxi=iSxi=K. (Зверніть увагу, що вимога вибору точно половини елементів не є звичайною формою, але ця форма все ще є важкою для NP.) Нехай кожен кошеня буде елементом набору; нехай буде дві людини; нехай ваги будуть і c i 2 = - x i ; нехай u 1 = u 2 = q / 2 . Потім цей екземпляр Kitten Затвердження має максимум в 0 тоді і тільки тоді екземпляр розділу має рішення.ci1=xici2=xiu1=u2=q/20

CCq

Я не впевнений, що це говорить про складність початкової проблеми, але, враховуючи часто зустрічається "один з мінімізувати / максимізувати NP-важко, інший знаходиться в P" для встановлення проблем комбінаторної оптимізації, я б почав шукати ефективний алгоритм.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.