Algoritma Python Yang Cukup Populer
Ketika program tersebut dijalankan, berikut ini hasil outputnya:
Berikut ini implementasi algoritma selection sort dalam Bahasa pemrograman Python:
Kelebihan dan Kekurangan Selection Sort
Modifikasi dan Optimasi
Ada beberapa cara untuk memodifikasi dan mengoptimalkan Selection Sort. Salah satu optimasi sederhana adalah dengan menghentikan algoritma jika tidak ada pertukaran yang terjadi dalam satu iterasi, meskipun ini tidak memberikan banyak manfaat karena Selection Sort memang dirancang untuk selalu mencari elemen terkecil pada setiap iterasi.
Di dunia di mana hampir semua tugas manual diotomatisasi, definisi manual berubah. Algoritma machine learning dapat membantu komputer bermain catur, melakukan operasi, dan menjadi lebih pintar dan lebih pribadi. Kita hidup di era kemajuan teknologi yang konstan, dan melihat bagaimana komputasi telah berkembang selama bertahun-tahun, kita dapat memprediksi apa yang akan terjadi di hari-hari mendatang.
Salah satu fitur utama dari revolusi ini yang menonjol adalah bagaimana alat dan teknik komputasi telah di demokratisasi. Dalam lima tahun terakhir, para ilmuwan data telah membangun mesin pengolah data yang canggih dengan mengeksekusi teknik-teknik canggih dengan mulus. Hasilnya sangat mencengangkan.
Algoritma Reinforcement Learning menggunakan hasil atau hasil sebagai patokan untuk memutuskan langkah tindakan selanjutnya. Dengan kata lain, algoritme ini belajar dari hasil sebelumnya, menerima umpan balik setelah setiap langkah, dan kemudian memutuskan apakah akan melanjutkan langkah berikutnya atau tidak.
Sistem mempelajari apakah ia membuat pilihan yang benar, salah, atau netral dalam prosesnya. Sistem otomatis dapat menggunakan Reinforcement Learning karena dirancang untuk membuat keputusan dengan intervensi manusia yang minimal.
Misalnya, Sahabat DQ mendesain mobil self-driving dan bermaksud melacak apakah mobil tersebut mengikuti peraturan lalu lintas dan memastikan keselamatan di jalan. Dengan menerapkan Reinforcement Learning , kendaraan belajar melalui pengalaman dan taktik penguatan.
Algoritme memastikan bahwa mobil mematuhi undang-undang lalu lintas dengan tetap berada di satu jalur, mengikuti batas kecepatan, dan berhenti bertemu pejalan kaki atau hewan di jalan.
Lalu, apa saja algoritma dengan deep learning reinforcement learning ini? Yuk simak selengkapnya sekarang!
Berikut adalah beberapa algoritma pengurutan yang populer dalam Python:
Bubble Sort adalah algoritma sederhana yang membandingkan setiap pasangan elemen dan menukarnya jika mereka dalam urutan yang salah. Proses ini diulang hingga tidak ada lagi pertukaran yang diperlukan.
Selection Sort bekerja dengan membagi array menjadi dua bagian: bagian terurut dan tidak terurut. Pada setiap iterasi, elemen terkecil dari bagian tidak terurut dipilih dan dipindahkan ke bagian terurut.
Insertion Sort membangun array terurut satu per satu dengan mengambil elemen dari bagian tidak terurut dan menyisipkannya ke posisi yang tepat dalam bagian terurut.
Merge Sort adalah algoritma pengurutan berbasis pembagian dan penaklukan. Array dibagi menjadi dua bagian, diurutkan secara rekursif, dan kemudian digabungkan kembali.
Quick Sort juga menggunakan pendekatan pembagian dan penaklukan. Elemen pivot dipilih, dan array dibagi menjadi dua sub-array yang berisi elemen yang lebih kecil dan lebih besar dari pivot, yang kemudian diurutkan secara rekursif.
Tim Sort adalah algoritma pengurutan yang digunakan dalam Python dan merupakan gabungan dari Merge Sort dan Insertion Sort. Ini dirancang untuk bekerja dengan baik pada data yang sudah sebagian terurut.
Algoritma pengurutan populer dalam Python termasuk Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort, dan Tim Sort.
Python populer karena bahasa pemrograman ini lebih produktif jika dibandingkan dengan bahasa pemrograman lain seperti C++ dan Java. Penggunaan python juga didukung oleh kesederhanaan sintaks pemrograman, keterbacaan kode, dan perintah seperti bahasa Inggris yang membuat pengkodean dengan python jauh lebih mudah dan efisien.
RNN atau Recurrent Neural Network
Pernahkah Sahabat DQ memperhatikan ketika Sahabat DQ mulai mengetik sesuatu, Google secara otomatis melengkapi kalimat untuk Sahabat DQ! Sekarang, jika Sahabat DQ memikirkan cara kerjanya, rahasianya adalah RNN.
Recurrent Neural Networks telah mengarahkan siklus di antara node yang saling berhubungan. Mereka menggunakan memori mereka untuk memproses urutan input berikutnya untuk mengimplementasikan jenis fungsi fitur pelengkapan otomatis. RNN dapat mengambil serangkaian input tanpa batasan ukurannya, menjadikannya unik.
Google, Mesin Pencari, dan Peramban Web secara ekstensif menggunakan RNN untuk melengkapi kata dan kalimat secara otomatis. Aplikasi lain adalah Deteksi dan Pengenalan Teks, Menganalisis bingkai video, dll.
Jaringan Fungsi Radial (RBFNs)
Seperti namanya, ini didasarkan pada fungsi aktivasi Radial basis function (RBF). Proses pelatihan model membutuhkan waktu yang sedikit lebih sedikit menggunakan RBFN daripada MLP. Jenis RBFN langsung adalah jaringan saraf umpan maju tiga lapis dengan lapisan input, lapisan tersembunyi yang terdiri dari beberapa unit aktivasi nonlinier RBF, dan lapisan keluaran linier yang bertindak sebagai unit penjumlahan untuk memberikan keluaran akhir.
RBFN digunakan untuk menganalisis harga pasar saham dan juga memperkirakan harga jual di industri Ritel karena kemampuannya untuk bekerja pada data berbasis deret waktu. Aplikasi lain termasuk pengenalan ucapan, analisis deret waktu, pengenalan gambar, pemerataan adaptif, diagnosis medis, dll.
Multilayer Perceptron (MLP)
MLP adalah algoritma deep learning paling dasar dan juga salah satu teknik deep learning tertua. Algoritma ini digunakan oleh situs media sosial (Instagram, Facebook) untuk mengkompres data gambar. Itu secara signifikan membantu memuat gambar bahkan jika kekuatan jaringan tidak terlalu kuat. Aplikasi lain termasuk Digunakan dalam pengenalan gambar dan ucapan, kompresi data, dan juga untuk masalah klasifikasi.
Jika Sahabat DQ seorang pemula dalam pembelajaran mendalam dan baru saja mulai menjelajahinya, kami sarankan Sahabat DQ memulai dengan MLP. MLP dapat disebut sebagai bentuk jaringan syaraf Feedforward. Cara kerja MLP sama dengan yang kita bahas di atas dalam contoh data MNIST kita. Lapisan pertama mengambil input, dan yang terakhir menghasilkan output berdasarkan lapisan tersembunyi.
Setiap node terhubung ke setiap node pada lapisan berikutnya, sehingga informasi terus-menerus diumpankan antara beberapa lapisan, itulah sebabnya disebut sebagai jaringan feed-forward. Setiap lapisan tersembunyi diberi makan dengan beberapa bobot (nilai yang ditetapkan secara acak). Kombinasi bobot dan input dipasok ke fungsi aktivasi yang diteruskan lebih jauh ke lapisan berikutnya untuk menentukan output.
Jika kami tidak mencapai output yang diharapkan, kami menghitung kerugian (kesalahan) dan kami melacak kembali untuk memperbarui bobot. Ini merupakan proses berulang sampai diperoleh keluaran yang diprediksi (trial and error). Sangat penting dalam melatih model pembelajaran mendalam, karena bobot yang benar akan menentukan hasil akhir Sahabat DQ.
Baca juga : Yuk Kenali Macam-Macam Algoritma Machine Learning!
Apa itu Algoritma Quick Sort?
Algoritma Sorting merupakan algoritma yang menempatkan elemen list pada urutan tertentu. Urutan yang paling sering digunakan ialah urutan numerikal dan urutan lexicographical (Dalam matematika, urutan leksikografik, biasa dikenal sebagai urutan leksikal atau urutan alfabet, adalah bentuk umum dari urutan alfabet kata yang berdasarkan pada pengurutan huruf depan). Sorting yang efisien sangat dibutuhkan untuk mengoptimisasi penggunaan dari algoritma lain seperti pencarian dan penggabungan yang membutuhkan list terurut untuk berjalan dengan sempurna, yang juga sering digunakan untuk Canonicalisisasi (membakukan) data dan menghasilkan output yang dapat dibaca manusia.
Salah satu jenis algoritma sorting adalah Quick Sort. Quick Sort adalah salah satu algoritma pengurutan data yang paling cepat, yaitu dengan membagi list menggunakan sebuah pivot. Quick Sort juga menggunakan rekursif dalam algoritmanya. Data yang kurang dari pivot sudah ditentukan ditaruh disebelah kirinya pivot sedangkan data yang lebih besar dari pivot maka ditaruh disebelah kanan pivot.
#berikut adalah nilai” dari anak” di kelas LB01 urutkanlah dari yang terkecil hingga terbesar (70,55,45,50,30,68,100,98,42,12,54)
array=[70,55,45,50,30,68,100,98,42,12,54]
lbK = [] smD = [] lbB = [] if len(array) > 1: pivot = array[0] for x in array: if x < pivot: lbK.append(x) elif x == pivot: smD.append(x) elif x > pivot: lbB.append(x) a = lbK.sort() b = lbB.sort() print(lbK+smD+lbB)
[12, 30, 42, 45, 50, 54, 55, 68, 70, 98, 100]
Implementasi Quick Sort di Python
Berikut adalah implementasi Quick Sort dalam bahasa Python.
# Fungsi untuk melakukan partisi
def partition(arr, low, high):
pivot = arr[high] # Mengambil elemen terakhir sebagai pivot
i = low – 1 # Indeks dari elemen yang lebih kecil
for j in range(low, high):
# Jika elemen saat ini lebih kecil atau sama dengan pivot
# Tukar elemen arr[i] dan arr[j]
arr[i], arr[j] = arr[j], arr[i]
# Tukar elemen pivot ke posisi yang tepat
arr[i + 1], arr[high] = arr[high], arr[i + 1]
# Fungsi utama quicksort
def quicksort(arr, low, high):
# Pi adalah indeks partisi
pi = partition(arr, low, high)
# Mengurutkan elemen sebelum dan sesudah partisi
quicksort(arr, low, pi – 1)
quicksort(arr, pi + 1, high)
arr = [10, 7, 8, 9, 1, 5]
quicksort(arr, 0, n – 1)
print(f”Hasil pengurutan: {arr}”)
Pemilihan pivot adalah aspek yang sangat penting dalam Quick Sort. Pilihan pivot yang buruk dapat menghasilkan pembagian yang tidak seimbang pada setiap iterasi, yang meningkatkan waktu eksekusi hingga mencapai O(n2)O(n^2)O(n2). Berikut beberapa strategi umum dalam memilih pivot:
Untuk meningkatkan performa dalam skenario terburuk, banyak implementasi Quick Sort modern menggunakan teknik pemilihan pivot acak atau strategi median-of-three yang memilih pivot dari median tiga elemen (elemen pertama, tengah, dan terakhir).
Berikut implementasi Quick Sort dengan pemilihan pivot acak:
def partition(arr, low, high):
pivot_index = random.randint(low, high)
arr[pivot_index], arr[high] = arr[high], arr[pivot_index] # Tukar pivot dengan elemen terakhir
for j in range(low, high):
arr[i], arr[j] = arr[j], arr[i]
arr[i + 1], arr[high] = arr[high], arr[i + 1]
def quicksort(arr, low, high):
pi = partition(arr, low, high)
quicksort(arr, low, pi – 1)
quicksort(arr, pi + 1, high)
arr = [10, 7, 8, 9, 1, 5]
quicksort(arr, 0, n – 1)
print(f”Hasil pengurutan dengan pivot acak: {arr}”)
By: Finn Christoffer K.
Fungsi sortir dapat digunakan untuk mengurutkan daftar dalam urutan naik, turun atau yang ditentukan pengguna. Tujuan utama dari proses sorting adalah untuk mengurutkan data, baik itu dari terendah ataupun tertinggi. Yang secara tidak langsung akan menjadikan data lebih terstruktur, rapi dan teratur.
Ada banyak algoritma populer untuk mengurutkan data, seperti : insertion sort, selection sort, merge sort, heap sort, quick sort, bubble sort, shell sort, comb sort, counting sort, bucket sort, radix sort. Tapi di artikel ini saya hanya akan menyebutkan salah satu jenis algoritma sort yaitu Selection Sort.
Selection Sort adalah perbaikan dari algoritma bubble sort, dengan mengurangi jumlah perbandingan. Dikatakan selection sort karena algoritma ini mencoba memilih satu per satu elemen data dari posisi awal, untuk mencari data paling kecil dengan mencatat posisi index-nya saja, lalu dilakukan pertukaran hanya sekali pada akhir setiap tahapan.
Selection sort merupakan metode pengurutan dengan mencari nilai data terkecil dimulai dari data diposisi 0 hingga diposisi N-1. Jika terdapat N data dan data terkoleksi dari urutan 0 sampai dengan N-1 maka algoritma pengurutan dengan metode selection sortadalah sebagai berikut:
Jika kita memiliki elemen array : {5, 1, 12, -5, 16, 2, 12, 14} maka cara pengurutannya