02 Modul Pelatihan Lingo

  • Uploaded by: Cynthia Ayuningtyas
  • 0
  • 0
  • January 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View 02 Modul Pelatihan Lingo as PDF for free.

More details

  • Words: 3,281
  • Pages: 14
Loading documents preview...
Traaining Material

L O - Opptimizzationn Moddelingg Softtware LINGO

Presenteed by:

Bobby Kurrniawaan

Graaduate Studeent of Industtrial Engineeering and Maanagement D Department, Banduung Institutee of Technoloogy Facultty Member of o Industrial Engineeringg Departmennt, Universiity of Sultan AgengTirtayyasa

In collaborattion with:

Industrrial Engiineering Departm ment, Faaculty of Engineeering Sebelaas Marett Universsity D Decembe r 2011

Daftar Isi    1.  PENGENALAN LINGO ............................................................................................................... 3  1.1  Pendahuluan ........................................................................................................................... 3  1.2  Memulai Lingo ....................................................................................................................... 3  1.3  Aturan dalam Lingo ............................................................................................................... 3  2.  PEMROGRAMAN LINGO .......................................................................................................... 5  2.1  Struktur Model Lingo ............................................................................................................. 5  2.2  Objective function dan constraints set ................................................................................ 5  2.3  Data Section........................................................................................................................... 6  2.4  Jenis dan struktur data ......................................................................................................... 6  2.5  Sets Section ............................................................................................................................ 6  3.  CONTOH KASUS OPTIMISASI ................................................................................................. 7  3.1  Transportasi ............................................................................................................................ 7  3.2  Blending ............................................................................................................................... 10  4.  CONTOH KASUS GOAL PROGRAMMING ........................................................................... 11  4.1  Model s-SCM pada Industri Furniture ................................................................................. 11  4.2  Formulasi Model kasus s-SCM ............................................................................................ 11  5. LAMPIRAN.................................................................................................................................... 14 

Daftar Tabel    

Tabel 2. Pasokan gudang .................................................................................................................... 7  Tabel 3. Permintaan vendor ................................................................................................................ 8  Tabel 4. Biaya kirim per unit .............................................................................................................. 8  Tabel 5. Biaya kirim per unit ............................................................................................................ 10 

Daftar Gambar    

Gambar 1. Memulai file baru pada Lingo .......................................................................................... 3  Gambar 2. Model matematik secara eksplisit ................................................................................... 3  Gambar 3. Masalah transportasi WW Company ............................................................................... 7 

2

1. PENGENALAN LINGO 1.1 Pendahuluan   Lingo merupakan bahasa pemrograman tingkat tinggi yang digunakan untuk menyelesaikan masalah optimisasi bersakala besar (large scale optimization). Model programa matematika yang dapat diselesaikan antara lain Linear Programming (LP), Integer Programming (IP), dan Quadratic Prgramming (QP), dan Non linear Programming (NLP). Kemampuan Lingo yang cukup beragam dengan kemudahan dalam membentuk model membuat Lingo popular di kalangan akademik. Kemampuan Lingo untuk memecahkan masalah optimisasi tergantung dengan lisensi yang dimiliki. Jumlah variabel, constraints, dan solver yang digunakan sangat tergantung dengan lisensi. 1.2 Memulai Lingo   Untuk memulai membuat model Lingo jalankan program Lingo seperti aplikasi Windows lainnya. Lalu pilih menu File->New atau tekan F2. Setelah itu pilih Lingo Model (*.lg4) seperti pada Gambar 1.

Gambar 1. Memulai file baru pada Lingo  Pembuatan model matematika menggunakan bahasa Lingo dapat dilakukan dengan dua cara, yaitu secara eksplisit (Gambar 2) dan menggunakan Lingo modeling sets. Untuk model yang berukuran kecil (jumlah variabel dan pembatas sedikit) cara eksplisit lebih cepat dan efisien. Akan tetapi semakin besar model semakin tidak efisien cara eksplisit, sehingga modeling sets lebih efisien dibandingkan dengan eksplisit.

  Gambar 2. Model matematik secara eksplisit 

