Rumah Keuangan Pribadi 10 Algoritme algoritmik Namun Memecahkan - dummies

10 Algoritme algoritmik Namun Memecahkan - dummies

Daftar Isi:

Video: Bagaimana cara mudah menulis Algoritma | Uraian Deskripsi - Flowchart 2024

Video: Bagaimana cara mudah menulis Algoritma | Uraian Deskripsi - Flowchart 2024
Anonim

Algoritma memang telah ada selama berabad-abad, jadi Anda akan berpikir bahwa para ilmuwan pasti telah menemukan dan menyelesaikan setiap algoritma sekarang. Sayangnya, sebaliknya adalah benar. Memecahkan algoritma tertentu sering menyajikan beberapa pertanyaan lagi yang tidak dapat dipecahkan oleh algoritme dan itu tidak tampak jelas sampai seseorang menemukan solusinya. Algoritma adalah serangkaian langkah yang digunakan untuk memecahkan masalah, dan Anda seharusnya tidak membingungkan mereka dengan entitas lain, seperti persamaan. Algoritma tidak pernah menjadi solusi untuk mencari suatu masalah. Tidak ada yang akan menciptakan serangkaian langkah untuk memecahkan masalah yang belum ada (atau mungkin tidak pernah ada).

Daftar ini adalah tentang masalah algoritmik yang akan berguna jika seseorang menemukan solusi untuk mereka.

Menangani pencarian teks

Banyak teks pencarian melibatkan penggunaan ekspresi reguler - semacam singkatan yang memberi tahu komputer apa yang harus dicari. Tata bahasa yang digunakan untuk ekspresi reguler bergantung pada bahasa atau aplikasi, namun Anda menemukan ekspresi reguler yang digunakan di sejumlah tempat, termasuk pengolah kata, aplikasi email, dialog pencarian, dan berbagai tempat lain yang Anda perlukan untuk memberikan pencarian yang tepat. istilah untuk berbagai item teks.

Salah satu masalah saat ini dengan ekspresi reguler adalah sepertinya setiap lingkungan aplikasi memiliki seperangkat aturan serupa, namun hanya dengan perbedaan yang cukup untuk membuat istilah pencarian menjadi sulit. Masalah ketinggian bintang umum bertujuan untuk mengetahui apakah sintaks ekspresi reguler umum ada. Jika demikian, algoritma yang dihasilkan akan memungkinkan seseorang untuk belajar hanya satu metode untuk menciptakan ekspresi reguler untuk melakukan pencarian.

Membedakan kata

Saat bekerja dengan karakter, komputer melihat angka, bukan huruf. Jumlahnya sebenarnya hanya serangkaian 0s dan 1s ke komputer dan sebenarnya tidak ada artinya. Menggabungkan karakter ke dalam string hanya membuat rangkaian 0s dan 1s lebih lama. Akibatnya, membandingkan dua senar, sesuatu yang bisa dilakukan manusia sekilas, bisa memakan waktu di dalam komputer, dan kebingungan mungkin terjadi antara konjugasi. Misalnya, kecuali jika Anda berhati-hati dalam menyusun algoritme, komputer bisa membingungkan

mendaftar dan mendengarkan. Yang lebih penting, komputer memerlukan waktu untuk membedakan keduanya. Masalah memisahkan kata kunci berusaha menemukan algoritma sekecil mungkin (sebuah robot deterministik terbatas, DFN, dalam kasus ini) untuk melakukan pemisahan kata.Tujuannya adalah untuk menerima satu kata dan menolak yang lain, diberi dua kata dengan panjang tertentu. Menentukan apakah sebuah aplikasi akan berakhir

Salah satu masalah yang diajukan oleh Alan Turing pada tahun 1936 adalah apakah ada algoritma, yang diberi deskripsi tentang suatu program dan sebuah masukan, dapat menentukan apakah program tersebut pada akhirnya akan berhenti (the

menghentikan masalah). Saat bekerja dengan aplikasi sederhana, mudah untuk menentukan dalam banyak kasus apakah program akan berhenti atau terus berjalan dalam lingkaran tanpa henti. Namun, seiring dengan meningkatnya kompleksitas program, menentukan hasil menjalankan program dengan masukan yang diberikan menjadi lebih sulit. Mesin Turing tidak bisa membuat keputusan ini; Hasilnya adalah kode buggy dengan loop tak terbatas. Tidak ada jumlah pengujian yang menggunakan teknologi terkini yang dapat memecahkan masalah ini. Sebuah hypercomputer adalah model komputasi yang melampaui mesin Turing untuk memecahkan masalah seperti masalah terputus-putus. Namun, mesin semacam itu tidak mungkin menggunakan teknologi terkini. Jika memungkinkan, Anda bisa menanyai mereka semua jenis imponderables yang saat ini tidak dapat dijawab oleh komputer. Artikel ini memberi Anda gagasan bagus tentang apa yang akan terjadi jika seseorang mampu memecahkan masalah ini.

Membuat dan menggunakan fungsi satu arah

Fungsi satu arah adalah fungsi yang mudah digunakan untuk mendapatkan jawaban dalam satu arah, namun hampir tidak mungkin digunakan dengan kebalikan dari jawaban itu. Dengan kata lain, Anda menggunakan fungsi satu arah untuk menciptakan sesuatu seperti hash yang akan muncul sebagai bagian dari solusi untuk kriptografi, identifikasi pribadi, otentikasi, atau kebutuhan keamanan data lainnya.

Keberadaan fungsi satu arah kurang misterius dan lebih merupakan masalah pembuktian. Banyak sistem telekomunikasi, e-commerce, dan e-banking saat ini mengandalkan fungsi yang konon salah satu cara, namun tidak ada yang benar-benar tahu apakah itu benar-benar salah satu cara. Adanya fungsi satu arah saat ini merupakan hipotesis, bukan teori. Jika seseorang dapat membuktikan bahwa fungsi satu arah ada, masalah keamanan data akan lebih mudah dipecahkan dari perspektif pemrograman.

Mengalikan bilangan sangat besar

Angka benar-benar besar ada di banyak tempat. Misalnya, pertimbangkan untuk melakukan perhitungan yang melibatkan jarak ke Mars, atau mungkin Pluto. Metode saat ini memang ada untuk melakukan perkalian pada jumlah yang sangat besar, namun cenderung lambat karena membutuhkan beberapa operasi untuk menyelesaikannya. Masalahnya terjadi bila jumlahnya terlalu besar agar sesuai dengan register prosesor. Pada saat itu, perbanyakan harus terjadi dalam lebih dari satu langkah, yang memperlambat banyak hal. Solusi saat ini meliputi:

algoritma perkalian kompleks Gauss

  • perbanyakan Karatsuba
  • Toom-Cook
  • Metode transformasi Fourier
  • Meskipun banyak metode yang ada saat ini menghasilkan hasil yang dapat diterima, mereka semua membutuhkan waktu, dan Bila Anda memiliki banyak perhitungan untuk dilakukan, masalah waktu bisa menjadi sangat penting. Akibatnya, jumlah perkalian dalam jumlah besar merupakan salah satu masalah yang membutuhkan solusi lebih baik daripada yang ada saat ini.

Membagi sumber daya secara setara

Membagi sumber daya sama-sama mungkin tidak tampak sulit, tapi manusia, karena tipe yang iri, mungkin melihat sumber daya itu tidak seimbang kecuali Anda dapat menemukan cara untuk meyakinkan semua orang bahwa pembagian itu memang adil. Ini adalah masalah pemotongan kue iri. Tentu saja, saat Anda memotong kue, betapapun Anda berusaha melakukannya, selalu ada persepsi bahwa pembagian itu tidak adil. Menciptakan pembagian sumber daya yang adil sangat penting dalam kehidupan sehari-hari untuk meminimalkan perselisihan antar pemangku kepentingan dalam organisasi mana pun, membuat setiap orang lebih efisien.

Dua solusi sudah ada untuk masalah pemotongan kue iri dengan sejumlah orang tertentu, namun tidak ada solusi umum. Bila ada dua orang yang terlibat, yang pertama memotong kue dan yang kedua memilih potongan pertama. Dengan cara ini, kedua belah pihak yakin akan adanya pembagian yang setara. Masalahnya menjadi lebih sulit dengan tiga orang, tapi Anda bisa mencoba solusi Selfridge-Conway untuk masalah ini. Namun, setelah Anda sampai ke empat orang, tidak ada solusi.

Mengurangi waktu perhitungan jarak edit

Jarak edit

antara dua senar adalah jumlah operasi yang diperlukan untuk mentransformasikan satu string ke string lainnya. Perhitungan jarak berkisar pada operasi jarak jauh Levenshtein, yaitu pemindahan, penyisipan, atau penggantian karakter pada string. Teknik tertentu ini melihat penggunaan dalam antarmuka bahasa alami, urutan DNA kuantifikasi, dan segala macam tempat lain di mana Anda dapat memiliki dua senar serupa yang memerlukan semacam perbandingan atau modifikasi. Sejumlah solusi untuk masalah ini saat ini ada, semuanya sangat lambat. Sebenarnya, kebanyakan dari mereka mengambil waktu eksponensial, sehingga waktu yang dibutuhkan untuk melakukan transformasi dengan cepat menambahkan sampai pada titik di mana manusia dapat melihat jeda dalam pengolahan input. Jeda tidak begitu buruk saat menggunakan pengolah kata yang melakukan pemeriksaan kata otomatis dan mengubah kata salah eja menjadi benar. Namun, saat menggunakan antarmuka suara, jeda bisa menjadi sangat mencolok dan menyebabkan operator manusia melakukan kesalahan. Mengatasi masalah dengan cepat

Saat pembelajaran mesin lepas landas dan kami menghitung lebih banyak lagi tentang komputer untuk memecahkan masalah, masalah seberapa cepat komputer dapat memecahkan masalah menjadi sangat penting. Masalah P versus NP hanya menanyakan apakah komputer dapat memecahkan masalah dengan cepat saat ia dapat memverifikasi solusinya dengan cepat. Dengan kata lain, jika komputer dapat dengan tepat memastikan bahwa respons manusia terhadap suatu masalah benar dalam waktu polinomial atau kurang, mungkinkah juga memecahkan masalah itu sendiri dalam waktu polinomial atau kurang?

Pertanyaan ini awalnya dibahas pada tahun 1950 oleh John Nash dalam surat kepada National Security Agency (NSA) dan sekali lagi dalam surat antara Kurt Gödel dan John von Neumann. Selain belajar mesin (dan AI pada umumnya), masalah khusus ini menjadi perhatian banyak bidang lainnya, termasuk matematika, kriptografi, penelitian algoritma, teori permainan, pemrosesan multimedia, filsafat, dan ekonomi.

Memainkan game paritas

Pada awalnya, memecahkan permainan mungkin tidak terlalu berguna dalam kehidupan nyata. Ya, permainan itu menyenangkan dan menarik, tapi tidak benar-benar memberi latar belakang untuk melakukan sesuatu yang berguna - paling tidak, itulah teori umum. Namun, teori permainan tidak berperan dalam sejumlah besar skenario kehidupan nyata, banyak di antaranya melibatkan proses kompleks yang dapat dipahami seseorang lebih mudah daripada permainan daripada proses aktual. Dalam kasus ini, permainan membantu orang memahami verifikasi otomatis dan sintesis pengendali, antara lain. Anda bisa membaca lebih banyak tentang permainan paritas. Bahkan, Anda bisa memainkannya.

Memahami masalah spasial

Untuk memasukkan masalah ini ke dalam konteks, pikirkan tentang memindahkan kotak di sekitar gudang atau beberapa situasi lain di mana Anda perlu mempertimbangkan ruang tempat benda bergerak. Jelas, jika Anda memiliki banyak kotak di gudang besar dan mereka semua memerlukan forklift untuk dijemput, Anda tidak ingin mencoba untuk mencari tahu bagaimana cara menyimpannya secara optimal dengan mengatur ulang secara fisik mereka. Di sinilah Anda perlu mengatasi masalah ini dengan memvisualisasikan sebuah solusi.

Namun, pertanyaannya adalah apakah semua masalah spasial memiliki solusinya. Dalam kasus ini, pikirkan salah satu teka-teki anak-anak yang telah Anda gambar bersama dengan menggeser ubin kecil di sekitar. Sepertinya ada solusi yang harus ada dalam semua kasus, namun dalam beberapa situasi, titik awal yang buruk dapat menghasilkan situasi yang tidak memiliki solusinya.

Matematikawan seperti Sam Loyd sering menggunakan teka-teki untuk menunjukkan masalah matematika yang kompleks, beberapa di antaranya tidak memiliki solusi saat ini. Mengunjungi situs ini sangat menyenangkan karena Anda tidak hanya mendapatkan hiburan gratis tapi juga, makanan untuk dipikirkan. Isu yang diangkat oleh teka-teki ini memang memiliki aplikasi praktis, namun disajikan dengan cara yang menyenangkan.

10 Algoritme algoritmik Namun Memecahkan - dummies

Pilihan Editor

Rakit Menu untuk Situs Anda di Flash - dummies

Rakit Menu untuk Situs Anda di Flash - dummies

Jika Anda telah membuat satu tombol di Flash, Anda dapat menduplikat simbol tombol dan kemudian mengubah teks untuk menyempurnakan menu Anda. Jika Anda benar matematika, tombol Anda berukuran sempurna. Saat Anda menyelaraskan tombol ujung ke ujung, menu Anda akan dirakit. Untuk merakit menu, ikuti langkah-langkah berikut:

Tambahkan dan Edit Simbol pada Flash CS5 Stage - dummies

Tambahkan dan Edit Simbol pada Flash CS5 Stage - dummies

Anda dapat menggunakan kembali simbol setelah Anda menambahkan ke perpustakaan Adobe Flash Creative Suite 5 Anda. Setiap salinan simbol disebut sebagai contoh di Flash CS5. Meskipun semua contoh simbol tetap terhubung kembali dengan aslinya di Perpustakaan, Anda memiliki fleksibilitas untuk menskalakan, mengubah, dan memutar ...

Bitmap versus Vector Artwork di Flash CS5 - dummies

Bitmap versus Vector Artwork di Flash CS5 - dummies

Dalam desain berbasis komputer, Anda harus waspada terhadap dua jenis grafis: bitmap dan vektor. Lingkungan gambar di Flash secara native menciptakan grafis vektor, namun Anda dapat menggunakan grafik bitmap dan vektor dalam film Flash. Grafik vektor mengacu pada karya seni terukur yang terdiri dari titik, jalur, dan pengisian yang dibuat oleh komputer berdasarkan ...

Pilihan Editor

Kata 2016 Teks Entri dan Pemformatan Shortcut - dummies

Kata 2016 Teks Entri dan Pemformatan Shortcut - dummies

Kata 2016 menawarkan banyak cara untuk berinteraksi dengan dokumen Anda. Ada beberapa shortcut keyboard yang bisa menghemat waktu. Dengan cara pintas keyboard ini, Anda bisa mempercepat pengeditan dan pemformatan teks. Untuk melakukan ini Dengan keyboard Mulai baris baru di paragraf yang sama Shift + Enter Masukkan halaman istirahat Ctrl + Enter Insert ...

Kata 2016 Lihat Jalan Pintas - dummies

Kata 2016 Lihat Jalan Pintas - dummies

Pernah merasa Anda tidak memiliki perspektif yang benar? Nah, Word 2016 memudahkan Anda mengubah tampilan dokumen sehingga Anda bisa mendapatkan perspektif yang berbeda. Dengan cara pintas keyboard ini, Anda dapat beralih di antara berbagai tampilan di Word 2016. Beralih ke tampilan ini Dengan keyboard Print Layout Alt + Ctrl + P Garis Besar Alt + Ctrl + O Draft ...

Kata 2013 For Dummies Cheat Sheet - dummies

Kata 2013 For Dummies Cheat Sheet - dummies

Kata adalah salah satu program komputer yang paling banyak digunakan di planet ini. Membantu Anda menulis teks adalah salah satu hal yang dilakukan komputer dengan baik, tapi itu tidak membuat tugas penulisan teks lebih mudah atau menyiratkan bahwa menggunakan Word cukup sederhana sehingga Anda tidak memerlukan bantuan. Jadi nikmati Cheat Sheet ini.

Pilihan Editor

Administrasi jaringan: Memelihara Perintah Windows - dummies

Administrasi jaringan: Memelihara Perintah Windows - dummies

Kemampuan untuk menyusun perintah Windows bersama dapat membiarkan Anda menyelesaikannya dalam satu perintah apa yang akan mengambil puluhan perintah terpisah. Anda bisa memasukkan dua atau lebih perintah pada baris yang sama dengan memisahkan perintah dengan ampersand (&), seperti ini: C:> copy *. doc a: & del *. doc Di sini, salinan perintah Salin ...

Administrasi jaringan: Mengelompokkan alamat IP - dummies

Administrasi jaringan: Mengelompokkan alamat IP - dummies

Ketika perancang asli protokol IP membuat skema pengalamatan IP, mereka bisa saja menugaskan sejumlah bit alamat IP yang sewenang-wenang untuk ID jaringan. Bit yang tersisa kemudian akan digunakan untuk host ID. Sebagai contoh, anggaplah bahwa perancang memutuskan bahwa setengah dari alamat (16 bit) akan menjadi ...