Saya telah berupaya memperkenalkan beberapa hasil dari kompleksitas komputasi ke dalam biologi teoretis, terutama evolusi & ekologi , dengan tujuan menjadi menarik / berguna bagi para ahli biologi. Salah satu kesulitan terbesar yang saya hadapi adalah membenarkan kegunaan analisis kasus terburuk asimptotik untuk batas bawah. Apakah ada referensi panjang artikel yang membenarkan batas bawah dan analisis kasus terburuk asimptotik kepada khalayak ilmiah?
Saya benar-benar mencari referensi yang baik yang bisa saya tunda dalam tulisan saya daripada harus melalui pembenaran di ruang terbatas yang saya miliki (karena itu bukan titik pusat artikel). Saya juga mengetahui jenis dan paradigma analisis lainnya, jadi saya tidak mencari referensi yang mengatakan kasus terburuk adalah analisis "terbaik" (karena ada pengaturan ketika sangat tidak), tetapi tidak completeletely berguna: masih bisa memberi kita wawasan teoritis yang berguna dalam perilaku aktual algoritma pada aktual input. Penting juga tulisan ini ditujukan untuk para ilmuwan umum dan bukan hanya insinyur, ahli matematika, atau ilmuwan komputer.
Sebagai contoh, esai Tim Roughgarden yang memperkenalkan teori kompleksitas kepada para ekonom berada di jalur yang benar untuk apa yang saya inginkan. Namun, hanya bagian 1 dan 2 yang relevan (sisanya terlalu spesifik secara ekonomi) dan audiens yang dituju sedikit lebih nyaman dengan pemikiran teorema-lemma-bukti daripada kebanyakan ilmuwan [1] .
Detail
Dalam konteks dinamika adaptif dalam evolusi , saya telah bertemu dua jenis resistensi khusus dari ahli biologi teoretis:
[A] "Mengapa saya harus peduli pada perilaku untuk sewenang-wenang ? Saya sudah tahu bahwa genom memiliki n = 3 ∗ 10 9 pasangan basa (atau mungkin n = 2 ∗ 10 4 gen) dan tidak lebih."
Ini relatif mudah untuk disingkirkan dengan argumen "kita bisa membayangkan menunggu detik, tetapi bukan 2 10 9 ". Tapi, argumen yang lebih rumit mungkin mengatakan bahwa "yakin, Anda mengatakan Anda hanya peduli pada n spesifik , tetapi teori Anda tidak pernah menggunakan fakta ini, mereka hanya menggunakan itu besar tapi terbatas, dan itu adalah teori Anda yang sedang kami pelajari dengan analisis asimptotik ".
[B] "Tetapi Anda hanya menunjukkan bahwa ini sulit dengan membangun lansekap spesifik ini dengan gadget ini. Mengapa saya harus peduli dengan ini alih-alih rata-rata?"
Ini adalah kritik yang lebih sulit untuk diatasi, karena banyak alat yang biasa digunakan orang dalam bidang ini berasal dari fisika statistik di mana seringkali aman untuk mengasumsikan distribusi yang seragam (atau sederhana tertentu lainnya). Tetapi biologi adalah "fisika dengan sejarah" dan hampir semuanya tidak setimbang atau 'tipikal', dan pengetahuan empiris tidak cukupuntuk membenarkan asumsi tentang distribusi melalui input. Dengan kata lain, saya ingin argumen yang mirip dengan yang digunakan terhadap analisis kasus rata-rata distribusi seragam dalam rekayasa perangkat lunak: "kami memodelkan algoritme, kami tidak dapat membuat model yang masuk akal tentang bagaimana pengguna akan berinteraksi dengan algoritma atau apa distribusi mereka. input akan menjadi; itu untuk psikolog atau pengguna akhir, bukan kita. " Kecuali dalam kasus ini, sains tidak berada pada posisi di mana setara dengan 'psikolog atau pengguna akhir' ada untuk mengetahui distribusi yang mendasarinya (atau jika itu bahkan bermakna).
Catatan dan pertanyaan terkait
- Tautan ini membahas ilmu kognitif, tetapi pola pikirnya serupa dalam biologi. Jika Anda menelusuri Evolution atau Journal of Theoretical Biology , Anda jarang akan melihat teorema-lemma-proof, dan ketika Anda melakukannya biasanya akan hanya perhitungan daripada sesuatu seperti bukti keberadaan atau konstruksi rumit.
- Paradigma untuk analisis kompleksitas algoritma
- Jenis lain dari analisis waktu berjalan selain kasus terburuk, rata-rata, dll?
- Ekologi dan evolusi melalui lensa algoritmik
- Mengapa para ekonom harus peduli pada kompleksitas komputasi
sumber
Jawaban:
Menurut saya pribadi (dan bias) adalah bahwa analisis kasus terburuk asimptotik adalah batu loncatan historis untuk jenis analisis yang lebih praktis berguna. Karena itu tampaknya sulit untuk dibenarkan kepada praktisi.
Membuktikan batasan untuk kasus terburuk seringkali lebih mudah daripada membuktikan batasan untuk bahkan "bagus" definisi kasus rata-rata. Analisis asimptotik juga seringkali jauh lebih mudah daripada membuktikan batas yang cukup ketat. Analisis asimptotik kasus terburuk adalah tempat yang tepat untuk memulai.
Karya Daniel Spielman dan Shanghua Teng tentang analisis Simplex yang mulus bagi saya merupakan pertanda dari apa yang bisa terjadi ketika kita mulai mendapatkan pemahaman yang lebih baik tentang bentuk masalah: menangani kasus terburuk terlebih dahulu memungkinkan pemahaman yang lebih bernuansa menjadi dikembangkan. Lebih lanjut, seperti yang disarankan Aaron Roth dalam komentar, jika perilaku "biasa" suatu sistem secara signifikan berbeda dari kasus terburuknya, maka sistem tersebut belum sepenuhnya ditentukan dan diperlukan lebih banyak pekerjaan untuk meningkatkan model. Jadi melampaui kasus terburuk umumnya tampak penting sebagai tujuan jangka panjang.
Sejauh analisis asimptotik yang bersangkutan, biasanya berfungsi untuk menjaga bukti panjang dan berantakan dari detail yang mengganggu. Sayangnya ada saat ini tampaknya tidak ada cara untuk menghargai pekerjaan yang membosankan mengisi rincian untuk mendapatkan konstanta yang sebenarnya, sehingga sepertinya jarang dilakukan. (Batas halaman juga berfungsi melawan hal ini.) Analisis yang cermat terhadap detail ikatan asimptotik telah menyebabkan algoritma yang sebenarnya, dengan batasan yang baik pada konstanta, jadi saya pribadi ingin melihat lebih banyak dari jenis pekerjaan ini. Mungkin jika lebih banyak bukti diformalkan menggunakan sistem asisten bukti, maka konstanta dapat diperkirakan dengan upaya tambahan yang lebih sedikit. (Atau batas pada konstanta, sepanjang garis Gower terikat untuk Szemerédi Regularity Lemma, mungkin menjadi lebih rutin.) Ada juga cara untuk membuktikan batas bawah yang bebas dari konstanta, dengan menggunakan model mesin yang lebih eksplisit (seperti automata finite-state deterministik). Namun, batas bawah yang tepat (hampir) persis seperti itu untuk model komputasi yang lebih umum mungkin memerlukan banyak pekerjaan, atau berada di luar jangkauan sama sekali. Hal ini tampaknya telah dikejar pada ~ 1958–1973 selama masa kejayaan teori automata pertama, tetapi sejauh yang saya tahu sejak itu sebagian besar ditinggalkan sendirian.
sumber
Batas bawah dan analisis kasus terburuk biasanya tidak berjalan bersama. Anda tidak mengatakan algoritma akan membutuhkan setidaknya waktu eksponensial dalam kasus terburuk, oleh karena itu buruk. Anda mengatakan itu bisa memakan waktu paling linier dalam kasus terburuk, dan karenanya bagus. Yang pertama hanya berguna jika Anda akan menjalankan algoritma Anda pada semua input yang mungkin, dan bukan hanya input rata-rata.
Jika Anda ingin menggunakan batas bawah untuk menunjukkan kejahatan, maka Anda ingin analisis kasus terbaik atau analisis kasus rata-rata. Anda dapat menyederhanakan hal-hal dengan mengandalkan titik @ PeterShor yang terburuk dan rata-rata sering sangat mirip, dan memberikan daftar algoritma algoritma yang benar. (Mis: semua jenis klasik selain quicksort.)
Adapun menunjukkan bahwa asimptotik penting jika dibandingkan dengan input konstan dan faktor konstan, artikel favorit saya tentang topik ini adalah Jon Bentley "Pemrograman mutiara: teknik desain algoritma". Dia menyajikan empat solusi berbeda untuk masalah array sederhana, dan menunjukkan bagaimana pendekatan linear memusnahkan yang kubik. Dia menyebut mejanya "The Tyranny of Asymptotics", setelah istilah yang digunakan oleh fisikawan untuk ketidakterapan persamaan roket. Saya menggunakan contoh ini untuk memotivasi pencarian algoritma yang lebih baik untuk siswa pra-perguruan tinggi.
Akankah ilmuwan non-komputer membaca artikel yang berisi kode, dan tahu untuk melewatkan detail level rendah untuk mendapatkan gambaran besar? Saya tidak tahu Mungkin ada presentasi yang lebih baik di tempat lain. Tapi saya pikir ini adalah sumber yang layak untuk dikutip.
Dan jika mereka berpendapat bahwa mereka tidak peduli dengan n besar yang sewenang-wenang, minta mereka menjalankan Fibonacci rekursif tanpa memo pada 3 * 10 9 pasangan basa, dan katakan itu O (1) karena ukuran urutan DNA ditetapkan. ;)
sumber
banyak yang setuju bahwa ini adalah topik penting untuk disurvei / dibahas tetapi tampaknya belum banyak. beberapa referensi dengan beragam gaya / liputan / audiensi / formalitas tidak persis seperti yang diminta tetapi agak dekat (paling baik dilihat online sejauh ini pada pencarian sedang, berharap untuk mendengar lebih jauh dari yang lebih baik; lebih banyak catatan di bawah):
Kompleksitas algoritma Atkinson (sayangnya hanya satu referensi untuk biologi di koran, tetapi mungkin cukup pada istilah sains / teknik yang lebih umum)
Kompleksitas dan Algoritma J. Diaz. 100 slide. luas; seseorang dapat mengutip yang relevan pada khususnya.
dengan kata lain apakah ada semacam pengantar / survei / tinjauan umum tentang kompleksitas teori lensa dalam kombinasi dekat / konjungsi / pendamping dengan lensa algoritmik maju dalam sains, seperti "teori kompleksitas untuk ilmuwan, insinyur, dan peneliti" ?
ada referensi yang baik pada "lensa algoritmik" yang telah Anda sebutkan sebelumnya, misalnya Papadimitriou tetapi tampaknya tidak ada referensi yang sangat memuaskan oleh seorang ahli di bidang yang telah ditulis pada "lensa kompleksitas" yang terakhir ... namun (mungkin beberapa "elit " anggota situs ini akan menganggap itu sebagai proyek buku atau kertas mereka berikutnya).
perhatikan juga ada banyak referensi tentang relevansi P vs NP di luar teori kompleksitas & dalam bidang ilmiah lainnya yang dapat digunakan agak untuk tujuan ini. akan menambahkannya di komentar jika ada minat.
sumber