Mengapa waktu polinomial disebut "efisien"?


50

Mengapa dalam ilmu komputer setiap kompleksitas yang paling banyak jumlahnya dianggap efisien?

Untuk setiap aplikasi praktis (a) , algoritma dengan kompleksitas jauh lebih cepat daripada algoritma yang berjalan dalam waktu, katakanlah, n 80 , tetapi yang pertama dianggap tidak efisien sementara yang kedua efisien. Dimana logikanya ?!nlognn80

(a) Anggaplah, misalnya, jumlah atom di alam semesta sekitar .1080


3
Saya tidak yakin saya setuju dengan premis Anda. Saya pikir kebanyakan orang akan menganggap menjadi sangat tidak efisien (meskipun tentu saja itu tergantung pada konstanta juga dan pada masalah yang sedang diselesaikan). n80
sepp2k

16
Saya akan menganggap untuk c > 3 sangat tidak efisien. Anda memiliki contoh analisis asimptotik yang diambil dari ekstrem yang tidak masuk akal. Tidak ada algoritma alami (yang saya tahu) dengan n 80 run-time. Namun, ada algoritma alami dengan 2 n run-time untuk beberapa masalah, dan pertanyaan mendasar dalam teori kompleksitas tentang apakah ada algoritma polinomial untuk masalah seperti itu. ncc>3n802n
Joe

5
Saya pikir pertanyaan ini seharusnya tidak diturunkan karena orang tidak setuju dengan premis (dengan asumsi itulah alasannya). Suara naik dan turun seharusnya menjadi indikasi kualitas pertanyaan, bukan isinya (asalkan sesuai topik).
Alex ten Brink

8
@RANG. dan kutipan lengkapnya adalah (penekanan saya): Tesis Cobham menyatakan bahwa P adalah kelas masalah komputasi yang "dipecahkan secara efisien" atau "dapat ditelusuri"; dalam praktiknya, beberapa masalah yang tidak diketahui berada di P memiliki solusi praktis, dan beberapa yang ada di P tidak, tetapi ini adalah aturan praktis yang bermanfaat.
Joe

6
Dalam literatur (CS teoritis), kata "efisien" adalah sinonim dengan "polinomial". Mungkin ini berbeda dengan sub bidang lainnya (lebih praktis).
Ran G.

Jawaban:


32

Perspektif lain tentang "efisiensi" adalah waktu polinomial memungkinkan kita untuk mendefinisikan gagasan "efisiensi" yang tidak bergantung pada model mesin. Secara khusus, ada varian dari tesis Gereja-Turing yang disebut "tesis Gereja-Turing efektif" yang mengatakan bahwa setiap masalah yang berjalan dalam waktu polinomial pada jenis model mesin juga akan berjalan dalam waktu polinomial pada model mesin lain yang sama kuatnya.

Ini adalah pernyataan yang lebih lemah untuk tesis CT umum, dan 'semacam' dilanggar oleh kedua algoritma acak dan algoritma kuantum, tetapi belum dilanggar dalam arti mampu memecahkan masalah NP-hard dalam waktu bersamaan dengan mengubah model mesin.

Ini pada akhirnya adalah alasan mengapa waktu polinomial adalah gagasan populer dalam theoryCS. Namun, kebanyakan orang menyadari bahwa ini tidak mencerminkan "efisiensi praktis". Untuk lebih lanjut tentang ini, posting Dick Lipton tentang ' algoritma galaksi ' adalah bacaan yang bagus.


15
Alasan pragmatis kedua untuk memilih P adalah karena ditutup dengan penambahan, perkalian, dan eksponensial dengan konstanta. Ini nyaman saat membuat algoritma / mesin; jika blok bangunan efisien, maka hasilnya.
Raphael

Saya hanya ingin tahu, apakah ada yang tahu apakah istilah "algoritma galaksi" pernah digunakan dalam praktek?
Juan Bermejo Vega

Istilah itu tidak setua itu. Tapi saya sudah mulai menggunakannya :)
Suresh

24

O(n80)O(nlogn)n>1208925819614629174706176

nlognn80

Misalnya, sebagian besar pustaka untuk perkalian bilangan bulat, misalnya GMP akan menerapkan campuran algoritma, dan memilih algoritma inferior berdasarkan ukuran input pilih algoritma yang secara praktis unggul berdasarkan pada ukuran input, meskipun algoritma ini mungkin inferior tanpa asimptotik. Beberapa algoritma "inferior" asimptotik akan lebih cepat pada ukuran input tertentu, dan akan dipilih melalui algoritma optimal.

O(n2.3737)

Teori TL; DR memperhatikan perilaku asimptotik untuk membandingkan algoritme ketika batas ukuran input digunakan untuk jumlah besar yang sewenang-wenang.


Mereka "memilih algoritma yang lebih rendah"? Bukankah maksud Anda "pilih algoritma superior"?
bitmask

Θ(N2)O(nlgn)

Mengapa kita tidak menganggap algoritma cubic asymptotically "buruk" dan algoritma quadratic asimptotik "baik"? Jawaban ini menimbulkan pertanyaan.
djechlin

2

Jawaban ini akan melihat konteks "gambaran yang lebih besar" dari pertanyaan Anda. Ilmu komputer sebenarnya adalah ilmu yang relatif muda dan agak terbuka dan belum memiliki jawaban yang bagus atau bahkan bagus untuk beberapa pertanyaan mendasar & mendasar. Pertanyaan dasar "apa yang dihitung secara efisien" adalah akurat atau kasar diformalkan dalam CS (tergantung pada pendapat) sebagai masalah P vs NP yang terkenal (atau masalah P vs Exptime yang terkait erat), dan masih terbuka setelah lebih dari empat dekade yang awalnya diperkenalkan oleh Cook / Levin ~ 1970 dan kerja keras oleh para ilmuwan komputer terhebat dunia (dan banyak ahli matematika juga tertarik pada masalah ini sebagai hal yang mendasar).

Jadi dengan kata lain, bahkan dengan definisi kasar "efisien" sebagai waktu P, dan salah satu penghargaan ilmiah bernilai tertinggi - yaitu penghargaan $ 1 juta yang melekat pada masalah selama lebih dari 10 tahun - ilmu komputer bahkan tidak dapat membuktikan bahwa beberapa masalah (dekat dengan batas ini) harus atau tidak harus memiliki algoritma (Ptime) yang efisien. Oleh karena itu definisi tepat "efisien" lebih tepat daripada waktu P tidak diperlukan atau bahkan mungkin saat ini. Jika / ketika dugaan P vs NP diselesaikan dengan satu atau lain cara, definisi yang lebih ketat dari "efisien" mungkin atau mungkin akan dimungkinkan.

Selain itu, orang mungkin merasa bahwa definisi Ptime dari "efisien" bahkan mungkin sedikit "ceroboh", dan kebanyakan ilmuwan komputer mungkin akan setuju, dan hampir semua dari mereka berpikir dugaan P vs NP adalah yang paling penting untuk diselesaikan, untuk titik bahwa mereka bahkan mungkin menganggap pernyataan atau pengamatan ini sebagai sepele .... dengan kata lain, bisa dikatakan, ini adalah pekerjaan yang sedang berjalan / kami sedang mengusahakannya . (bahkan para ilmuwan komputer arus utama bahkan melangkah sejauh ini, hanya setengah bercanda, untuk secara rutin menyebut kesenjangan & kurangnya kemajuan / pemisahan yang pasti sebagai hal yang memalukan .)

Bahkan ada dugaan yang berhubungan erat / secara signifikan lebih kuat dari P vs NP, yaitu NP vs P / poly, yang juga tidak dapat diselesaikan oleh ilmu komputer saat ini. itu dugaan bahwa masalah NP-kali tidak dapat diselesaikan dengan setiap sirkuit "P berukuran", yaitu bahkan tidak terbatas pada mereka sirkuit yang bisa diciptakan oleh algoritma / mesin Turing.

Adapun seberapa keras P vs NP mungkin - ada beberapa alasan kuat untuk berpikir itu mungkin setidaknya sekeras dugaan Riemann yang sangat tua dalam matematika (sekarang 1,5 abad ), karena keduanya telah memiliki penghargaan $ 1 juta yang sama untuk lebih dari satu dekade, dan belum ada yang diselesaikan / pertama.

Jadi dengan kata lain, untuk mendefinisikan secara tepat algoritma apa yang benar-benar "efisien" sebenarnya adalah salah satu masalah terbuka yang paling penting & paling sulit yang ada dalam sains dan matematika teoretis .

Sebenarnya pertanyaan tentang "apa yang dihitung secara efisien" sebenarnya bahkan lebih halus, karena ada varian tesis Church-Turing yang disebut tesis CT P-time, dan tidak diketahui apakah komputasi kuantum benar-benar melanggarnya . Dengan hasil terobosan Shor dari P-time QM, anjak dianggap twist dramatis dalam penelitian ini. Dengan kata lain, masalah apa yang dihitung secara efisien sebenarnya masuk akal turun ke jalan ke prinsip-prinsip fisika yang mendalam, dan berkaitan dengan apakah komputasi kuantum dapat menghitung lebih efisien daripada perhitungan klasik, yang juga merupakan masalah yang umumnya terbuka dalam CS teoritis dan fisika maju.

Jadi orang bahkan dapat menambahkan bahwa P vs NP & pertanyaan tentang komputasi yang efisien mungkin sangat penting atau mendasar untuk di-tambah dengan CS dan matematika- fisika .

[1] Masalah P vs NP, wikipedia

[2] Masalah hadiah milenium

[3] Kelas P / Poli, wikipedia

[4] Algoritma Shor


koreksi: P vs Pspace, bukan P vs ExpTime
vzn

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.