Pengantar
Sejak hari-hari pertama ilmu komputer — bidang yang dikenal dengan pendekatan metodis untuk pemecahan masalah — keacakan telah memainkan peran penting. Program pertama yang dijalankan pada komputer elektronik tujuan umum pertama di dunia menggunakan keacakan untuk mensimulasikan proses nuklir. Pendekatan serupa telah digunakan dalam astrofisika, ilmu iklim, dan ekonomi. Dalam semua kasus ini, mencolokkan nomor acak pada langkah-langkah tertentu dalam algoritme membantu peneliti memperhitungkan ketidakpastian tentang banyak cara yang dapat dimainkan oleh proses kompleks.
Tetapi menambahkan keacakan ke dalam algoritme juga dapat membantu Anda menghitung jawaban yang benar untuk pertanyaan benar-salah yang tidak ambigu. “Anda hanya mengatakan 'Oke, biarkan saya menyerah, biarkan saya tidak mencoba, biarkan saya memilih sesuatu secara acak,'” kata Eric Blais, seorang ilmuwan komputer di University of Waterloo. "Untuk terlalu banyak masalah, itu akhirnya menjadi pendekatan yang berhasil."
Katakanlah Anda ingin menentukan apakah suatu bilangan prima (hanya dapat dibagi oleh 1 dan dirinya sendiri) atau komposit (juga dapat dibagi oleh bilangan bulat lainnya). Anda dapat mencoba membaginya dengan semua faktor yang mungkin, tetapi untuk jumlah yang besar, metode "kekerasan" ini dan algoritme pemfaktoran lainnya sangat lambat. Dan jika angkanya ternyata gabungan, algoritme pemfaktoran memberi tahu Anda nilai pembaginya — lebih banyak informasi daripada yang Anda minta. Jika Anda hanya peduli pada "primalitas" angka, apakah ada algoritme yang lebih efisien?
Ada jika Anda menggunakan keacakan. Ide dasarnya kembali ke hasil dari ahli matematika Prancis abad ke-17 Pierre de Fermat, yang dikenal sebagai "teorema kecil.” Fermat menganggap dua bilangan bulat — sebut saja mereka N dan x. Dia membuktikan bahwa jika N adalah bilangan prima, maka xN - x selalu merupakan kelipatan dari N, terlepas dari nilai x. Setara, jika xN - x bukan kelipatan dari N, kemudian N tidak bisa menjadi bilangan prima. Tetapi pernyataan kebalikannya tidak selalu benar: Jika xN - x adalah kelipatan dari N, kemudian N biasanya tetapi tidak selalu prima.
Untuk mengubah teorema kecil Fermat menjadi tes primality, ambil saja N yang Anda minati, pilih x secara acak, dan masukkan kedua angka tersebut xN - x. Jika hasilnya bukan kelipatan N, lalu selesai: Anda tahu itu N pasti komposit. Jika hasilnya kelipatan N, kemudian N mungkin prima. Sekarang pilih acak lainnya x dan coba lagi. Dalam kebanyakan kasus, setelah beberapa lusin percobaan, Anda dapat menyimpulkan dengan hampir pasti N adalah bilangan prima. "Anda melakukan ini beberapa kali," kata Blais, "dan entah bagaimana sekarang kemungkinan Anda mengalami kesalahan lebih kecil daripada kemungkinan asteroid menabrak Bumi antara sekarang dan saat Anda melihat jawabannya."
Pertama keutamaan tes menggunakan algoritma acak (berdasarkan penyempurnaan teorema kecil Fermat) mengantarkan era baru. Masalah demi masalah ternyata jauh lebih mudah dipecahkan dengan keacakan daripada dengan algoritme nonacak, atau deterministik. Kuncinya adalah membingkai ulang setiap masalah sebagai masalah yang dapat diselesaikan dengan cepat dengan nilai yang sesuai untuk beberapa nomor x, lalu buktikan bahwa apa saja x akan dilakukan. Solusinya bekerja meskipun para peneliti tidak tahu bagaimana menentukan apakah pilihan tertentu itu baik. Matematikawan bercanda bahwa tantangan yang tidak biasa ini mirip dengan menemukan jerami di tumpukan jerami.
Tetapi keberhasilan ini membuat para peneliti bertanya-tanya mengapa keacakan harus membantu dengan masalah seperti pengujian primality, yang semuanya tentang menemukan pola non-acak yang tersembunyi. "Ada sesuatu yang agak paradoks tentang itu," kata Rahul Santanam, seorang ilmuwan komputer di Universitas Oxford. “Keacakan murni membantu Anda memahami struktur yang memecahkan masalah.”
Pada tahun 1994, ilmuwan komputer Noam Nisan dan Avi Wigderson membantu mengatasi kebingungan ini dengan menunjukkan bahwa keacakan, meskipun berguna, mungkin tidak diperlukan. Mereka terbukti bahwa salah satu dari dua hal pasti benar: Semua masalah yang dapat diselesaikan secara efisien menggunakan keacakan juga memiliki algoritme deterministik yang cepat, atau banyak masalah yang terkenal sulit ternyata mudah secara diam-diam. Ilmuwan komputer menganggap kemungkinan kedua sangat tidak mungkin.
Faktanya, ilmuwan komputer sering merasa lebih mudah untuk mengembangkan algoritme deterministik dengan memulai dengan versi acak dan kemudian "mengacaknya". “Begitu saya memilikinya, tiba-tiba saya melihat cara yang sangat jelas untuk membuatnya deterministik,” kata Eli Upfal, seorang ilmuwan komputer di Brown University. "Tetapi jika saya tidak memikirkannya secara acak sebagai pertanyaan probabilistik, saya mungkin tidak akan memikirkannya."
Hampir 30 tahun setelah bukti tengara Nisan dan Wigderson, algoritma acak tetap sepopuler sebelumnya, karena de-randomisasi dapat menjadi rumit dan algoritma deterministik seringkali hanya efisien pada prinsipnya. Baru pada tahun 2002 tiga peneliti menemukan cara untuk melakukan de-randomisasi pengujian primalitas, dan dalam praktiknya algoritma mereka jauh lebih lambat daripada algoritma acak terbaik. Untuk masalah lain, bahkan sulit untuk mengetahui dari mana harus memulai — algoritme yang paling terkenal memiliki masalah ayam-dan-telur yang hanya dapat Anda hindari melalui keacakan.
Itulah kasus terobosan terbaru dalam teori graf. Tahun lalu, tiga ilmuwan komputer berkembang algoritma cepat untuk menemukan jalur terpendek melalui grafik — jaringan node yang dihubungkan oleh segmen garis — yang bekerja bahkan ketika beberapa segmen mengurangi total panjang jalur daripada menambahkannya. Algoritma mereka melibatkan transformasi grafik menjadi lebih sederhana dengan menghapus segmen tertentu, memecahkan masalah untuk grafik yang disederhanakan, dan kemudian memperhitungkan segmen yang dihapus. Mereka dapat membuktikan bahwa algoritme akan berjalan cepat jika tidak ada jalur terpendek yang melewati terlalu banyak segmen yang dihapus — jika tidak, langkah terakhir akan memakan waktu terlalu lama.
Tapi bagaimana cara memutuskan segmen mana yang akan dihapus? Tidak hanya sulit untuk menemukan kumpulan segmen yang ideal secara deterministik — itu tidak mungkin. Himpunan tergantung pada jalur mana yang terpendek, masalah yang coba dipecahkan oleh ketiga peneliti. Tetapi meskipun mereka tidak dapat menemukan kumpulan segmen terbaik untuk dihapus, mereka dapat membuktikan bahwa sebagian besar pilihan acak akan cukup bagus, dan itu cukup untuk memutus lingkaran referensi diri. Dalam kasus yang jarang terjadi di mana algoritme membuat pilihan yang tidak menguntungkan dan macet di langkah terakhir, mereka dapat berhenti dan menjalankannya lagi.
“Keacakan pada dasarnya adalah cara untuk memastikan bahwa ada sesuatu yang benar tentang solusi optimal tanpa mengetahui solusi optimalnya,” kata Harun Bernstein, salah satu penulis algoritma baru.
Keacakan telah menemukan kegunaan lain yang tak terhitung jumlahnya dalam ilmu komputer, dari kriptografi hingga teori permainan hingga pembelajaran mesin. Kemungkinannya, itu ada di sini untuk tinggal.
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- Platoblockchain. Intelijen Metaverse Web3. Pengetahuan Diperkuat. Akses Di Sini.
- Sumber: https://www.quantamagazine.org/how-randomness-improves-algorithms-20230403/
- :adalah
- ][P
- $NAIK
- 1
- 1994
- a
- Tentang Kami
- tentang itu
- AC
- Akun
- akuntansi
- Setelah
- algoritma
- algoritma
- Semua
- selalu
- dan
- Lain
- menjawab
- pendekatan
- pendekatan
- sesuai
- ADALAH
- AS
- Asteroid
- At
- penulis
- kembali
- berdasarkan
- dasar
- Pada dasarnya
- BE
- karena
- mulai
- makhluk
- TERBAIK
- antara
- Bit
- yg tak dpt bergerak
- Istirahat
- terobosan
- by
- menghitung
- panggilan
- CAN
- yang
- kasus
- kasus
- tertentu
- kepastian
- menantang
- kesempatan
- pilihan
- pilihan
- Pilih
- Iklim
- kompleks
- komputer
- Komputer Ilmu
- menyimpulkan
- kebingungan
- terhubung
- Mempertimbangkan
- dianggap
- bisa
- kriptografi
- Hari
- memutuskan
- pastinya
- menunjukkan
- tergantung
- Menentukan
- mengembangkan
- dikembangkan
- sulit
- turun
- lusin
- setiap
- bumi
- mudah
- Ekonomi
- efisien
- efisien
- antara
- Elektronik
- berakhir
- cukup
- memastikan
- Era
- kesalahan
- Bahkan
- pERNAH
- faktor
- FAST
- beberapa
- bidang
- Menemukan
- temuan
- Pertama
- Untuk
- ditemukan
- Perancis
- dari
- permainan
- tujuan umum
- mendapatkan
- Memberikan
- diberikan
- Pergi
- baik
- grafik
- menangani
- Sulit
- Memiliki
- memiliki
- membantu
- membantu
- membantu
- membantu
- di sini
- Tersembunyi
- memukul
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- HTTPS
- i
- ide
- ideal
- penting
- mustahil
- in
- informasi
- tertarik
- terlibat
- IT
- NYA
- Diri
- jpg
- kunci
- Tahu
- Mengetahui
- dikenal
- tengara
- besar
- Terakhir
- Tahun lalu
- pengetahuan
- Panjang
- 'like'
- baris
- sedikit
- Panjang
- melihat
- mesin
- Mesin belajar
- terbuat
- membuat
- MEMBUAT
- banyak
- matematika
- metode
- metodis
- lebih
- lebih efisien
- paling
- beberapa
- Dekat
- perlu
- New
- node
- nuklir
- jumlah
- nomor
- Jelas
- of
- on
- ONE
- optimal
- Lainnya
- jika tidak
- Oxford
- Lulus
- path
- pola
- memilih
- Pierre
- Tempat
- plato
- Kecerdasan Data Plato
- Data Plato
- Bermain
- dimainkan
- steker
- Populer
- kemungkinan
- mungkin
- praktek
- cukup
- Perdana
- prinsip
- mungkin
- Masalah
- pemecahan masalah
- masalah
- proses
- program
- bukti
- Rasakan itu
- terbukti
- Majalah kuantitas
- pertanyaan
- Pertanyaan
- segera
- acak
- Acak
- keserampangan
- LANGKA
- agak
- baru
- Bagaimanapun juga
- tinggal
- peneliti
- mengakibatkan
- Peran
- Run
- Tersebut
- Ilmu
- ilmuwan
- ilmuwan
- Kedua
- segmen
- set
- harus
- Siam
- mirip
- disederhanakan
- hanya
- sejak
- lambat
- kecil
- larutan
- MEMECAHKAN
- Memecahkan
- Memecahkan
- beberapa
- sesuatu
- tertentu
- Mulai
- Pernyataan
- tinggal
- Langkah
- Tangga
- berhenti
- struktur
- sukses
- Mengambil
- uji
- pengujian
- bahwa
- Grafik
- Grafik
- mereka
- Mereka
- Ini
- hal
- tiga
- Melalui
- kali
- untuk
- terlalu
- Total
- mengubah
- benar
- MENGHIDUPKAN
- Berbalik
- Ketidaktentuan
- universitas
- University of Oxford
- menggunakan
- biasanya
- nilai
- Nilai - Nilai
- versi
- Cara..
- cara
- jaringan
- apakah
- yang
- dengan
- tanpa
- bekerja
- dunia
- akan
- tahun
- tahun
- Kamu
- Anda
- zephyrnet.dll