Optimisasi linear dengan kendala: biskuit
Selamat! Bisnis biskuit Anda berkembang pesat. Kini Anda memiliki dua toko roti, \(A\) dan \(B\), untuk membantu mengirimkan biskuit Anda ke seluruh negeri.
Masing-masing toko roti dapat membuat 100 biskuit per hari dan biaya membuat satu biskuit di toko roti \(A\) adalah \(1.5\) kali kuantitas \(q\), sedangkan di toko roti \(B\) adalah \(1.75q\).
Harga didefinisikan oleh \(150 - q\).
Permintaan melonjak dan Anda sudah memiliki 140 pesanan awal biskuit untuk hari ini. Anda ingin memaksimalkan laba hari ini. Berapa banyak biskuit yang harus Anda buat di masing-masing toko roti?
minimize, Bounds, dan LinearConstraint telah dimuat untuk Anda dan fungsi pendapatan R sudah didefinisikan.
Latihan ini adalah bagian dari kursus
Pengantar Optimasi di Python
Petunjuk latihan
- Definisikan fungsi biaya
Cmenggunakanq[0]untuk kuantitas di toko roti \(A\) danq[1]untuk toko roti \(B\). - Definisikan fungsi
profit. - Definisikan
boundsdanconstraintsuntuk masalah optimisasi Anda. - Lakukan optimisasi dan simpan ke
result.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
def R(q):
return (150 - q[0] - q[1]) * (q[0] + q[1])
# Define the cost function
def C(q):
return ____
# Define the profit function
def profit(q):
return ____
# Define the bounds and constraints
bounds = Bounds(____, ____)
constraints = LinearConstraint([1, 1], ____)
# Perform optimization
result = ____(lambda q: ____,
[50, 50],
bounds=bounds,
constraints=constraints)
print(result.message)
print(f'The optimal number of biscuits to bake in bakery A is: {result.x[0]:.2f}')
print(f'The optimal number of biscuits to bake in bakery B is: {result.x[1]:.2f}')
print(f'The bakery company made: ${-result.fun:.2f}')