Masalah Pengoptimalan Multi-Objektif menggunakan Pemrograman Sasaran – Menuju AI — Teknologi, Sains, dan Teknik Terbaik

Pengarang: Supriya Ghosh

Optimasi

Optimasi Multi-Objektif di mana Pemrograman Sasaran menang dan pemrograman Linier menyerah….

Diketahui bahwa tiga pilar ilmu data yang perlu kita pahami dengan baik dari sudut pandang matematika adalah Aljabar Linier, Statistik, dan Optimasi yang digunakan cukup banyak di semua algoritma ilmu data.

Sumber: https://www.reddit.com/r/MathJokes/comments/f05kuv/lets_mathematically_optimize_our_life/

Pengoptimalan dikatakan sebagai jantung dari hampir semua pembelajaran mesin dan teknik statistik yang digunakan dalam ilmu data. Inti dari kebanyakan algoritma pembelajaran mesin adalah membangun model optimasi dan kemudian mempelajari parameter dalam fungsi tujuan dari data yang diberikan.

Di sini, dalam penulisan ini, saya akan menjelaskan rumusan masalah optimasi multi-tujuan menggunakan pemrograman Goal secara rinci.

Sumber: https://users.ece.cmu.edu/~yuejiec/MachineLearning.html

Optimasi multi-tujuan juga dikenal sebagai pemrograman multi-tujuan atau optimasi Pareto berkaitan dengan masalah optimasi yang melibatkan lebih dari satu fungsi tujuan untuk dioptimalkan secara bersamaan. Ini telah diterapkan di banyak bidang ilmu pengetahuan, termasuk teknik, logistik, pemasaran, transportasi, ekonomi, dll. Dimana keputusan yang optimal perlu diambil dengan trade-off antara dua atau lebih tujuan yang saling bertentangan.

Beberapa contoh yang paling umum terlihat dalam kehidupan kita sehari-hari adalah:

Meminimalkan biaya dan memaksimalkan kenyamanan saat membeli mobil,

dan

Memaksimalkan kinerja sekaligus meminimalkan konsumsi bahan bakar dan emisi polutan berbahaya kendaraan.

Masalah di atas melibatkan dua dan tiga tujuan, masing-masing. Tetapi dalam situasi praktis, bisa ada lebih dari tiga tujuan.

Oleh karena itu, untuk memahami bagaimana masalah optimasi multi-tujuan dapat dikembangkan dan dimodelkan, kita perlu memahami Pemrograman Tujuan secara menyeluruh.

Mari kita mulai dengan definisi formal Pemrograman Sasaran seperti yang dirujuk di Wikipedia.

Sumber : https://www.pinterest.com/pin/17099673557155171/

Pemrograman tujuan adalah cabang dari optimasi multi-tujuan, yang pada gilirannya merupakan cabang dari analisis keputusan multi-kriteria. Hal ini dapat dianggap sebagai perluasan atau generalisasi dari program linier untuk menangani beberapa ukuran objektif yang biasanya saling bertentangan.

Sekarang muncul pertanyaan, mengapa dan kapan kita menghadapi berbagai situasi objektif, dan apa perlunya Pemrograman Sasaran?

Dalam lingkungan bisnis yang dinamis saat ini, sebagian besar waktu organisasi memiliki beberapa tujuan yang saling bertentangan untuk dicapai. Tidak hanya perusahaan mencari keuntungan dan pendapatan maksimal atau minimalisasi biaya tetapi memiliki tujuan non-profit lain untuk memenuhi seperti tanggung jawab sosial, hubungan masyarakat, hubungan industrial dan karyawan, dll.

Sumber : https://www.pinterest.com/pin/129337820520206879/

Dalam situasi seperti itu, pemrograman tujuan mengasumsikan sangat penting dan berfungsi sebagai teknik kuantitatif yang kuat yang mampu menangani beberapa kriteria keputusan.

Tetapi mengapa pemrograman Linier tidak digunakan dalam kasus seperti itu?

Sumber : https://www.pinterest.ph/pin/314618723953095984/

Untuk memahaminya mari kita lihat perbedaan antara Pemrograman Linier dan Pemrograman Sasaran dengan bantuan tabel di bawah ini.

Pemrograman Linier vs Pemrograman Sasaran

Sumber: Oleh Penulis

Sekarang karena kita sudah familiar dengan perbedaannya, kita tahu mengapa pemrograman Linier tidak dapat digunakan dalam masalah multi-objektif?

Mari kita lanjutkan lebih jauh untuk membahas bagaimana model pemrograman Sasaran dapat dikembangkan menggunakan contoh kehidupan nyata. Faktanya, merumuskan model yang benar berdasarkan masalah yang dihadapi adalah bagian tersulit dari pengambilan keputusan / optimasi multi-tujuan. Dan percayalah, setelah model dirumuskan dengan benar, memecahkannya, dan mengekstrak hasil cukup mudah.

