完全多項式時間近似スキーム (FPTAS) は、関数の問題、特に最適化の問題に対する近似解を見つけるためのアルゴリズムです。FPTAS は、問題のインスタンスとパラメーター ε > 0 を入力として受け取ります。出力として、正しい値の少なくとも 倍、最大で正しい値の 倍 の値を返します。
最適化問題の文脈では、正しい値は最適解の値であると理解されており、FPTAS は有効な解 (解の値だけではなく) を生成する必要があることがしばしば暗示されています。問題が自己還元性を持っていると仮定すると、値を返すことと、その値を持つ解を見つけることは同等です。
重要なのは、FPTAS の実行時間は問題のサイズと 1/ε の多項式であるということです。これは、一般的な多項式時間近似スキーム(PTAS) とは対照的です。一般的な PTAS の実行時間は、特定の ε ごとに問題のサイズの多項式ですが、1/ε では指数関数的になる可能性があります。[1]
FPTASという用語は、FPTASを持つ問題のクラスを指すためにも使用される。FPTASはPTASのサブセットであり、P = NPでない限り、厳密なサブセットである。[2]
他の複雑性クラスとの関係
FPTASにおけるすべての問題は、標準的なパラメータ化に関して固定パラメータで扱うことができる。 [3]
多項式的に制限された目的関数を持つ任意の強くNP困難な最適化問題は、P = NPでない限りFPTASを持つことはできません。 [4]しかし、逆は失敗します。たとえば、PがNPと等しくない場合、 2つの制約を持つナップサックは強くNP困難ではありませんが、最適な目的関数が多項式に制限されている場合でもFPTASはありません。[5]
動的プログラムを FPTAS に変換する
Woeginger [6]は、ある種の動的プログラムをFPTASに変換するための一般的なスキームを提示した。
入力
このスキームは、入力が次のように定義される最適化問題を処理します。
- 入力はn 個のベクトルx 1、...、x nで構成されます。
- 各入力ベクトルはいくつかの非負の整数で構成され、入力に応じて異なる場合があります。
- 入力ベクトルのすべての成分はバイナリでエンコードされます。したがって、問題のサイズは O( n +log( X )) です。ここで、X はすべてのベクトルのすべての成分の合計です。
非常にシンプルな動的プログラム
この問題には、状態を使用する動的計画法 (DP) アルゴリズムがあると仮定します。各状態は、入力に依存しない非負の整数で構成されるベクトルです。DP はnステップで動作します。各ステップiで、入力x i を処理し、状態のセット S i を構築します。各状態は、入力x 1、...、x i を使用して、問題の部分的な解をエンコードします。DP のコンポーネントは次のとおりです。
- 初期状態の集合S0 。
- 遷移関数のセットF。F内の各関数f は、ペア (状態、入力) を新しい状態にマッピングします。
- 状態をその値にマッピングする目的関数 g。
DP のアルゴリズムは次のとおりです。
- S 0 := 初期状態の集合とします。
- k = 1 からnまでの場合、次の操作を実行します。
- S k := { f ( s , x k ) | f in F , s in S k −1 }とします。
- 最小/最大{g(s) | s in S n }を出力します。
DP の実行時間は、可能な状態の数に比例します。一般に、この数は入力問題のサイズに対して指数関数的になります。つまり、O( n V b ) になります。ここで、V は状態に現れる最大の整数です。V が O( X ) の場合、実行時間は O( n X b ) になります。これは、問題のサイズに対して指数関数的であるため、疑似多項式時間でしかありません。問題のサイズは O(log X ) です。
これを多項式にする方法は、状態空間をトリミングすることです。つまり、各ステップで可能なすべての状態を保持するのではなく、状態のサブセットのみを保持し、他の状態に「十分に近い」状態を削除します。特定の条件下では、このトリミングは、目的の値を大きく変更しない方法で実行できます。
これを形式化するために、問題には負でない整数ベクトルd = ( d 1 ,..., d b ) があり、これを問題の次数ベクトルと呼ぶと仮定します。すべての実数r >1 について、1,..., b内の各座標jに対して次の式が成り立つとき、 2 つの状態ベクトルs 1、s 2は(d,r) 近いと言えます。 (特に、あるjに対してd j =0 である場合、)。
問題が以下の 3 つの条件を満たす場合、 その問題は極めて善意の問題と呼ばれます。
- 近接性は遷移関数によって保存されます。任意のr > 1、 F内の任意の遷移関数f、任意の入力ベクトルx、および任意の 2 つの状態ベクトルs 1、s 2について、次のことが当てはまります。s 1 が s 2 に ( d, r ) 近い場合、f ( s 1 、 x )はf ( s 2 、x )に( d , r )近いです。
- このための十分条件は次のようにして確認できます。Fのすべての関数f ( s , x ) と1,..., bのすべての座標jについて、 fのj番目の座標をf j (s,x)で表します。このf j は、 b + a変数の整数関数として考えることができます。このようなf j はすべて非負の係数を持つ多項式であるとします。s =(z d1 ,...,z db ) およびx =(1,...,1) を代入して、これを単一変数zの多項式に変換します。結果として得られる多項式の z の次数が d j 以下であれば、条件1は満たされます。
- 近接性は価値関数によって保存されます。整数G ≥ 0 (これは価値関数gと次数ベクトルdの関数です) が存在し、任意のr >1 および任意の 2 つの状態ベクトルs 1、s 2について、次のことが成り立ちます。s 1がs 2に( d,r ) 近い場合、次のようになります。g ( s 1 ) ≤ r G · g ( s 2 ) (最小化問題の場合)。 g ( s 1 ) ≥ r (-G) · g ( s 2 ) (最大化問題の場合)。
- このための十分な条件は、関数g が非負の係数を持つ多項式関数(b変数)であることです。
- 技術的条件:
- F内のすべての遷移関数fと値関数gは、多時間で評価できます。
- 遷移関数の数 | F | はnとlog( X )の多項式です。
- 初期状態の集合S 0は、 nとlog( X )の時間多項式で計算できます。
- V j を、ある状態において座標jに現れる可能性のあるすべての値の集合とします。すると、 V jのすべての値のlnは、最大でも多項式 P 1 (n,log(X)) になります。
- d j =0の場合、 V jの濃度は 最大で多項式P 2 ( n ,log( X ))になります。
あらゆる極めて有益な問題について、動的プログラムを FPTAS に変換できます。定義:
- := 必要な近似比。
- ここで、G は条件 2 からの定数です。 に注意してください。
- ここで、P 1 は条件 3 の多項式です (状態ベクトルに現れる可能性のあるすべての値の ln の上限)。なので、これは入力のサイズと の多項式であることに注意してください。 また、なので、 P 1の定義により、状態ベクトルに現れる可能性のあるすべての整数は [0, r L ] の範囲内にあります。
- 範囲[0, r L ]をL +1個のr区間に分割します。
- 状態空間をrボックスに分割します。次数dk≥1の各座標kは上記のL+1個の間隔に分割されます。dk=0の各座標はP2 ( n , log(X))個のシングルトン間隔、つまり座標kの各可能な値に対する間隔に分割されます(ここで、P2は上記の条件3からの多項式です)。
- すべての可能な状態は、正確に 1 つのrボックスに含まれていることに注意してください。2 つの状態が同じrボックス内にある場合、それらは ( d、r ) 閉じています。
- 。
- rボックスの数は最大でRであることに注意してください。bは固定定数なので、このR は入力のサイズと の多項式です。
FPTAS は DP と同様に実行されますが、各ステップで状態セットを、各rボックスに正確に 1 つの状態が含まれる小さなセットT kにトリミングします。FPTAS のアルゴリズムは次のとおりです。
- T 0 := S 0 = 初期状態の集合とします。
- k = 1 からnまでの場合、次の操作を実行します。
- U k := { f ( s , x k ) | f in F , s in T k −1 }とします。
- T k := U k のトリミングされたコピーとします。U kの 1 つ以上の状態を含む各 r ボックスに対して、 T kに正確に 1 つの状態を保持します。
- 最小/最大 {g(s) | s in T n } を出力します。
FPTAS の実行時間は、各T iの可能な状態の総数の多項式であり、これは最大でrボックスの総数であり、これは最大でRであり、これはn、log( X )、およびの多項式です。
U kの 各状態s uに対して、その部分集合T kにはs uに (d,r) 近い状態s tが少なくとも 1 つ含まれていることに注意する。また、各U k は元の (トリミングされていない) DP のS kの部分集合である。FPTAS の正しさを証明するための主な補題は次のとおりである: [6] : Lem.3.3
0 ,..., nの すべてのステップkについて、 S kのすべての状態s sに対して、 s sに( d , rk ) 近いT kの状態s tが存在します。
証明はkに関する帰納法による。k =0 のとき、 T k = S kであり、すべての状態は自身に ( d , 1) 近接している。 k -1について補題が成り立つと仮定する。 S kのすべての状態s sについて、s s- をS k-1におけるその先行状態の 1 つとし、 f ( s s − , x ) = s sとする。帰納法の仮定により、 T k-1には状態s t-が存在し、これはs s −に ( d , r k-1 ) 近接している。近接性は遷移によって保存されるため (上記の条件 1)、f ( s t − , x ) はf ( s s − , x )= s sに( d , r k-1 ) 近接している。このf ( s t − , x ) はU kにある。トリミング後、T kにはf( st- ,x)に( d , r )-近い状態 stがあります。このstはs sに( d , rk ) -近いです。
ここで、最適解に対応するS nの状態s *を考えます (つまり、 g ( s* )=OPT)。上記の補題により、s *に( d , r n ) 近い状態t *がT nに存在します。近接性は価値関数によって保存されるため、最大化問題ではg (t*) ≥ r (-Gn) · g ( s* ) が成り立ちます。rの定義により、。したがって。同様の議論が最小化問題にも当てはまります。
例
ここに、上記の定理によりFPTASが成立する極めて善意の問題の例をいくつか挙げる。[6]
1.最大合計を最小化することを目標とする多元数分割(同等の同一マシン スケジューリング) は、極めて善良です。ここで、 a = 1 (入力は整数)、b = ビンの数 (固定とみなされます) です。各状態は、bビンの合計を表すb整数のベクトルです。 b個の関数があります。各関数jは、次の入力をビンjに挿入することを表します。関数g ( s ) は、 sの最大要素を選択します。S 0 = {(0,...,0)}。極めて善良であるための条件は、次数ベクトルd =(1,...,1) およびG =1 で満たされます。結果は、マシン数が固定されている場合 ( rボックスの数Rがbの指数関数であるため、これが必要です) は常に、均一マシン スケジューリングおよび無関係マシン スケジューリングに拡張されます。 Pm||または Qm||または Rm||で示されます。
- 注: 特別なケースb =2 を考えてみましょう。この場合は、2 つの部分の合計の差の 2 乗を最小化することが目標です。同じ DP を使用できますが、今回は値関数g ( s ) = ( s 1 - s 2 ) 2を使用します。ここで、条件 2 に違反します。つまり、状態 ( s 1、s 1 ) と ( s 1、s 2 ) は ( d,r ) 近い可能性がありますが、g ( s 1、s 1 ) = 0 であるのに対し、g ( s 1、s 2 ) > 0 です。したがって、上記の定理は適用できません。実際、P=NP でない限り、この問題には FPTAS がありません。FPTAS を使用すると、最適値が 0 かどうかを多項式で判断できるためです。
2. 同一または均一なマシンの任意の固定数におけるジョブ完了時間の 3 乗の合計 (後者は Qm|| で表されます) は、 a =1、b =3、d=(1,1,3)の場合に ex-benevolent です。これは、完了時間の任意の固定乗に拡張できます。
3. 同一または均一なマシンの固定数における加重完了時間の合計。後者はQm||で表されます。
4. 時間に依存する処理時間を持つ、任意の固定数の同一または均一なマシンでの完了時間の合計: Qm|time-dep| 。これは、完了時間の加重合計に対しても当てはまります。
5. 任意の固定数のマシンにおける共通納期に関する加重早遅刻: m|| 。
シンプルな動的プログラム
単純な動的プログラムでは、上記の定式化に次のコンポーネントが追加されます。
- Fと同じ基数のフィルタリング関数のセットH。H内の各関数h i は、ペア (状態、入力) をブール値にマッピングします。このペアで遷移f i をアクティブにすると有効な状態になる場合にのみ、値は「true」になります。
- 優位関係は、状態の部分順序(無差別なし、すべてのペアが比較可能ではない)であり、準優位関係は、状態の全順序(無差別が許可され、すべてのペアが比較可能)である。
元の DP は次のように変更されます。
- S 0 := 初期状態の集合とします。
- k = 1 からnまでの場合、次の操作を実行します。
- S k := { f j ( s , x k ) | f j in F , s in S k −1 , h j ( s , x k )=True }とします。ここで、h jは遷移関数f jに対応するフィルタ関数です。
- 最小/最大{g(s) | s in S n }を出力します。
問題が善意の問題であるとは、次の条件(上記の条件 1、2、3 を拡張したもの)を満たす場合に言われます。
- 近接性は遷移関数によって保存されます。任意のr > 1、 F内の任意の遷移関数f、任意の入力ベクトルx、および任意の 2 つの状態ベクトルs 1、s 2に対して、次の式が成り立ちます。
- s 1 がs 2に( d, r ) 近接しており、 s 1 がs 2を準優位とする場合、 (a) f ( s 1 , x ) がf ( s 2 , x )に( d, r ) 近接しており、f ( s 1 , x ) がf ( s 2 , x )を準優位とするか、 (b) f ( s 1 , x ) がf ( s 2 , x )を優位とするかのいずれかである。
- s 1 がs 2より優位であれば、f ( s 1 , x )はf ( s 2 , x ) より優位です。
- 近接性は価値関数によって保存されます。整数G ≥ 0 (価値関数gと次数ベクトルdの関数) が存在し、任意のr >1 および任意の 2 つの状態ベクトルs 1、s 2に対して、次の式が成り立ちます。
- s 1 がs 2に( d, r ) 近接しており、s 1 がs 2 を準優位とする場合、g ( s 1 ) ≤ r G · g ( s 2 ) (最小化問題の場合)、 g ( s 1 ) ≥ r (-G) · g ( s 2 ) (最大化問題の場合) が成立します。
- s 1 がs 2より優勢である場合、g ( s 1 ) ≤ g ( s 2 ) (最小化問題の場合)、 g ( s 1 ) ≥ g ( s 2 ) (最大化問題の場合)。
- 技術的条件(上記に加えて):
- 準優位関係は多項式時間で決定できます。
- フィルタ関数の条件: 任意のr > 1、 H内の任意のフィルタ関数h、任意の入力ベクトルx、および任意の 2 つの状態ベクトルs 1、s 2について、次の条件が成立します。
- s 1 がs 2に( d, r ) 近接しており、 s 1 がs 2 を準優位とする場合、h ( s 1 , x ) ≥ h ( s 2 , x )です。
- s 1 がs 2より優勢である場合、 h ( s 1 , x ) ≥ h ( s 2 , x )です。
すべての善意の問題に対して、動的プログラムは、2 つの変更 (太字) を加えることで、上記と同様に FPTAS に変換できます。
- T 0 := S 0 = 初期状態の集合とします。
- k = 1 からnまでの場合、次の操作を実行します。
- U k := { f j ( s , x k ) | f j in F , s in T k −1 , h j ( s , x k )=True }とします。ここで、 h jは遷移関数f jに対応するフィルタ関数です。
- T k := U k のトリミングされたコピーとします。U kの 1 つ以上の状態を含む各rボックスに対して、 U k内の他のすべての要素を準支配する単一の要素を選択し、それをT kに挿入します。
- 最小/最大 {g(s) | s in T n } を出力します。
例
ここに、上記の定理によりFPTASとなる善意の問題の例をいくつか挙げます。[6]
1. 0-1ナップサック問題は善意の問題です。ここで、a =2 です。各入力は 2 ベクトル (重み、値) です。b =2 の DP があります。各状態は (現在の重み、現在の値) をエンコードします。2 つの遷移関数があります。f 1 は次の入力項目の追加に対応し、f 2 は追加しないことに対応します。対応するフィルター関数は次のとおりです。h 1 は、次の入力項目の重みがナップサックの容量以下であることを確認します。 h 2 は常に True を返します。値関数g ( s ) はs 2を返します。初期状態セットは {(0,0)} です。次数ベクトルは (1,1) です。優位関係は自明です。準優位関係は重み座標のみを比較します。sはt を準優位とする場合、s 1 ≤ t 1となります。この意味は、状態t の重みが状態sよりも高い場合、遷移関数はtとsの近接性を維持しなくてもよいということです(たとえば、s には後続があり、t には対応する後続がない可能性があります)。同様のアルゴリズムは、以前に Ibarra と Kim によって発表されました。[7]この FPTAS の実行時間は、整数演算にまで改善できます。[8]指数は後に 2.5 に改善されました。[9]
- 注: 2 重みナップザック問題を考えます。ここで、各アイテムには 2 つの重みと 1 つの値があり、合計重みの二乗の合計がナップザックの容量以下になる ように値を最大化することが目標です。同様の DP を使用してこれを解くことができます。ここで、各状態は (現在の重み 1、現在の重み 2、値) です。準優位関係は、次のように変更する必要があります。s は、( s 1 2 + s 2 2 ) ≤ ( t 1 2 + t 2 2 ) の場合にt を準優位にします。ただし、これは上記の条件 1 に違反します。準優位は遷移関数によって保持されません [たとえば、状態 (2,2,..) は (1,3,..) を準優位にします]。しかし、両方の状態に入力 (2,0,..) を追加した後、結果 (4,2,..) は (3,3,..) を準優位にしません。したがって、定理は使用できません。実際、この問題は P = NP でない限り FPTAS を持ちません。2 次元ナップサック問題でも同じことが言えます。多重サブセットの合計問題でも同じことが言えます。準優位関係は、次のようになります。max( s 1, s 2 ) ≤ max( t 1, t 2 ) の場合にs がt を準優位にするが、上記と同じ例により、遷移によって保持されません。
2. 単一のマシン上で、遅れたジョブの加重数を最小化するか、早めに到着するジョブの加重数を最大化します。1|| と表記します。
3. 遅れたジョブの加重数を最小化するためのバッチ スケジューリング: 1|batch| 。
4. 単一マシン上での劣化ジョブのメイクスパン: 1|劣化| 。
5. 単一マシンでの合計遅延作業数: 1|| 。
6. 単一マシン上の加重遅延作業の合計: 1|| 。
非例
上記の結果は一般性があるものの、使用できないケースもあります。
1. 総遅延問題 1|| では、Lawler [10]の動的計画法の定式化では、古い状態空間のすべての状態をB回更新する必要があります。ここで、BはX (最大入力サイズ)のオーダーです。同じことが、経済的なロットサイジングの DP にも当てはまります。[11]これらの場合、Fの遷移関数の数はBであり、これは log( X ) の指数関数であるため、2 番目の技術的条件に違反しています。状態トリミング手法は役に立ちませんが、別の手法である入力丸めが FPTAS の設計に使用されています。[12] [13]
2. 分散最小化問題1|| では、目的関数は であり 、条件2に違反するため、定理は使用できない。しかし、FPTASの設計にはさまざまな手法が使用されてきた。[14] [15]
実数を近似する FPTAS
FPTAS が役に立つかもしれない別の種類の問題は、ある実数を近似する有理数を見つけることです。たとえば、無限級数 を考えてみましょう。その和は無理数です。これを有理数で近似するには、ある有限のkに対して最初のk要素の和を計算します。近似の誤差は約 であることがわかります。したがって、ε の誤差を得るには約 個の要素が必要であり、これは FPTAS です。この特定の和は、O(log(ε)) 個の要素のみを必要とする別の和で表すことができることに注意してください。したがって、和は実際には ε のエンコード長で多項式時間で近似できます。[16] : 35、Sec.1
FPTASが関係するその他の問題
- ナップサック問題[ 17 ] [18]およびその変種:
- 0-1ナップサック問題[19]
- 無限ナップサック問題[20]
- デルタモジュラー制約を伴う多次元ナップサック問題。[21]
- 多目的0-1ナップサック問題[22]
- パラメトリックナップサック問題[23]
- 対称二次ナップサック問題[24]
- Count-subset-sum (# SubsetSum ) - 合計が最大でCになる異なるサブセットの数を見つける。[25]
- 制限付き最短経路:遅延制約の下でグラフ内の2つのノード間の最小コスト経路を見つけること。[26]
- 最短経路と非線形目標[27]
- エッジカバーを数える。[28]
- 次元が固定されたベクトル部分集合探索問題。[29]
参照
- FPTASを認める「善意の動的プログラム」は進化的アルゴリズムも認める。[30]
参考文献
- ^ G. Ausiello、P. Crescenzi、G. Gambosi、V. Kann、A. Marchetti-Spaccamela、および M. Protasi。複雑性と近似:組み合わせ最適化問題とその近似可能性特性、Springer-Verlag、1999年。
- ^ Jansen, Thomas (1998)、「複雑性理論と近似アルゴリズム入門」、Mayr, Ernst W.、Prömel, Hans Jürgen、Steger, Angelika (編)、証明検証と近似アルゴリズムに関する講義、Lecture Notes in Computer Science、vol. 1367、Springer、pp. 5–28、doi :10.1007/BFb0053011、ISBN 978354064201520ページの定義1.30に続く議論を参照。
- ^ Cai, Liming; Chen, Jianer (1997 年 6 月). 「NP 最適化問題の固定パラメータの扱いやすさと近似可能性について」. Journal of Computer and System Sciences . 54 (3): 465–474. doi : 10.1006/jcss.1997.1490 .
- ^ ヴァジラニ、ヴィジェイ V. (2003)。近似アルゴリズム。ベルリン:シュプリンガー。帰結 8.6。ISBN 3-540-65367-8。
- ^ H. Kellerer; U. Pferschy; D. Pisinger (2004).ナップサック問題. Springer. 定理 9.4.1.
- ^ abcd Woeginger, Gerhard J. (2000-02-01). 「動的プログラミング定式化によって完全多項式時間近似スキーム (FPTAS) の存在が保証されるのはいつですか?」INFORMS Journal on Computing . 12 (1): 57–74. doi :10.1287/ijoc.12.1.57.11901. ISSN 1091-9856.
- ^ Ibarra, Oscar H.; Kim, Chul E. (1975-10-01). 「ナップサック問題とサブセットの合計問題に対する高速近似アルゴリズム」Journal of the ACM . 22 (4): 463–468. doi : 10.1145/321906.321909 . ISSN 0004-5411. S2CID 14619586.
- ^ Lawler, Eugene L. (1979-11-01). 「ナップサック問題のための高速近似アルゴリズム」.オペレーションズ・リサーチの数学. 4 (4): 339–356. doi :10.1287/moor.4.4.339. ISSN 0364-765X. S2CID 7655435.
- ^ Rhee, Donguk (2015). ナップサック問題に対するより高速な完全多項式近似スキーム (論文)。マサチューセッツ工科大学。hdl : 1721.1/98564。
- ^ Lawler, Eugene L. (1977-01-01)、Hammer, PL; Johnson, EL; Korte, BH; Nemhauser, GL (編)、「遅刻合計を最小化するジョブの順序付けのための「擬似多項式」アルゴリズム**国立科学財団助成金 GJ-43227X による研究支援」、Annals of Discrete Mathematics、Studies in Integer Programming、vol. 1、Elsevier、pp. 331–342、doi :10.1016/S0167-5060(08) 70742-8、2021-12-17取得
- ^ Florian, M.; Lenstra, JK; Rinnooy Kan, AHG (1980-07-01). 「決定論的生産計画: アルゴリズムと複雑性」. Management Science . 26 (7): 669–679. doi :10.1287/mnsc.26.7.669. ISSN 0025-1909.
- ^ Lawler, EL (1982-12-01). 「総遅刻問題に対する完全多項式近似スキーム」.オペレーションズ・リサーチ・レター. 1 (6): 207–208. doi :10.1016/0167-6377(82)90022-0. ISSN 0167-6377.
- ^ van Hoesel, CPM; Wagelmans, APM (2001). 「単一アイテム容量制限付き経済的ロットサイズ問題に対する完全多項式近似スキーム」.オペレーションズリサーチの数学. 26 (2): 339–357. doi :10.1287/moor.26.2.339.10552.
- ^ Cai, X. (1995-09-21). 「単一マシンシステムにおける合意重み付け分散の最小化」.ヨーロッパオペレーションズリサーチジャーナル. 85 (3): 576–592. doi :10.1016/0377-2217(93)E0367-7. ISSN 0377-2217.
- ^ Woeginger, Gerhard J. (1999-05-01). 「単一マシン上での適切な加重分散を最小化する近似スキーム」. INFORMS Journal on Computing . 11 (2): 211–216. doi :10.1287/ijoc.11.2.211. ISSN 1091-9856.
- ^ マーティン・グレッチェル; Lovász, ラスロー; Schrijver、Alexander (1993)、幾何学的アルゴリズムと組み合わせ最適化、Algorithms and Combinatorics、vol. 2 (第 2 版)、Springer-Verlag、ベルリン、doi :10.1007/978-3-642-78240-4、ISBN 978-3-642-78242-8、MR 1261419
- ^ Vazirani, Vijay (2001).近似アルゴリズムベルリン: Springer. pp. 69–70. ISBN 3540653678. OCLC 47097680.
- ^ Kellerer, Hans; Pferschy, Ulrich (2004-03-01). 「ナップサック問題に対する FPTAS と連携した改良型動的プログラミング」Journal of Combinatorial Optimization . 8 (1): 5–11. doi :10.1023/B:JOCO.0000021934.29833.6b. ISSN 1573-2886. S2CID 36474745.
- ^ ジン、シー (2019). 0-1 ナップザック用の改良された FPTAS。ライプニッツ国際情報学会議 (LIPIcs)。 Vol. 132. ダグシュトゥール城 – ライプニッツ情報センター。 76:1–76:14。arXiv : 1904.09562。土井:10.4230/LIPIcs.ICALP.2019.76。ISBN 9783959771092.S2CID 128317990 。
- ^ Jansen , Klaus; Kraft, Stefan EJ (2018-02-01). 「無制限ナップサック問題に対するより高速な FPTAS」。European Journal of Combinatorics 。組合せアルゴリズム、 Mirka Miller を偲んで。68 : 148–174。arXiv : 1504.04650。doi :10.1016/j.ejc.2017.07.016。ISSN 0195-6698。S2CID 9557898 。
- ^ Gribanov, DV (2021-05-10). 「$$\var Delta $$-モジュラー多次元ナップサック問題のためのFPTAS 」.数学的最適化理論とオペレーションズ・リサーチ. コンピュータサイエンスの講義ノート. Vol. 12755. pp. 79–95. arXiv : 2103.07257 . doi :10.1007/978-3-030-77876-7_6. ISBN 978-3-030-77875-0. S2CID 232222954。
- ^ Bazgan, Cristina; Hugot, Hadrien; Vanderpooten, Daniel (2009-10-01). 「0–1 多目的ナップサック問題に対する効率的な FPTA の実装」. European Journal of Operational Research . 198 (1): 47–56. doi :10.1016/j.ejor.2008.07.047. ISSN 0377-2217.
- ^ Holzhauser, Michael; Krumke, Sven O. (2017-10-01). 「パラメトリックナップサック問題のための FPTAS」. Information Processing Letters . 126 :43–47. arXiv : 1701.07822 . doi :10.1016/j.ipl.2017.06.006. ISSN 0020-0190. S2CID 1013794.
- ^ Xu, Zhou (2012-04-16). 「対称2次ナップサック問題に対する強力多項式FPTAS」. European Journal of Operational Research . 218 (2): 377–381. doi :10.1016/j.ejor.2011.10.049. hdl : 10397/24376 . ISSN 0377-2217.
- ^ Gopalan, Parikshit; Klivans, Adam; Meka, Raghu; Štefankovic, Daniel; Vempala, Santosh; Vigoda, Eric (2011-10-01). 「#Knapsack および関連するカウント問題に対する FPTAS」。2011 IEEE 52nd Annual Symposium on Foundations of Computer Science。pp . 817–826。doi :10.1109/ FOCS.2011.32。ISBN 978-0-7695-4571-4. S2CID 5691574。
- ^ Ergun, Funda ; Sinha, Rakesh; Zhang, Lisa (2002-09-15). 「制限付き最短経路のための改良型 FPTAS」. Information Processing Letters . 83 (5): 287–291. doi :10.1016/S0020-0190(02)00205-3. ISSN 0020-0190.
- ^ Tsaggouris, George; Zaroliagis, Christos (2009-06-01). 「多目的最適化: 最短経路と非線形目的のための改良型 FPTAS とその応用」.コンピューティングシステムの理論. 45 (1): 162–186. doi :10.1007/s00224-007-9096-4. ISSN 1433-0490. S2CID 13010023.
- ^ Lin, Chengyu; Liu, Jingcheng; Lu, Pinyan (2013-12-18)、「エッジカバーをカウントするためのシンプルな FPTAS」、2014 年 ACM-SIAM 離散アルゴリズムシンポジウム (SODA) の議事録、議事録、産業応用数学協会、pp. 341–348、arXiv : 1309.6115、doi :10.1137/1.9781611973402.25、ISBN 978-1-61197-338-9, S2CID 14598468 , 2021-12-13取得
- ^ ケルマノフ、AV;ロマンチェンコ、SM (2014-07-01)。 「ベクトルサブセット探索問題のFPTAS」。応用および工業数学のジャーナル。8 (3): 329–336。土井:10.1134/S1990478914030041。ISSN 1990-4797。S2CID 96437935。
- ^ Doerr, Benjamin; Eremeev, Anton; Neumann, Frank; Theile, Madeleine; Thyssen, Christian (2011-10-07). 「進化的アルゴリズムと動的プログラミング」.理論計算機科学. 412 (43): 6020–6035. arXiv : 1301.4096 . doi : 10.1016/j.tcs.2011.07.024 . ISSN 0304-3975.
外部リンク
- 複雑性動物園: FPTAS
