Pendidikan

Apa itu algoritma? »Definisi dan maknanya

Isi kandungan:

Anonim

Dalam matematik, sains komputer dan doktrin lain yang berkaitan, algoritma didefinisikan sebagai satu set ajaran yang tegas dan tegas, yang dijumpai secara metodis dan terbatas yang memungkinkan untuk melakukan pengiraan, memproses maklumat tertentu, memberi penyelesaian kepada masalah dan menjalankan pelbagai aktiviti.. Sebaik sahaja anda memulakan dari keadaan awal dan entri, mengikuti prosedur yang diperlukan, keadaan akhir akan dicapai dan hasilnya diperoleh. Algoritma adalah objek penyelidikan algoritma dan walaupun banyak yang tidak mempercayainya, ia juga boleh digunakan dalam semua aspek kehidupan seharian.

Apa itu algoritma

Isi kandungan

Dalam pengkomputeran biasanya didefinisikan sebagai penggantian arahan berurutan, di mana beberapa proses dilakukan untuk menanggapi keputusan atau keperluan tertentu. Dengan cara yang sama, algoritma sering digunakan dalam logik dan matematik, dan juga menjadi asas untuk penyusunan manual pengguna, risalah ilustrasi, antara lain. Salah satu yang paling terkenal dalam matematik adalah salah satu yang dikaitkan dengan ahli geometri Euclides, untuk mencapai pembahagi umum terbesar dari dua bilangan bulat yang positif dan "kaedah Gaussian" yang terkenal untuk menentukan sistem persamaan linear.

Berkaitan dengan sains komputer, pengiraan ini dapat dikenali sebagai urutan garis panduan yang harus diikuti untuk penentuan masalah melalui penggunaan komputer.

Oleh itu, algoritma difahami sebagai disiplin yang memfokuskan pada analisis dan reka bentuk algoritma. Sebagai pertimbangan yang pertama, ia bertujuan untuk memeriksa sifat-sifat seperti ketepatan dan keberkesanannya berkenaan dengan masa dan ruang, untuk memahami masalah yang dapat diselesaikan secara algoritma. Bagi yang kedua, ia bertujuan untuk mengkaji paradigma yang sudah ada dan mencadangkan contoh-contoh baru.

Algoritma ini terletak di tengah-tengah kemajuan pengkomputeran dan penting dalam pelbagai bidang di dalamnya. Dengan cara ini, mustahil bagi perkhidmatan yang berjaya seperti Facebook dan Google untuk menangani besarnya maklumat yang mereka miliki tanpa kerjasama algoritma atau struktur data khusus. Walau bagaimanapun, dalam algoritma kehidupan sehari-hari juga digunakan, contohnya ialah penyalaan kompor, kerana ia bermula pada saat orang itu pergi ke dapur, memerhatikannya dan berakhir, ketika ia diteruskan untuk menyalakannya.

Ciri-ciri algoritma

Walaupun algoritma ini dikenali sebagai susunan pelbagai langkah yang teratur dan terhingga yang membawa kepada penyelesaian masalah, dikatakan bahawa sifat kesulitan ini berbeza-beza sesuai dengan konteks di mana mereka dijumpai, dengan cara ini, ada masalah kimia, matematik, falsafah, antara lain. Oleh itu, dapat dikatakan bahawa sifatnya berbeza-beza dan pelaksanaannya oleh komputer tidak perlu. Di luar semua yang dijelaskan sebelumnya, algoritma mempunyai ciri-ciri yang asas untuk menentukan apa yang ada sekarang dan akan disebutkan di bawah.

  • Garis panduan yang terdapat dalam algoritma mestilah khusus untuk mengelakkan ruang dari sebarang kekeliruan, ini bermaksud bahawa arahan yang sesuai mesti diikuti dengan tepat atau, sebaliknya, gambaran grafik aliran yang anda daftarkan tidak akan memudahkan penyelesaiannya. betul.
  • Ini mestilah dalam definisi yang sempurna, berusaha seberapa banyak yang mungkin untuk mengikutinya seberapa banyak kali yang diperlukan, untuk mendapatkan hasil yang sama dan sekiranya berlaku sebaliknya, algoritma tidak akan dapat dipercayai dan tidak akan berfungsi sebagai panduan semasa membuat keputusan.
  • Mereka terkenal dengan keistimewaan yang terbatas, mereka biasanya berakhir pada suatu ketika dan kemudian mereka memberikan hasil pada akhir setiap langkah. Sekiranya algoritma meluas tanpa had, kembali ke titik awal yang tidak pernah dapat diselesaikan, terdapat kehadiran paradoks atau pengulangan "gelung" yang terkenal.
  • Akhirnya, dikatakan bahawa keterbacaan algoritma adalah elemen utama, kerana jika hujahnya tidak dapat difahami, petunjuk yang sesuai tidak dapat diikuti, di samping itu, ia memerlukan kata-kata teks yang langsung, jelas dan laconic yang terdapat dalam setiap teks.

Bahagian algoritma

Setiap operasi algoritma mempunyai tiga bahagian berbeza yang dikenakan struktur asas sistem dan ini adalah:

  • Input: juga disebut tajuk atau titik permulaan, itu adalah arahan awal yang mewakili genesis algoritma dan yang mendorong pembacaannya.
  • Proses: juga disebut deklarasi, ini adalah penjelasan yang tepat yang ditawarkan oleh algoritma dan pada dasarnya adalah batang kunci untuk perumusan arahan.
  • Keluaran: dalam fasa terakhir ini adalah petunjuk khusus yang ditentukan oleh algoritma, misalnya, perintah atau resolusi.

Contoh algoritma

Contoh umum pengiraan matematik merangkumi 2 + 3 = 5 untuk penambahan dan 15-9 = 6 untuk pengurangan. Cara lain untuk memvisualisasikan algoritma sederhana adalah dalam resipi dapur, kerana mereka menerangkan proses yang khusus dan teratur, misalnya, "pertama anda mesti meletakkan setengah periuk air untuk memanaskan, kemudian anda mesti menambah sedikit garam dan akhirnya lada akan dibahagi untuk mengeluarkan biji dan urat. " Dalam model ini awal, proses dan akhir ditunjukkan, yang pada dasarnya adalah apa yang menentukan algoritma.

Jenis algoritma

Di antara pelbagai jenis algoritma yang ada di seluruh dunia, penekanan diberikan pada algoritma yang dikelaskan mengikut sistem tanda dan lain-lain mengikut fungsinya. Algoritma pada dasarnya adalah penyelesaian yang paling terkenal untuk menyelesaikan masalah tertentu dan mengikut strategi dan fungsinya terdapat pelbagai jenis ini, di antaranya dinamik, terbalik, kekuatan kasar, oportunistik, menandakan menonjol., rawak, dll. Sebagai tambahan kepada algoritma yang disebutkan di atas, terdapat beribu-ribu yang sesuai untuk menyelesaikan masalah di mana-mana kawasan.

Mengikut sistem tanda anda

Kualitatif dan kuantitatif terdapat dalam kategori ini.

  • Algoritma kualitatif dicirikan dengan mempunyai unsur verbal, contohnya adalah petunjuk atau "langkah demi langkah" yang diakui yang diberikan secara lisan, seperti resipi seni kuliner atau prosedur untuk melakukan kerja manual.
  • Algoritma kuantitatif adalah kebalikan dari yang kualitatif, kerana adanya unsur numerik tertentu dan penggunaan matematik untuk melakukan pengiraan, misalnya, ketika punca kuasa dua dijumpai atau persamaan diselesaikan.

Dalam klasifikasi ini juga terdapat algoritma pengkomputeran dan bukan komputasi. Komputasi dilakukan dengan menggunakan komputer dan dicirikan oleh begitu kompleks sehingga memerlukan mesin untuk dijalankan, di samping ini, mereka adalah algoritma kuantitatif yang dapat dioptimumkan. Yang bukan komputasi tidak mempunyai kewajiban untuk dilaksanakan dengan menggunakan mesin atau komputer; contoh yang jelas ialah pengaturcaraan televisyen.

Mengikut fungsinya

Berikut terdapat dalam klasifikasi ini.

1. Menandakan algoritma

Ini dicirikan dengan menggunakan automasi untuk menetapkan harga dengan tekun, memfokuskan pada faktor-faktor seperti tingkah laku pengguna dan juga dikenali sebagai kemampuan untuk menentukan harga untuk penurunan nilai komponen secara automatik, untuk meningkatkan keuntungan pengguna. penjual. Ini telah memainkan peranan yang sangat penting dalam amalan biasa industri penerbangan sejak awal 1990-an.

Algoritma penandaan dibezakan dengan menjadi salah satu amalan yang paling biasa dalam industri yang sangat kompetitif, merujuk kepada agensi pelancongan atau syarikat dalam talian tersebut. Algoritma semacam ini dapat menjadi sangat kompleks atau agak mudah, kerana dalam banyak kes diperhatikan bahawa mereka dioptimumkan atau diajarkan sendiri dengan kesinambungan ujian tertentu. Di luar semua itu, algoritma penandaan juga dapat menjadi tidak popular dengan pelanggan kerana individu cenderung menghargai kestabilan dan keadilan.

2. Algoritma probabilistik

Mereka adalah cara di mana keputusan diperoleh bergantung pada kebarangkalian, ini biasanya dikenali sebagai algoritma rawak.

Dalam beberapa aplikasi, penanganan jenis operasi ini biasa terjadi, misalnya, ketika perilaku sistem yang ada atau yang dirancang disimulasikan dari masa ke masa, di mana penyelesaian yang baik diperoleh sebagai akibatnya. Dalam keadaan lain, masalah yang harus diselesaikan biasanya bersifat deterministik, tetapi ada kemungkinan mengubahnya menjadi kebetulan, untuk menyelesaikannya dengan menerapkan algoritma kebarangkalian. Positif dari rawak adalah bahawa penerapannya tidak memerlukan kajian matematik yang sangat canggih.

Selain itu, dalam kumpulan ini terdapat tiga jenis utama yang dikenali sebagai numerik, Monte Carlo dan Las Vegas.

  • Algoritma berangka dapat memberikan hasil anggaran dari masalah dan umumnya diterapkan dalam bidang kejuruteraan.
  • Algoritma Monte Carlo dapat memberikan penyelesaian yang betul atau salah dan mempunyai margin kesalahan tertentu dan terakhir.
  • Algoritma Las Vegas dibezakan dengan tidak pernah meninggalkan jawapan yang salah, sebenarnya, mereka mencari penyelesaian yang betul atau hanya memberitahu anda tentang kemungkinan kegagalan.

Pengaturcaraan dinamik merujuk kepada kaedah di mana algoritma mengira hasilnya. Kadang-kadang penyelesaian unsur-unsur tertentu yang mempunyai masalah bergantung pada hasil masalah lain yang lebih kecil. Oleh itu, untuk menyelesaikannya, nilai yang sama mesti dikira semula untuk menyelesaikan masalah kecil, namun ini dapat menyebabkan pembaziran kitaran. Untuk memperbaikinya, pengaturcaraan dinamik dapat digunakan dan dalam hal ini, penyelesaian setiap sub-masalah diingat, untuk menggunakan nilai yang sama dan bukannya mengulanginya beberapa kali.

3. Algoritma heuristik

Mereka dibezakan dengan mencari jalan keluar dan walaupun demikian mereka tidak menjamin bahawa jawapan yang terbaik akan dijumpai, kerana alasan ini, mereka dapat dianggap sebagai algoritma anggaran. Ini dapat digunakan ketika mencari jalan keluar melalui jalan biasa dianggap mustahil. Heuristik memberikan kegunaan yang akan dijelaskan di bawah. Dalam merancang, mereka digunakan untuk menjadwalkan kegiatan dalam jangka waktu yang singkat, dalam reka bentuk mereka digunakan untuk menggambarkan sistem elektrik atau digital dan dalam simulasi mereka digunakan untuk mengesahkan prosedur tertentu.

4. Algoritma backtracking

Mereka dikenal sebagai strategi rekursif yang menyelesaikan masalah seperti teka-teki, labirin atau potongan serupa, di mana pencarian mendalam dilakukan untuk mencari jalan keluar yang mungkin. Namanya merujuk kepada fakta bahawa dalam pertanyaan yang dibuat untuk mencari hasil, ia selalu kembali ke titik sebelumnya untuk dapat menguji alternatif. Ini biasanya dicabut untuk melihat kesannya terhadap ekonomi, pasaran, penandaan harga, operasi tertentu dan bahkan pada masyarakat itu sendiri.