1.3 1. 2. 3.

Aturan dalam Lingo   Lingo tidak bersifat case sensitive. Bobby sama dengan BOBBY. Satu perintah diakhiri dengan tanda semicolon (;). Komentar tidak diproses oleh Lingo engine solver. Komentar dibuat untuk memudahkan pengguna mengenai formulasi yang digunakan. Cara membuat komentar dalam Lingo adalah dimulai dengan 3

4. 5. 6. 7. 8.

tanda seru (!) dan diakhiri dengan semicolon (;). Perintah di antara ke dua karakter tersebut tidak diproses. Variabel atau identifier tidak bisa menggunakan Lingo keywords reserved. Contoh keyword reserved dari Lingo antara lain MODEL, DATA, END, SETS, ENDDATA, ENDSETS, dll. Apabila setting tidak dirubah secara default keywords reserved tampak di layar editor berwarna biru. Operator pertidaksamaan < ekivalen dengan ≤, dan > ekivalen dengan ≥. Secara otomatis apabila tidak dideklarasikan secara eksplisit, variabel bernilai non-negatif. Perintah diawali dengan tanda @. Kesalahan dalam pembuatan model pada umumnya adalah kesalahan mengidentifikasikan indeks dan kesalahan mengidentifikasi jenis variabel (identifier).

TIPS: Dalam membuat model jalankan (run, solve) setelah membuat satu perintah agar dapat diketahui bagian yang salah dan dapat mengecek logika model.

4

2. PEMROGRAMAN LINGO

2.1 Struktur Model Lingo  Struktur sederhana suatu model Lingo diawali kata MODEL dan diakhiri dengan END. Untuk selanjutnya perintah-perintah di antara kedua kata tersebut kita sebut badan model (body model). Pada badan model dapat dilakukan hal-hal sebagai berikut: - deklarasi sets section - inisiasi data section - deklarasi dan inisiasi variabel - pre-processing section - deklarasi fungsi tujuan - pembuatan himpunan pembatas Bagian dari perintah yang dimulai dengan suatu keywords dan diakhiri dengan END disebut section. Contoh: DATA-ENDDATA, SETS-ENDSETS, dan INIT-ENDINIT. Section DATA-ENDDATA dan SETS-ENDSETS diletakkan sebelum pendeklarasian fungsi tujuan. Berikut ini struktur umum suatu model Lingo:

Init section

Sets section Model body Data section

Objective function declaration Constraints set

Pada umunya, model Lingo yang terdiri dari sets section, data section, objective function, dan constraints sets sudah cukup untuk dapat digunakan memecahkan masalah optimisasi. Oleh karena itu pada bagian selanjutnya yang akan dibahas hanya struktur model yang terdiri dari elemen-elemen yang disebutkan sebelumnya. 2.2 Objective function dan constraints set  Untuk mendeklarasikan fungsi tujuan dalam Lingo nyatakan MAX atau MIN lalu diikuti oleh tanda sama dengan (=) dan dilanjutkan dengan ekpresi yang melibatkan variabel keputusan dan diakhiri oleh tanda semicolon (;). Sedangkan pembuatan constraints sets mengikiti aturan matematika yaitu operator aljabar (*, +, -, /) dan operator pertidaksamaan (<, >, =).

5

2.3 Data Section  Data section merupakan bagian dalam badan model yang digunakan untuk memberikan nilai awal (inisiasi) dari sets atau memberikan nilai bagi parameter. Dalam Lingo tidak ada deklarasi khusus untuk menyatakan variabel keputusan. Secara otomatis variabel (identifier) yang tidak diberi nilai akan diberlakukan sebagai variabel keputusan (berbeda dengan CPLEX).

NOTE: Mengetahui data sama dengan menyelesaikan 50% pemodelan. 2.4 Jenis dan struktur data   Lingo hanya mempunyai dua struktur data, yaitu data tunggal dan data kompleks (sets). Data tunggal yaitu data yang hanya memiliki satu elemen, sedangkan data kompleks memiliki lebih dari satu elemen. Cara pendeklarasian data tunggal sederhana yaitu dengan menuliskan nama variabel (identifier) saja. Sedangkan pembuatan data kompleks akan dijelaskan pada bagian selanjutnya. Secara otomatis apabila jenis data tidak dideklarasikan secara eksplisit maka Lingo akan memberlakukan data tersebut memiliki jenis bilangan nyata (real) dan non-negatif. Untuk membuat jenis data secara spesifik digunakan perintah sebagai berikut: - @BIN(Nama_variabel) untuk mendeklarasikan Nama_variabel sebagai boolean (0 dan 1) - @GIN(Nama_variabel) untuk mendeklarasikan Nama_variabel sebagai bilangan bulat (integer) - @FREE(Nama_variabel) untuk mendeklarasikan Nama_variabel sebagai bilangan nyata (real) yang bernilai -∞ — +∞. - @BND(nilai_bawah, Nama_variabel, nilai_atas) untuk mendeklarasikan nama variabel bernilai antara nilai bawah dan nilai atas.

NOTE: Model dapat bersifat infeasible apabila belum dideklarasikan @FREE padahal nilainya negatif. 2.5 Sets Section   Sets section merupakan bagian dalam badan model yang digunakan untuk membentuk jenis data kompleks. Sets merupakan fitur yang sangat penting dalam pemodelan Lingo. Sintaks dari sets adalah: SETS: NAMA_SETS : ATTRIBUT; ENDSETS Attribut dapat dideklarasikan dalam data section atau langsung dideklarasikan dalam sets section. Apabila dideklarasikan dalam data section adalah DATA: NAMA_SETS = nilai_sets; ENDSETS Sedangkan deklarasi secara langsung dalam sets section adalah sebagai berikut: SETS: NAMA_SETS /nilai_sets/ : ATTRIBUT; ENDSETS

NOTE: You don’t have to know everything but you must know everything you need to know. (Kuasai satu saja sudah cukup.).

6

3. CONTOH KASUS OPTIMISASI

Pada bagian ini akan dibahas mengenai optomisasi dalam Teknik Industri yang meliputi Transportasi dan Blending. Perintah baru yang dipelajari adalah @sum dan @for. 3.1 Transportasi  Permasalahan transportasi merupakan permasalahan yang banyak ditemukan dalam keilmuan Teknik Industri, khususnya rantai pasok. Dalam permasalahan transportasi ditentukan jumlah barang yang dikirim dari sumber ke tujuan dengan kriteria meminimumkan ongkos transportasi. Berikut ini merupakan contoh dari suatu model transportasi sederhana. Wireles Widget (WW) Company mempunyai enam buah gudang untuk memasokdelapan buah vendor. Perusahan ingin menentukan alokasi barang dari gudang ke vendor yang meminimumkan ongkos transportasi dengan batasan demand setiap vendor terpenuhi dan jumlah barang yang dikirim dari setiap gudang tidak melebihi kapasitasnya. Gambar 3 melukiskan permasalahan yang dihadapi oleh WW Company.

Gambar 3. Masalah transportasi WW Company  Data-data yang berhubungan dengan masalah transportasi WWC adalah sebagai berikut: Tabel 1. Pasokan gudang 

7

Tabel 2. Permintaan vendor 

Tabel 3. Biaya kirim per unit 

Tentukan alokasi yang meminimumkan biaya kirim? Misalkan indeks i menunjukan indeks gudang dan j merupakan indeks vendor. Variabel keputusan dari permasalahan tersebut di atas adalah jumlah barang yang dikirim dari gudang i ke gudang j. Apabila dinotasikan dengan variabel dapat ditulis sebagai xij . Sehingga fungsi tujuan dapat dinyatakan sebagai: Min

6

8

i =1

j =1

∑∑ c x

ij ij

Dengan pembatas yaitu jumlah dari seluruh barang yang dikirimkan dari gudang harus memenuhi permintaan setiap vendor dan jumlah barang yang dikirim oleh setiap gudang tidak boleh melebihi pasokannya. Apabila dituliskan dengan notasi sebagai berikut: 6

∑x

ij

= d ij , ∀j

∑x

= sij , ∀i

i =1

8

ij

j =1

Untuk memodelkan masalah di atas dengan Lingo, tentukan dulu obyek dari permasalahan di atas. Yang dapat dijadikan obyek adalah Warehouses dan Vendors. Ada enam buah Warehouses dan delapan buah Vendors. Pendeklarasian dengan menggunakan sets adalah sebagai berikut:

SETS: WAREHOUSES: CAPACITY; VENDORS: DEMAND; LINKS( WAREHOUSES, VENDORS): COST, VOLUME; ENDSETS 8

Selanjutnya tentukan atribut yang dimiliki oleh masing-masing obyek. Warehouses memiliki Capacity dan Vendors memiliki Demand. Dengan demikian deklarasi yang dilakukan dalam data section adalah sebagai berikut: DATA: !set members; WAREHOUSES = WH1 WH2 WH3 WH4 WH5 WH6; VENDORS = V1 V2 V3 V4 V5 V6 V7 V8; !attribute values; CAPACITY = 60 55 51 43 41 52; DEMAND = 35 37 22 32 41 32 43 38; COST = 6 2 6 7 4 2 5 9 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; ENDDATA

Fungsi tujuan merupakan penjumlahan dari seluruh pengiriman dari Warehouses menuju Vendors. Hal ini dinyatakan sebagai berikut: ! The objective; MIN = @SUM( LINKS( I, J): COST( I, J) * VOLUME( I, J)); ! The demand constraints; @FOR( VENDORS( J): @SUM( WAREHOUSES( I): VOLUME( I, J)) = DEMAND( J)); ! The capacity constraints; @FOR( WAREHOUSES( I): @SUM( VENDORS( J): VOLUME( I, J)) <= CAPACITY( I)); END Pendeklarasian fungsi tujuan dimulai dengan Min diikuti dengan perintah @SUM( LINKS( I, J): COST( I, J) * VOLUME( I, J));. Perhatikan hal ini sangat serupa dengan notasi matematika yaitu: MIN = @SUM( LINKS( I, J): COST( I, J) * VOLUME( I, J));

6

8

i =1

j =1

∑∑ c x

Min

ij ij

Selanjutnya pembentukan himpunan pembatas adalah sebagai berikut: @FOR( VENDORS( J): @SUM( WAREHOUSES( I): VOLUME( I, J)) = DEMAND( J));

6

∑x

ij

= d ij , ∀j

i =1

Jumlah barang yang dikirim dari setiap Warehouses sama dengan Demand setiap Vendors. @FOR( WAREHOUSES( I): @SUM( VENDORS( J): VOLUME( I, J)) <= CAPACITY( I));

8

∑x

ij

= sij , ∀i

j =1

Jumlah barang yang dikirim ke setiap Vendors kurang dari Capacity setiap Warehouses. Dapat dilihat bahwa sangat mudah merubah notasi matematika dan bahasa umum ke dalam perintah Lingo. 9

3.2 Blending  The Chess Snackfoods Co. markets four brands of mixed nuts. The four brands of nuts are called the Pawn, Knight, Bishop, and King. Each brand contains a specified ratio of peanuts and cashews. The table below lists the number of ounces of the two nuts contained in each pound of each brand and the price the company receives per pound of each brand: Tabel 4. Biaya kirim per unit 

Chess has contracts with suppliers to receive 750 pounds of peanuts/day and 250 pounds of cashews/day. Our problem is to determine the number of pounds of each brand to produce each day to maximize total revenue without exceeding the available supply of nuts. Dari soal dapat ditentukan dua buah obyek, yaitu Nuts yang memiliki dua jenis dan Brands yang terdiri dari empat jenis. Attribut yang dimiliki oleh Nuts dan Brands secara bersama, yaitu jumlah Nuts yang dibutuhkan untuk membuat jenis Brands. Attribut ini sebut saja Formula. Dengan menggunakan sets maka deklarasi Lingo adalah: SETS: NUTS / PEANUTS, CASHEWS/: SUPPLY; BRANDS / PAWN, KNIGHT, BISHOP, KING/: PRICE, PRODUCE; FORMULA(NUTS, BRANDS): OUNCES; ENDSETS

Pemberian nilai parameter dan sets dilakukan sebagai berikut: DATA: SUPPLY = 750 250; PRICE = 2 3 4 5; OUNCES = 15 10 6 2 1 6 10 14; ENDDATA

Formulasi fungsi tujuan adalah jumlah dari perkalian Price dan Produce setiap Brands MAX = @SUM(BRANDS(I): PRICE(I) * PRODUCE(I)); Himpunan pembatas sebagai berikut @FOR(NUTS(I): @SUM(BRANDS(J): OUNCES(I, J) * PRODUCE(J) / 16) <= SUPPLY(I) );

Pembatas kiri dibagi 16 untuk mengkonversi ounce ke pound.

10

4. CONTOH KASUS GOAL PROGRAMMING

4.1

Model s­SCM pada Industri Furniture  

Pada bagian ini akan dibahas mengenai Linear Goal Programming untuk masalah s-SCM yang melibatkan Perhutani, VSU, dan Distributor.

The Development Of Sustainable Supply Chain Model Of The Relationship Between Wood Supplier With Furniture Industry In Indonesia: A Case Study (Hisjam dkk., 2011) Perhutani mempunyai 200.000 ha hutan jati dengan hutan produksi sebesar 40.000 ha dan sisanya hutan lindung. Saat ini Perhutani mempunyai kapasitas produksi 300.000 m3/tahun atau sebesar 25.000 m3/bulan. Untuk memenuhi permintaan kayu jati yang diestimasi sebesar 1.200.000 m3/tahun Perhutani mempunyai kebijakan untuk dapat menambah kapasitas produksinya. Akan tetapi kebijakan ini akan bertentangan dengan kebijakan Pemerintah yang mewajibkan luas hutan minimal 30% dari luas daerah yang menaunginya. Dengan demikian dapat disimpulkan beberapa masalah yang dihadapi Perhutani: - berapa banyak volume kayu jati yang dapat diproduksi untuk memenuhi permintaan? - berapa banyak luas hutan yang harus ditanam untuk dapat memenuhi peraturan Pemerintah? - berapa banyak biaya yang harus dialokasikan untuk penanaman hutan baru? Sedangkan produsen furniture kayu jati memiliki permasalahan sebagai berikut: - berapa banyak penjualan yang didapat? - apakah dapat memenuhi demand distributor? - berapakah utilitas pabrik yang digunakan? Seluruh masalah yang dihadapi Perhutani dan produsen furniture melibatkan banyak tujuan dan diantaranya konflik satu sama lain. Untuk dapat menganalisa trade-off yang terjadi antar tujuan tersebut GP merupakan alat yang sesuai. Oleh karena itu pada bagian ini akan dimodelkan multi-objective decision making dengan menggunakan Lingo. Beberapa asumsi yang digunakan adalah sebagai berikut. - Horizon perencanaan terdiri dari 3 periode. - Supplier berjumlah 1 yaitu Perhutani dan Manufacturer berjumlah 1. - Jenis kayu log diasumsikan 1 jenis. - Jenis furniture yang diproduksi adalah 1 jenis. - Seluruh biaya dan harga tidak berubah selama periode perencanaan. - Volume kayu yang dihasilkan oleh 1 ha hutan homogen dan tetap. Pembelian kayu oleh manufacturer sama dengan produksi kayu supplier 4.2

Formulasi Model kasus s­SCM 

