Montaj Hattı Dengelemesinde İstasyon Atama Algoritması

By | 24 Aralık 2011

Daha önce konum ağırlıklı dengeleme yöntemiyle montaj hattında istasyon atama yönteminden bahsetmiştim. Hatta bununla ilgili bir MATLAB program örneğinden de bahsetmiştim. Buraya tıklayarak ilgili konu anlatımına gidebilirsiniz. Bu konu anlatımında istasyon atamasının bilgisayar programını yaparken kullanabileceğiniz bir algoritmadan bahsedeceğim. Hangi dilde program yazıyor olursanız olun bu algoritma ile atama işlemini çok kolaylıkla yapabilirsiniz. Üstelik bir iş sonsuz adet işi bekliyor olsa bile algoritma kusursuz çalışmakta. Yani, klasik iki işin bitmesini bekleyen iş kalıbının dışına çıkıyoruz ki bu bize çok büyük bir esneklik sağlamakta.

Şimdi bir model tanımlayalım ve modelin iş öğelerinin bağlantıları ve değerleri aşağıdaki gibi olsun.

Örnek Şebeke

Görüldüğü gibi toplamda 14 adet görev var. Öncelikle bu görevlerin tablosunu oluşturalım. Tabloda işler, zamanlar ve öncelik sıraları olsun. Her bir öncelikli işi ayrı bir sütunda gösterelim. Tüm işler başlangıçta sıfır değerli istasyonda duruyor olsun. Henüz bir istasyona atanmamışlar.

rpw-1

Yukarıdaki tabloda görev ve zaman sütunlarını zaten anlamışsınızdır. Öncelik sütunları her bir görevin kimi beklediğini göstermekte. Beklenilen her farklı görev için ayrı bir sütun oluşturdum. Mesela 9 nolu iş için 3 ve 6 nolu işlerin bitmesi beklenmekte. Öncelik sütunlarında 3 veya 6 dan hangisinin ilk olarak “öncelik” sütununa yazıldığı pek önemli değil. Önemli olan her birinin ayrı sütunlara yazılmış olması. Geriye boş kalan “öncelik” sütunları sıfır değeri ile doldurulur.

Modelimiz bu haliyle 3 derinlikli bir modeldir. Yani, bir iş en fazla 3 işi beklemekte (13 nolu işe geçebilmek için 9, 10 ve 11 nolu işlerin bitmesi lazım). Anlatacağım algoritma, derinliği ne olursa olsun, her türlü model üzerinde uygulanabilir. Bu özelliği sayesinde çok büyük ve çok derinlikli modellerde kullanabilirsiniz.

Cycle değerimizin 5 olduğunu varsayalım. İlk olarak tabloyu “zaman” sütununa göre büyükten küçüğe dizelim.

rpw-2

ALGORİTMA TARİFİ

O an seçili istasyona uygun işi seçmek için iki adet kuralımız var:

Kural-1: Seçtiğimiz işin uygun bir iş olması için o işe ait “öncelik” sütunlarının hepsinin sıfır değerinde olması VE istasyon sütununun sıfır olması zorunludur. Başlangıç olarak bunu sadece 1 nolu iş sağlamakta. Çünkü bütün “öncelik” sütunları sıfır değerinde. İstasyon sütunu da sıfır değerinde.

Kural-2: Seçtiğimiz işin zamanı, o an seçili olan istasyon zamanına eklendiğinde cycle değerini aşmamalı.

Bu iki kurala uygun olan ilk iş uygun iştir. Her adımda tabloyu yukarıdan aşağıya tarayarak uygun iş araması yaparız. Eğer bir taramada uygun bir iş bulamazsak o istasyonla ilgili işimiz bitmiş demektir. Bir sonraki istasyona geçeriz. Eğer uygun bir iş bulursak aşağıdaki iki işlemi gerçekleştiririz.

İşlem-1: Seçilen işin “istasyon” kolonuna istasyon numarası yazılır.

İşlem-2: “öncelik” sütunlarının hepsinde seçilen işin numarası ile aynı olan tüm hücreler sıfır yapılır.

Algoritmamızın iki kuralı ve iki işlemi kısaca bu şekilde. Şimdi birkaç atamayı bu kural ve işlemlere göre gerçekleştirelim. Şu an işin başında olduğumuza göre 1 nolu istasyondayız. Atanmış herhangi bir iş yok.

1. ADIM

Tablo üstten başlanarak alta doğru taranır. Bütün “öncelik” sütunları aynı anda sıfıra eşit olan VE “istasyon” sütunu da sıfıra eşit olan ilk iş seçilir. İstasyon zamanını aşmıyorsa bu iş o anki istasyona atanır.

