一部の数値がカットされる可能性があるパーティションの問題


8

標準の分割問題では、合計が2 秒の2s数値がいくつか与えられ、合計がsのs 2つのサブセットに分割できるかどうかを決定する必要があります。NPハードであることが知られています。

ただし、数値の1つを任意の数の部分にカットできる「ソフト番号」に指定することが許可されていると仮定します。異なる部分は異なるサブセットに入れることができます。その後、問題は簡単になります。行のすべての数値を任意の順序で並べ、その行を同じ合計で2つのサブ行にカットするだけです。

質問:合計が3 s3sである数値がいくつか与えられ、合計がsである3つのサブセットに分割できるかどうかを決定する必要がありますが、最大で1つのソフト数を使用します。この問題の複雑さは何ですか?s

  • 2つのソフト数値の使用が許可されている場合、問題は再び簡単です。数値を上記のように一列に並べることで解決できます。
  • ゼロのソフト番号の使用が許可されている場合、問題は明らかに困難です。少なくとも2つのサブセットに分割する問題と同じくらい困難です。
  • 1つのソフト番号を使用することが許可されている場合、問題は依然として難しいはずであり、標準パーティションの問題からなんとかしてそれを減らすことができますが、正しい削減を見つけることができませんでした。それは簡単ですか、難しいですか?

別の質問:問題が実際にNP困難である場合、2サブセット分割問題のように疑似多項式時間で解決できますか?


1
この問題の一部は、合計がセット全体の合計の3分の1であるサブセットを見つけることです。ただし、この制限付きの部分和問題はNP困難であるという適切な参考文献を見つけることができません。
John Dvorak

残りは3分の2を1カットで2分割することなので、実際にはそれと同じです。
John Dvorak

@JohnDvorakサブセット合計問題を解決できれば、問題の問題を解決できますが、その逆は当てはまりません。1つの数値が3つの分数に分割され、それぞれが問題の問題の解決策になる場合があります。サブセットには1つの分数が含まれます。このソリューションは、サブセット合計問題を解決しません。
Erel Segal-Halevi

これが私が答えを投稿しなかった理由です。1:2パーティションの問題はまだnp完全であると確信しています(より一般的には、任意の固定比率のパーティションの問題)。しかし、その証拠はありません。しかし、それが実際にNPハードである場合、1つのカット問題がある3ウェイパーティションもそうです。
John Dvorak

1
問題の定式化を更新して、カット可能な数を多くの部分にカットできることを明確にしました。(私が最初に問題を読んだとき、私はあなたが一度だけ1つの数字をカットすることは許されていると思いました。)
Gamow

回答:


5

最大数はソフト数です

問題のどのインスタンスについても、インスタンスが解決可能であれば(1つのソフト番号を使用して番号を分割することが可能)、最大の番号を唯一のソフト番号として使用してインスタンスを解決することができると私は主張します。これは簡単に証明できます。任意の解を、最大数をソフト数とする解に変更できます。現在ソフトナンバーである数値を、最大数を含むパーティションに配置し、代わりにパーティションのパーツ間で最大数を分割します。

梱包の問題

これが私がパッキング問題と呼ぶ問題です:

入力は、正の数のリストから成る12... Kと1つの最終番号ようI全てに対してIs = 1を定義a1,a2,,akaii3+ k i = 1 ais=13(+ki=1ai)。次に問題は、各部分の合計が最大でsになるようにaiaiのリストを3つの部分に分割することです。s

私は入力を備えたパッキング問題は、と主張している1... K及びℓは、入力リストを使用して問題と等価である1... K。それは数字パックすることが可能です場合は1... kは三つのグループに最大で合計のそれぞれは、sは、あなたが使用することができますℓを正確に和のそれぞれからラウンドにソフト数として。したがって1aのパーティションがあります。a1,,aka1aka1aksska1akを1つのソフト数値を使用して合計 sのs 3つのグループに分けます。他方場合 1... Kℓは合計3つのグループに分割することができる使用つのソフト数、リストは、合計3つのグループに分割することができる使用からの結果によって軟数(AS前のセクション)。この場合のグループ A iは三つの部分を満たすに各部分が最大で合計値を有することが条件だ Sa1akssas

小さな数字のないパッキング問題

すべてのための場合パッキング問題のインスタンスは、「何の小さな数字を持っていない」と言うII > a> 2。私はあなたが梱包問題を小さな数のない梱包問題に減らすことができると主張します。

問題インスタンスを梱包していると仮定する1... Ka1ak一部のA 私はa持っている私をℓをa2。WLOGはkakがこれaiでaあると仮定します。私はパッキング問題のインスタンスを請求1...K-1+kがa1ak 1+ ak元のインスタンスと等価です。値ssは両方のインスタンスで同じままであることに注意してください。

確かに、数値a 1a ka1akを3つのグループにパックでき、各グループの合計が最大でsであるs場合、数値a 1a k 1a1ak 1を3つのグループにパックでき、各グループの合計が最大で合計になります。s

一方、数値a 1a k 1a1ak 1を3つのグループにパックして、各グループの合計が最大でsであるとしsます。3つのグループのそれぞれについて、値ssからグループ内の要素の合計を引いたものを検討します。これらの値をe 1e 2e 3とe1e2e呼びます。ここで、e ieはグループiの「空のスペース」の量です。我々が知っているE 1 + E 2 + E 3e1+ e2+ e、総空きスペースは、に等しく、3S - ΣのK - 1 iは= 1、I3 k 1i = 1a(全空間 3 3 マイナスの空間が使用 ΣのK - 1 iは= 1のIΣk 1i = 1a)。しかし 3 S - ΣのK - 1 私は= 1を iが = K + ℓを3 k 1i = 1a= ak+ 定義することによって、Ss。このように、3つのグループが有する K + 合計空きスペースを。その後kak+ < 2ak< 2、空きスペースの合計が3akを3 ak超えることがわかります。鳩の巣原理によって、グループの少なくとも一つは持っているのkそれで以上の空きスペースを。したがって、要素akをグループの1つに追加して、数値a1akを3つのグループにパッキングして、各グループの合計が最大でsになるようにすることができます。akaka1aks

したがって、あなたの問題を解決するには、小さな数のないパッキング問題を解決するだけで十分です。

補題1

補題ステートメント:

我々は分割することができると仮定1... Kグループ1に、グループ2は、元素の偶数及び1区間にあるグループ内の要素の和有するように2 [- a1,,ak2s][s2s ]。次に、グループ2を2つのサブグループ2aと2bにさらに分割することができます。各サブグループの合計は最大でssです。グループ1、2a、および2bは、パッキング問題インスタンスのソリューションであることに注意してください。

これが証明です。

グループ2の要素の半分を仮にサブグループ2aに割り当て、残りの半分をサブグループ2bに割り当てます。2つのサブグループの要素間のマッチングを作成します。これらのペアを2つのグループ間で一度に1つずつ交換します。グループ2に2 n個の2n要素がある場合、このプロセスは、グループ2のn + 1個のn+1可能なパーティションをサブグループ2aおよび2bに正確に通過します。それらのパーティションの少なくとも1つには、合計がss未満の両方のサブグループがあると私は主張します。

レッツS 2 、AS2a及びS 2 (b)はS2b 2つのサブグループ(私たちはグループの変更として変更にこれらの値を許可する)の合計であること。

上記のプロセスの各ステップで、グループ2aは1つの要素を取得し、別の要素を失います。各要素は、間の値を有するので、ℓを22および、、上記のプロセスの各ステップで、S2aS2aは最大で2

また、最終的な値S 2 aがS2a初期値に等しいS 2 BS2b基が完全に入れ替わったプロセスの終わりまでからです。

ましょAは、Aの平均値であるS 2 AS2a及びS 2 BS2b。これは、グループが変化しても一定であることに注意してください。我々は、初期値と最終値ことを知っているS 2S2aに対する平均AA(の初期値と最終値ので、S 2S2aの初期値が等しくS 2 AS2a及びS 2 BをS2b)。したがって、AAS 2 aのS2a初期値と最終値の間にある必要があります。グループを変更すると、S 2 aのS2aサイズのステップを最大で2AのA片側から反対側へ 2。このことから、我々はいくつかの点で、の値と結論付けることができますS2aがS2a最大ステップサイズの半分以内でなければなりません(44)のAA。以来、S2bはS2b常にから同じ距離有するAAとしてS2aはS2a、我々はいくつかの点で、両方の合計と結論付けることができるS2AS2a及びS2bはS2b内である44AA

3つのS - - S 2 + S 2 bが3s(S2a+S2b)グループ1の要素の和です。従って、 3 S - - S 2 + S 2 BS - 23s(S2a+S2b)s2(グループ1の合計の条件による)。整理する、我々はそれを持っているS2+S2B2-(S2a+S2b)2s2。したがって、平均S2AS2a及びS2bがS2b最大であるS-s4。その後、一度に両方のことをS2、AS2a及びS2(b)はS2b内である44AはA、我々は、彼らが高々両方であることがわかりsのs希望として。

ケース1:k = 3 nk=3n

n個のn最小のa iai sとn個のn最大のa iai sを合計します。

場合nはn最小のI以上への和Sは、何基が有していないことができ、Nまたはそれ以上の要素(任意の選択として、n個の要素が合計が大きすぎることになります)。しかし、鳩の穴の原理から、少なくとも1つのグループには少なくともn個の要素があることがわかります。したがって、この場合、パッキング問題のインスタンスに対する解決策はありません。aisnnn

もしnはn最大のの合計にせいぜい、その後のすべての選択肢n個の要素は、最大で合計持っているのを。この場合、要素を同じサイズの3つのグループに分割するだけで、パッキング問題のインスタンスが解決されます。aisns

残っている唯一のケースは、最小のnn要素の合計が最大でsでsあり、最大のnn要素の合計がssより大きいことです。補題のように、これらの2つのセット間をゆっくりと移行できます。最小のnn要素で初期化されたグループから開始し、グループが最大のnn要素になるまで要素を交換します。各ステップは、グループの合計を最大でℓだけ移動します22(補題の証明と同じ論理による)、合計はこのプロセスのある時点で値ssと交差します。したがって、値sをs交差する直前または直後のいずれかで、合計はss未満ですが最大で2。換言すれば、このプロセスのある時点で、グループ間隔で合計を有する[S-2s][s2,s]。そのグループをグループ1とし、残りの2n2n要素をグループ2とします。補題が適用され、パッキング問題インスタンスの解決策を見つけることができます。

ケース2:k = 3 n + 1k=3n+1

n + 1n+1最小のa iai sとn + 1n+1最大のa iai sを合計します。

もしN + 1n+1最小Iの和以上にS、その後何基が有していないことができ、N + 1つの以上の要素を(任意選択としてN + 1の要素が合計が大きすぎることになります)。しかし、鳩の穴の原理から、少なくとも1つのグループには少なくともn + 1個の要素があることがわかります。したがって、この場合、パッキング問題のインスタンスに対する解決策はありません。aisn+1n+1n+1

もし、N + 1つn+1の最大I sの合計にせいぜい、その後のすべての選択のn + 1つの要素は、最大で合計持っているのを。この場合、要素を単にサイズnn、およびn + 1の 3つのグループに分割するだけで、パッキング問題のインスタンスが解決されます。aisn+1snnn+1

残りの唯一のケースは、最小のn + 1n+1要素の合計が最大でsでsあり、最大のn + 1n+1要素の合計がssより大きい場合です。前のケースと同様に、これらの2つのセット間をゆっくりと移行できます。最小のn + 1n+1要素で初期化されたグループから始め、グループが最大のn + 1n+1要素になるまで要素を交換します。各ステップは、グループの合計を最大でℓだけ移動します22(補題の証明と同じ論理による)、合計はこのプロセスのある時点で値ssと交差します。したがって、値sをs交差する直前または直後のいずれかで、合計はss未満ですが最大で2。換言すれば、このプロセスのある時点で、グループ間隔で合計を有する[S-2s][s2,s]。そのグループをグループ1とし、残りの2n2n要素をグループ2とします。補題が適用され、パッキング問題インスタンスの解決策を見つけることができます。

ケース3:k = 3 n + 2k=3n+2最初の簡単なサブケース

n個のn最小のa iai sとn個のn最大のa iai sを合計します。

どちらかの値が区間内にある場合は、[ S - 2s]は[s2,s]、グループ1としてnn要素を選択し、残りの2n+22n+2要素をグループ2として、補題をすぐに適用します。これにより、パッキング問題インスタンスの解決策を見つけることができます。

もしnはn最小のI未満秒合計- ai2s2nのn最大のaiaiの合計がssより大きい場合、nのn最小のaiaiから始めて、nのn最大のaiになるaiまで要素を交換できます。各ステップで、最大で合計移動図2は2、ので、このプロセスのある時点で、我々はグループ有するn個のn和間隔にある要素[S-ℓを2s][s2,s]。そのグループをグループ1とし、残りの2n+22n+2要素をグループ2とします。補題が適用され、パッキング問題インスタンスの解決策を見つけることができます。

場合nはn最小のI以上への和Sは、何基が有していないことができ、Nまたはそれ以上の要素(任意の選択として、n個の要素が合計が大きすぎることになります)。しかし、鳩の穴の原理から、少なくとも1つのグループには少なくともn + 1個の要素があることがわかります。したがって、この場合、パッキング問題のインスタンスに対する解決策はありません。aisnnn+1

唯一残っている場合はその両方であり、nはn最小及びnはn最大I未満秒アドS - ais2

ケース3:k = 3 n + 2k=3n+2秒の簡単なサブケース

n + 2n+2最小のa iai sとn + 2n+2最大のa iai sを合計します。

どちらかの値が区間内にある場合は、[ S - 2s][s2,s]、すぐに補題を適用し、グループ1としてn+2n+2要素を選択し、残りの2n2n要素をグループ2として選択します。これにより、パッキング問題インスタンスの解決策を見つけることができます。

もしN + 2n+2最小I S和未満にS - ai2s2n+2のn+2最大のaiaisの合計がss以上になると、n+2のn+2最小のaiaisから始め、n+2のn+2最大のaiaisになるまで要素を交換できます。各ステップで、最大で合計移動22、我々はグループ有するので、このプロセスのある時点で、N+2n+2の要素の和である区間での[S-2s][s2,s]。そのグループをグループ1とし、残りの2n2n要素をグループ2とします。補題が適用され、パッキング問題インスタンスの解決策を見つけることができます。

もし、N + 2n+2、最大の合計にせいぜい、その後のすべての選択のn + 2つの要素は、最大で合計持っているのを。この場合、要素をサイズnn + 1、およびn + 1の 3つのグループに分割するだけで、パッキング問題のインスタンスが解決されます。aisn+2snn+1n+1

唯一残っている場合は、両方のことであるN + 2n+2最小及びN + 2n+2最大Iより秒追加Sais

ケース3:k = 3 n + 2k=3n+2ハードサブケース

上記の2つのサブケースのいずれもインスタンスを処理しなかったとします。次に、次のことを知っています。

  • 両方のNn最小及びnはn最大I未満秒アドS - ais2
  • 両方のN + 2n+2最小及びN + 2n+2最大Iより秒追加Sais

以来、N + 2n+2最小Iより秒追加S、何基が有していないことができ、N + 2つの以上の要素を。これを実現する唯一の方法は、グループのサイズがnn + 1、およびn + 1である場合です。aisn+2nn+1n+1

なお、以降のnnの最大I未満へのアドオン- ai2s2、どの要素がサイズのグループに含まれるかは関係ありません nn。そのグループの合計はとにかく ss未満です。明らかに、 n個のn最大の a iaiをサイズ nのnグループに交換することにより、任意のソリューションを変更できます。これらのスワップは、そうで溶液が存在する場合にのみパッキング問題インスタンスに対する解が存在し、他の二つのグループの合計を減少 Nn最大 IグループのS形の一つ。ai

このように、手元のタスクは単に本である:それは分割することが可能である2 N + 22n+2最小iは 2つのサイズのグループにsは、N + 1、これら二つのグループのそれぞれは、最大で合計を有するように。WLOGは、a iain+1saiようにsが増加する順序である2つのN + 22n+2最小I sは1... 2 N + 2aia1,,a2n+2

してみましょうVvの平均でn個nの最大私はね。ましょX I = V - Iごとに、I。次に、3 s = + 3 n + 2 i = 1 a i = + 2 n + 2 i = 1 a i + 3 n + 2 i = 2 n +aixi=vaii 2 ai=+ 2 n + 2 i = 1vxi + N V = + 3 N + 2 V - Σ 2 N + 2 iは= 1X I= - v + 3 n + 3 v 2 n + 2 i = 1x i3s=+3n+2i=1ai=+2n+2i=1ai+3n+2i=2n+2ai=+2n+2i=1(vxi)+nv=+(3n+2)v2n+2i=1(xi)=(v)+(3n+3)v2n+2i=1(xi)

次いで= N + 1 V + - V313 2 n + 2 i = 1xis=(n+1)v+v3132n+2i=1(xi)です。

我々はいくつかのセットを選択した場合IIN + 1つn+1の次に和指数、A iは、aiとsのI IはiIに等しいΣ I I A I = Σ I I V - X I = N + 1 V - Σ I I X IiIai=iIvxi=(n+1)viIxi。一連のインデックス IIは、この合計が最大で sである場合、グループの1つに対して有効な選択ですs。換言すれば、代替の定義を使用してSはs、上記派生我々が興味のある状態はあるΣ I I X I13 Σ 2 N + 2 iが= 1XI--ViIxi132n+2i=1(xi)v3。明らかに、残りのn+1n+1インデックスI={12 N + 2 } IはI={1,,2n+2}Iまた、この条件を満たさなければならない: Σ I I ' X I13 Σ 2 N + 2 iが= 1XI--ViIxi132n+2i=1(xi)v3。以降ΣII'XI=Σ 2 N + 2 iは= 1、XI-ΣIIXiをiIxi=2n+2i=1xiiIxiとして、我々は、書き換え可能な第2の条件ΣIIXI23 Σ 2 N + 2 iが= 1XI+-VをiIxi232n+2i=1(xi)+v3

したがって、私たちは、同等の代替を使用して、この部分問題を修正再表示している:我々は、セットを選択しようとしているIIのを N + 1n+1の間のインデックスを { 1 ... 2 N + 2 }{1,,2n+2}ように 23 2N + 2 iが= 1XI+-Vを3ΣIIXI13 2 n+ 2 iが= 1XI--V232n+2i=1(xi)+v3iIxi132n+2i=1(xi)v3

