Fungsi objektif dan optimasi sistem

Simulasi Peristiwa Diskret dengan Python

Diogo Costa (PhD, MSc)

Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific

Optimasi sistem

  • Optimasi sistem

    • Mengidentifikasi konfigurasi operasional optimal
  • Proses berbasis manusia

    • Keluaran maksimum dengan biaya minimum (lebih sedikit sumber daya, waktu lebih singkat)
  • Mengidentifikasi proses yang paling berdampak pada keluaran sistem

  • Monte Carlo sampling

    • Ukur keberhasilan dan beri peringkat hasil
  • Fungsi objektif

    • Fungsi target untuk menetapkan sasaran kinerja
Simulasi Peristiwa Diskret dengan Python

Fungsi objektif

  • Ekspresi matematis yang menggambarkan target keluaran

  • Skor skenario simulasi

Contoh

  • Proses A: 35%
  • Proses B: 20%
  • Proses C: 45%

Total: 100%

  • Proses C memiliki bobot tertinggi

Search & Stop: Jalankan berbagai konfigurasi model dan hentikan saat kondisi terpenuhi

while total_duration < 24:
      model_to_run()

Score & Rank: Beri skor hasil simulasi berdasarkan kriteria pembobotan

for i in range(num_runs):
   out_1, out_2 = model_to_run(i)
   scores[i] = 0.3 * out_1 + 0.7 * out_2
Simulasi Peristiwa Diskret dengan Python

Pendekatan 1: Search & Stop

  • Monte Carlo sampling untuk menjalankan banyak skenario
  • Terdiri dari kejadian proses non-deterministik yang berbeda
  • Loop pencarian skenario optimal dihentikan saat kondisi terpenuhi

Contoh

scenario_num = 0
while scenario_num == 0 or total_duration[s] > 40:
  scenario_num += 1
  env = simpy.Environment()
  env.process(manufacturing_proc(env))
  env.run()
  plot_results()

Plot yang menampilkan amplop respons dari suatu aktivitas manufaktur yang mencakup serangkaian proses berurutan, di mana garis biru bawah sesuai dengan run terakhir yang memenuhi persyaratan metode Search & Stop.

Simulasi Peristiwa Diskret dengan Python

Pendekatan 2: Score & Rank

  • Monte Carlo sampling untuk menjalankan banyak skenario
  • Beri skor dan peringkat hasil

Contoh: Industri manufaktur

Melibatkan berbagai tugas (atau proses) berurutan, seperti lini produksi mobil.

def objective_function_calc():
  score_objfunc = np.ones(num_scenarios)

  for s in range(num_scenarios):
    for p in range(len(processes)):

      score_objfunc[s] += (
         processes[p]["duration_hours"]
         * processes[p]["score_weight"])
Simulasi Peristiwa Diskret dengan Python

Pendekatan 2: Score & Rank

Skor

"RED": Skor rendah; "BLUE": Skor tinggi Plot sebar yang menampilkan skor fungsi objektif dari berbagai skenario yang disimulasikan untuk proses "Unloading and Preparing", "Cutting", dan "Polishing".

Peringkat

Peringkatkan run simulasi berdasarkan skor

Simulasi Peristiwa Diskret dengan Python

Mengidentifikasi proses kritis yang membatasi kinerja

Search & stop

Plot yang menampilkan amplop respons dari suatu aktivitas manufaktur yang mencakup serangkaian proses berurutan, di mana garis biru bawah sesuai dengan run terakhir yang memenuhi persyaratan metode Search & Stop. Durasi minimum tiap proses yang diperoleh pada simulasi terbaik ditandai.

  • Garis "Blue" memenuhi kriteria "stop"

    • Total durasi = 30 menit
  • Rincian hasil simulasi "terbaik":

    • Proses 1: sekitar 10 menit (sum = 20 min)
    • Proses 2: sekitar 10 menit (sum = 20 min)
    • Proses 3: sekitar 8 menit (sum = 28 min)
    • Proses 4: sekitar 2 menit (sum = 30 min)
  • "Proses 1" krusial untuk mencapai target ini

Simulasi Peristiwa Diskret dengan Python

Mengidentifikasi proses kritis yang membatasi kinerja

Skor

Tujuan: skor terendah = durasi terendah Plot sebar yang menampilkan skor fungsi objektif dari berbagai skenario yang disimulasikan untuk proses "Unloading and Preparing", "Cutting", dan "Polishing". Durasi minimum tiap proses yang diperoleh pada simulasi terbaik ditandai.

Peringkat

"Proses 1" krusial untuk mencapai target ini Plot yang memberi peringkat skenario menurut skor fungsi objektif dari berbagai skenario yang disimulasikan untuk proses "Unloading and Preparing", "Cutting", dan "Polishing". Durasi minimum tiap proses yang diperoleh pada simulasi terbaik ditandai.

Simulasi Peristiwa Diskret dengan Python

Ayo berlatih!

Simulasi Peristiwa Diskret dengan Python

Preparing Video For Download...