Kural-1: 1 nolu işin tüm “öncelik” sütunları sıfır. İstasyon sütunu da sıfır.

Kural-2: 1 nolu işi 1.istasyona atarsam cycle değerini aşmıyorum. (0 + 1,8 < 5)

İşlem-1: 1 nolu işin istasyon sütununa 1 yazılır.

İşlem-2: Bütün “öncelik” sütunlarında 1 gördüğümüz her hücre sıfır yapılır.

Bu adım sonunda tablonun durumu:

rpw-3

İşlem-1 ‘in ne amaçla yapıldığını anlamışsınızdır ama bu İşlem-2 ‘yi biraz tarif edeyim. Seçtiğimiz uygun iş 1 nolu iş olduğundan bu işi bekleyenleri serbest hale getirmek için “öncelik” sütunlarının hepsinde 1 olan bütün hücreleri sıfır yapıyoruz. 1 nolu işi seçtiğimize göre artık 2, 3 ve 4 nolu işlerin “öncelik” sütunları tamamen sıfır oldu ve seçim için müsait hale geldiler.

2. ADIM

Tablo üstten başlanarak alta doğru taranır. Bütün “öncelik” sütunları aynı anda sıfıra eşit olan VE “istasyon” sütunu da sıfıra eşit olan ilk iş seçilir. İstasyon zamanını aşmıyorsa bu iş o anki istasyona atanır.

Kural-1: 2 nolu işin tüm “öncelik” sütunları sıfır. İstasyon sütunu da sıfır.

Kural-2: 2 nolu işi 1.istasyona atarsam cycle değerini aşmıyorum. (1,8 + 1,7 < 5)

İşlem-1: 2 nolu işin istasyon sütununa 1 yazılır.

İşlem-2: Bütün “öncelik” sütunlarında 2 gördüğümüz her hücre sıfır yapılır.

Bu adım sonunda tablonun durumu:

rpw-4

3. ADIM

Tablo üstten başlanarak alta doğru taranır. Bütün “öncelik” sütunları aynı anda sıfıra eşit olan VE “istasyon” sütunu da sıfıra eşit olan ilk iş seçilir. İstasyon zamanını aşmıyorsa bu iş o anki istasyona atanır.

Kural-1: 3 nolu işin tüm “öncelik” sütunları sıfır. İstasyon sütunu da sıfır.

Kural-2: 3 nolu işi 1.istasyona atarsam cycle değerini aşmıyorum. (3,5 + 1,3 < 5)

İşlem-1: 3 nolu işin istasyon sütununa 1 yazılır.

İşlem-2: Bütün “öncelik” sütunlarında 3 gördüğümüz her hücre sıfır yapılır.

Bu adım sonunda tablonun durumu:

rpw-5

4. ADIM

Şu ana kadar 1 nolu istasyona 1, 2 ve 3 nolu işleri atadık. İstasyon zamanımız 4,8 oldu. Bu adımda aynı kuralları uygularsak uygun bir iş bulamayacağız. Çünkü, tüm “öncelik” sütunları sıfır olan, istasyon sütunu da sıfır olan işler 4 ve 5 nolu işler. Fakat bu işleri ayrı ayrı 1.istasyona atarsak cycle değerini aşarız. Yani bunları 1.istasyona alamayız. Başka da seçecek iş kalmadığına göre artık 1.istasyonla işimiz biter. Bir sonraki istasyona geçeriz. Artık 2.istasyondayız. En baştan taramaya başlarız ve 5 nolu işi 2.istasyona atarız. Aynı kuralları ve işlemleri devam ettiririz.

Kural-1: 5 nolu işin tüm “öncelik” sütunları sıfır. İstasyon sütunu da sıfır.

Kural-2: 5 nolu işi 2.istasyona atarsam cycle değerini aşmıyorum. (0 + 2,1 < 5)

İşlem-1: 5 nolu işin istasyon sütununa 2 yazılır.

İşlem-2: Bütün “öncelik” sütunlarında 5 gördüğümüz her hücre sıfır yapılır.

Bu adım sonunda tablonun durumu:

rpw-6

İşte bütün hamleler bu şekilde yapılırsa aynı tablo üzerinde kolaylıkla istasyon atamasını gerçekleştirebilirsiniz. Gördüğünüz gibi “öncelik” sütunlarının sırası önemli değil. Kaç tane “öncelik” sütunu olduğu, yani model derinliği de önemli değil. Kuralları kontrol edin ve uygun işlemi yapın. Bütün istasyon atamalarının bitmiş hali aşağıdaki gibidir. Konu anlatımının yararlı olması temennisi ile…

rpw-7

Excel VBA örneği için burayı tıklayın.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir