Algoritma. Jenis dan propertinya. Apa itu algoritma dan mengapa dibutuhkan?Apa yang dimaksud dengan konsep algoritma?


Penyelesaian suatu masalah dengan menggunakan komputer diawali dengan menyusun suatu algoritma. Apa itu algoritma?

Asal usul istilah “algoritma” dikaitkan dengan nama ahli matematika besar Muhammad al-Khwarizmi (763–850), yang mengembangkan aturan untuk melakukan empat operasi aritmatika.

Menurut Gost 19781-74:

Algoritme adalah resep tepat yang mendefinisikan proses komputasi mulai dari memvariasikan data awal hingga hasil yang diinginkan.

Itu adalah algoritma – ini adalah instruksi yang jelas kepada pelaksana algoritma untuk melakukan serangkaian tindakan tertentu untuk menyelesaikan tugas dan mendapatkan hasilnya.

Mengembangkan suatu algoritma berarti memecah suatu masalah menjadi serangkaian langkah tertentu. Pengembang algoritma dituntut untuk mengetahui fitur dan aturan penyusunan algoritma.

Fitur utama dari algoritma:

    Ketersediaan memasukkan sumber data.

    Ketersediaan keluaran hasil dari eksekusi algoritma, karena tujuan dari eksekusi algoritma adalah untuk memperoleh hasil yang mempunyai hubungan yang sangat spesifik dengan data aslinya.

    Algoritmanya harus punya struktur diskrit , yaitu. algoritma disajikan sebagai urutan langkah-langkah, dan eksekusi setiap langkah berikutnya dimulai setelah selesainya langkah sebelumnya.

    Ketidakjelasan – setiap langkah algoritme harus didefinisikan dengan jelas dan tidak boleh memungkinkan interpretasi sewenang-wenang oleh pelaku.

    Lengan – Eksekusi algoritma harus diselesaikan dalam sejumlah langkah yang terbatas.

    Ketepatan – algoritma harus menentukan solusi yang tepat untuk masalah tersebut.

    Karakter massa (umumnya) – suatu algoritma dikembangkan untuk memecahkan kelas masalah tertentu yang berbeda dalam data awal.

    Efisiensi - algoritma harus dijalankan dalam waktu terbatas yang wajar. Dalam hal ini, cara paling sederhana dan terpendek untuk menyelesaikan masalah dipilih, tentu saja dengan tunduk pada semua batasan dan persyaratan algoritma.

Cara menulis algoritma

Algoritma yang dikembangkan dapat disajikan dalam beberapa cara:

    dalam bahasa alami (rekaman verbal dari algoritma);

    dalam bentuk diagram blok (bentuk grafik);

    dalam bahasa pemrograman.

Rekaman verbal dari algoritma. Bentuk verbal biasanya digunakan untuk menggambarkan algoritma yang dirancang pemain - orang. Perintah ditulis dalam bahasa sederhana dan dijalankan secara berurutan. Perintah boleh saja menggunakan rumus dan notasi khusus, namun setiap perintah harus dapat dimengerti oleh pelakunya. Urutan alami perintah dapat terganggu (jika, misalnya, transisi ke perintah sebelumnya diperlukan atau perlu untuk melewati perintah berikutnya dalam kondisi tertentu), dalam hal ini perintah dapat diberi nomor dan perintah yang Anda ingin pergi ditunjukkan. Misalnya, lanjutkan ke langkah 3 atau ulangi dari langkah 4.

Bentuk grafis. Algoritma disajikan dalam bentuk diagram blok. Ada standar khusus untuk membuat diagram blok, di mana gambar grafik blok ditentukan. Perintah algoritma ditulis di dalam blok dalam bahasa biasa atau menggunakan rumus matematika. Blok dihubungkan menurut aturan tertentu melalui jalur komunikasi yang menunjukkan urutan pelaksanaan perintah.

Dalam bahasa pemrograman. Jika suatu algoritma dikembangkan untuk menyelesaikan suatu masalah pada komputer, maka agar masalah tersebut dapat dieksekusi pemain - komputer, itu harus direkam dalam bahasa yang dapat dimengerti oleh pemain tersebut. Untuk tujuan ini, banyak bahasa pemrograman telah dikembangkan untuk memecahkan masalah di berbagai kelas. Penulisan suatu algoritma dalam bahasa pemrograman disebut program.

a l go r i f m) merupakan salah satu konsep dasar logika dan matematika. Yang kami maksud dengan A adalah instruksi pasti yang menentukan perhitungan. sebuah proses yang dimulai dari data awal, yang mungkin berbeda-beda, hingga hasil yang diinginkan. Kata “komputasi” dan “komputasi” yang muncul di atas hendaknya tidak dipahami dalam arti sempit komputasi digital. Jadi, di mata pelajaran aljabar sekolah, mereka berbicara tentang perhitungan huruf, dan meskipun di sini huruf juga berperan sebagai pengganti angka, sudah dalam aritmatika. Dalam perhitungan, muncul simbol yang tidak menunjukkan besaran apa pun: tanda kurung, tanda sama dengan, tanda aritmatika. tindakan. Kita dapat melangkah lebih jauh dan mempertimbangkan penghitungan dengan simbol arbitrer dan kombinasinya; Dalam arti luas inilah istilah “perhitungan” dipahami ketika menggambarkan konsep “A.”. Jadi, kita bisa berbicara tentang A. penerjemahan dari satu bahasa ke bahasa lain, tentang A. pekerjaan petugas operator kereta api (memproses informasi tentang pergerakan kereta api menjadi pesanan), dan contoh algoritmik lainnya. deskripsi proses kontrol yang dipelajari oleh sibernetika. MAKNA A. Kata “A” itu sendiri. berasal dari abad ke-9. (berasal dari Algoritmi, yang merupakan transliterasi Latin, tampaknya dibuat pada abad ke-12, dari nama Arab ahli matematika Khorezmian al-Khwarizmi). Saat ini, A. paling sederhana sudah muncul di sekolah dasar - ini adalah A. aritmatika. tindakan (di Eropa abad pertengahan A. itulah yang disebut sekolah aritmatika modern, yaitu sistem bilangan posisi desimal dan seni berhitung di dalamnya, karena risalah al-Khawarizmi adalah salah satu yang pertama, jika bukan yang pertama, terima kasih Selain itu, Eropa berkenalan dengan sistem posisi). Mari kita tekankan bahwa di sekolah dasar yang diajarkan adalah A. akun. Ketika berbicara tentang kemampuan seseorang untuk menjumlahkan bilangan, yang dimaksud bukanlah bahwa untuk dua bilangan mana pun cepat atau lambat dia akan dapat menemukan jumlahnya, tetapi bahwa dia mengetahui metode penjumlahan seragam tertentu yang berlaku untuk dua catatan bilangan tertentu. , yaitu e., dengan kata lain, A. penjumlahan (contoh A. tersebut adalah A. penjumlahan angka dalam “kolom”) yang terkenal. A. terdapat dalam ilmu pengetahuan pada setiap langkahnya, kemampuan memecahkan suatu masalah “dalam bentuk umum” pada hakikatnya selalu berarti penguasaan suatu A. Konsep suatu masalah “dalam bentuk umum” diperjelas dengan bantuan A. konsep masalah massal. Istilah “masalah” dapat dipahami sebagai tugas menemukan suatu benda yang mempunyai sifat tertentu; objek ini disebut penyelesaian suatu masalah (khususnya untuk masalah pencarian jawaban atas suatu pertanyaan, penyelesaiannya adalah jawaban “ya” atau “tidak” terhadap pertanyaan yang diajukan). Suatu masalah tidak terpecahkan jika tidak ada solusinya, yaitu. tidak ada objek yang memiliki properti yang diperlukan. Oleh karena itu, jelas bahwa masalah yang tidak terselesaikan tidak memberikan dasar bagi agnostisisme. kesimpulan; sebaliknya, menetapkan tidak terpecahkannya suatu masalah tertentu merupakan kognisi yang penting. Bertindak. Masalah massal didefinisikan oleh serangkaian masalah “tunggal” yang terpisah dan terdiri dari persyaratan untuk menemukan metode umum (yaitu A.) untuk menyelesaikannya. Tidak terpecahkannya suatu masalah massal berarti ketidakmungkinan menemukan korespondensi. A. Masalah massal sangat khas dan penting bagi logika dan matematika. Bahkan penyelesaian suatu masalah sering kali bernilai karena solusi tersebut secara bersamaan memberikan metode umum untuk menyelesaikan seluruh kelompok masalah; pada saat yang sama, perumusan masalah massal berarti transformasi suatu kelas masalah tertentu menjadi satu masalah - masalah menemukan jawaban untuk menyelesaikan semua masalah kelas ini; di sini hubungan antara kategori dialektika seperti individu, partikular, dan universal terwujud. Peran masalah massa menentukan makna A. Menetapkan tidak terpecahkannya masalah massa tertentu (yaitu, tidak adanya algoritma tunggal yang memungkinkan seseorang menemukan solusi untuk semua masalah individu dari rangkaian tertentu) adalah tindakan kognitif yang paling penting, menunjukkan bahwa Untuk memecahkan masalah individu yang spesifik, pada dasarnya diperlukan metode yang spesifik untuk setiap masalah tersebut. Oleh karena itu, keberadaan masalah massa yang tidak terpecahkan berfungsi sebagai perwujudan nyata dari proses kognisi yang tidak ada habisnya. Berisi. Fenomena yang menjadi dasar terbentuknya konsep “A” telah lama menempati tempat penting dalam sains. Banyak masalah yang muncul dalam matematika dan logika adalah pencarian metode konstruktif tertentu. Pencarian metode seperti itu terutama diintensifkan sehubungan dengan penciptaan metode matematika yang nyaman dan logis simbolisme, serta pemahaman tentang ketiadaan mendasar metode-metode ini dalam beberapa kasus - semua ini merupakan faktor yang kuat dalam perkembangan ilmu pengetahuan. pengetahuan. Realisasi ketidakmungkinan menyelesaikan masalah apa pun dengan perhitungan langsung mengarah pada penciptaan pada abad ke-19. teori himpunan. konsep. Hanya setelah periode perkembangan pesat konsep ini (di mana pertanyaan tentang metode konstruktif dalam pemahaman modern tidak muncul sama sekali), dalam beberapa dekade terakhir menjadi mungkin untuk kembali ke pertanyaan tentang konstruktivitas, tetapi pada tingkat yang baru. , diperkaya dengan konsep kristalisasi “A.” (ilustrasi lain tentang posisi Lenin tentang sifat perkembangan pengetahuan yang berbentuk spiral). Dan meskipun konsep "A." bukanlah abstraksi yang luas seperti, katakanlah, konsep “himpunan”, tidak dapat dianggap kebetulan bahwa secara historis konsep pertama muncul lebih lambat dari konsep kedua. CONTOH A. Mirip dengan konsep “himpunan”, “korespondensi”, “bilangan asli”, “relasi”, dll., konsep “A.” adalah logika-matematis utama konsep (salah satu kategori logika dan matematika). Ini tidak memungkinkan definisi formal melalui konsep yang lebih sederhana, namun (seperti kategori matematika lainnya) diabstraksikan langsung dari pengalaman. Konsep "A." hanya dapat dipelajari melalui contoh. Contoh 1. Data awal yang mungkin adalah kombinasi tak kosong berhingga yang terdiri dari tongkat (I), yaitu. benda I, II, III, dst. A.terdiri dari berikut ini. aturan (yang harus diikuti mulai dari aturan 1°): 1°. Garis bawahi tongkat paling kiri di bawah dan lanjutkan ke aturan 2°. 2°. Tempatkan tongkat paling kanan di atas dan lanjutkan ke aturan 3°. 3°. Periksa tongkat yang digarisbawahi dan, jika tidak digarisbawahi, lanjutkan ke aturan 4°. 4°. Pertimbangkan tongkat tepat setelah yang digarisbawahi; jika tidak digarisbawahi, lanjutkan ke aturan 5°; jika digarisbawahi, lanjutkan ke penerapan aturan 7°. 5°. Pindahkan garis bawah dari batang yang digarisbawahi ke batang berikutnya tepat setelahnya dan lanjutkan ke aturan 6°. 6°. Pindahkan garis paling atas dari tongkat yang bersilangan ke garis yang mendahuluinya dan lanjutkan ke penerapan aturan 7°. 7°. Hapus tongkat yang bersilangan dan semua tongkat yang mengikutinya dan lanjutkan ke aturan 8°. 8°. Hapus garis bawah tongkat yang digarisbawahi; apa yang terjadi adalah hasilnya. Menerapkan A. ini pada kombinasi ||||, diambil sebagai data awal, kita memperoleh secara berurutan: dengan aturan 1° – |||, dengan aturan 2° – ? || , menurut aturan 3°, 4°, 5° – | ? | , menurut aturan 6°, 3°, 4° – | ? | menurut aturan 7° – | ?, menurut aturan 8° – || (hasil). Jika kita mencoba menerapkan A. pada kombinasi |||, kita mendapatkan: menurut aturan 1° – ? ||, menurut aturan 2° – ? | , menurut aturan 3°, 4°, 5° – | ? , menurut aturan 6° – | I |, maka Anda perlu melanjutkan ke penerapan aturan 3°, tetapi aturan 3° hanya dapat dilakukan jika tongkat yang digarisbawahi tidak digarisbawahi. Jadi, untuk situasi saat ini, A. tidak berisi instruksi tentang bagaimana melanjutkannya; disebut berhenti tidak efektif (berhenti yang tidak disertai hasil). Sangat mudah untuk melihat bahwa secara umum hal itu dirumuskan. A. memberikan hasil jika diterapkan pada kombinasi sembarang jumlah tongkat genap, dan hasil dalam hal ini adalah kombinasi yang terdiri dari setengah jumlah tongkat; A. tidak memberikan hasil apa pun bila diterapkan pada kombinasi apa pun yang terdiri dari jumlah tongkat ganjil. Contoh 2. Dalam logika dan matematika, himpunan tanda berhingga disebut. “alfabet”, tanda-tanda yang termasuk di dalamnya adalah “huruf” alfabet, dan rangkaian huruf terakhir (termasuk kosong) yang ditulis satu demi satu k.-l. alfabet disebut "kata" dalam alfabet ini. Misalnya, angka Arab membentuk alfabet, dan setiap representasi desimal dari bilangan bulat adalah kata dalam alfabet tersebut. Perhatikan alfabet (a, b) dari dua huruf: a dan b. Contoh kata dalam alfabet ini adalah: v, aw, vva aaavavv, dll. Mari kita sepakat untuk menyebut peralihan dari sebuah kata dalam alfabet ini ke kata lain dalam alfabet yang sama “diizinkan” menurut salah satu dari berikut ini. dua aturan: 1) jika kata tersebut berbentuk aP, dimana P adalah kata arbitrer, lanjutkan ke kata Pb; 2) jika kata tersebut terlihat seperti va?, dimana? – kata apa saja, lanjutkan ke kata Rava. Selanjutnya dirumuskan suatu jejak, suatu instruksi: “mulai dari kata k.-l. (diambil sebagai data awal), lakukan transisi yang diperbolehkan sampai diperoleh kata berbentuk aa?; ketika diperoleh kata jenis ini , buang dua huruf pertama, dan yang tersisa adalah hasilnya." Karena paling banyak satu aturan transisi yang layak setiap saat, kami merumuskannya resepnya berupa abjad, kemungkinan data awalnya berupa kata-kata dalam abjad (a, b). Mari kita ambil kata vavaa sebagai data awal. Menurut aturan 2 kita mendapatkan waaava. Menerapkan aturan 2 lagi, kita mendapatkan aavaava. Berdasarkan instruksi kami, kami harus berhenti; hasilnya (penerapan A. pada kata vavaa) adalah vavaa. Mari kita ambil kata vaava sebagai data awal. Menurut aturan 2 kita mendapatkan avaava. Menurut aturan 1 kita mendapatkan vaavav. Selanjutnya kita mendapatkan secara berurutan avavava, vavavav, vavavava, dll. Dapat dibuktikan bahwa prosesnya tidak akan pernah berakhir (yaitu kata yang dimulai dengan dua huruf a tidak akan pernah muncul, dan untuk setiap kata yang dihasilkan akan dimungkinkan untuk melakukan transisi yang valid). Jadi, A. tidak memberikan hasil apapun bila diterapkan pada kata vaava. Mari kita ambil kata vaav sebagai data awal. Kami mendapatkan vaavv, avvav, vvavav secara berurutan. Lebih jauh lagi, tidak satu pun dari aturan 1 dan 2 yang layak, dan pada saat yang sama hasilnya tidak berhasil. Oleh karena itu, bila diterapkan pada kata awaav, A. juga tidak membuahkan hasil. Ciri-ciri utama A. Menurut A. A. Markov, A. dicirikan oleh ciri-ciri utama sebagai berikut. fitur: a) kepastian algoritmik. resep, yang terdiri dari keakuratan dan kejelasan umum yang tidak memberikan ruang untuk kesewenang-wenangan (karena kepastian resep ini, proses algoritmik bersifat deterministik: setiap tahap proses secara unik menentukan tahap berikutnya); b) massa yang merupakan kemungkinan untuk setiap A. bersumber dari data awal yang bervariasi dalam batas tertentu; c) efektivitas, yaitu fokus pada perolehan hasil yang diinginkan. determinisme A. menjamin kemungkinan komunikasi antara satu orang dengan orang lain sehingga orang lain tersebut dapat melakukan A. tanpa partisipasi orang pertama; Sifat determinisme yang sama memungkinkan untuk mentransfer eksekusi A. ke mesin. Sifat analisis yang masif mengandaikan adanya sekumpulan data awal yang mungkin (untuk setiap analisisnya sendiri-sendiri). Bagaimana totalitas ini diatur adalah pertanyaan lain. Kita dapat berasumsi bahwa himpunan kemungkinan data awal yang sesuai dengan A. mana pun tidak ditentukan secara terpisah dari A., tetapi ditunjukkan dengan natural. gambar berdasarkan isi A. ini (misalnya, untuk A. penjumlahan dengan kolom, himpunan yang bersesuaian terdiri dari semua pasangan catatan angka dalam sistem desimal). Ketika objek tertentu dipilih sebagai data awal A., maka kita berbicara tentang penerapan A. pada objek ini. Jika A. memberikan hasil bila diterapkan pada suatu benda tertentu, maka dikatakan berlaku pada benda tersebut. Efektivitas A. tidak berarti sama sekali bahwa A. harus dapat diterapkan pada objek apa pun dari kumpulan kemungkinan data awal yang sesuai (lihat contoh 1 dan 2). Patut dicatat di sini bahwa adalah mungkin untuk membangun suatu algoritma yang tidak memiliki A. yang akan mengenali dari data awal sembarang A. apakah A. pertama dapat diterapkan pada mereka atau tidak. Abstraksi dasar teori A. Secara ilmiah. Dalam praktiknya, sejumlah fitur spesifik telah berkembang. untuk abstraksi matematika dan logika. Ini adalah, pertama-tama, abstraksi ketidakterbatasan aktual, abstraksi identifikasi, abstraksi potensi realisasi. burung hantu. ilmuwan A. A. Markov menunjukkan bahwa dua yang terakhir diperlukan ketika mempertimbangkan Algoritma A.. prosesnya dibagi menjadi beberapa departemen. langkah-langkah yang masing-masing diasumsikan sangat mendasar sehingga kemungkinannya bersifat faktual. implementasinya tidak diragukan lagi. Pada saat yang sama, jumlah langkah dasar yang diperlukan untuk memperoleh suatu hasil bisa sangat banyak sehingga mencapai hasil tersebut dianggap mustahil. Namun, idenya praktis kelayakan atau ketidakpraktisan sejumlah langkah tertentu bersifat relatif. Itu berubah seiring perkembangan komputasi. artinya (pada prinsipnya, gagasan tentang sifat dasar suatu langkah tertentu juga dapat berubah). Oleh karena itu, dalam teori A., mereka mengabstraksi dari “kelayakan praktis” dan mempertimbangkan sejumlah langkah terbatas yang mungkin dilakukan. Jadi, ketika mempelajari A. memungkinkan abstraksi kelayakan potensial, yang terdiri dari abstraksi dari batas-batas nyata kemampuan kita. Perkembangan komputasi elektronik berkecepatan tinggi. mesin dengan cepat mendorong batas-batas ini semakin jauh. Apa yang tadinya berpotensi menjadi mungkin, kini menjadi mungkin untuk dilakukan secara praktis. Hal ini membawa teori aritmatika lebih dekat dengan praktik komputasi. mesin dan memungkinkan kedua disiplin ilmu ini saling memperkaya satu sama lain. Mentransfer tugas ke mesin ke s/l. seri tidak mungkin tanpa pendahuluan. menyusun A. keputusan. Kompilasi A. seperti itu, pada umumnya, merupakan hal yang sangat penting (misalnya, dalam masalah terjemahan mesin, yang utama adalah kompilasi terjemahan A.). Abstraksi potensi kelayakan diperlukan ketika mempertimbangkan tidak hanya kelayakan algoritmik. proses, tetapi juga objek itu sendiri yang berpartisipasi dalam proses ini (termasuk “data awal” dan “hasil”). Jadi, untuk berbicara tentang bilangan asli apa pun (lebih tepatnya, tentang penulisan bilangan ini, katakanlah, dalam sistem desimal), kita harus membiarkan diri kita mempertimbangkan catatan bilangan yang begitu besar sehingga catatan ini tidak dapat ditampung di globe; dengan demikian, dan di sini, mengabstraksi dari fisik. kelayakan catatan tersebut, gunakan abstraksi kelayakan potensial. Secara umum, kita perlu menggunakan abstraksi kelayakan potensial untuk mempertimbangkan kata-kata yang panjang dan sewenang-wenang dalam alfabet tertentu. Objek yang konstruksi dan pertimbangannya dimungkinkan dalam kerangka abstraksi kelayakan potensial (bila dibandingkan dengan abstraksi ketidakterbatasan aktual), disebut. objek konstruktif. Ini adalah bilangan asli yang diwakili oleh entrinya di k.-l. sistem notasinya, kata-kata dalam alfabet tertentu, dll., serta berpasangan, kembar tiga, dan umumnya barisan berhingga yang terdiri dari catatan angka, kata dalam alfabet, dll.; bilangan rasional (yang dapat direpresentasikan sebagai kembar tiga bilangan asli), dll. Yang disebut ekspresi juga merupakan objek konstruktif. kalkulus, atau sistem formal, yang memungkinkan penerapan peralatan teori A pada yang terakhir.Setiap A. (dipahami sebagai resep) dapat (setelah menuliskan resep ini dalam bentuk kombinasi beberapa simbol) dapat dipertimbangkan sebagai objek konstruktif. Sebaliknya, objek-objek, yang pertimbangannya tidak mungkin dilakukan tanpa melibatkan abstraksi ketidakterbatasan yang sebenarnya, tidak termasuk objek-objek konstruktif. Jadi, misalnya, objek konstruktif bukanlah bilangan real (dalam pengertian Cantor, Dedekind atau Weierstrass), geometris. titik (karena analisis abstraksi seperti "titik" mengarah pada gagasan tentang titik sebagai sistem benda kecil yang sebenarnya tak terbatas), dll. Objek struktural dikelompokkan secara alami. cara secara agregat, contohnya adalah kumpulan semua kata dalam alfabet tertentu dan, secara umum, kumpulan semua objek dalam suatu kelas. "ketik" dari daftar. jenis objek struktural di atas. Setiap kumpulan objek struktural ditentukan oleh metode konstruksi objek miliknya. Dasar lainnya Abstraksi yang digunakan ketika mempertimbangkan objek dan arsitektur konstruktif adalah abstraksi identifikasi. Dalam beberapa kasus, dua objek dianggap identik. Kondisi “kesamaan” ditetapkan setiap saat sehubungan dengan situasi tertentu. Jadi, misalnya, ketika seseorang membuat perhitungan di atas kertas, font penulisan angka biasanya berbeda, dan entri 1647 dan 1647 dianggap sama; namun, kita dapat membayangkan situasi di mana perbedaan antara font romawi dan miring sangat signifikan (seperti, misalnya, dalam persepsi kata-kata yang ditemukan dalam Ensiklopedia Filsafat ini). Maka kedua catatan tersebut sudah dianggap tidak setara, tetapi catatan tahun 1647 dan 1647 akan tetap - dalam kasus biasa - sama (walaupun secara fisik keduanya merupakan objek yang berbeda). Biasanya diterima bahwa objek konstruktif terdiri dari “bagian-bagian dasar” tertentu yang cukup sederhana (seperti kata-kata yang terbuat dari huruf) dan dua objek konstruktif dianggap sama jika terdiri dari bagian-bagian dasar identik yang disusun dalam urutan yang sama. Tanpa konsep “kesamaan”, yang misalnya, angka-angka yang ditulis dengan kapur di papan tulis dan angka-angka yang ditulis dengan tinta di buku catatan dianggap sama, maka pembelajaran tidak mungkin dilakukan. Abstraksi identifikasi memungkinkan kita berbicara tentang objek yang identik sebagai objek yang satu dan sama. Hal ini mengarah pada terbentuknya konsep “objek abstrak”: yaitu dua objek konkrit yang identik dianggap mewakili objek abstrak yang sama. Setiap A. yang diterapkan pada objek yang identik juga mengarah pada objek yang identik. Oleh karena itu, kita dapat berasumsi bahwa setiap A. menentukan proses transformasi objek konstruktif abstrak. Properti A. ini (bersama dengan determinisme) menentukan pengulangan atau reproduktifitasnya: setelah dikembangkan dalam bentuk A. pada objek konstruktif abstrak, A. dapat direproduksi berulang kali untuk objek konstruktif spesifik apa pun yang diizinkan untuk A tertentu. Dari atas harus jelas bahwa data awal sama dengan data akhir. hasil yang timbul dari pelaksanaan k.-l. A., mereka selalu merupakan objek yang konstruktif (setiap "keadaan" bersifat algoritmik. proses adalah objek konstruktif!). Ketidakmungkinan proses yang berpotensi layak pada objek non-konstruktif juga dikaitkan dengan kurangnya cara untuk mengenalinya sebagai identik atau berbeda (lih. posisi sibernetika yang terkenal tentang keunggulan bentuk penyimpanan informasi diskrit dibandingkan yang berkelanjutan. ). Ada berbagai pandangan. mengenai metode-metode yang diperbolehkan dalam mempelajari A. Salah satunya yang dikemukakan oleh perwakilan dari arah konstruktif dalam matematika dan logika adalah karena untuk pembentukan konsep A. cukup abstraksi identifikasi dan kelayakan potensial, maka pengembangan teori A. harus dilakukan dalam kerangka abstraksi tersebut. Pandangan lain memungkinkan untuk mempelajari A. metode apa pun yang umumnya diizinkan dalam logika dan matematika, termasuk. dan membutuhkan abstraksi ketidakterbatasan yang sebenarnya. Dengan demikian, dapat dibayangkan suatu kasus ketika, untuk membuktikan bahwa A. tertentu, bila diterapkan pada objek tertentu, akan memberikan hasil, perlu menggunakan hukum tengah yang dikecualikan, yang berkaitan erat dengan abstraksi. dari tak terhingga yang sebenarnya. Konsep dasar teori A. Diantara yang dasar. Konsep-konsep yang muncul berdasarkan konsep aritmatika antara lain konsep fungsi terhitung, himpunan penyelesaian, dan himpunan enumerabel. Fungsinya disebut dapat dihitung, selama ada algoritma yang menghitung fungsi ini dengan cara berikut. pengertian: a) A. berlaku untuk objek apa pun yang termasuk dalam domain definisi fungsi, dan sebagai hasilnya memberikan nilai fungsi yang diperlukan untuk objek ini yang diambil sebagai argumennya; b) A. tidak berlaku untuk objek apa pun yang tidak termasuk dalam ruang lingkup fungsi. Himpunan yang terletak pada kumpulan objek konstruktif tertentu (yaitu himpunan yang terdiri dari beberapa objek dari kumpulan ini) disebut. dapat dipecahkan (relatif terhadap himpunan terlampir), selama ada A. yang menyelesaikan himpunan ini (relatif terhadap himpunan yang ditentukan) ke dalam himpunan berikutnya. pengertian: A. dapat diterapkan pada objek apa pun dari himpunan yang melingkupinya dan sebagai hasilnya memberikan jawaban atas pertanyaan apakah objek tersebut termasuk dalam himpunan yang ditinjau atau tidak. Akhirnya, himpunan tak kosong (lihat kosong) dipanggil. dapat dihitung, asalkan ada A yang menyebutkan himpunan ini di himpunan berikutnya. arti: a) hasil penerapan A. pada sembarang bilangan asli ada dan termasuk dalam himpunan yang ditinjau; b) setiap elemen himpunan yang ditinjau dapat diperoleh dengan menerapkan aritmatika pada suatu bilangan asli. Menurut definisinya, himpunan kosong juga biasanya diklasifikasikan sebagai himpunan yang dapat dihitung. Fungsi yang dapat dihitung yang sama (masing-masing, himpunan yang dapat dipecahkan, himpunan yang dapat dihitung) dapat dihitung (masing-masing, diselesaikan, dihitung) melalui A yang berbeda. Dari definisi tersebut dapat disimpulkan bahwa argumen dan nilai dari fungsi yang dapat dihitung, elemen dari himpunan yang dapat dipecahkan atau dihitung selalu merupakan objek yang konstruktif. Mengganti objek konstruktif (sekumpulan agregat tetap tertentu) dengan nomornya dalam algoritma arbitrer penomoran (yaitu, penomoran yang terdapat algoritma untuk mendapatkan nomornya dari suatu objek dan sebaliknya), seseorang dapat, seperti yang sering dilakukan dalam teori aritmatika, membatasi diri untuk hanya mempertimbangkan fungsi-fungsi yang dapat dihitung, argumen dan yang nilainya merupakan bilangan asli, dan hanya himpunan yang dapat dipecahkan dan dihitung, yang unsur-unsurnya juga merupakan bilangan asli. Dapat dibuktikan bahwa setiap himpunan yang dapat dipecahkan dapat dihitung. Pada saat yang sama, dimungkinkan untuk membuat himpunan yang dapat dihitung tetapi tidak dapat dipecahkan. Contoh nyata pertama ini (diterbitkan oleh ilmuwan Amerika A. Church pada tahun 1936 dalam artikel “Satu Masalah yang Tidak Dapat Dipecahkan dalam Teori Bilangan Dasar”) tentang tidak adanya suatu algoritma (yaitu, suatu algoritma yang menyelesaikan himpunan yang dibangun) adalah sumber atau contoh dari hampir semua contoh lebih lanjut semacam ini. Ternyata suatu himpunan dapat diselesaikan jika dan hanya jika himpunan tersebut dan komplemennya (pada himpunan objek yang melingkupinya) dapat dihitung. Oleh karena itu, terdapat komplemen terhadap himpunan yang dapat dihitung namun juga tidak dapat dihitung. Hubungan antara teori logika dan logika. Konsep himpunan decidable dan enumerable berkaitan erat dengan klasifikasi definisi (kami membatasi diri di sini hanya pada definisi seperti itu, yang masing-masing mendefinisikan objek dari tipe tertentu atau, yang sama, kelas objek tertentu). Seperti yang Anda ketahui, ada dua yang utama. skema definisi: “melalui perbedaan genus dan spesies” dan “melalui induksi”. Ketika mendefinisikan “melalui genus dan perbedaan spesifik”, sekumpulan objek (“genus”) yang mencakup tertentu ditentukan dan suatu fitur (“perbedaan spesies”) yang membedakan objek-objek ditentukan, sebuah dekrit, kumpulan kelas objek-objek tertentu . Jika; menganggap bahwa definisi ini konstruktif, yaitu. bahwa objek bersifat konstruktif dan ada atau tidaknya perbedaan spesies dalam suatu elemen genus dapat dikenali secara algoritmik, maka himpunan yang ditentukan ternyata dapat ditentukan (dan setiap himpunan yang dapat ditentukan dapat didefinisikan dengan cara ini). Jadi, himpunan terlarut diidentifikasi dengan himpunan yang didefinisikan secara konstruktif melalui genus dan perbedaan spesifik. Pengertian “dengan induksi” terdiri dari dua bagian: bagian dasar, berisi daftar objek tertentu yang dinyatakan termasuk dalam kelas yang didefinisikan, dan bagian induktif, yang menyatakan bahwa jika objek semacam ini termasuk dalam kelas kelas yang didefinisikan, maka objek dengan tipe ini dan itu, yang dihubungkan dengan objek pertama melalui relasi tertentu, juga termasuk dalam kelas yang ditentukan. (Kasus yang lebih kompleks dari apa yang disebut definisi silang juga mungkin terjadi, ketika beberapa kelas objek didefinisikan secara bersamaan satu sama lain). Jika kita menganggap definisi tersebut konstruktif, yaitu. objek bersifat konstruktif, daftar objek awal yang terdapat pada bagian dasar terbatas, dan aturan transisi dari objek yang sudah ditentukan ke objek algoritmik baru terdapat pada bagian induktif (dalam artian ada atau tidaknya relasi yang dibahas dalam bagian induktif). bagian induktif dikenali melalui beberapa jenis A.), maka kita sampai pada konsep himpunan yang secara konstruktif ditentukan oleh induksi, atau (sinonim) himpunan yang dihasilkan secara efektif (karena definisi tersebut menentukan proses pembangkitan yang efektif, pada tahap-tahap tertentu dari rangkaian tersebut. pengembangan yang objek-objek tertentunya "muncul" atau "dihasilkan"). Contoh definisi konstruktif dengan induksi adalah definisi posisi catur yang diperbolehkan (yaitu posisi yang dapat muncul di papan selama pertandingan). Bagian dasar berisi satu unit. posisi awal. Bagian induktif berisi aturan-aturan pergerakan bidak. Dengan demikian, kumpulan posisi yang dapat diterima dihasilkan secara efektif. Contoh lain dari himpunan yang dihasilkan secara efektif adalah himpunan semua rumus k.-l yang dapat dibuktikan. sistem formal atau kalkulus: bagian dasar definisi rumus yang dapat dibuktikan berisi aksioma, bagian induktif berisi aturan inferensi (aksioma dinyatakan dapat dibuktikan menurut definisi dan kemudian dikatakan jika ada rumus yang dapat dibuktikan, maka rumus yang diperoleh darinya sesuai aturan inferensi juga dapat dibuktikan). Proses pembangkitan disini adalah proses pembuktian seluruh rumus yang dapat dibuktikan. Terakhir, proses penyangkalan seluruh rumus yang dapat dipalsukan dalam kalkulus juga merupakan contoh proses generatif yang efektif. Konsep proses pembangkitan yang efektif sangat erat kaitannya dengan konsep A. Kita telah memberikan definisi (perkiraan) proses pembangkitan yang efektif berdasarkan konsep A. Pada gilirannya, konsep proses pembangkitan memungkinkan kita untuk mendefinisikan atas dasar itu, jika bukan konsep A itu sendiri, maka, bagaimanapun juga, konsep fungsi yang dapat dihitung. Memang benar, misalkan suatu proses pembangkitan tertentu mampu “menghasilkan” objek yang berbentuk pasangan (x, y), dan biarkan dua pasangan “yang dihasilkan” dengan suku pertama yang berhimpitan juga memiliki suku kedua yang sama. Kemudian prosesnya menyusul. mendefinisikan fungsi y = f(x) dengan cara ini: fungsi didefinisikan untuk objek x0 jika dan hanya jika x0 adalah anggota pertama dari c.-l. pasangan yang dihasilkan: nilai fungsi untuk argumen x0 dalam hal ini sama dengan anggota kedua dari pasangan ini. Fungsi yang ditentukan dalam keputusan. dalam pengertian proses pembangkitan yang efektif, hal ini jelas dapat dihitung [untuk menemukan f(x0), kita perlu memperluas prosesnya sampai kita menemukan pasangan dengan x0 sebagai suku pertama]. Sebaliknya, setiap fungsi yang dapat dihitung dapat didefinisikan dengan proses pembangkitan yang efisien. Algoritma proses dan proses pembangkitan berdekatan satu sama lain secara logis. sudut pandang. Masing-masing hanya didasarkan pada konsep konstruktif. Perbedaan di antara keduanya adalah pada algoritmiknya prosesnya terjadi atas dasar suatu persyaratan, dan proses generatif terjadi atas dasar izin untuk bertindak dengan cara tertentu. Di sini perbedaan antara yang diperlukan dan yang mungkin diwujudkan (dalam proses algoritmik, setiap tahap bersifat unik, yaitu harus ditentukan oleh tahap sebelumnya, sedangkan ketika proses generatif terjadi setelah setiap tahap, hanya banyak kemungkinan yang muncul untuk tahap berikutnya. panggung). Dengan penyempurnaan konsep proses pembangkitan yang efektif, ternyata setiap himpunan yang dihasilkan secara efektif dapat dihitung, dan sebaliknya. Keadaan ini, dikombinasikan dengan hubungan di atas antara himpunan enumerable dan decidable, memungkinkan kita untuk menyimpulkan hal berikut. Kelas objek apa pun yang menerima definisi konstruktif melalui genus dan perbedaan spesifik juga menerima definisi konstruktif melalui induksi, tetapi tidak sebaliknya: ada kelas objek yang didefinisikan secara konstruktif melalui induksi, tetapi tidak mengizinkan definisi konstruktif melalui genus dan perbedaan spesifik; penambahan pada kelas objek ini (pada kumpulan objek struktural yang terlampir) tidak memungkinkan definisi induktif yang efektif. Setiap proses generatif konstruktif dapat direpresentasikan sebagai proses untuk memperoleh rumus kalkulus yang sesuai dan dapat dibuktikan. Oleh karena itu, contoh kelas yang memiliki sifat-sifat yang baru saja dijelaskan dapat dikonstruksikan sebagai kelas dari semua rumus kalkulus tertentu yang dapat dibuktikan. Apalagi, ternyata keadaan ini terjadi pada siapa saja yang berkecukupan. kalkulus (misalnya, untuk kalkulus predikat atau untuk kalkuli yang memformalkan aritmatika), karena jika kalkulus cukup bermakna, maka setiap proses pembangkitan yang efektif dapat diekspresikan di dalamnya. Kelas dari semua rumus yang dapat dibuktikan dari kalkulus tersebut (tentu saja, dapat dihitung) tidak dapat ditentukan, sehingga tidak ada algoritma yang mengenali pembuktian rumus kalkulus; dalam pengertian ini kalkulus dikatakan tidak dapat diputuskan. Karena kelas dari semua rumus kalkulus yang dapat dibuktikan tidak dapat ditentukan, maka kelas tersebut akan saling melengkapi. baginya, kelas dari semua rumus yang tidak dapat dibuktikan tidak dapat dihitung dan, oleh karena itu, tidak dapat diperoleh melalui proses pembangkitan apa pun; khususnya, tidak mungkin membuat kalkulus seperti itu, yang akan “menyangkal” semua rumus asli yang tidak dapat dibuktikan. kalkulus dan hanya mereka; Terlebih lagi, semua rumusan yang tidak dapat dibuktikan ini tidak dapat disangkal dengan cara yang asli. kalkulus, jadi pada awalnya. dalam kalkulus ada yang disebut rumus yang tidak dapat diputuskan (yaitu tidak dapat dibuktikan atau disangkal). Dalam pertimbangan ini kita dapat membatasi diri hanya pada rumus-rumus yang mengandung. interpretasi kalkulus mengungkapkan proposisi yang bermakna (yaitu benar atau salah), dan, oleh karena itu, menemukan proposisi yang tidak dapat ditentukan di antara rumus-rumus tersebut. Oleh karena itu, dimungkinkan untuk menyajikan rumus yang menyatakan penilaian yang benar, tetapi tidak dapat dibuktikan dalam kalkulus; dalam pengertian ini sistem dikatakan tidak lengkap. Kami menekankan bahwa karena sifat umum dari penalaran yang dilakukan, sifat ketidaklengkapan melekat pada setiap penalaran yang terkandung secara memadai. kalkulus. Konsep ketidakpastian kalkulus didasarkan pada konsep aritmatika, dan tidak mengherankan jika fakta ketidakpastian ditetapkan berdasarkan penelitian di bidang teori kalkulus.Sangat signifikan (dan mungkin tidak terduga pada pandangan pertama) adalah fakta bahwa seperti logika umum. fakta seperti ketidaklengkapan perhitungan (fakta yang mengungkapkan ketidakmungkinan mendasar untuk memformalkan sepenuhnya proses inferensi logis dan pertama kali dibuktikan secara ketat oleh ilmuwan Austria K. Gödel pada tahun 1931, sebelum konsep "A.") diklarifikasi, dapatkah Seperti yang baru saja kita lihat, dapat diperoleh melalui teori aritmatika.Keadaan ini saja menunjukkan kemungkinan besar penerapan teori aritmatika pada pertanyaan-pertanyaan logika. Penerapan ini tidak terbatas pada contoh yang diberikan. Pada tahun 1932, Uni Soviet. ilmuwan A. N. Kolmogorov mengusulkan interpretasi logika konstruktif yang diciptakan oleh para ahli intuisi menggunakan konten. artinya tidak ada hubungannya dengan sikap intuisionisme; yaitu, Kolmogorov mengusulkan untuk menafsirkan setiap kalimat logika konstruktif sebagai suatu masalah. Konsep suatu masalah, bagaimanapun, memerlukan spesifikasi, yang hanya dapat diberikan berdasarkan teori A yang telah dikembangkan. Dua kelas masalah khusus yang sesuai untuk interpretasi logika konstruktif masing-masing diusulkan oleh Amer. ilmuwan S.K. Kleene pada tahun 1945 dan burung hantu. ilmuwan Yu.T.Medvedev pada tahun 1955. Pada tahun 1956 burung hantu. ilmuwan N.A. Shanin mengemukakan konsep baru, yang menurutnya tidak setiap pernyataan logika konstruktif memerlukan interpretasi dalam bentuk masalah. Lingkaran gagasan ini mencakup pertanyaan-pertanyaan klasik tentang “konstruktivisasi”, atau “menemukan analogi yang konstruktif”. matematis konsep dan proposal; Pemecahan masalah ini juga hanya mungkin dilakukan atas dasar teori A. Konstruktivisasi dasar. konsep matematika analisis mengarah pada apa yang disebut sekarang sedang dikembangkan. matematika yang konstruktif analisis. Cara-cara konstruktivisasi dan matematika lainnya diuraikan. teori. Salah satu yang utama Teknik yang digunakan dalam konstruktivisasi adalah peralihan dari objek yang dipelajari ke namanya yang selalu merupakan objek konstruktif. SOLUSI MASALAH. Kasus khusus dari masalah massal adalah penyelesaian masalah. Masalah penyelesaian k.-l. suatu himpunan adalah masalah membangun algoritma yang menyelesaikan himpunan ini. Sesuai Rangkaian masalah individu di sini terdiri dari masalah-masalah menjawab pertanyaan keanggotaan dalam suatu himpunan yang diajukan untuk setiap objek dari himpunan objek konstruktif yang melingkupinya. Sebaliknya, masalah massal pun masing-masing. rangkaian masalah individu dalam menjawab suatu pertanyaan, dapat dianggap sebagai masalah penyelesaian suatu himpunan tertentu, yaitu himpunan masalah individu yang jawabannya “ya”. Hal ini memperjelas peran penting penyelesaian masalah. Merekalah yang dipelajari dari sudut pandang. solvabilitas mereka. Di antara masalah penyelesaian, masalah yang diajukan untuk kelas rumus kalkulus yang dapat dibuktikan menonjol. Masalah penyelesaian kelas dari semua rumus k.-l yang dapat dibuktikan. kalkulus disebut juga masalah penyelesaian kalkulus itu sendiri. (Dalam teks Rusia, masalah penyelesaian biasanya disebut “masalah solvabilitas”; namun, “masalah solvabilitas” lebih baik disebut masalah: “menjawab apakah suatu masalah memiliki solusi.”). Masalah massal yang tidak terpecahkan. Masalah izin k.-l. Dalam kalkulus selalu ada masalah dalam menyelesaikan suatu himpunan enumerable. Secara umum, semua masalah penyelesaian yang secara alami muncul dalam matematika ternyata merupakan masalah penyelesaian himpunan yang dapat dihitung. Ini adalah contoh pertama dari masalah solusi yang tidak terpecahkan (dan sekaligus contoh pertama dari masalah massal yang tidak terpecahkan secara umum), yang diterbitkan oleh Church pada tahun 1936. Inilah yang disebut masalah identitas untuk sistem asosiatif, bukti ketidakpastian bentuk diterbitkan pada tahun 1947 secara independen satu sama lain oleh A. A. Markov dan Amer. ilmuwan E.L. Post; hasil ini menarik sebagai contoh pertama bukti tidak terpecahkannya masalah massal yang muncul (pada tahun 1914) di luar logika dan teori. Begitulah masalah identitas kelompok yang terkenal, yang diajukan pada tahun 1912, yang tidak terpecahkan adalah terbukti pada tahun 1952. ilmuwan P. S. Novikov (Penghargaan Lenin, 1957). Setiap masalah identitas terdiri dari menemukan algoritma yang menetapkan kesetaraan atau ketidaksetaraan dua kata dalam alfabet tertentu (apakah kita berurusan dengan sistem asosiatif atau kelompok bergantung pada satu atau beberapa definisi kesetaraan). Oleh karena itu, masalah identitas dapat dianggap sebagai masalah penyelesaian himpunan semua pasangan kata yang ekuivalen satu sama lain (relatif terhadap himpunan semua kemungkinan pasangan kata). Selain itu, karena dimungkinkan untuk menentukan proses generatif untuk mendapatkan semua pasangan kata yang setara satu sama lain, himpunan semua pasangan tersebut dapat dihitung. Konsistensi. Dimulai dengan contoh Gereja pada tahun 1936 dan berlanjut hingga tahun 1944, semua bukti tidak terselesaikannya masalah massa dilakukan atau dapat dilakukan dengan cara berikut. metode seragam. Masalah yang jelas-jelas tidak dapat dipecahkan yang dipelajari oleh Gereja direduksi menjadi masalah massal yang sedang dipertimbangkan, sehingga jika masalah massal yang dimaksud dapat diselesaikan, maka masalah Gereja juga dapat diselesaikan (dalam pengertian ini, kita dapat mengatakan bahwa bukti dari tidak dapat diputuskannya masalah tersebut). masalah yang sedang dipertimbangkan direduksi menjadi bukti tidak dapat diputuskannya masalah Gereja). Timbul pertanyaan apakah untuk suatu masalah yang tidak terpecahkan penyelesaiannya, ketidakterpecahannya dapat ditentukan dengan cara ini. Pertanyaan ini, yang disebut masalah redusibilitas, diajukan oleh Post pada tahun 1944; Pada saat yang sama, Post memberikan beberapa contoh masalah penyelesaian yang tidak dapat dipecahkan, yang tidak dapat diselesaikannya ditetapkan olehnya dengan menggunakan metode yang berbeda dari yang dijelaskan di atas (contoh-contoh ini belum menyelesaikan masalah reduksibilitas, karena pertanyaannya tetap terbuka apakah itu tidak mungkin bagi mereka untuk menemukan bukti-bukti ketidakterpecahan tersebut, yang direduksi menjadi bukti tidak terpecahkannya masalah Gereja; selanjutnya, untuk beberapa contoh di atas, bukti-bukti tersebut benar-benar ditemukan). Masalah reduksibilitas menjadi pusat penelitian teori aritmatika hingga tahun 1956, ketika teori tersebut diselesaikan secara independen oleh Uni Soviet. ilmuwan AA Muchnik dan Amer. ilmuwan R.M.Friedberg. Dia membangun contoh masalah solusi yang tidak dapat diputuskan (untuk himpunan yang dapat dihitung), yang tidak dapat dibuktikan dengan mereduksi masalah Church menjadi masalah ini. Muchnik menunjukkan lebih jauh lagi, yaitu, bahwa tidak hanya masalah Gereja saja, tetapi tidak ada masalah lain yang dapat berfungsi sebagai “masalah standar yang tidak dapat diputuskan” dalam artian bahwa bukti dari tidak dapat diputuskannya suatu masalah solusi yang tidak dapat diputuskan untuk suatu himpunan yang dapat dihitung dapat

suatu sistem aturan, dirumuskan dalam bahasa yang dapat dipahami oleh pelaku, yang menentukan proses peralihan dari data awal yang dapat diterima ke hasil tertentu dan mempunyai sifat massa, keterbatasan, kepastian, dan determinisme.

Kata “algoritma” berasal dari nama ilmuwan besar Asia Tengah abad ke-8-9. Al-Khorezmi (wilayah bersejarah Khorezm di wilayah Uzbekistan modern). Dari karya matematika Al-Khorezmi, hanya dua yang sampai kepada kita: aljabar (dari judul buku ini lahir kata aljabar) dan aritmatika. Buku kedua dianggap hilang sejak lama, namun pada tahun 1857 terjemahannya ke dalam bahasa Latin ditemukan di perpustakaan Universitas Cambridge. Ini menjelaskan empat aturan operasi aritmatika, hampir sama dengan yang digunakan sekarang. Baris pertama buku ini diterjemahkan sebagai berikut: “Kata Algoritma. Marilah kita memuji Tuhan, pemimpin dan pelindung kita.” Sehingga nama Al-Khorezmi menjadi Algorithm, dari situlah kata algoritma berasal. Istilah algoritma digunakan untuk menunjuk empat operasi aritmatika, dan dalam pengertian inilah istilah ini memasuki beberapa bahasa Eropa. Misalnya dalam kamus resmi bahasa Inggris Kamus Dunia Baru Webster, diterbitkan pada tahun 1957, kata algoritma diberi label "usang" dan dijelaskan sebagai melakukan operasi aritmatika menggunakan angka Arab.

Kata “algoritma” kembali digunakan dengan munculnya komputer elektronik untuk menunjukkan serangkaian tindakan yang membentuk suatu proses tertentu. Hal ini berarti tidak hanya proses pemecahan masalah matematika tertentu, tetapi juga resep kuliner dan petunjuk penggunaan mesin cuci, dan banyak aturan berurutan lainnya yang tidak berhubungan dengan matematika; semua aturan ini adalah algoritma. Kata "algoritma" dikenal semua orang akhir-akhir ini, kata itu telah memasuki percakapan sehari-hari dengan begitu percaya diri sehingga sekarang ungkapan "algoritma perilaku", "algoritma kesuksesan", dll. sering ditemukan di halaman surat kabar dan pidato orang-orang. politisi.

Turing A. Bisakah mesin berpikir?? M., Mir, 1960
Uspensky V.Sejarah pertemuanUspensky V. mobil Pos. Sains, 1988
Cormen T., Leiserson, Rives R. Algoritma. Konstruksi dan analisis. M., MTsNMO, 1999

Temukan "ALGORITMA" di

KONSEP ALGORITMA. SIFAT-SIFAT ALGORITMA. JENIS ALGORITMA. METODE DESKRIPSI ALGORITMA

Algoritme adalah instruksi yang tepat dan dapat dimengerti oleh pelaku untuk melakukan serangkaian tindakan yang bertujuan memecahkan masalah tertentu. Kata “algoritma” berasal dari nama ahli matematika Al Khorezmi yang merumuskan aturan-aturan dalam melakukan operasi aritmatika. Awalnya, algoritma hanya berarti aturan untuk melakukan empat operasi aritmatika pada bilangan. Belakangan, konsep ini mulai digunakan secara umum untuk menunjukkan urutan tindakan yang mengarah pada penyelesaian tugas tertentu. Ketika berbicara tentang algoritma proses komputasi, perlu dipahami bahwa objek yang diterapkan algoritma tersebut adalah data. Algoritme untuk memecahkan masalah komputasi adalah seperangkat aturan untuk mengubah data awal menjadi hasil.

Utama properti algoritma adalah:

  1. determinisme (kepastian). Ini mengasumsikan memperoleh hasil yang jelas dari proses komputasi dengan data awal yang diberikan. Karena sifat ini, proses eksekusi algoritma bersifat mekanis;
  2. efektivitas. Menunjukkan adanya data awal sehingga proses komputasi yang diterapkan menurut algoritma tertentu harus berhenti setelah sejumlah langkah terbatas dan memberikan hasil yang diinginkan;
  3. karakter massa. Properti ini menyiratkan bahwa algoritme harus sesuai untuk menyelesaikan semua masalah jenis tertentu;
  4. kebijaksanaan. Artinya pembagian proses komputasi yang ditentukan oleh algoritma menjadi tahapan-tahapan terpisah, yang kemampuannya untuk dilakukan oleh pelaku (komputer) tidak diragukan lagi.

Algoritme harus diformalkan menurut aturan tertentu dengan menggunakan sarana visual tertentu. Ini termasuk metode penulisan algoritma berikut: verbal, rumus-verbal, grafik, bahasa skema operator, bahasa algoritmik.

Yang paling luas, karena kejelasannya, adalah metode algoritma pencatatan grafis (diagram blok).

Diagram blok adalah representasi grafis dari struktur logis suatu algoritma, di mana setiap tahapan proses pemrosesan informasi direpresentasikan dalam bentuk simbol geometris (blok) yang mempunyai konfigurasi tertentu tergantung pada sifat operasi yang dilakukan. Daftar simbol, namanya, fungsi yang ditampilkan, bentuk dan dimensinya ditentukan oleh GOST.

Dengan beragamnya algoritma untuk memecahkan masalah, tiga jenis utama proses komputasi dapat dibedakan:

  • linier;
  • percabangan;
  • berhubung dgn putaran.

Linier adalah proses komputasi yang seluruh tahapan penyelesaian suatu masalah dilakukan dalam urutan alami pencatatan tahapan-tahapan tersebut.

Percabangan adalah proses komputasi di mana pilihan arah pemrosesan informasi bergantung pada data awal atau perantara (pada hasil pemeriksaan pemenuhan kondisi logis apa pun).

Siklus adalah bagian perhitungan yang diulang berkali-kali. Suatu proses komputasi yang mengandung satu atau lebih siklus disebut berhubung dgn putaran . Berdasarkan jumlah pelaksanaannya, siklus dibedakan menjadi siklus dengan jumlah pengulangan tertentu (yang telah ditentukan) dan siklus dengan jumlah pengulangan yang tidak terbatas. Jumlah pengulangan yang terakhir tergantung pada kepuasan beberapa kondisi yang menentukan kebutuhan untuk melaksanakan siklus. Dalam hal ini, kondisi dapat diperiksa di awal siklus - kemudian kita berbicara tentang siklus dengan prasyarat, atau di akhir - maka itu adalah siklus dengan pascakondisi.

Setiap algoritma berhubungan dengan data - masukan, perantara, dan keluaran.

Lengan. Hal ini dipahami dalam dua cara: pertama, algoritma terdiri dari langkah-langkah dasar individu, atau tindakan, dan tentu saja ada banyak langkah berbeda yang membentuk algoritma. Kedua, algoritma harus diselesaikan dalam jumlah langkah yang terbatas. Jika suatu proses tak hingga dibangun yang konvergen ke solusi yang diinginkan, maka proses tersebut terputus pada langkah tertentu dan nilai yang dihasilkan diambil sebagai solusi perkiraan untuk masalah yang sedang dipertimbangkan. Keakuratan perkiraan bergantung pada jumlah langkah.

Elementaritas (kemampuan memahami). Setiap langkah algoritma harus sederhana sehingga perangkat yang melakukan operasi dapat menyelesaikannya dalam satu langkah.

Kebijaksanaan. Proses pemecahan masalah direpresentasikan sebagai urutan langkah-langkah individual yang terbatas, dan setiap langkah algoritma dilakukan dalam waktu yang terbatas (tidak harus satuan).

determinisme (kepastian). Setiap langkah algoritma harus didefinisikan secara unik dan tidak ambigu dan tidak boleh memungkinkan interpretasi sewenang-wenang. Setelah setiap langkah, langkah mana yang harus diambil selanjutnya ditunjukkan, atau perintah berhenti diberikan, setelah itu pekerjaan algoritma dianggap selesai.

Produktifitas. Algoritme memiliki sejumlah besaran masukan tertentu - argumen. Tujuan dari eksekusi algoritma adalah untuk mendapatkan hasil spesifik yang memiliki hubungan sangat spesifik dengan data aslinya. Algoritme harus berhenti setelah sejumlah langkah terbatas, bergantung pada data, dengan indikasi apa yang dianggap sebagai hasilnya. Jika solusi tidak dapat ditemukan, maka harus ditunjukkan apa yang dianggap sebagai hasil dalam kasus ini.

Karakter massa. Algoritma penyelesaian masalah dikembangkan dalam bentuk umum, yaitu. itu harus dapat diterapkan untuk kelas masalah tertentu yang hanya berbeda pada data awal. Dalam hal ini, data awal dapat dipilih dari suatu area tertentu yang disebut area penerapan algoritma.

Efisiensi. Masalah yang sama dapat diselesaikan dengan cara yang berbeda dan, karenanya, dalam waktu yang berbeda dan dengan biaya memori yang berbeda. Sebaiknya algoritma terdiri dari jumlah langkah minimum dan solusinya memenuhi kondisi akurasi dan memerlukan pengeluaran sumber daya lain yang minimal.

Definisi matematis yang tepat dari algoritme diperumit oleh fakta bahwa interpretasi instruksi yang ditentukan tidak boleh bergantung pada subjek yang melaksanakannya. Tergantung pada tingkat intelektualnya, dia mungkin tidak mengerti sama sekali apa yang dimaksud dalam instruksi, atau, sebaliknya, menafsirkannya dengan cara yang tidak disengaja.

Permasalahan dalam aturan penafsiran dapat diatasi jika, bersamaan dengan kata-kata dalam peraturan tersebut, desain dan prinsip pengoperasian perangkat penerjemahan dijelaskan. Hal ini menghindari ketidakpastian dan ambiguitas dalam memahami instruksi yang sama. Untuk melakukan ini, perlu untuk menentukan bahasa di mana banyak aturan perilaku atau urutan tindakan dijelaskan, serta perangkat itu sendiri, yang dapat menafsirkan kalimat yang dibuat dalam bahasa ini dan melakukan setiap proses yang ditentukan secara tepat selangkah demi selangkah. . Ternyata alat (mesin) tersebut dapat diimplementasikan dalam bentuk yang tetap konstan terlepas dari kerumitan prosedur yang dimaksud.

Saat ini, ada tiga jenis utama model algoritmik universal yang dapat dibedakan. Mereka berbeda dalam asumsi awal mengenai definisi konsep suatu algoritma.

Tipe pertama menghubungkan konsep algoritma dengan konsep matematika paling tradisional - perhitungan dan fungsi numerik. Tipe kedua didasarkan pada gagasan suatu algoritma sebagai perangkat deterministik tertentu yang hanya mampu melakukan operasi yang sangat primitif pada saat tertentu. Representasi ini memastikan ketidakjelasan algoritma dan sifat dasar dari langkah-langkahnya. Selain itu, ide ini sesuai dengan ideologi pembuatan komputer. Model teoritis utama jenis ini, dibuat pada tahun 1930-an. Matematikawan Inggris Alan Turing, adalah mesin Turing.

Tipe ketiga– ini adalah transformasi kata-kata dalam abjad sembarang, di mana operasi dasarnya adalah substitusi, mis. mengganti sebagian kata (kata adalah rangkaian karakter alfabet) dengan kata lain. Kelebihan model jenis ini adalah abstraksi maksimum dan kemampuan menerapkan konsep algoritma pada objek yang bersifat arbitrer (tidak harus numerik). Contoh model tipe ketiga adalah sistem kanonik dari matematikawan Amerika Emil L. Post dan algoritma normal yang diperkenalkan oleh matematikawan Soviet A. A. Markov.

Model tipe kedua dan ketiga cukup mirip dan berbeda terutama dalam aksen heuristik, jadi bukan suatu kebetulan jika mereka membicarakan mesin Post, meskipun Post sendiri tidak membicarakannya.

Rekaman suatu algoritma dalam beberapa bahasa adalah sebuah program. Jika suatu program ditulis dalam bahasa algoritmik khusus (misalnya, PASCAL, BASIC, atau lainnya), maka kita akan membicarakannya program asli. Suatu program yang ditulis dalam bahasa yang dapat dipahami langsung oleh komputer (biasanya kode biner) disebut mesin, atau biner.

Cara penulisan algoritme apa pun menyiratkan bahwa setiap objek yang dideskripsikan dengan bantuannya ditetapkan sebagai perwakilan spesifik dari kelas objek yang seringkali tak terbatas yang dapat dideskripsikan dengan cara ini.

Cara yang digunakan untuk menulis algoritma sangat ditentukan oleh siapa yang akan menjadi pelakunya.

Jika pelakunya adalah seseorang, rekamannya mungkin tidak sepenuhnya diformalkan; kejelasan dan visibilitas adalah yang utama. Dalam hal ini, diagram algoritma atau notasi verbal dapat digunakan untuk merekam.

Untuk menulis algoritma yang ditujukan untuk pelaku automata, diperlukan formalisasi, oleh karena itu, dalam kasus seperti itu, bahasa khusus formal digunakan. Keuntungan dari cara notasi formal adalah memungkinkan untuk mempelajari algoritma sebagai objek matematika; dalam hal ini, deskripsi formal dari algoritma berfungsi sebagai dasar untuk memahami algoritma ini secara intelektual.

Berbagai macam cara digunakan untuk menulis algoritma. Pilihan alat ditentukan oleh jenis algoritma yang dijalankan. Berikut ini dibedakan: cara utama untuk menulis algoritma:

lisan– algoritma dijelaskan dalam bahasa manusia;

simbolis– algoritma dijelaskan menggunakan sekumpulan simbol;

grafis– algoritma dijelaskan menggunakan sekumpulan gambar grafik.

Cara menulis algoritma yang diterima secara umum adalah rekaman grafis menggunakan diagram algoritma (flowchart) dan notasi simbolik dengan menggunakan beberapa bahasa algoritmik.

Untuk menggambarkan suatu algoritma, diagram digunakan untuk menggambarkan urutan angka geometris yang terhubung, yang masing-masing menyiratkan pelaksanaan tindakan tertentu dari algoritma. Urutan tindakan ditunjukkan dengan panah.

Jenis simbol grafik berikut digunakan dalam diagram algoritma.

Awal Dan akhir Algoritma ini ditunjuk menggunakan simbol yang sama (Gbr. 21.1).

Beras. 21.1.

Suatu langkah algoritma yang terkait dengan pemberian nilai baru pada variabel tertentu, mentransformasikan nilai tertentu untuk memperoleh nilai lain, dilambangkan dengan simbol "proses"(Gbr. 21.2).

Beras. 21.2.

Pilihan arah eksekusi algoritma tergantung pada beberapa kondisi variabel diwakili oleh simbol " larutan"(Gbr. 21.3).

Beras. 21.3.

Di Sini R berarti predikat (ekspresi kondisional, kondisi). Jika kondisi terpenuhi (predikat bernilai TRUE), maka dilakukan transisi ke satu langkah algoritma, dan jika tidak terpenuhi, maka ke langkah lainnya.

Ada primitif untuk operasi input dan output data, serta simbol grafis lainnya. Saat ini, mereka ditentukan oleh standar "Sistem dokumentasi program terpadu. Skema algoritme, program dan sistem data. Konvensi dan aturan eksekusi" dari GOST 19.701–90 (ISO 5807–85). Total koleksi ESPD berisi 28 dokumen.

Dengan menggunakan diagram algoritma, mudah untuk membuat program awal dalam bahasa algoritmik.

Tergantung pada urutan tindakan dalam algoritma, algoritma struktur linier, bercabang dan siklik dibedakan.

Dalam algoritma struktur linier tindakan dilakukan secara berurutan satu demi satu.

Dalam algoritma struktur bercabang Bergantung pada terpenuhi atau tidaknya suatu kondisi, urutan tindakan yang berbeda dilakukan. Setiap rangkaian tindakan tersebut disebut cabang dari algoritma.

Dalam algoritma struktur siklik tergantung pada terpenuhi atau tidaknya suatu kondisi, serangkaian tindakan berulang dilakukan, yang disebut tubuh siklus. Perulangan bersarang adalah perulangan yang berada di dalam badan perulangan lainnya. Siklus iteratif adalah siklus yang jumlah pengulangannya tidak ditentukan, tetapi ditentukan pada saat pelaksanaan siklus tersebut.

Dalam hal ini, satu pengulangan siklus disebut pengulangan.

Pilihan Editor
Tepat satu abad yang lalu, pada bulan Desember 1918, dunia kedokteran mendapat tamparan keras, yang tidak dapat pulih selama beberapa dekade....

Kumpulan Soal dan Pertanyaan Menarik A. Di kutub, Matahari berada di atas ufuk selama setengah tahun, dan di bawah ufuk selama setengah tahun. Dan Bulan? B.Ke...

Mungkin hanya para pemalas yang belum mendengar berita tentang pisang dan Pepsi yang terjangkit HIV. Jejaring sosial secara berkala penuh dengan foto dari...

Hermafroditisme (dinamai menurut dewa Yunani Hermaphroditus, bahasa Yunani Ερμαφρόδιτος) adalah kehadiran laki-laki secara simultan atau berurutan...
Hermafroditisme (dinamai menurut dewa Yunani Hermaphroditus, bahasa Yunani Ερμαφρόδιτος) adalah kehadiran laki-laki secara simultan atau berurutan...
Semua penyakit keturunan disebabkan oleh mutasi, yaitu cacat pada materi genetik. Penyakit kromosom adalah penyakit yang disebabkan oleh...
Struktur dan peranan biologis jaringan tubuh manusia : Petunjuk umum : Jaringan adalah kumpulan sel-sel yang mempunyai kesamaan...
Gaya nuklir memberikan daya tarik - ini mengikuti fakta adanya inti stabil yang terdiri dari proton dan...
Abstrak Tentang topik Sejarah antisepsis dan asepsis di Rusia §1. Perkembangan gagasan metode pengobatan luka pada pertengahan abad ke-11 di Rusia...