Misalkan A direduksi ke B, yaitu, . Oleh karena itu, mesin Turing menerima A memiliki akses ke oracle untuk B . Biarkan Turing mesin menerima A menjadi M A dan oracle untuk B menjadi O B . Jenis pengurangan:
Turing pengurangan: dapat membuat beberapa pertanyaan untuk O B .
Reduksi karp: Juga disebut "polinomial time Turing reduction": Input ke harus dibuat dalam polytime. Selain itu, jumlah kueri ke O B harus dibatasi oleh polinomial. Dalam hal ini: P A = P B .
Banyak-satu pengurangan Turing: dapat membuat hanya satu query untuk O B , selama nya langkah terakhir. Karenanya respons oracle tidak dapat dimodifikasi. Namun, waktu yang dibutuhkan untuk dibangun input ke O B tidak perlu dibatasi oleh polinomial. Setara: ( ≤ m menunjukkan banyak-satu reduksi)
jika ∃ fungsi yang dapat dihitung f : Σ ∗ → Σ ∗ sedemikian rupa sehingga f ( x ) ∈ B .
Pengurangan masak: Juga disebut "pengurangan waktu banyak-satu polinomial": Pengurangan banyak-banyak di mana waktu yang digunakan untuk membangun input ke harus dibatasi oleh polinomial. Setara: ( ≤ p m yang menunjukkan banyak-satu reduksi)
jika ∃ sebuahpoli-waktufungsi dihitung f : Σ * → Σ * sehingga f ( x ) ∈ B .
Pengurangan pelit: Juga disebut "waktu polinomial satu-satu pengurangan": pengurangan A Masak di mana setiap contoh dari dipetakan ke contoh yang unik dari B . Setara: ( ≤ p 1 yang menunjukkan reduksi pelit)
jika ∃ sebuahpoli-waktudihitung bijection f : Σ * → Σ * sehingga f ( x ) ∈ B .
Pengurangan ini mempertahankan sejumlah solusi. Oleh karena itu .
Kita dapat mendefinisikan lebih banyak jenis reduksi dengan membatasi jumlah permintaan oracle, tetapi mengabaikannya, bisakah seseorang memberi tahu saya jika saya mendapatkan nomenklatur untuk berbagai jenis reduksi yang digunakan, dengan benar. Apakah masalah NP-lengkap didefinisikan dengan hormat pengurangan Cook atau pengurangan pelit? Adakah yang bisa dengan ramah memberikan contoh masalah yang NP-lengkap di bawah Cook dan tidak dalam pengurangan pelit.
Jika saya tidak salah, kelas # P-Complete didefinisikan sehubungan dengan pengurangan Karp.
sumber
Definisi pengurangan Karp tidak benar. Pengurangan Karp adalah pengurangan Turing polinomial-waktu di mana oracleHAIB disebut tepat sekali, selama pengurangan langkah terakhir.
sumber