Algoritma Monte Carlo adalah salah satu algoritma yang digunakan untuk pengambilan keputusan. Contoh yang dibahas kali ini adalah mengenai pengambilan produk investasi dengan nilai pengembalian paling besar.
Diasumsikan ada 2 Produk Investasi yang dapat dipilih yaitu A dan B
Masing-masing produk memiliki 3 macam pengembalian nilai investasi, yaitu investasi rendah, sedang, dan tinggi
Nilai pengembalian investasi tiap produk juga berbeda-beda, dan probabilitas antar macamnya juga berbeda-beda
Maka tentukan produk Investasi yang dapat mengembalikan nilai maksimal
Diasumsikan dalam kasus ini, data awalnya adalah sebagai berikut
Nama | ||
---|---|---|
Produk A | probabilitas nilai rendah 0.4 | pengembalian investasi 1.1 kali modal |
Produk A | probabilitas nilai sedang 0.4 | pengembalian investasi 1.15 kali modal |
Produk A | probabilitas nilai tinggi 0.2 | pengembalian investasi 1.3 kali modal |
Produk B | probabilitas nilai rendah 0.2 | pengembalian investasi 1.05 kali modal |
Produk B | probabilitas nilai sedang 0.5 | pengembalian investasi 1.2 kali modal |
Produk B | probabilitas nilai tinggi 0.3 | pengembalian investasi 1.25 kali modal |
Langkah pertama adalah memasukkan data-data yang digunakan.
Contoh data adalah sebagai berikut
Dim data(5, 2) As Double data(0, 0) = 0 data(0, 1) = 39 data(0, 2) = 1.1 data(1, 0) = 40 data(1, 1) = 79 data(1, 2) = 1.15 data(2, 0) = 80 data(2, 1) = 99 data(2, 2) = 1.3 data(3, 0) = 0 data(3, 1) = 19 data(3, 2) = 1.05 data(4, 0) = 20 data(4, 1) = 69 data(4, 2) = 1.2 data(5, 0) = 70 data(5, 1) = 99 data(5, 2) = 1.25
Langkah-langkah penggunaan algoritma ini adalah
1. Tentukan modal investasi yang akan digunakan
Console.WriteLine("Masukkan Modal: ") Dim modal As Double = Console.ReadLine
2. Tentukan banyak nilai data acak yang dihasilkan
Semakin banyak nilai acak yang dihasilkan, semakin baik hasil akhirnya.
Diasumsikan dalam kasus ini, banyak data nilai acak adalah 50
Const n As Integer = 50
3 Cari nilai acak antara 0-99 sebanyak n
Kemudian cari nilai pengembalian investasinya berdasarkan kriteria probabilitas nilainya
Dim hasil(n - 1, 1) As Double Dim input As Integer = 0 Dim rnd As New Random Dim iTotalA As Double = 0, itotalB As Double = 0 For i As Integer = 0 To n - 1 'Produk A input = rnd.Next(0, 99) If input >= data(0, 0) And input <= data(0, 1) Then hasil(i, 0) = modal * data(0, 2) If input >= data(1, 0) And input <= data(1, 1) Then hasil(i, 0) = modal * data(1, 2) If input >= data(2, 0) And input <= data(2, 1) Then hasil(i, 0) = modal * data(2, 2) iTotalA += hasil(i, 0) 'Produk B input = rnd.Next(0, 99) If input >= data(3, 0) And input <= data(3, 1) Then hasil(i, 1) = modal * data(3, 2) If input >= data(4, 0) And input <= data(4, 1) Then hasil(i, 1) = modal * data(4, 2) If input >= data(5, 0) And input <= data(5, 1) Then hasil(i, 1) = modal * data(5, 2) itotalB += hasil(i, 1) Next
4. Cari nilai rata-rata antara 2 produk tersebut, kemudian bandingkan nilainya
Hasil akhir adalah produk yang nilai rata-ratanya lebih besar
Hasil akhir adalah: (klik untuk perbesar gambar)
Contoh modul / source code dalam bahasa VB (Visual Basic) dapat didownload disini:
Jika membutuhkan jasa kami dalam pembuatan program, keterangan selanjutnya dapat dilihat di Fasilitas dan Harga
Jika ada yang kurang paham dengan langkah-langkah algoritma diatas, silahkan berikan komentar Anda.
Selamat mencoba.
Apa bisa digunakan untuk penyelesaian klasifikasi diabetes yang outputnya ‘iya’ dan ‘tidak’?
Saya belum mendapatkan gambaran tentang klasifikasi yang anda maksud. Berdasarkan klasifikasi apakah kasus tersebut.
Untuk dataset pima indian diabetes, ada bbrp variabel yg nantinya dipakai menentukan apakah orang tersebut terkena diabetes atau tidak. Terima kasih
Biasakah anda jelaskan masing-masing variabel kirteria tersebut, beserta contoh dalam bentuk angka?