Apakah jumlah subset DAG dapat diperkirakan?

13

Kita diberi grafik asiklik terarah dengan angka yang terkait dengan setiap simpul ( g : V N ), dan nomor target TG=(V,E)g:VN .TN

The DAG bagian sum masalah (mungkin ada dengan nama yang berbeda, referensi akan menjadi besar) menanyakan apakah ada simpul , sedemikian rupa sehingga Σ v i g ( v i ) = T , dan v 1. . v k adalah jalan di G .v1,v2,...,vkΣvig(vi)=Tv1..vkG

Masalah ini sepele NP-Complete, karena grafik transitif lengkap menghasilkan masalah jumlah subset klasik.

Algoritma pendekatan untuk masalah jumlah subset DAG adalah algoritma dengan properti berikut:

  1. Jika ada jalur dengan jumlah T, algoritma mengembalikan TRUE.
  2. Jika tidak ada jalur yang menjumlahkan angka antara dan T untuk beberapa c ( 0 , 1 ) , algoritma mengembalikan FALSE.(1c)TTc(0,1)
  3. Jika ada jalur yang menjumlahkan angka antara dan T , algoritme dapat menampilkan jawaban apa pun.(1c)TT

Jumlah subset diketahui dapat diperkirakan dalam waktu polinomial untuk semua .c>0

Apakah hal yang sama berlaku untuk DAG-Subset-Sum?

BPR
sumber

Jawaban:

14

Menurut saya algoritma pemrograman dinamis waktu semu-polinomial untuk masalah Subset Sum juga berfungsi untuk masalah ini. Untuk setiap titik , kami menghitung set L i yang terdiri dari semua nilai jalur yang mungkin berakhir pada v i . Kemudian, kita memiliki relasi perulangan: L i = { g ( v i ) } { x + g ( v i ) x j p r e c ( i ) LvsayaLsayavsaya . Mengikuti urutan topologis, semua L i dapat dihitung dalam waktu O ( K m ) , di mana K adalah berat total dan m adalah jumlah tepi.Lsaya={g(vsaya)}{x+g(vsaya)xjhalrec(saya)Lj}LsayaHAI(Km)Km

Saya pikir penskalaan dan pembulatan standar juga dapat diterapkan untuk mendapatkan FPTAS.

Bangye
sumber