そのノートVv(従って- V 0v0以降)vはv、いくつかの平均値であるA Iai Sとℓが上部全てに結合しているA Iai S。ましょX = Σ 2 N + 2 I = 1X IX=2n+2i=1(xi)。上記の条件は次のように書き直すことができます。{ 1 2 nの中からn + 1インデックスのセットIIを選択しますn+1+ 2 }{1,,2n+2}よう Σ I I X iがiIxi区間である [ CのX 1 - C X [cX,(1c)X]C = 13 --V3 X1c=13v3X13

一部のjについてjx jxjに少なくともXの値があるとします。X3。この場合、IをIインデックスjjと、最小のxiに対応するn1n1インデックスで構成します。これらのxiが最大で1cXに追加される場合、このIの選択は上記の制約満たします。合計ixixi(1c)XII X iのiIxiある少なくとも X J X3 =13 XCXxjX3=13XcXと多くとも1-CX。したがって、このインデックスのセットIを使用して、パッキング問題インスタンスのソリューションでサイズn+1のグループの1つを選択できます。一方、これらのxi1cXを超える場合、インスタンスは解決できません。2つの半分の1つはxjを含み、その半分の合計は常に1cXx jで最小の要素を配置した場合でもそれ以上だったため)。

したがって、いくつかのx jが少なくともXの値を持つケースを処理しました。残りのケースは、すべてのxiに最大でXの値があることです。。次に、xiを2つのグループ1と2に任意に割り当てます。2つのグループの要素のマッチングを作成し、それらのペアを一度に1ペアずつ交換します。このプロセスの過程で、グループ1の要素の合計は、その最初の合計からグループ2の要素の最初の合計に移動します。つまり、グループ1の合計は平均値Xと交差します。。このプロセスの各ステップでは、グループ1がxiを失いますをを得ることが含まれます。以来、X の最もの値を持つXx iのペアは最大でXだけ異なる3したがって、各ステップはグループ1の合計を最大Xだけ移動します。したがって、グループ1の合計が平均の最大ステップサイズの半分以内である場合、プロセスに何らかのポイントがあります。したがって、ある時点で、グループ1の合計はX内に収まります2 ±X6。しかし、これは間隔です[ 13 X23 X]、これは[cX1-cX]の部分区間です。したがって、このプロセスのある時点で、その時点でのグループ1は、目的の条件を満たします。このxiのグループを使用して、対応するaiのグループを選択できます。これらIサイズの2つのグループのフォーム1のn+1パッキング問題インスタンスを解決するために必要。

結論

上記の網羅的なケースワークは、1つのソフト番号を使用してリストを同じ合計の3つのグループに分割するアルゴリズムとして使用できます。ケースワークは、これが不可能な場合も特定します。このアルゴリズムの実行時間は多項式です。


ありがとう!補題1の証明は短くすることができます。次数を増やすことにより、グループ2の要素を並べ替えます。グループ2aを奇数インデックスの要素、グループ2bを偶数インデックスの要素とします。図2aの各要素ので、2bにある次の要素よりも小さいS 2 BS 2 A。一方、2aから最小要素を削除し、2bから最大要素を削除すると、2aに残っている要素の合計は、少なくとも2bに残っている要素の合計になります。そうSは2 B - S 2最大マイナス最小要素= L / 2。仮定により、S 2 b + S 2 A 2つのS - L / 2。不平等を合計することはできます S 2 B
Erel Segal-Halevi

質問:あなたは副問題について言及します:「2 n + 2の最小のa i -sをサイズn + 1の 2つのグループに分割して、これらの2つのグループの合計が最大でsになるようにすることはできますか?」なぜこの問題はPARTITION問題ほど難しくないのですか?
Erel Segal-Halevi

そうです、私の補題1の証明は、可能な限り単純ではありません。私は少し編集が面倒です(特に、校正の他の部分は校正で使用されている手法を参照しているため)。PARTITIONは、あなたが実際に完全な一般のその部分問題を解決する必要がないということであるとして、部分問題については、理由はそれはハードではありません:の値sが任意ではありません。そのような場合に該当するために、sa iには保持しなければならない特定の追加の制約があります。これらの制約がない場合、あなたは正しいでしょう。問題はPARTITIONと同じくらい難しいでしょう。
ミハイル・ルドイ

明確で詳細な解決策をありがとう。
Erel Segal-Halevi

こんにちはミハイル、この結果が役立つ論文に取り組んでいます。ご参加されますか?もしそうなら、私にメールを書いてください。
Erel Segal-Halevi

3

この答えは問題を解決しませ。@JohnDvorakによってコメントで定式化された次の補助問題のみを解決します(1:2の比率でセットを分割):

補助問題:
インスタンス:正の有理数は1... Mを有するΣはmはiは= 1を iが = 3 Aを質問:存在しないインデックスはセットI { 1 ... N }を用いてΣ I I A I = A

  • (有理数古典PARTITIONのインスタンスを取るbは1... Bのnは合計で2 Bは、あなたが和と二つのグループにそれらを分割することができますB)。
  • 取るB 1... B nは一緒に4つの数字と5 B 5 B 5 B 7 Bを補助問題のインスタンスを作成します。すべてのn + 4数の合計は24 Bになるため、A = 8 Bになります。
  • 分割N + 4つの和とのグループに数A = 8 Bとの和を有するグループ2 A = 16 Bが可能であればパーティションインスタンスが応答YESがある場合にのみ。

したがって、@ JohnDvorakの補助問題はNP完全です


こんにちはGamowです。この結果が役立つと思われる論文を作成しています。ご参加されますか?もしそうなら、私にメールを書いてください。
Erel Segal-Halevi

3

Edit: The result is incorrect, see the discussion at the end.

Inspired by Mikhail Rudoy's answer, we can generalize to partitioning into k parts with equal sum. The problem is polynomial time solvable for each constant k.

The input is a1,,an such that an is the largest number. Mikhail's observations are, wlog,

  • the soft number is an
  • ai>ank1 for each i

wlog, assume that the sum of a1,,an1 is 1 (that is, 1=ksan). Note that an1n1, so ai>1(k1)(n1)>1kn for each i. The problem is equivalent to partitioning the numbers a1,,an1 into k subsets such that the sum of each subset is at most s:=1+ank.

We consider a restriction of the multiple knapsack problem. Define the k-knapsack problem as an instance of the multiple knapsack problem with k knapsacks of the same capacity, where the value of each item equals the weight of the item.

Let the input for the k-knapsack problem be a1,,an1, and each knapsack has capacity s. The following claim is clear.

Claim: A (11kn)-approximation algorithm for the k-knapsack problem returns 1, if and only if all the numbers a1,,an1 can be packed into the k knapsacks.

By the above claim, we just have to find a (11kn)-approximation algorithm for the k-knapsack problem.

Claim: There is a pseudopolynomial time algorithm for knapsack generalizes for k-knapsack for each constant k.

Proof: Define D[b1,,bk,i] to be the maximum value using elements a1,,ai, where the knapsack has capacity b1,,bk. The recurrence relation is D[b1,,bk,i+1]=max(maxj(D[b1,,bjai+1,bk,i])+ai+1,D[b1,,bk,i]). The base case are simple. The running times is O(skkn).

It is standard to obtain an FPTAS by scaling all numbers and round to integers, see section 5 of this. This means we can find a (11kn)-approximation to k-knapsack problem in polynomial time. Therefore for each constant k, the original problem can be decided in polynomial time.

The above is incorrect, due to the pseudopolynomial time algorithm does not transform into an FPTAS. However, the approach might still give us some insight because we have a very special case of k-knapsack problem.


I found this paper: epubs.siam.org/doi/abs/10.1137/S0097539700382820 which shows a PTAS for multple-knapsack. How do you obtain an FPTAS from it? (did you mean that there is an FPTAS for the special case in which the values are equal to the weights?)
Erel Segal-Halevi

I have made an update. The FPTAS is for the case when k is a constant. If the number of knapsacks is part of the input, there is no FPTAS.
Chao Xu

Hi Chao, we are working on a paper in which this result is useful. Would you like to join? If so then please write me an email.
Erel Segal-Halevi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.