最大数はソフト数です
問題のどのインスタンスについても、インスタンスが解決可能であれば(1つのソフト番号を使用して番号を分割することが可能)、最大の番号を唯一のソフト番号として使用してインスタンスを解決することができると私は主張します。これは簡単に証明できます。任意の解を、最大数をソフト数とする解に変更できます。現在ソフトナンバーである数値を、最大数を含むパーティションに配置し、代わりにパーティションのパーツ間で最大数を分割します。
梱包の問題
これが私がパッキング問題と呼ぶ問題です:
入力は、正の数のリストから成る1、2、... 、Kと1つの最終番号ℓようℓ ≥ I全てに対してI。s = 1を定義a1,a2,…,akℓℓ≥aii3(ℓ+∑ k i = 1 ai)s=13(ℓ+∑ki=1ai)。次に問題は、各部分の合計が最大でsになるようにaiaiのリストを3つの部分に分割することです。s
私は入力を備えたパッキング問題は、と主張している1、... 、K及びℓは、入力リストを使用して問題と等価である1、... 、K、ℓ。それは数字パックすることが可能です場合は1、... 、kは三つのグループに最大で合計のそれぞれは、sは、あなたが使用することができますℓを正確に和のそれぞれからラウンドにソフト数としてね。したがって、1、… 、aのパーティションがあります。a1,…,akℓa1、… 、ak、ℓa1、… 、aksℓsk、ℓa1、… 、ak、ℓを1つのソフト数値を使用して合計 sのs 3つのグループに分けます。他方場合 1、... 、K、ℓは合計3つのグループに分割することができるの使用つのソフト数、リストは、合計3つのグループに分割することができるの使用 ℓからの結果によって軟数(AS前のセクション)。この場合のグループ A iは三つの部分を満たすに各部分が最大で合計値を有することが条件だ S。a1、… 、ak、ℓssℓa私s
小さな数字のないパッキング問題
すべてのための場合パッキング問題のインスタンスは、「何の小さな数字を持っていない」と言うI私、I > ℓ2a私> ℓ2。私はあなたが梱包問題を小さな数のない梱包問題に減らすことができると主張します。
問題インスタンスを梱包していると仮定する(1、... 、K)、ℓ(a1、… 、ak)、ℓ一部のA 私はa私持っている私を ≤ ℓを2a私≤ ℓ2。WLOGは、kakがこれaiでa私あると仮定します。私はパッキング問題のインスタンスを請求(1、...、K-1)、ℓ+kが(a1、… 、ak − 1)、ℓ + ak元のインスタンスと等価です。値ssは両方のインスタンスで同じままであることに注意してください。
確かに、数値a 1、… 、a ka1、… 、akを3つのグループにパックでき、各グループの合計が最大でsであるs場合、数値a 1、… 、a k − 1a1、… 、ak − 1を3つのグループにパックでき、各グループの合計が最大で合計になります。秒s。
一方、数値a 1、… 、a k − 1a1、… 、ak − 1を3つのグループにパックして、各グループの合計が最大でsであるとしsます。3つのグループのそれぞれについて、値ssからグループ内の要素の合計を引いたものを検討します。これらの値をe 1、e 2、e 3とe1、e2、e3呼びます。ここで、e ie私はグループiの私「空のスペース」の量です。我々が知っているE 1 + E 2 + E 3e1+ e2+ e3、総空きスペースは、に等しく、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つに追加して、数値a1、…、akを3つのグループにパッキングして、各グループの合計が最大でsになるようにすることができます。akaka1、… 、aks
したがって、あなたの問題を解決するには、小さな数のないパッキング問題を解決するだけで十分です。
補題1
補題ステートメント:
我々は分割することができると仮定1、... 、Kグループ1に、グループ2は、元素の偶数及び1区間にあるグループ内の要素の和有するように2 [秒- ℓa1,…,ak2、s][s−ℓ2、s ]。次に、グループ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つの要素を取得し、別の要素を失います。各要素は、間の値を有するので、ℓを2ℓ2および、、ℓ上記のプロセスの各ステップで、S2aS2aは最大でℓ2ℓ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)。したがって、AAはS 2 aのS2a初期値と最終値の間にある必要があります。グループを変更すると、S 2 aの値S2aサイズのステップを最大でℓℓ2AのA片側から反対側へ 2。このことから、我々はいくつかの点で、の値と結論付けることができますS2aがS2a最大ステップサイズの半分以内でなければなりません(ℓ4ℓ4)のAA。以来、S2bはS2b常にから同じ距離有するAAとしてS2aはS2a、我々はいくつかの点で、両方の合計と結論付けることができるS2AS2a及びS2bはS2b内であるℓ4ℓ4のAA。
3つのS - ℓ - (S 2 + S 2 bが)3s−ℓ−(S2a+S2b)グループ1の要素の和です。従って、 3 S - ℓ - (S 2 + S 2 B)≥ S - ℓ23s−ℓ−(S2a+S2b)≥s−ℓ2(グループ1の合計の条件による)。整理する、我々はそれを持っている(S2+S2B)≤2秒-ℓ2(S2a+S2b)≤2s−ℓ2。したがって、平均S2AS2a及びS2bがS2b最大であるS-ℓ4s−ℓ4。その後、一度に両方のことをS2、AS2a及びS2(b)はS2b内であるℓ4ℓ4のAは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要素になるまで要素を交換します。各ステップは、グループの合計を最大でℓだけ移動します2ℓ2(補題の証明と同じ論理による)、合計はこのプロセスのある時点で値ssと交差します。したがって、値sをs交差する直前または直後のいずれかで、合計はss未満ですが最大でℓ2ℓ2。換言すれば、このプロセスのある時点で、グループ間隔で合計を有する[S-ℓ2、s][s−ℓ2,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つの要素は、最大で合計持っているのを。この場合、要素を単にサイズn、n、およびn + 1の 3つのグループに分割するだけで、パッキング問題のインスタンスが解決されます。aisn+1snnn+1
残りの唯一のケースは、最小のn + 1n+1要素の合計が最大でsでsあり、最大のn + 1n+1要素の合計がssより大きい場合です。前のケースと同様に、これらの2つのセット間をゆっくりと移行できます。最小のn + 1n+1要素で初期化されたグループから始め、グループが最大のn + 1n+1要素になるまで要素を交換します。各ステップは、グループの合計を最大でℓだけ移動します2ℓ2(補題の証明と同じ論理による)、合計はこのプロセスのある時点で値ssと交差します。したがって、値sをs交差する直前または直後のいずれかで、合計はss未満ですが最大でℓ2ℓ2。換言すれば、このプロセスのある時点で、グループ間隔で合計を有する[S-ℓ2、s][s−ℓ2,s]。そのグループをグループ1とし、残りの2n2n要素をグループ2とします。補題が適用され、パッキング問題インスタンスの解決策を見つけることができます。
ケース3:k = 3 n + 2k=3n+2最初の簡単なサブケース
n個のn最小のa iai sとn個のn最大のa iai sを合計します。
どちらかの値が区間内にある場合は、[ S - ℓ2、s]は[s−ℓ2,s]、グループ1としてnn要素を選択し、残りの2n+22n+2要素をグループ2として、補題をすぐに適用します。これにより、パッキング問題インスタンスの解決策を見つけることができます。
もしnはn最小のI未満秒合計秒- ℓai2s−ℓ2とnのn最大のaiaiの合計がssより大きい場合、nのn最小のaiaiから始めて、nのn最大のaiになるaiまで要素を交換できます。各ステップで、最大で合計移動ℓ図2はℓ2、ので、このプロセスのある時点で、我々はグループ有するn個のn和間隔にある要素[S-ℓを2、s][s−ℓ2,s]。そのグループをグループ1とし、残りの2n+22n+2要素をグループ2とします。補題が適用され、パッキング問題インスタンスの解決策を見つけることができます。
場合nはn最小のI以上への和Sは、何基が有していないことができ、Nまたはそれ以上の要素(任意の選択として、n個の要素が合計が大きすぎることになります)。しかし、鳩の穴の原理から、少なくとも1つのグループには少なくともn + 1個の要素があることがわかります。したがって、この場合、パッキング問題のインスタンスに対する解決策はありません。aisnnn+1
唯一残っている場合はその両方であり、nはn最小及びnはn最大I未満秒アドS - ℓai2s−ℓ2。
ケース3:k = 3 n + 2k=3n+2秒の簡単なサブケース
n + 2n+2最小のa iai sとn + 2n+2最大のa iai sを合計します。
どちらかの値が区間内にある場合は、[ S - ℓ2、s][s−ℓ2,s]、すぐに補題を適用し、グループ1としてn+2n+2要素を選択し、残りの2n2n要素をグループ2として選択します。これにより、パッキング問題インスタンスの解決策を見つけることができます。
もしN + 2n+2最小I S和未満にS - ℓai2s−ℓ2とn+2のn+2最大のaiaisの合計がss以上になると、n+2のn+2最小のaiaisから始め、n+2のn+2最大のaiaisになるまで要素を交換できます。各ステップで、最大で合計移動ℓ2ℓ2、我々はグループ有するので、このプロセスのある時点で、N+2n+2の要素の和である区間での[S-ℓ2、s][s−ℓ2,s]。そのグループをグループ1とし、残りの2n2n要素をグループ2とします。補題が適用され、パッキング問題インスタンスの解決策を見つけることができます。
もし、N + 2n+2、最大私の合計にせいぜい秒、その後のすべての選択のn + 2つの要素は、最大で合計持っているのを。この場合、要素をサイズn、n + 1、およびn + 1の 3つのグループに分割するだけで、パッキング問題のインスタンスが解決されます。aisn+2snn+1n+1
唯一残っている場合は、両方のことであるN + 2n+2最小及びN + 2n+2最大Iより秒追加S。ais
ケース3:k = 3 n + 2k=3n+2ハードサブケース
上記の2つのサブケースのいずれもインスタンスを処理しなかったとします。次に、次のことを知っています。
- 両方のNn最小及びnはn最大I未満秒アドS - ℓai2s−ℓ2。
- 両方のN + 2n+2最小及びN + 2n+2最大Iより秒追加S。ais
以来、N + 2n+2最小Iより秒追加S、何基が有していないことができ、N + 2つの以上の要素を。これを実現する唯一の方法は、グループのサイズがn、n + 1、およびn + 1である場合です。aisn+2nn+1n+1
なお、以降のnnの最大I未満へのアドオン秒- ℓai2s−ℓ2、どの要素がサイズのグループに含まれるかは関係ありません 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=v−aii 2 ai=ℓ+∑ 2 n + 2 i = 1(v−xi) + N V = ℓ + (3 N + 2 )V - Σ 2 N + 2 iは= 1(X I)= (ℓ - v )+ (3 n + 3 )v −∑ 2 n + 2 i = 1(x i)3s=ℓ+∑3n+2i=1ai=ℓ+∑2n+2i=1ai+∑3n+2i=2n+2ai=ℓ+∑2n+2i=1(v−xi)+nv=ℓ+(3n+2)v−∑2n+2i=1(xi)=(ℓ−v)+(3n+3)v−∑2n+2i=1(xi)。
次いでだ= (N + 1 )V + ℓ - V3 −13 ∑ 2 n + 2 i = 1(xi)s=(n+1)v+ℓ−v3−13∑2n+2i=1(xi)です。
我々はいくつかのセットを選択した場合IIのN + 1つn+1の次に和指数、A iは、aiとsのI ∈ Iはi∈Iに等しいΣ I ∈ I A I = Σ I ∈ I V - X I = (N + 1 )V - Σ I ∈ I X I∑i∈Iai=∑i∈Iv−xi=(n+1)v−∑i∈Ixi。一連のインデックス IIは、この合計が最大で sである場合、グループの1つに対して有効な選択ですs。換言すれば、代替の定義を使用してSはs、上記派生我々が興味のある状態はあるΣ I ∈ I X I ≥ 13 Σ 2 N + 2 iが= 1(XI)-ℓ-V3∑i∈Ixi≥13∑2n+2i=1(xi)−ℓ−v3。明らかに、残りのn+1n+1インデックスI′={1、…、2 N + 2 } ∖ IはI′={1,…,2n+2}∖Iまた、この条件を満たさなければならない: Σ I ∈ I ' X I ≥ 13 Σ 2 N + 2 iが= 1(XI)-ℓ-V3∑i∈I′xi≥13∑2n+2i=1(xi)−ℓ−v3。以降ΣI∈I'XI=Σ 2 N + 2 iは= 1、XI-ΣI∈IXiを∑i∈I′xi=∑2n+2i=1xi−∑i∈Ixiとして、我々は、書き換え可能な第2の条件ΣI∈IXI≤23 Σ 2 N + 2 iが= 1(XI)+ℓ-Vを3∑i∈Ixi≤23∑2n+2i=1(xi)+ℓ−v3。
したがって、私たちは、同等の代替を使用して、この部分問題を修正再表示している:我々は、セットを選択しようとしているIIのを N + 1n+1の間のインデックスを { 1 、... 、2 N + 2 }{1,…,2n+2}ように 23 ∑ 2N + 2 iが= 1(XI)+ℓ-Vを3 ≥ΣI∈IXI≥13 ∑ 2 n+ 2 iが= 1(XI)-ℓ-V323∑2n+2i=1(xi)+ℓ−v3≥∑i∈Ixi≥13∑2n+2i=1(xi)−ℓ−v3。
そのノートℓ ≥ Vℓ≥v(従ってℓ - V ≥ 0ℓ−v≥0以降)vはv、いくつかの平均値であるA Iai Sとℓがℓ上部全てに結合しているA Iai S。ましょX = Σ 2 N + 2 I = 1(X I)X=∑2n+2i=1(xi)。上記の条件は次のように書き直すことができます。{ 1 、… 、2 nの中からn + 1インデックスのセットIIを選択しますn+1+ 2 }{1,…,2n+2}よう Σ I ∈ I X iが∑i∈Ixi区間である [ CのX 、(1 - C )X 〕[cX,(1−c)X]C = 13 -ℓ-V3 X ≤13c=13−ℓ−v3X≤13。
一部のjについてj、x jxjに少なくともXの値があるとします。3X3。この場合、IをIインデックスjjと、最小のxiに対応するn−1n−1インデックスで構成します。これらのxiが最大で(1−c)Xに追加される場合、このIの選択は上記の制約を満たします。合計∑ixixi(1−c)XI ∈ I X iの∑i∈Ixiある少なくとも X J ≥ X3 =13 X≥CXxj≥X3=13X≥cXと多くとも(1-C)X。したがって、このインデックスのセットIを使用して、パッキング問題インスタンスのソリューションでサイズn+1のグループの1つを選択できます。一方、これらのxiが(1−c)Xを超える場合、インスタンスは解決できません。2つの半分の1つはxjを含み、その半分の合計は常に(1−c)X(x jで最小の要素を配置した場合でもそれ以上だったため)。
したがって、いくつかのx jが少なくともXの値を持つケースを処理しました3。残りのケースは、すべてのxiに最大でXの値があることです。3。次に、xiを2つのグループ1と2に任意に割り当てます。2つのグループの要素のマッチングを作成し、それらのペアを一度に1ペアずつ交換します。このプロセスの過程で、グループ1の要素の合計は、その最初の合計からグループ2の要素の最初の合計に移動します。つまり、グループ1の合計は平均値Xと交差します。2。このプロセスの各ステップでは、グループ1がxiを失いますをを得ることが含まれます。以来、X 私の最もの値を持つX3、x iのペアは最大でXだけ異なる3したがって、各ステップはグループ1の合計を最大Xだけ移動します3。したがって、グループ1の合計が平均の最大ステップサイズの半分以内である場合、プロセスに何らかのポイントがあります。したがって、ある時点で、グループ1の合計はX内に収まります2 ±X6。しかし、これは間隔です[ 13 X、23 X]、これは[cX、(1-c)X]の部分区間です。したがって、このプロセスのある時点で、その時点でのグループ1は、目的の条件を満たします。このxiのグループを使用して、対応するaiのグループを選択できます。これらIサイズの2つのグループのフォーム1のn+1パッキング問題インスタンスを解決するために必要。
結論
上記の網羅的なケースワークは、1つのソフト番号を使用してリストを同じ合計の3つのグループに分割するアルゴリズムとして使用できます。ケースワークは、これが不可能な場合も特定します。このアルゴリズムの実行時間は多項式です。