Model Lingo lengkap adalah sebagai berikut: MODEL: SETS: PERIOD; INDEX; !Manufacturer Variabel; MANUFACTURER(PERIOD) : FURNITURE_DEMAND, FURNITURE_PRODUCTION, Furniture_Sold, Log_Purchased, Furniture_Inventory; !Perhutani Decision variabel;

11

PERHUTANI(PERIOD) : Log_Production, Forest_Harvested, Production_Forest, Protection_Forest, Total_Forest, Forest_Planted, Production_Capacity, Inc_Production_Capacity, Dec_Production_Capacity; GOAL(INDEX) : N, P, B; ENDSETS DATA: PERIOD = 1, 2, 3; INDEX = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10; !Manufacturer Parameter; Furniture_Price = 1770; !PRICE OF 1 M3 FURNITURE; furniture_Demand = 100000, 100000, 100000; !DEMAND OF FURNITURE in m3; MDC = 500; !DISTRIBUTION COST PER 1M3 FURNITURE; MPC = 500; !PRODUCTION COST PER 1M3 FURNITURE ; MHC = 50; !Manufacture holding cost per 1 m3 furniture; Conversion_Factor = 0.5; !Conversion from 1 m3 log to Furniture; !Perhutani Parameters; Volume_Per_Ha = 110; Initial_Production_Forest = 40000; Initial_Total_Forest = 200000; OC = 1.920; !Operational cost per m3 of Log; HC = 4.205; !Harvesting cost per m3 of Log; PC = 7.725; !Planting cost per m3 of Log; CC = 10.205; !Cost to changed capacity 1 m3 of log; Log_Price = 10.625; !Harga jual 1 m3 log; Initial_Production_Capacity = 25000; !Kapasitas produksi log awal dalam m3; ENDDATA !INI TIDAK BISA DITARUH DI DATA SECTION; Initial_Protection_Forest = Initial_Total_Forest - Initial_Production_Forest; !Target level goal; b(1) = 231000000; !Manufacturer Total Revenue Target; b(2) = 200000000; !Manufacturer Total Cost Target; b(3) = 100000000; !manufacturer Total Profit Target; b(4) = 1; !manufacturer Demand Fulfillment Target; b(5) = 600000; !Perhutani Forest Area Target; b(6) = 600000; !Perhutani Forest Area Target; b(7) = 600000; !Perhutani Forest Area Target; b(8) = 1000000; !Perhutani Planting Cost Target; b(9) = 1000000; !Perhutani Profit Target; b(10) = 100000; !Perhutani Capacity Changed Cost Target;

!Objective function; MIN = n(1) + p(2) + n(3) + n(4) + p(4) + n(5) + p(5) + n(6) + p(6) + n(7) + p(7) + p(8) + n(9)+ p(10); !Manufacturer REVENUE, PROFIT, AND COSTS, TOTAL PRODUKSI, TOTAL DEMAND; !MENGHITUNG TOTAL REVENUE; M_Total_Revenue = @SUM(MANUFACTURER(I) : Furniture_Sold(I) * Furniture_Price ); !MENGHITUNG PRODUCTION COST; Furniture_Production_Cost = @SUM(MANUFACTURER(I) : Furniture_Production(I) * MPC ); !MENGHITUNG DISTRIBUTION COST; Furniture_Distribution_Cost = @SUM(MANUFACTURER(I) : Furniture_Sold(I) * MDC ); !MENGHITUNG INVENTORY COST;

12

Furniture_Inventory_Cost = @SUM(MANUFACTURER(I) : Furniture_Inventory(I) * MHC ); !MENGHITUNG TOTAL COST; M_Total_Cost = Furniture_Production_Cost + Furniture_Distribution_Cost + Furniture_Inventory_Cost; !MENGHITUNG TOTAL PROFIT; M_Total_Profit = M_Total_Revenue - M_Total_Cost; !MENGHITUNG TOTAL PRODUKSI; Total_Furniture_Production = @SUM(MANUFACTURER(I) : Furniture_Production(I) ); !MENGHITUNG TOTAL DEMAND; Total_Furniture_Demand = @SUM(MANUFACTURER(I) : Furniture_Demand(I) ) ;

!PERHUTANI REVENUE, PROFIT, AND COSTS, TOTAL PRODUKSI, LUAS HUTAN; !MENGHITUNG LUAS HUTAN PERIODE 1 - 3; Total_Forest_Period1 = @SUM(PERHUTANI(I) | I #EQ# 1 : Total_Forest(I) ) ; Total_Forest_Period2 = @SUM(PERHUTANI(I) | I #EQ# 2 : Total_Forest(I) ) ; Total_Forest_Period3 = @SUM(PERHUTANI(I) | I #EQ# 3 : Total_Forest(I) ) ; !MENGHITUNG TOTAL BIAYA TANAM; Total_Planting_Cost = @SUM(PERHUTANI(I) : Forest_Planted(I) * PC ); !MENGHITUNG TOTAL BIAYA OPERASI; Total_Operation_Cost = @SUM(PERHUTANI(I) : Total_Forest(I) * OC ); !MENGHITUNG TOTAL BIAYA PANEN; Total_Harvesting_Cost = @SUM(PERHUTANI(I) : Forest_Harvested(I) * HC ); !MENGHITUNG TOTAL BIAYA PERUBAHAN KAPASITAS PRODUKSI; Production_Capacity_Changed_Cost = @SUM(PERHUTANI(I) : CC * ( Inc_Production_Capacity(I) + Dec_Production_Capacity(I) )); !MENGHITUNG TOTAL BIAYA; P_Total_Cost = Total_Planting_Cost + Total_Operation_Cost + Total_Harvesting_Cost + Production_Capacity_Changed_Cost; !MENGHITUNG TOTAL REVENUE; P_Total_Revenue = @SUM(PERHUTANI(I) : Log_Production(I) * Log_Price ); !MENGHITUNG TOTAL PROFIT; P_Total_Profit = P_Total_Revenue - P_Total_Cost; !SOFT CONSTRAINTS (GOAL); !Goal1; M_Total_Revenue + n(1) - p(1) = b(1); !Goal2; M_Total_Cost + n(2) - p(2) = b(2); !Goal3; M_Total_Profit + n(3) - p(3) = b(3); !Goal4; Total_Furniture_Production/Total_Furniture_Demand + n(4) - p(4) = b(4); !Goal5; Total_Forest_Period1 + n(5) - p(5) = b(5); !Goal6; Total_Forest_Period2 + n(6) - p(6) = b(6); !Goal7; Total_Forest_Period3 + n(7) - p(7) = b(7); !Goal8; Total_Planting_Cost + n(8) - p(8) = b(8); !Goal9; P_Total_Profit + n(9) - p(9) = b(9); !Goal10; Production_Capacity_Changed_Cost + n(10) - p(10) = b(10); !HARD CONSTRAINTS; !PADA PERIODE 3, FURNITURE INVENTOORY = 0; @FOR(MANUFACTURER(I) | I #EQ# 3 : Furniture_Inventory(I) = 0 ) ; !PADA PERIODE 1, FURNITURE INVENTOORY = FURNITURE PRODUCTION - FURBNITURE SOLD; @FOR(MANUFACTURER(I) | I #EQ# 1 : Furniture_Inventory(I) = Furniture_Production(I) - Furniture_Sold(I) ); !PADA PERIODE LEBIH DARI 1, FURNITURE INVENTOORY = FURNITURE INVENTORY(T-1) + FURNITURE PRODUCTION - FURBNITURE SOLD; @FOR(MANUFACTURER(I) | I #GT# 1 : Furniture_Inventory(I) = Furniture_Inventory(I-1) + Furniture_Production(I) - Furniture_Sold(I) ); !PADA SELURUH PERIODE, FURNITRURE SOLD <= FURNITURE DEMAND; @FOR(MANUFACTURER(I) : Furniture_Sold(I) <= Furniture_Demand(I) ) ; !JUMLAH SELURUH FURNITURE YANG DIPRODUKSI = JUMLAH SELURUH FURNITURE YANG DIJUAL + JUMLAH SELURUH INVENTORY; 13

@SUM(MANUFACTURER(I) : Furniture_Production(I) ) = @SUM(MANUFACTURER(I) : Furniture_Sold(I) + Furniture_Inventory(I) ) ; !PADA SETIAP PERIODE, JUMLAH LOG YANG HARUS DIBELI MANUFACTURER = JUMLAH FURNITURE DIBAGI FAKTOR KONVERSI; @FOR(MANUFACTURER(I) : Furniture_Production(I) / Conversion_Factor = Log_Purchased(I) ) ; !PADA SETIAP PERIODE, JUMLAH LOG YANG HARUS DIBELI MANUFACTURER = JUMLAH LOG YANG DIPRODUKSI PERHUTANI; @FOR(PERHUTANI(I) : Log_Purchased(I) = Log_Production(I) ); !PADA SETIAP PERIODE, JUMLAH LOG YANG DIPRODUKSI PERHUTANI = KAPASITAS; @FOR(PERHUTANI(I) : Log_Production(I) = Production_Capacity(I) ); !PADA PERIODE 1, Production_Capacity[p] = Initial_Production_Capacity + Inc_Production_Capacity[p] - Dec_Production_Capacity[p]; @FOR(PERHUTANI(I) | I #EQ# 1 : Production_Capacity(I) = Initial_Production_Capacity + Inc_Production_Capacity(I) Dec_Production_Capacity(I) ); !PADA PERIODE > 1, Production_Capacity[p] = Inc_Production_Capacity[p-1] Dec_Production_Capacity[p]; @FOR(PERHUTANI(I) | I #GT# 1 : Production_Capacity(I) = Production_Capacity(I-1) + Inc_Production_Capacity(I) Dec_Production_Capacity(I) ); !PADA SETIAP PERIODE, LUAS POHON YANG DIPANEN ADALAH JUMLAH LOG YANG DIPRODUKSI / VOLUME PER HA; @FOR(PERHUTANI(I) : Log_Production(I) / Volume_Per_Ha = Forest_Harvested(I) ) ; !PADA PERIODE 1, Production_Forest[p] == Initial_Production_Forest Forest_Harvested[p] ; @FOR(PERHUTANI(I) | I #EQ# 1 : Production_Forest(I) = Initial_Production_Forest - Forest_Harvested(I) ) ; !PADA PERIODE > 1, Production_Forest[p] == Production_Forest[p-1] Forest_Harvested[p] ; @FOR(PERHUTANI(I) | I #GT# 1 : Production_Forest(I) = Production_Forest(I-1) Forest_Harvested(I) ) ; !PADA PERIODE 1, Protection_Forest[p] == Initial_Protection_Forest + Forest_Planted[p] ; @FOR(PERHUTANI(I) | I #EQ# 1 : Protection_Forest(I) = Initial_Protection_Forest + Forest_Planted(I) ) ; !PADA PERIODE > 1, Protection_Forest[p] == Protection_Forest[p-1] + Forest_Planted[p] ; @FOR(PERHUTANI(I) | I #GT# 1 : Protection_Forest(I) = Protection_Forest(I-1) + Forest_Planted(I) ) ; !PADA SETIAP PERIODE, TOTAL LUAS HUTAN = LUAS HUTAN PRODUKSI + LUAS HUTAN LINDUNG; @FOR(PERHUTANI(I) : Total_Forest(I) = Protection_Forest(I) + Production_Forest(I) ) ; END

5. LAMPIRAN 5.1 Lingo User Manual.  5.2 Paper The Development of Sustainable Supply Chain Model of The Relationship Between Wood  Supplier With Furniture Industry In Indonesia: A Case Study (Hisjam dkk., 2011). 

14

Related Documents


More Documents from "allan subhakti"

02 Modul Pelatihan Lingo
January 2021 0
M4_u1_s1-cyrv
February 2021 1
Osce Pediatrik
January 2021 0
Taller Kinder 2013
February 2021 0
January 2021 1