5. Algoritma tamak

Ia dikenali sebagai pemusnah atau gigi manis dan dapat digunakan dalam masalah pengoptimuman, dalam setiap langkah algoritma ini, pilihan yang logik dan optimum dibuat untuk mendapatkan penyelesaian terbaik global. Namun, harus dipertimbangkan bahawa setelah keputusan dibuat, sama sekali tidak ada yang dapat dilakukan untuk membetulkan atau mengubahnya di masa depan. Operasi ini mempunyai nama ini kerana pada setiap langkah pecahan terbaik yang dapat "menelan" dipilih tanpa perlu bimbang apa yang akan terjadi kemudian.

Sifat algoritma

Pelbagai pengarang telah berusaha untuk menentukan algoritma secara formal semasa menggunakan model matematik. Walau bagaimanapun, spesimen ini berkait rapat dengan jenis maklumat pelik yang merangkumi nombor, simbol, dan beberapa grafik, semasa beroperasi pada sebilangan besar pengedaran data. Secara umum, bahagian umum bagi setiap definisi diringkaskan dalam tiga sifat berikut:

Pernyataan masalah

Penyelesaian masalah dengan menggunakan komputer mungkin terdiri daripada proses di mana masalah dijelaskan dan program yang mampu menyelesaikannya dibolehkan dikembangkan. Proses ini memerlukan analisis masalah, reka bentuk algoritma dan transformasinya menjadi program, serta pelaksanaan dan pengesahannya. Dua langkah pertama adalah yang paling rumit dalam proses ini, tetapi setelah anda memeriksa masalahnya dan memperoleh algoritma yang dapat menyelesaikannya, tugas anda terutama berdasarkan menerjemahkannya ke dalam bahasa pengaturcaraan yang diinginkan.

Analisis penyelesaian umum

Setelah masalah ditentukan, sudah waktunya untuk menganalisis perkara berikut:

  • Yang maklumat daripada tiket yang mereka berikan kepada kami.
  • Hasil yang diinginkan.
  • Domain kerja, pernyataan atau elemen lain yang diperlukan.

Analisis algoritma dikenal sebagai bahagian terpenting dari teori kerumitan komputasi yang lebih luas, kerana ia memberikan pengiraan teori untuk sumber yang diperlukan oleh mana-mana algoritma untuk menyelesaikan masalah komputasi yang diberikan. Semasa menjalankan penyelidikan secara teori, adalah biasa untuk menghitung komplikasinya dalam arti asimptotik untuk mendapatkan ukuran input yang cukup besar. Bahagian atas asimptotik bersama dengan notasi theta dan omega digunakan untuk tujuan ini dan harus diperhatikan bahawa ukuran bukan asimptotik dapat dihitung.

Langkah-langkah kecekapan yang tepat benar-benar berguna bagi mereka yang benar-benar menggunakan algoritma, kerana mereka mempunyai ketepatan yang lebih banyak dan ini memungkinkan mereka untuk menentukan masa yang diperlukan untuk melaksanakannya. Bagi sebilangan individu seperti pencipta permainan video, pemalar tersembunyi boleh membawa perbezaan besar antara kejayaan dan kegagalan. Penilaian masa boleh bergantung pada bagaimana langkah tertentu didefinisikan dan untuk analisis yang masuk akal, mesti dijamin bahawa waktu dibatasi oleh pemalar.

Penjelasan algoritma

Untuk menjalankan pengembangan operasi adalah penting bahawa serangkaian prosedur dilakukan untuk mematuhi penyelesaian masalah itu sendiri. Untuk memulakan, analisis kesukaran terlebih dahulu mesti dilakukan dan ini dilakukan melalui kajian yang menunjukkan operasi sebenar masalah tersebut sebelum algoritma dijalankan. Oleh itu, definisi keperluan dinilai, dalam langkah ini anda mesti mempunyai idea yang jelas tentang masalah yang harus diselesaikan, sama ada jumlah dua nombor, susunan senarai nombor, dll.

Kemudian, pengenalan modul masing-masing dilaksanakan, kerana prestasi algoritma yang betul bergantung padanya untuk memberikan kemungkinan penyelesaian terhadap keperluan yang telah dikenal pasti di atas.

Akhirnya, pengiraan dilaksanakan dalam bahasa pengaturcaraan yang dapat difahami oleh komputer sehingga dapat memahami petunjuk yang dimodelkannya dan dengan demikian dapat melaksanakannya, mencapai hasil yang diharapkan. Dalam prosedur terakhir ini, seseorang sudah dapat membicarakan program yang terdiri daripada serangkaian arahan yang disusun satu demi satu dan berjaya menyelesaikan keperluan yang telah ditetapkan.

Penting untuk disebutkan bahawa dalam masa berurutan, algoritma menjalankan fungsinya dalam waktu yang diskrit dan berusaha untuk menentukan urutan keadaan komputasi dalam setiap input yang dianggap sah. Dalam keadaan abstrak, operasi ini adalah unsur bebas dan dianggap bahawa di dalamnya struktur susunan primordial dapat menjadi tidak berubah di bawah isomorfisme. Dalam penjelajahan terikat, peralihan dari satu keadaan ke keadaan lain sepenuhnya ditentukan oleh penjelasan kekal dan terbatas, di mana antara satu keadaan dengan keadaan yang lain, hanya sebilangan sebilangan istilah dalam keadaan semasa yang diambil kira.

Juga tidak boleh diabaikan bahawa algoritma sering dinyatakan melalui bahasa pengaturcaraan "pseudocodes" bahasa biasa dan bahkan carta alir yang terkenal. Begitu juga, penting untuk menyebut bahawa algoritma memainkan peranan mendasar dalam pengkomputeran kerana perwakilan data mereka sebagai urutan bit. Dari sudut lain, program didefinisikan sebagai algoritma yang menyatakan kepada komputer langkah-langkah tertentu yang mesti diikuti untuk memenuhi aktiviti tertentu dengan secukupnya. Sebaliknya, belajar menulis pseudocode menjadikan pengaturcaraan lebih mudah dan oleh itu akan dijelaskan kemudian.

Bahasa pengaturcaraan dikenal sebagai bahasa formal atau tiruan kerana mereka memiliki aturan tata bahasa yang ditentukan dengan baik, ia memiliki kemampuan untuk menyediakan kemampuan programmer untuk membuat teks satu siri petunjuk atau urutan peraturan dalam bentuk algoritma dengan tujuan untuk mengekalkan kawalan terhadap tingkah laku fizikal dan logik komputer, dengan cara ini, pelbagai jenis maklumat dapat dicapai. Himpunan sila yang ditulis dengan menggunakan bahasa pengaturcaraan ditetapkan sebagai program.

Bahasa pengaturcaraan biasanya terdiri dari sekumpulan simbol dan peraturan tatabahasa dan semantik yang menentukan struktur bahasa dan maknanya. Dari perspektif lain, bahasa komputer juga merangkumi bahasa pengaturcaraan, contoh yang jelas adalah HTML, yang memenuhi arahan tertentu untuk melaksanakan kandungan dokumen yang berbeza. Bahasa pengaturcaraan dapat mengizinkan spesifikasi data yang tepat yang mesti dikendalikan oleh perisian tertentu dalam skala situasi yang bervariasi.

Sebaliknya, pseudocode adalah bahasa keterangan algoritmik yang menggunakan konvensi dasar dari bahasa pengaturcaraan sebenar, tetapi itu dirancang untuk membaca manusia dan bukannya membaca melalui mesin, mengekalkan kebebasan dari jenis lain bahasa pengaturcaraan. Pseudocode mengabaikan perincian yang tidak dianggap penting untuk pemahaman manusia tentang algoritma, seperti kod sistem, deklarasi berubah-ubah, dan bahkan beberapa subrutin. Dengan cara ini, bahasa pengaturcaraan bertujuan untuk melengkapkan dirinya dengan penerangan yang tepat dalam bahasa semula jadi atau dengan notasi matematik padat.