Model Optimasi Multi-Objektif Diselesaikan menggunakan R — Part2 – Menuju AI — Teknologi, Sains, dan Rekayasa Terbaik

Pengarang: Supriya Ghosh

Optimasi

Model Optimasi Multi-Objektif Diselesaikan menggunakan R — Part2

Sumber — https://musfirsays.wordpress.com/2012/02/22/mathematical-optimization/

Bukankah bagus untuk memecahkan masalah optimasi Multi-Objective dari Goal Programming menggunakan “R”?

Jika ya, maka inilah sesuatu yang dapat Anda jamin.

Dalam penulisan ini, saya akan menyelami lebih dalam bagaimana kita bisa menyelesaikan Masalah Optimasi Multi-Objektif ketika kita memiliki model yang sudah dikembangkan?

Saya akan menggunakan bahasa ‘R’ untuk menemukan solusi optimal yang diberikan model yang dikembangkan, tujuannya, kendala, dan variabel deviasi. Saya akan menguraikan lebih lanjut tentang solusi untuk membuat Anda memahami setiap aspeknya.

Di Bagian 1,

Pengembangan Model Optimasi Multi-Objektif menggunakan Goal Programming

Saya telah menguraikan proses perumusan model lengkap dari awal.

Mari saya mulai dengan mengulangi Kasus Manufaktur yang digunakan sebelumnya berdasarkan Model Optimasi yang dikembangkan.

Salah satu perusahaan pencahayaan populer memproduksi dua rangkaian produk, kap lampu warna-warni dan lampu LED. Kedua produk tersebut memerlukan proses produksi 2 langkah yang melibatkan pengkabelan dan perakitan. Dibutuhkan sekitar 2 jam untuk memasang setiap kap lampu dan 3 jam untuk memasang setiap lampu LED. Perakitan akhir kap lampu dan lampu LED masing-masing membutuhkan 6 dan 5 jam. Kemampuan produksinya sedemikian rupa sehingga hanya tersedia 12 jam waktu pemasangan kabel dan 30 jam waktu perakitan. Perusahaan sangat ketat dalam memanfaatkan jam departemen kabel secara maksimal tanpa pemborosan dan juga berharap tidak ada lembur di departemen perakitan. Ini menghasilkan keuntungan $7 dari setiap kap lampu dan $6 dari setiap lampu LED. Selain itu, perusahaan memiliki kewajiban kontraktual untuk memenuhi pengiriman minimal 7 lampu LED.

Namun secara paralel, perusahaan pindah ke lokasi strategis baru dan merasa bahwa pada awalnya memaksimalkan keuntungan bukanlah tujuan yang realistis. Manajemen menetapkan tingkat keuntungan sebesar $30 yang akan memuaskan selama periode ini.

Perusahaan ingin mengetahui bauran produk yang mencapai tujuan ini sedekat mungkin dengan keterbatasan waktu produksi.

Berdasarkan kasus di atas, model yang dikembangkan adalah sebagai berikut:

Sumber — Oleh Penulis

Dimana X1 dan X2 merupakan variabel keputusan.

Sekarang. mari kita selesaikan ini untuk mendapatkan solusi optimal kita.

Langkah 1 — Buat matriks koefisien.

Dalam hal ini, koefisien kami akan diturunkan dari nilai numerik yang terkait dengan variabel X1 dan X2.

yaitu, 7X1 + 6X2, 2X1 + 3X2, 6X1 + 5X2 dan X2.

Ini memberi kita matriks 4 x 2 sebagai

Di sini Jumlah baris sama dengan jumlah tujuan, dan jumlah kolom sama dengan jumlah variabel keputusan.

Langkah 2 — Bangun vektor Target

Vektor target adalah nilai target yang ditetapkan untuk dicapai untuk tujuan.

Di sini jumlah elemen sama dengan jumlah tujuan.

Langkah 3 — Bangun Kerangka Data Pencapaian yang mendefinisikan tujuan pencapaian.

Kerangka data ini memiliki kolom pertama yang ditetapkan sebagai tujuan dan berisi indeks untuk tujuan tertentu.

Karena kami memiliki 4 tujuan maka hitungan 1,2…4 disebutkan.

Kolom ke-2 adalah Prioritas, dan memuat prioritas tujuan yang ditetapkan.

Karena tujuan 1 adalah prioritas utama diikuti oleh tujuan 4 kemudian 2 dan 3 masing-masing, maka penggambaran di bawah ini sama.

Kolom 3 adalah representasi dari variabel deviasi positif, (Overachievement).

Umumnya digambarkan dengan notasi “p” pada Visual “R”.

Kolom ke-4 adalah representasi dari variabel deviasi negatif, (Underachievement).

Umumnya digambarkan dengan notasi “n” pada Visual “R”.

Langkah 4 — Perhitungan akhir dari hasil optimal dengan menggunakan paket dan fungsi R dengan meminimalkan variabel deviasi.

Di sini “R” menggunakan metode simpleks yang dimodifikasi untuk mendapatkan solusi optimal.

Satu hal lagi yang penting untuk dipertimbangkan di sini adalah bahwa jika selain prioritas bahkan bobot perlu dipertimbangkan untuk tujuan, maka kerangka data akan memiliki lima kolom bernama. Empat kolom pertama identik dengan kolom yang telah disebutkan di atas. Kolom kelima disebut ‘w’ dan merupakan bobot yang terkait dengan tingkat prioritas yang ditentukan.

Di bawah ini adalah R lengkap — Kode yang diambil untuk menunjukkan perhitungan.

# Salin paket “goalprog” dari url jalur yang ditentukan <- "https://cran.r-project.org/src/contrib/Archive/goalprog/goalprog_1.0-2.tar.gz"
pkgFile <- "goalprog_1.0-2.tar.gz"
download.file(url = url, destfile = pkgFile) # Instal paket “goalprog”
install.packages(pkgs=pkgFile, type=”source”, repos=NULL) library(goalprog) # Gunakan fungsi llgp() untuk menyelesaikan model optimasi multi-opjektif # Daftar koefisien seperti yang ditentukan dalam fungsi tujuan
# Simpan sebagai matriks
koefisien <- matriks( c( 7, 6, 2, 3, 6, 5, 0, 1 ), nrow=4, byrow=TRUE )
koefisien # Daftar nilai target seperti yang ditentukan dalam fungsi tujuan
# Simpan sebagai vektor
target <- c( 30, 12, 30, 7 )
target # Buat daftar pencapaian tujuan seperti yang ditentukan dalam fungsi tujuan
# Simpan sebagai bingkai data, di mana kolom pertama adalah tujuan, kolom kedua adalah prioritas,
Kolom # 3 adalah variabel deviasi yang menunjukkan pencapaian berlebih dan ditunjukkan sebagai p,
Kolom # 4 adalah variabel deviasi yang menunjukkan prestasi rendah dan ditunjukkan sebagai n,
pencapaian <- data.frame( matrix(
c( 1, 1, 0, 1,
2, 3, 1, 1,
3, 4, 1, 1,
4, 2, 0, 1), nrow=4, byrow=TRUE ) )
# Berfungsi untuk mendapatkan atau mengatur nama suatu objek.
nama(prestasi) <- c( "tujuan", "prioritas", "p", "n" )
prestasi soln <- llgp( koefisien, target, prestasi )
soln$out
cetak( soln$out)

Sekilas hasil capture dari eksekusi kode “R” yang akan saya jelaskan secara detail untuk menarik kesimpulan.

Hasil di atas menunjukkan

X1 sebagai 0 (tidak ada Kap Lampu yang diproduksi selama periode tersebut)

X2 sebagai 7 (7 lampu LED diproduksi sesuai kewajiban kontrak)

d1+ = 12 (Keuntungan terlampaui sebesar $12 karena target adalah $30 tetapi tercapai adalah $42).

d2+ = 9 (9 jam Overutilization di departemen Wiring karena targetnya adalah 12 jam tetapi tercapai adalah 21 jam)

d3+ = 5 (5 jam Lembur di departemen Perakitan karena targetnya adalah 30 jam tetapi tercapai adalah 35 jam)

Catatan — Sesuai hasil yang optimal, tidak perlu untuk nilai variabel deviasi underachievement untuk dioptimalkan dalam hal ini maka kolom “under” memiliki semuanya sebagai 0. Tergantung pada masalah yang dihadapi, solusi optimal dapat mencakup variabel deviasi underachievement juga.

Sumber: https://economictimes.indiatimes.com/jobs/5-ways-to-deal-with-a-colleague-who-takes-all-the-credit/share-credit/slideshow/67636783.cms

Oleh karena itu dengan hasil ini, kami menyimpulkan bahwa tujuan prioritas tinggi kami dari target laba dan tidak ada pelanggaran kontrak telah diurus dengan baik dengan mengorbankan tujuan prioritas yang lebih rendah karena pemrograman tujuan bekerja pada prinsip “Memuaskan” daripada prinsip minimalisasi atau maksimalisasi lengkap . Dalam hal ini, solusi yang dicapai adalah yang paling optimal, mengingat Prioritas Tujuan dan kendala.

Semoga Anda menyukai ini.

Anda dapat mengikuti saya di LinkedIn: Supriya Ghosh

Dan Twitter: @isupriyaghosh

Model Pengoptimalan Multi-Objektif Diselesaikan menggunakan R — Part2 awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI