Vaka Çalışması · Üretim

Çimsa S&OP: global ağ optimizasyonundan yakıt satın alma kararına

Çimsa'nın 15 lokasyondaki üretim, lojistik ve satış ağını tek bir karma tamsayılı modele bağladık; ardından çıkan klinker üretim planını yakıt reçetesi ve satın alma kararına dönüştüren ikinci bir model kurduk.

%10 ↓
Stok maliyeti

IBM'in yayınladığı vaka çalışmasından

%3 ↓
Üretim, depolama, dağıtım maliyeti

IBM'in yayınladığı vaka çalışmasından

12×
Raporlama

Önceki karar destek sistemine göre daha hızlı

Ay · hafta
Zaman kovası

Ağ modeli aylık, yakıt modeli haftalık

Problem

Çimsa çimento ve klinker üretip bunları hem iç pazara hem ihracata satıyor. Ürün yapısı üç kırılımlı: ana grup (çimento / klinker), renk (gri / beyaz) ve satış tipi (dökme / ambalajlı) — toplamda 200 ile 300 arasında nihai ürün. Klinker yarı mamul; çimento üretimi ürün ağacı üzerinden klinker tüketiyor.

Bu ürünler 15 lokasyona yayılmış 20 öğütme değirmeni ve 12 fırında üretiliyor, 40 siloda stoklanıyor. Lokasyonların altısı Türkiye’de, geri kalanı yurt dışında.

Buradaki asıl güçlük şu: bir siparişin birden fazla kaynaktan karşılanabilmesi. Hangi fabrikanın hangi ürünü kaç gün üreteceği, fırının hangi ay çalışıp hangi ay duracağı, hangi müşterinin talebinin hangi tesisten karşılanacağı, hangi limanın ve antreponun kullanılacağı, hangi depoda ne kadar stok tutulacağı — bunların hepsi birbirine bağlı kararlar. Ayrı ayrı verildiklerinde bir yerdeki iyileştirme başka yerde maliyet yaratıyordu: en yakın fabrikadan sevkiyat navlunu düşürürken o fabrikanın fırın günlerini daha kârlı bir ihracat siparişinden çekiyor; bir fırını bir ay durdurmak kurulum maliyeti ve minimum duruş süresini tetikliyor; bir antrepoyu kullanmak aylık sabit maliyet doğuruyordu.

Üstüne işletme maliyetleri, satın alma fiyatları, döviz kurları, faiz ve talep dalgalanmaları biniyor. Planın bütün bu değişkenlik karşısında ayakta kalması gerekiyordu.

Teknik olarak problem çok tesisli, çok ürünlü, çok dönemli bir üretim–dağıtım problemi. Fırın çalışma / duruş kararları, minimum çalışma ve duruş süreleri, kurulum maliyeti, tek kaynaktan karşılama ve ya-hep-ya-hiç sipariş kabulü tamsayı değişkenler gerektirdiği için model karma tamsayılı programlama olarak kuruldu.

Faz 1 — Global ağ optimizasyonu

Satış, lojistik ve üretim ağını tek bir modelde birleştirdik. Model aylık zaman kovalarıyla çalışıyor; hem yarı mamul (klinker) hem nihai ürün (çimento) için üretim gün sayıları, fırın çalışma / duruş / bakım günleri, sipariş kabulü, tesis–müşteri tahsisi, stok ve klinker tüketimi kararlarını birlikte veriyor.

Amaç fonksiyonu ağırlıklı bir karışım: 0,4 × kâr + 0,6 × satış geliri. Satış geliri, sipariş karşılamanın sayısal karşılığı; ağırlığını artırmak modeli düşük marjlı siparişleri de plana almaya itiyor. Kâr ise gelirden nakliye, stok taşıma, üretim ve kurulum maliyetlerinin düşülmesiyle hesaplanıyor. Bu ağırlık masa başında seçilmedi: saf kâr, saf gelir ve leksikografik (önce gelir, sonra kâr) sürümleri aynı veriyle çalıştırılıp karşılaştırıldı; 0,4 / 0,6 bu karşılaştırmadan çıktı. Beş amaç sürümü senaryo karşılaştırmasında hâlâ kullanılıyor.

Nakliye maliyetinin nasıl uygulanacağı sipariş tipine bağlı: iç pazarda şantiye teslimde teslim maliyeti, fabrika teslimde yalnızca ön tahsisli olmayan hatlarda; ihracatta fiyatlar FOB olduğu için yalnızca limana kadar olan maliyet. Bu tür kurallar proje boyunca birkaç kez netleşti ve modelin en uzun süren kısmı problemi yazmak oldu.

Modelin ayırt edici yanı fırın çalışma rejiminin planın içinde olması. Kapasite ton yerine gün cinsinden modelleniyor: üretim = üretim günü × günlük hız, ve fırının aydaki her günü üretim, duruş ya da bakımdan birine ayrılıyor. Fırın bir ay çalıştıysa o ay ve sonraki ayda toplam en az 30 gün çalışmak zorunda; durduysa en az 25 gün duruyor; bakım plandan sabitleniyor; duruştan sonra yeniden devreye alma kurulum maliyeti doğuruyor. Kısa süreli aç-kapa kararları böylece elenmiş oluyor — ve bu kurallar tonaj bazlı kapasiteyle ifade edilemezdi.

Sipariş tarafında iki saha kuralı var: sipariş ya tamamen karşılanır ya hiç, ve tek kaynaktan. Kısmi teslim ve çoklu kaynak sahada kabul görmüyordu. “Mutlaka karşıla” bayrağı ve minimum toplam karşılama yüzdesi senaryo seçeneği olarak açılıp kapatılabiliyor.

Çözüm iki aşamalı: önce kısa bir ön çözüm alınıyor, ardından yapısal olarak aynı modele bu çözüm başlangıç noktası (warm start) olarak veriliyor ve ana çözüm %1 optimallik boşluğunda tamamlanıyor. İlk dakikalarda iyi bir olurlu çözüm garanti ediliyor; “çözüm yok” riski ortadan kalkıyor.

Modelin çıktıları şunlar:

  • Hangi fabrika hangi ürünü kaç gün üretti; fırın hangi ay çalıştı, durdu, bakıma girdi
  • Hangi sipariş kabul edildi, hangi tesisten karşılandı
  • Hangi hat, hangi liman ve hangi antrepo kullanıldı
  • Hangi depoda hangi üründen ne kadar tutuldu, ne kadar klinker tüketildi

Bunların sonucunda tüm gelir ve gider kalemleri ayrıntılı olarak raporlanıyor; planlamacı tamamlanan senaryoları aynı ekranda yan yana karşılaştırabiliyor.

Faz 2 — Yakıt karışımı ve satın alma optimizasyonu

Çimento üretiminde yakıt, maliyetin belirleyici kalemlerinden biri. İkinci faz haftalık zaman kovalarıyla çalışıyor ve birinci fazın çıktısını girdi olarak alıyor: her yakıt senaryosu, daha önce çalışmış bir ağ optimizasyonu senaryosunu baz alıyor. Ağ modelinin fırın × ay klinker planı; fırın hızları, duruşlar ve aynı ay içindeki ürün sırası dikkate alınarak ön işlemde fırın × ürün × hafta bazında gereken yakıt karışımı tonajına dönüştürülüyor. Bu hesap modelin dışında, veritabanı katmanında yapılıyor.

Ardından iki soru cevaplanıyor:

  1. Hangi reçete kullanılacak? Karışımlar en fazla dört yakıt türünün yüzdesel birleşiminden oluşan, önceden tanımlı reçeteler. HGI, kükürt, kül, kalori ve uçuculuk standartları model içinde harman kısıtı olarak değil, teknik ekibin onayladığı reçete kümesinde temsil ediliyor; model her fırın–ürün–hafta için reçeteler arasında maliyet açısından en iyisini seçiyor. Bu bilinçli bir tercih: model doğrusal ve hafif kalıyor, teknik ekip reçete üzerindeki kontrolü elinde tutuyor.
  2. Hangi yakıt ne zaman, nereden, kaç lot alınacak? Tedarik kaynakları yerel, yurtiçi ve ithalat olarak ayrılıyor; her birinin haftalık ve dönemsel kapasitesi, fiyatı ve teslim süresi farklı. Alım ancak tam lot katlarında yapılabiliyor; sözleşmeli kaynaklarda zorunlu minimum alım var. Teslim süresi kaydırmalı bir eşitlikle kuruluyor — hafta t’de depoya ulaşan, hafta t − L’de sipariş edilendir — böylece satın alma kararı kullanım haftasından teslim süresi kadar önce verilmek zorunda kalıyor. Tesisler arası yakıt transferi de modelin içinde.

Amaç fonksiyonu satın alma, nakliye ve transfer maliyetinin toplamını minimize ediyor. Fiyatlar USD ve TL bazında geliyor; haftalık kurla TL’ye çevrilip tek birimde karşılaştırılıyor. Model 50 saniyede %1 boşluğa ulaşıyor.

Çıktılar maliyet dökümü (satın alma / nakliye / transfer), haftalık yakıt stoğu, yakıt × fırın × ürün tüketimi, kaynak bazında sipariş ve teslim planı, lot sayıları, kullanılan reçeteler ve tesisler arası transferler olarak raporlanıyor; tedarik tipi (ithalat / yurtiçi / yerel) kırılımıyla birlikte. Kalori başına maliyet ve ton klinker başına yakıt maliyeti bu tablolardan raporlama katmanında türetiliyor.

Detayın bir örneği: fabrika depolarındaki stoklar kuru, antrepolardaki stoklar yaş tonaj cinsinden geliyor. Reçeteler kuru tonaj üzerinden tanımlı olduğu için model öncesinde nem oranına göre dönüşüm yapılıyor. Bu tür ayrıntılar veri doğrulama katmanında tek tek kontrol ediliyor; aksi halde matematiksel olarak doğru model işletme açısından yanlış sonuç üretir.

Sistem

Her iki model de OPL’nin veritabanı bağlantısı üzerinden SQL Server’a doğrudan bağlanıyor; modelde dosya tabanlı veri yok. Senaryo kimliği tüm zinciri bağlıyor: girdiler senaryo görünümlerinden bu kimlikle okunuyor, çıktılar aynı kimlikle rapor tablolarına yazılıyor, arayüz senaryonun durumunu (başladı → bitti) izliyor. Ağ modelinin klinker planı bir ön işlem adımıyla yakıt modelinin talep girdisine dönüşüyor; yakıt senaryosu hangi ağ senaryosunu baz aldığını taşıyor.

Dönem bayrakları aynı modelin farklı kural setleriyle çalışmasını sağlıyor: kurulum maliyeti, emniyet stoğu, minimum çalışma / duruş süresi gibi kısıtlar senaryo bazında açılıp kapatılabiliyor. Birim ve baz farklılıkları (kuru / yaş tonaj, USD / TL, kalori bazı) veritabanı katmanında çözülüyor; model tek birimle çalışıyor.

Sonuç

İki model birlikte satış ve operasyon planlama (S&OP) sürecinin parçası haline geldi; planlama ekibi senaryoları kendisi çalıştırıyor. What-if senaryolarıyla kapasite değişimi, kur hareketi, talep dalgalanması ve amaç ağırlıklarının plana etkisi sayısal olarak görülebiliyor. Fırın çalışma rejimi planın içinde olduğu için elle düzeltme gerekmiyor; yakıt tarafında satın alma zamanlaması teslim süresi ve lot disipliniyle tutarlı.

Çimsa’nın hedefi bir model teslim almak değil, süreci kendi içinde yürütebilmekti. Bu nedenle ekibe matematiksel modelleme ve optimizasyon eğitimleri verildi; ekip modeli okuyup senaryo kurabiliyor.

Proje IBM Lab Services ve IBM Data Science Elite ile birlikte, IBM iş ortağı olarak yürütüldü. IBM’in yayınladığı vaka çalışması — ÇimSA Çimento Sanayi ve Ticaret A.Ş. — sonuçları şöyle özetliyor: stok maliyetinde tahmini %10, üretim, depolama ve dağıtım maliyetinde tahmini %3 azalma; önceki karar destek sistemine göre 12 kat hızlı raporlama.

Modelin kurulumu

AmaçYönÇatışma
KârAğırlık 0,4 — gelir eksi nakliye, stok taşıma, üretim ve kurulum maliyeti
Satış geliriAğırlık 0,6 — sipariş karşılamanın sayısal karşılığı; ağırlığı artırmak düşük marjlı siparişleri plana sokar

Kısıtlar

  • Stok dengesi — depo × ürün × ay; çimento üretimi ürün ağacı çarpanıyla klinker tüketir
  • Gün bazlı kapasite — üretim = üretim günü × günlük hız; fırının her günü üretim, duruş ya da bakımdan biri
  • Fırın çalışma rejimi — çalışıyorsa iki ayda en az 30 gün, duruyorsa en az 25 gün; yeniden devreye alma kurulum maliyeti doğurur
  • Depo ve silo kapasiteleri, gri / beyaz klinker stok üst hedefleri, gün cinsinden emniyet stoğu
  • Antrepo aylık kullanım — bir antrepoya hat atanmışsa aylık sabit maliyet
  • Tek kaynaktan karşılama — sipariş başına en fazla bir hat
  • Ya hep ya hiç — sipariş tamamen karşılanır ya da hiç karşılanmaz
  • Yakıt modelinde teslim süresi, lot büyüklüğü, zorunlu alım ve dönemsel tedarikçi kapasitesi

Tüm işlerimiz