opti.glass

2 dakika okuma

Önce artık denensin, sonra yeni tabaka

Bir cam kesim optimizasyon programı yeni tabaka açmadan önce rafta duranı denemeli. Bu sıranın neden çözücüye bırakılamadığına bakıyoruz.

Bir siparişi çözmenin iki yolu var. Birincisi doğrudan yeni tabaka açmak; ikincisi önce rafta duran artıkları denemek, yetmezse tabakaya geçmek. İkisi de geçerli plan üretiyor ama maliyetleri aynı değil: artığın bedeli zaten ödendi, yeni tabakanınki ödenmedi.

İlk denemede bu tercih çözücüye bırakıldı. Artıklar aday tabakalar listesine eklendi ve önceliklendirme motorun işi sayıldı. Ölçüldü ve varsayım yanlış çıktı: motor tabaka sayısını azaltmaya çalışıyor, artığı ayrıcalıklı görmüyor. Elinde iki seçenek varsa daha az tabaka kullananı seçiyor ve bedeli çoktan ödenmiş camı görmezden gelebiliyor.

Bu yüzden öncelik çözücüye değil çağırana yazıldı. Sipariş önce yalnızca artıklarla çözülüyor; sığmayan parçalar geri dönüyor ve ikinci bir geçişte standart tabakalarla çözülüyor. İki geçişli bu yaklaşım aynı siparişi iki ayrı malzeme havuzuyla ele alıyor ve sırayı açıkça belirliyor.

Sonuç bazen daha fazla tabaka kullanıyor ve bu bilinçli bir tercih. Rafta duran bir artığı kullanmak, envanterde bir tabaka daha açmaktan ucuz; ama bu ancak artık gerçekten kayıtlıysa mümkün. Ölçüsüyle yazılmamış bir cam envanterde yoktur, rafta duruyor olsa bile.

Bir cam kesim optimizasyon programının bu davranışı açıkça söylemesi gerekiyor, çünkü kullanıcı sonucu görünce "neden iki tabaka açtı" diye soruyor. Cevap plan ekranında duruyor: birinci tabaka rafta duran bir artık, ikincisi yeni. Bir tabaka optimizasyon programı bunu gizlerse güven kayboluyor.

Bu yaklaşımın işe yaraması için artığın ölçüsüyle kayda alınmış olması gerekiyor. Kesimden çıkan parça rafa konuyor ama yazılmıyorsa envanterde yok sayılıyor; motor onu göremiyor ve ilk geçiş boş dönüyor. Dört bilgi yetiyor: genişlik, yükseklik, cam tipi ve nerede durduğu. Bu dördü yazıldığı an parça aranabilir hâle geliyor.

Sonucun ekranda ayrıştırılması da bir güven meselesi. Hangi tabakanın artık, hangisinin yeni olduğu plan üzerinde görünüyor; kullanıcı iki tabakalı bir sonuca baktığında sebebini okuyabiliyor. Bu ayrım gösterilmediğinde kullanıcı sonucu yanlış sanıyor ve bir daha o ekrana güvenmiyor.

Artık kaydının ne zaman yazılacağı da bir karar. Koşum bittiğinde kullanılabilir parçalar öneri olarak çıkıyor ve kaydetmek kullanıcının onayına bağlı. Otomatik kayıt açık olsa bile bu onay duruyor, çünkü plan yazdırılmadan envantere parça eklemek, kesilmemiş bir camı rafta saymak demek.

Aynı işin iki kez çözülmesi de olağan. Sipariş değiştiğinde ya da bir kısıt güncellendiğinde koşum yeniden çalıştırılıyor ve eski sonuç kaybolmuyor. İki koşumu yan yana koyup doluluk ile tabaka sayısını karşılaştırmak, hangi ayarın gerçekten işe yaradığını tahmine bırakmıyor. Kayıtlı koşum geçmişi olmayan bir düzende bu karşılaştırma yapılamıyor.

Artık kullanımının sınırı da var. Her parça her işe uymuyor; kenar durumu, çizik ve cam tipi uyuşmazlığı gerçek engeller. Sistemin yaptığı şey artığı zorla kullandırmak değil, uygun olanı hatırlatmak. Uygun bir parça yoksa yeni tabaka açılıyor ve bu bir başarısızlık sayılmıyor. Amaç her siparişte artık tüketmek değil, elde olanı unutmamak.