Sumber: https://www.performanceinpeople.co.uk/blog/Introducing-Goal-Mapping/

Izinkan saya mengulangi tiga karakteristik utama masalah pemrograman Sasaran yang perlu kita ingat saat membentuk model.

1. Tidak ada tujuan tunggal tetapi banyak tujuan yang harus dicapai.

2. Model pemrograman tujuan adalah semua masalah minimalisasi karena variabel deviasi (pencapaian berlebih dan pencapaian rendah) perlu diminimalkan.

3. Penyimpangan dari tujuan prioritas tinggi harus diminimalkan semaksimal mungkin sebelum tujuan prioritas tinggi berikutnya dipertimbangkan.

Mari kita memahami pembentukan model melalui contoh –

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.

Di sini, dalam contoh ini, perusahaan bertujuan untuk mencapai beberapa tujuan sekaligus. Biarkan saya daftar tujuan pertama.

1. Tujuan 1: Untuk mendapatkan keuntungan sebesar $30 selama periode produksi.

2. Sasaran 2: Untuk sepenuhnya memanfaatkan jam departemen perkabelan yang tersedia.

3. Tujuan 3: Untuk menghindari lembur di departemen perakitan.

4. Sasaran 4: Memenuhi persyaratan kontrak untuk memproduksi setidaknya 7 lampu LED.

Selanjutnya, saya menyiapkan variabel deviasi.

Menyiapkan variabel pilihan

X1 = Jumlah Kap Lampu yang diproduksi

X2 = Jumlah lampu LED yang dihasilkan

Menyiapkan prioritas Sasaran sesuai relevansi dengan Bisnis dan manajemen.

Oleh karena itu P1 lebih penting dari P2 dan P2 lebih penting dari P3 dan seterusnya.

Anggap saja tidak berdampak pada bisnis dan manajemen jika terjadi Overachievement target profit dan Overachievement produksi lampu LED.

Jadi sekarang model kita sudah siap dan diformulasikan sesuai kebutuhan masalah yang dihadapi.

Biarkan saya meringkas langkah-langkah Formulasi Model Pemrograman Tujuan.

1. Tentukan variabel Pilihan, Konstanta, dan Tujuan

Langkah pertama dalam pembentukan model adalah mendefinisikan variabel pilihan dan konstanta sisi kanan. Konstanta sisi kanan — sisi adalah tingkat/nilai tujuan yang ditentukan. Ini membutuhkan analisis masalah yang cermat untuk mengidentifikasi semua variabel relevan yang memiliki beberapa efek pada serangkaian tujuan yang ditetapkan oleh pemangku kepentingan bisnis/pengambil keputusan.

2. Tambahkan variabel deviasi

Mengidentifikasi dan mengatur variabel deviasi. Variabel-variabel tersebut mewakili kemungkinan penyimpangan di bawah (underachievement) atau di atas nilai target (overachievement).

3. Tentukan prioritas

Prioritas yang terkait dengan setiap tujuan harus ditetapkan dengan rapi. Untuk misalnya –

Prioritas tingkat P1, jika yang paling penting harus diletakkan terlebih dahulu, diikuti oleh tingkat Prioritas P2 yang penting berikutnya, dan seterusnya.

4. Rumuskan Kendala

Serangkaian kendala harus dirumuskan berdasarkan hubungan antara variabel pilihan dan hubungan mereka dengan serangkaian tujuan.

Sebuah kendala dapat berupa kendala sistem yang dapat mempengaruhi tetapi tidak secara langsung berhubungan dengan tujuan atau kendala tujuan yang berhubungan langsung dengan tujuan.

Setiap persamaan kendala dikembangkan dengan menambahkan variabel deviasi. Jika tidak ada variabel deviasi untuk ditambahkan, maka kendala baru dengan variabel deviasi dibuat.

5. Kembangkan fungsi tujuan

Untuk mengembangkan fungsi tujuan, pertama, faktor prioritas preemptive harus ditetapkan ke variabel deviasi yang relevan untuk pencapaian tujuan. Kedua, bobot harus diberikan ke variabel deviasi pada tingkat prioritas yang sama. Satu hal penting yang perlu diperhatikan di sini adalah bahwa tujuan pada tingkat prioritas yang sama harus sepadan.

Sumber : https://www.rosettatg.com/blogtoon/2018/3/12/what-are-you-optimizing-for

Dengan ini, saya menyimpulkan pada Bagian 1 dari penulisan yang secara ketat berfokus pada perumusan model untuk masalah optimasi multi-tujuan menggunakan pemrograman tujuan.

Di bagian kedua, saya akan membawanya ke tingkat berikutnya di mana saya akan fokus terutama pada penyelesaian fungsi tujuan untuk mendapatkan solusi optimal menggunakan teknik pemrograman Tujuan.

Semoga Anda menikmati artikel ini.

Masalah Pengoptimalan Multi-Objektif menggunakan Pemrograman Sasaran awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI