Rumah Kewangan Peribadi 10 Masalah Algoritma Namun untuk Memecahkan - dummies

10 Masalah Algoritma Namun untuk Memecahkan - dummies

Isi kandungan:

Video: Passwords & hash functions (Simply Explained) 2024

Video: Passwords & hash functions (Simply Explained) 2024
Anonim

Algoritma sememangnya telah wujud selama berabad-abad, jadi anda akan berfikir bahawa para saintis akan menemui dan menyelesaikan setiap algoritma sekarang. Malangnya, sebaliknya adalah benar. Penyelesaian algoritma tertentu sering menunjukkan beberapa lagi soalan yang tidak dapat diselesaikan oleh algoritma dan itu tidak kelihatan sehingga seseorang membuat penyelesaian.

Algoritma adalah satu siri langkah yang digunakan untuk menyelesaikan masalah, dan anda tidak perlu mengelirukannya dengan entiti lain, seperti persamaan. Algoritma tidak pernah menjadi penyelesaian untuk mencari masalah. Tidak seorang pun akan membuat satu siri langkah untuk menyelesaikan masalah yang belum ada (atau mungkin tidak pernah ada).

Senarai ini adalah mengenai masalah algoritma yang akan menjadi tujuan apabila seseorang mencari penyelesaian untuknya.

Berurusan dengan carian teks

Banyak carian teks melibatkan penggunaan ungkapan biasa - sejenis singkatan yang memberitahu komputer apa yang hendak dicari. Tatabahasa yang digunakan untuk ekspresi biasa bergantung pada bahasa atau aplikasi, tetapi anda dapati ungkapan biasa yang digunakan di beberapa tempat, termasuk pemproses kata, aplikasi e-mel, dialog carian, dan dalam pelbagai tempat lain di mana anda perlu memberikan carian yang tepat terma untuk pelbagai item teks.

Salah satu masalah semasa dengan ungkapan biasa adalah bahawa seolah-olah setiap persekitaran aplikasinya mempunyai satu set peraturan yang sama, tetapi hanya dengan perbezaan yang cukup untuk membuat istilah pencarian keras. Masalah ketinggian bintang yang umum digunakan untuk mencari sama ada sintaks ungkapan biasa yang wujud. Jika ya, algoritma yang dihasilkan akan memungkinkan seseorang untuk mempelajari hanya satu kaedah untuk mewujudkan ungkapan biasa untuk melakukan carian.

Berbeza perkataan

Apabila bekerja dengan aksara, komputer melihat nombor, bukan huruf. Nombor-nombor itu sebenarnya hanya satu siri 0 dan 1s ke komputer dan sebenarnya tidak mempunyai sebarang makna. Menggabungkan aksara menjadi rentetan hanya menjadikan siri 0 dan 1 lagi. Oleh itu, membandingkan dua rentetan, sesuatu yang boleh dilakukan oleh manusia sekilas, boleh mengambil masa dalam komputer, dan kebingungan mungkin antara konjugasi. Sebagai contoh, melainkan jika anda berhati-hati dalam membina algoritma, komputer boleh mengelirukan mendaftar dan mendengar. Lebih penting lagi, komputer memerlukan masa untuk membezakan perbezaan antara kedua-duanya. Masalah kata pemisahan berupaya untuk mencari algoritma yang paling kecil (dan terpantas) (automatis terhingga automaton, DFN, dalam kes ini) untuk melaksanakan pemisahan perkataan.Matlamatnya ialah menerima satu perkataan dan menolak yang lain, dengan memberikan dua perkataan panjang tertentu.

Menentukan sama ada aplikasi akan tamat

Salah satu masalah yang dicadangkan oleh Alan Turing pada tahun 1936 adalah isu sama ada suatu algoritma, diberi gambaran mengenai suatu program dan input, boleh menentukan sama ada program itu akhirnya akan berhenti (menghentikan masalah). Apabila bekerja dengan aplikasi mudah, mudah untuk menentukan dalam banyak kes sama ada program akan berhenti atau terus berjalan dalam gelung yang tidak berkesudahan. Walau bagaimanapun, memandangkan peningkatan kerumitan program, menentukan keputusan menjalankan program dengan mana-mana input yang diberikan menjadi lebih sukar. Mesin Turing tidak boleh membuat penentuan ini; hasilnya ialah kod buggy dengan gelung tak terhingga. Tiada jumlah ujian yang menggunakan teknologi semasa boleh menyelesaikan masalah ini.

Komputer hypercomputer merupakan model pengkomputeran yang melampaui mesin Turing untuk menyelesaikan masalah seperti masalah sepi. Walau bagaimanapun, mesin tersebut tidak mungkin menggunakan teknologi semasa. Jika mereka mungkin, anda boleh bertanya kepada mereka semua jenis yang tidak dapat diungkapkan bahawa komputer tidak boleh menjawabnya sekarang. Artikel ini memberi anda idea yang baik tentang apa yang akan berlaku jika seseorang dapat menyelesaikan masalah ini.

Mencipta dan menggunakan fungsi satu hala

Fungsi satu hala adalah fungsi yang mudah digunakan untuk mendapatkan jawapan dalam satu arah, tetapi hampir mustahil untuk digunakan dengan kebalikan dari jawapan itu. Dengan kata lain, anda menggunakan fungsi sehala untuk mencipta sesuatu seperti hash yang akan muncul sebagai sebahagian daripada penyelesaian untuk kriptografi, pengenalan diri, pengesahan, atau keperluan keselamatan data lain.

Kewujudan fungsi sehala adalah kurang misteri dan lebih banyak bukti. Banyak sistem telekomunikasi, e-dagang, dan e-perbankan kini bergantung kepada fungsi yang kononnya satu cara, tetapi tiada siapa yang benar-benar tahu sama ada mereka benar-benar satu cara. Kewujudan fungsi sehala kini merupakan hipotesis, bukan teori. Sekiranya seseorang dapat membuktikan bahawa fungsi satu hala wujud, isu keselamatan data akan lebih mudah diselesaikan dari perspektif pengaturcaraan.

Mengalikan bilangan benar-benar besar

Bilangan yang benar-benar besar terdapat di banyak tempat. Sebagai contoh, pertimbangkan untuk melakukan pengiraan yang melibatkan jarak ke Marikh, atau mungkin Pluto. Kaedah-kaedah pada masa ini wujud untuk melakukan pendaraban pada bilangan yang sangat besar, tetapi mereka cenderung lambat kerana memerlukan banyak operasi untuk diselesaikan. Masalahnya berlaku apabila bilangannya terlalu besar untuk dimuatkan dalam daftar pemproses. Pada ketika itu, pendaraban mesti berlaku dalam lebih daripada satu langkah, yang melambatkan perkara dengan ketara. Penyelesaian semasa termasuk:

  • Algoritma pendaraban kompleks Gauss
  • Karatsuba pendaraban
  • Toom-Cook
  • Transformasi kaedah Fourier

Walaupun banyak kaedah yang sedia ada menghasilkan hasil yang boleh diterima, semuanya mengambil masa, dan apabila anda mempunyai banyak pengiraan untuk melaksanakan, masalah masa boleh menjadi kritikal. Akibatnya, pendaraban bilangan besar adalah salah satu masalah yang memerlukan penyelesaian yang lebih baik daripada yang tersedia hari ini.

Membahagikan sumber secara sama rata

Sumber pembahagian yang sama mungkin tidak begitu sukar, tetapi manusia, yang sememangnya iri, mungkin melihat sumber itu tidak terbahagi kepada sama sekali kecuali anda dapat mencari jalan untuk meyakinkan semua orang bahawa pembahagian itu memang adil. Inilah masalah pemotongan kek elok. Sudah tentu, apabila anda memotong kek, tidak kira betapa adil anda cuba melakukannya, selalu ada persepsi bahawa pembahagian itu tidak adil. Mewujudkan pembahagian sumber yang adil adalah penting dalam kehidupan seharian untuk meminimumkan perselisihan antara pihak berkepentingan dalam mana-mana organisasi, menjadikan semua orang lebih cekap.

Dua penyelesaian sudah wujud untuk masalah pemotongan kek cawan tanpa rasa iri dengan bilangan orang tertentu, tetapi tiada penyelesaian umum wujud. Apabila terdapat dua orang yang terlibat, yang pertama memotong kek itu dan yang kedua memilih sekeping pertama. Dengan cara ini, kedua-dua pihak dijamin pembahagian yang sama. Masalahnya menjadi lebih sukar dengan tiga orang, tetapi anda boleh mencuba penyelesaian Selfridge-Conway untuk masalah ini. Walau bagaimanapun, selepas anda sampai kepada empat orang, tidak ada penyelesaian.

Mengurangkan masa pengiraan jarak edit

Jarak edit jarak antara dua rentetan adalah bilangan operasi yang diperlukan untuk mengubah satu rentetan ke dalam rentetan yang lain. Pengiraan jarak berputar di sekitar operasi jarak Levenshtein, iaitu penyingkiran, penyisipan, atau penggantian watak dalam tali. Teknik khusus ini menggunakan penggunaan dalam antara muka bahasa semulajadi, kuantifikasi urutan DNA, dan pelbagai tempat lain di mana anda boleh mempunyai dua rentetan serupa yang memerlukan beberapa perbandingan atau pengubahsuaian.

Sejumlah penyelesaian untuk masalah ini kini wujud, semuanya agak lambat. Malah, kebanyakan mereka mengambil masa yang eksponen, jadi masa yang diperlukan untuk melakukan transformasi dengan cepat menambah sehingga titik di mana manusia dapat melihat jeda dalam pemprosesan input. Jeda tidak begitu buruk apabila menggunakan pemproses perkataan yang melakukan pemeriksaan kata automatik dan mengubah kata yang salah eja ke dalam yang betul. Walau bagaimanapun, apabila menggunakan antara muka suara, jeda boleh menjadi sangat ketara dan menyebabkan pengendali manusia membuat kesilapan.

Memecahkan masalah dengan cepat

Oleh kerana pembelajaran mesin dimatikan dan kita menghitung lebih banyak pada komputer untuk menyelesaikan masalah, masalah seberapa pantas komputer dapat menyelesaikan masalah menjadi kritikal. Masalah P versus NP hanya bertanya sama ada komputer boleh menyelesaikan masalah dengan cepat apabila ia dapat mengesahkan penyelesaian kepada masalah dengan cepat. Dalam erti kata lain, jika komputer dengan mudah dapat memastikan bahawa tindak balas manusia terhadap masalah adalah betul dalam masa polinomial atau kurang, boleh juga menyelesaikan masalah itu sendiri dalam masa polinomial atau kurang?

Persoalan ini pada mulanya dibincangkan pada tahun 1950 oleh John Nash dalam surat kepada Badan Keselamatan Negara (NSA) dan sekali lagi dalam surat antara Kurt Gödel dan John von Neumann. Selain pembelajaran mesin (dan AI secara amnya), masalah khusus ini adalah kebimbangan terhadap banyak bidang lain, termasuk matematik, kriptografi, penyelidikan algoritma, teori permainan, pemprosesan multimedia, falsafah, dan ekonomi.

Memainkan permainan pariti

Pada mulanya, menyelesaikan permainan mungkin tidak kelihatan seperti yang berguna dalam kehidupan sebenar. Ya, permainan adalah menyenangkan dan menarik, tetapi mereka tidak memberikan latar belakang untuk melakukan sesuatu yang berguna - sekurang-kurangnya, itulah teori umum. Walau bagaimanapun, teori permainan dimainkan dalam banyak senario kehidupan sebenar, kebanyakannya melibatkan proses kompleks yang seseorang dapat memahami lebih mudah sebagai permainan daripada sebagai proses sebenar. Dalam kes ini, permainan membantu orang memahami pengesahan automatik dan sintesis pengawal, antara lain. Anda boleh membaca lebih lanjut mengenai permainan pariti. Malah, anda boleh memainkannya.

Memahami isu-isu spatial

Untuk memasukkan masalah ini ke dalam konteks, fikirkan tentang memindahkan kotak di dalam gudang atau beberapa situasi lain di mana anda perlu mempertimbangkan ruang di mana perkara bergerak. Jelas, jika anda mempunyai banyak kotak di gudang besar dan mereka semua memerlukan forklift untuk dijemput, anda tidak mahu mencuba untuk mengetahui cara menyimpannya secara optimum dengan menyusun semula secara fizikal. Di sinilah anda perlu bekerja melalui masalah ini dengan menggambarkan penyelesaian.

Walau bagaimanapun, persoalannya ialah sama ada semua masalah spatial mempunyai penyelesaian. Dalam kes ini, fikirkan salah satu teka-teki kanak-kanak yang telah anda meletakkan gambar bersama-sama dengan meluncur jubin kecil di sekitar. Ia seolah-olah seolah-olah satu penyelesaian perlu wujud dalam semua kes, tetapi dalam sesetengah keadaan, titik permulaan yang buruk boleh menyebabkan situasi yang tidak ada penyelesaian.

Ahli matematik seperti Sam Loyd sering menggunakan teka-teki untuk menunjukkan masalah matematik yang rumit, beberapa di antaranya tidak mempunyai penyelesaian hari ini. Mengunjungi laman web ini adalah menyeronokkan kerana anda bukan sahaja mendapat hiburan percuma tetapi juga makanan untuk dipikirkan. Isu-isu yang membangkitkan teka-teki ini mempunyai aplikasi praktikal, tetapi ia dibentangkan dengan cara yang menyeronokkan.

10 Masalah Algoritma Namun untuk Memecahkan - dummies

Pilihan Editor

Cara Mengeksport karya seni dari Fireworks - dummies

Cara Mengeksport karya seni dari Fireworks - dummies

Setelah anda mengoptimumkan imej itu, sudah waktunya untuk mengeksport dari Fireworks. Mengekspot imej adalah agak mudah; pilih Fail → Eksport dan kemudian nyatakan folder di mana untuk menyimpan imej. Apabila anda mengeksport dokumen seperti menu navigasi dengan beberapa kepingan, anda mengeksport dokumen itu sebagai imej dan HTML seperti berikut: Pilih Fail → Eksport. The ...

Cara Cari Warna untuk Skema Warna Laman Web Anda - dummies

Cara Cari Warna untuk Skema Warna Laman Web Anda - dummies

Peraturan yang paling asas Skim warna untuk laman web adalah bahawa anda perlu bekerja dengan beberapa warna yang terkurung. Jika tidak, laman web anda hanya akan membentangkan warna cacian warna. (Ya, pendekatan gila-gilaan juga merupakan bentuk skema warna, tetapi sebagai peraturan umum tidak begitu berkesan.) Bagaimana ...

Pilihan Editor

Memilih Penutupan Daripada Potret Khas - patung

Memilih Penutupan Daripada Potret Khas - patung

Potret di mana imej anda dipangkas dengan ketat supaya subjek itu mengambil sebahagian besar atau semua bingkai - adalah alat licik dalam beg jurufat jurulatih. Walau bagaimanapun, orang umumnya tidak suka mempunyai kamera terlalu dekat dengan mereka, kerana ketakutan bahawa imej itu ...

Menangkap Highlights and Drips dalam Fotografi Makanan Anda - dummies

Menangkap Highlights and Drips dalam Fotografi Makanan Anda - dummies

Sedikit dari fotografi bukan makanan. Fotografi komersil tradisional cenderung untuk menjauhkan diri dari kekejangan sorotan spekular dan kelemahan drip dan ketidaksempurnaan. Sorotan specular kadang-kadang hanya smidge yang terlalu cerah dan mengganggu dalam foto, tetapi kemuncaknya berkilat ...

Pilih Lensa Makro Kanan untuk Subjek Anda - patung

Pilih Lensa Makro Kanan untuk Subjek Anda - patung

Komponen utama untuk dipertimbangkan ketika mencari makro Kanta yang sesuai dengan gaya fotografi rapat anda adalah subjek yang akan anda ambil gambar dengan lensa. Sekiranya anda menembak mata secara tidak langsung, anda boleh meletakkan kanta anda dengan sangat dekat dengannya. Subjek lain mungkin memerlukan anda menyimpan jarak yang selamat, yang bermaksud ...

Pilihan Editor

Bagaimana Mengubah Transparansi Layer Jenis di Photoshop CS6 - dummies

Bagaimana Mengubah Transparansi Layer Jenis di Photoshop CS6 - dummies

Anda boleh menukar transparansi lapisan jenis, seperti yang anda boleh dengan lapisan lain dalam Adobe Photoshop Creative Suite 6, mengurangkan kelegapan (ketelusan) jenis supaya ia membolehkan lapisan mendasar untuk menunjukkan. Lapisan adalah seperti susunan lapisan digital yang mana setiap unsur imej anda ...

Bagaimana Tukar Resolusi Imej dalam Adobe Photoshop CS6 - dummies

Bagaimana Tukar Resolusi Imej dalam Adobe Photoshop CS6 - dummies

Menggunakan kotak dialog Ukuran Imej hanya satu cara yang anda boleh mengawal resolusi dalam Adobe Photoshop CS6. Walaupun anda boleh meningkatkan resolusi, berbuat demikian dengan berhati-hati dan mengelakkannya, jika anda boleh. Pengecualian kepada peraturan ini adalah apabila anda mempunyai imej yang besar dalam saiz dimensi tetapi rendah ...

Cara Mengukir Huruf menjadi Imej Tekstur Batu di Photoshop CS6

Cara Mengukir Huruf menjadi Imej Tekstur Batu di Photoshop CS6

Dalam Adobe Photoshop CS6, anda boleh menggunakan alat jenis untuk membuat pilihan yang dibentuk seperti huruf dan kemudian menggunakan imej itu sendiri sebagai tekstur (seperti batu) untuk jenisnya. Pemilihan jenis boleh memotong mana-mana bahagian gambar untuk menggunakan apa-apa cara yang anda mahukan. Ikuti langkah-langkah ini untuk mengukir huruf ke dalam tekstur batu ...