P, NP dan Mesin Turing khusus

13

Saya agak baru, tetapi sangat tertarik pada bidang teori komputasi dan kompleksitas, dan saya ingin memperjelas pemahaman saya tentang bagaimana masalah kelas, dan seberapa kuat masalah terkait dengan mesin yang digunakan untuk menyelesaikannya.

Pemahaman saya

  • Standard Turing Machine - Mesin Turing yang memiliki alfabet terbatas, jumlah negara terbatas dan satu pita tak terbatas kanan
  • Mesin Turing-Equivalent - Mesin Turing yang, dapat ditiru, dan ditiru oleh, Mesin Turing Standar (cukup sering dengan pertukaran antara ruang dan waktu yang dicapai oleh persaingan)
  • P - kelas masalah yang dapat diselesaikan dalam waktu polinomial menggunakan Mesin Standard Turing (didefinisikan di atas)
  • NP - kelas masalah yang dapat diverifikasi dalam waktu polinomial menggunakan Mesin Standard Turing
  • NP-complete- masalah paling sulit yang masih ada NP, yang semua NPmasalah dapat dikonversi ke dalam waktu polinomial

Pertanyaan saya

Adalah kelas kompleksitas ( P, NP, NP-complete, dll) yang berhubungan dengan algoritma, atau algoritma dan mesin?

Dikatakan dengan cara lain, jika Anda dapat membuat Mesin Turing Equivalent (yang dapat menyelesaikan semua masalah yang dapat dilakukan oleh Standar TM, tetapi dalam jumlah waktu / ruang yang berbeda) dan mesin baru ini dapat memecahkan NP-completemasalah dalam waktu yang tumbuh sebagai jumlahnya banyak sehubungan dengan input, apakah itu menyiratkan P=NP?

Atau NP-completeharuskah masalah dipecahkan pada semua Mesin Turing yang mungkin dalam waktu polinomial untuk dipertimbangkan P?

Atau apakah saya salah memahami sesuatu yang mendasar di atas?

Saya telah melihat-lihat (mungkin tidak dengan istilah pencarian yang benar, saya tidak tahu semua jargon dengan baik) tetapi tampaknya sebagian besar kuliah / catatan dll fokus pada mesin standar tetapi mengatakan bahwa mesin kustom sering memiliki kecepatan waktu / ruang dengan mengorbankan ruang / waktu, tanpa mengatakan bagaimana yang dikenakan pada kelas kompleksitas. Saya belum cukup akrab dengan jargon di bidang ini belum menemukan makalah yang menjelaskan ini.

Bingo
sumber
Saya pikir jawaban Anda sangat mirip dengan jawaban postingan ini: Secara umum, apa definisi P, NP, NP-Complete, dan NP-Hard? Lihat itu.
Reza

Jawaban:

9

Algoritma dan mesin tidak didefinisikan dalam pertanyaan Anda dan saya pikir mereka tidak perlu bertanya apa yang ingin Anda tanyakan.

Kelas kompleksitas didefinisikan menggunakan mesin Turing. Itu definisi mereka. Jika Anda ingin membuktikan sesuatu, Anda harus menggunakan definisi ini. Apa pun tentang model lain tidak terkait kecuali Anda membuktikan korespondensi antara model itu dan mesin Turing.

PNPP . Maka jelas bahwa model ini tidak akan sangat setara dengan mesin Turing.

BPP .

BPP=P tetapi kita masih jauh dari membuktikannya.

BQPPP


PNPNP

Kaveh
sumber
Jadi, jika mesin kustom Anda dapat menyelesaikan masalah secara efisien, tetapi tidak dapat ditiru secara efisien oleh Mesin Turing standar, hasil ini tidak relevan dengan P? = NP (bahkan jika saya dapat membangun Mesin ini dalam kehidupan nyata)?
Bingo
Ya itu benar.
Kaveh
Dan kemudian ini akan melanggar tesis Gereja-Turing yang diperluas?
Bingo
Belum tentu.
Kaveh
6

Hanya catatan sepele untuk menggarisbawahi bahwa simulasi mesin Turing yang efisien tidak hanya berarti dapat mensimulasikan perhitungan mesin Turing dan sebaliknya secara efisien (perlambatan waktu polinomial); tetapi juga input / outputnya harus dikonversi secara efisien dari satu model ke model lainnya.

Contoh sepele: jika Anda menemukan perangkat setara Turing yang dapat memecahkan masalah SAT dalam waktu konstan, tetapi digunakan sebagai input tumpukan kelereng (tidak disorot), maka Anda tidak dapat menyimpulkan apa pun. Sama jika perangkat Anda menggunakan input biner tetapi butuh sejumlah langkah eksponensial untuk mengonversi instance SAT ke format input yang digunakannya.

Vor
sumber
3

Pemahaman Anda sangat bagus! Anda juga dapat menemukan lebih banyak info dalam teks jika Anda tertarik, misalnya Pengantar Sipser ke Teori Komputasi.

Ada ide yang disebut Tesis Gereja-Turing yang mengatakan apa pun yang dapat dihitung, entah bagaimana, dapat dihitung menggunakan Mesin Turing. (Itu tidak dapat dibuktikan, tetapi hanya sebuah ide, atau semacam hukum alam yang kita anggap benar).

Saya menyebutkan ini karena ada juga "Tesis Gereja Perpanjangan Diperpanjang" yang mengatakan bahwa apa pun yang dapat dihitung dalam waktu polinom entah bagaimana, dapat dihitung dalam waktu polinomial menggunakan Mesin Turing.

Ada alasan bagus untuk meragukan dugaan ini karena kita tahu tentang algoritma komputasi kuantum yang mendapatkan percepatan yang lebih baik daripada polinomial atas algoritma klasik yang paling dikenal. Namun, selain itu, diperkirakan bahwa mesin klasik apa pun yang dapat Anda buat (tentu saja varian apa pun pada Mesin Turing) tidak dapat secara eksponensial lebih cepat daripada Mesin Turing. Jadi jika "Turing-Equivalent Machine" Anda dapat menjalankan algoritme yang menyelesaikan masalah NP-Complete dalam waktu polinomial, maka P = NP karena saya dapat mengubahnya menjadi algoritma polinomial-waktu untuk masalah yang sama pada TM.

Tetapi jika Anda memikirkan semacam Turing-Equivalent Machine, mungkin salah satu hal pertama yang akan Anda lakukan adalah mencari cara untuk mensimulasikannya dengan TM klasik, dan itu akan memberi tahu Anda jika Anda memiliki konversi polinomial-time atau tidak. Dan jawabannya hampir pasti ya, kecuali mungkin Anda bisa lebih lambat secara eksponensial (tapi tidak lebih cepat - kami pikir, kecuali itu kuantum, maka mungkin).

usul
sumber