• Sonuç bulunamadı

ÖZEL EGE LİSESİ KESME PROBLEMİ İÇİN YENİ BİR YAZILIM

N/A
N/A
Protected

Academic year: 2022

Share "ÖZEL EGE LİSESİ KESME PROBLEMİ İÇİN YENİ BİR YAZILIM"

Copied!
15
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

ÖZEL EGE LİSESİ

KESME PROBLEMİ İÇİN YENİ BİR YAZILIM

HAZIRLAYAN ÖĞRENCİLER: Berke ODACI Yaren BOZAR

DANIŞMAN ÖĞRETMEN: Mert YILDIZ

İZMİR 2016

(2)

2

İÇİNDEKİLER

1. GİRİŞ ………...…….3

1.1 Projenin Amacı………..3

1.2 Kesme Problemi………3

1.3 Subset Sum………...4

2. ÇÖZÜM YÖNTEMLERİ………...………..……….4

3. MEVCUT PROBLEM...…...………..………..4

4. GELİŞTİRİLEN YENİ ALGORİTMA...4

4.1 Yazılım Paketi...………...……….………7

5. HESAPLAMA DENEMELERİ...………...………...………....8

6. SONUÇLAR ve TARTIŞMA………...………..15

KAYNAKLAR……….………..……….15

(3)

3

1. GİRİŞ

1.1 Projenin Amacı

Sanayi sektöründeki çeşitlilik sonucu artan rekabet, müşteriler tarafından belirlenir duruma gelen hizmet fiyatları, bütün bunlara ek olarak üretim maliyet ve sürelerinin düzenli artışı günümüz piyasasının sonu gelmeyen ve minimize etmesi gereken problemlerinden sadece birkaçıdır. Bu doğrultuda geliştirilen “tek boyutlu kesim problemi” işletmelerin en iyi kesim(üretim) planına kısa sürede ulaşmasını amaçlayan bir problemdir. Ancak problemin günümüzdeki çözümleri değişen sanayi koşullarına tam olarak uyum sağlayamamaktadır.

Bu projede, tek boyutlu kesim probleminin özel bir versiyonu ele alınmış, sanayi çalışanlarının süre ve iş gücünden kazanç sağlaması amaçlanmıştır. En iyi kesim planı minimum çöp(fire) miktarı ile oluşturulması hedeflenmiştir. Böylece, sanayi sektörüne katkı sağlanması ve ürünlerin kalitesinin maksimum verimle oluşturulması amaçlanmıştır.

1.2 Kesme Problemi

Herkesin belirli bir üretim kapasitesine sahip olduğu günümüz dünyasında devamlılık yalnızca sunulan hizmetler ve maliyetin avantaja dönüşmesiyle sağlanırken, işletmelerde öncelik iş gücü olmaktan çıkıp maliyet ve hammaddeye yerini bırakmıştır. Bu bağlamda optimizasyon problemlerinin çözümleri oldukça önem kazanmıştır. Kesme problemi, kağıt, cam, metal vb. işletmelerin alıcılarının istek uzunluğu doğrultusunda elindeki hammaddeleri şekillendirmesi ve birleştirmesinden doğmuş bir optimizasyon problemidir. Kesme problemlerinin büyük bir çoğunluğu üretim maliyetlerini ve fire miktarını minimize etmek ya da karı maksimize etmek gibi amaç fonksiyonlarını optimize ederek, belirli büyüklük ve miktarlarda daha kısa parçaların kesilmesini içerir.(Yanasse ve Lamosa, 2006)

Kesme problemi 1, 2 ve 3 boyutlu olarak incelenmektedir. Tek boyutlu kesme problemi n elemanlı uzunluk kümesinden, her elamanın stok sayısı dikkate alınarak istenen S uzunluğuna en az fire miktarıyla ulaşılmasıdır. İki boyutlu versiyonu ise hem uzunluk hem de genişlik faktörlerini içeren kesme problemidir. Üç boyutlu kesme problemi de derinlik, uzunluk ve genişlik faktörlerini içeren daha kapsamlı bir problemdir. İki boyutlu kesme problemini çeşitli yükseklik ve genişliğe sahip dikdörtgenlerin, kendilerinden daha büyük bir dikdörtgenin içine yerleştirilmesi olarak düşünebiliriz. Bu durumda, üç boyutlu kesme problemi de çeşitli prizmaların, daha büyük prizmalara sığdırılması olarak tanımlanabilir.

Kesme problemi ilk ortaya çıktığı zamandan bu yana, çok sayıda araştırmacının dikkatini çekmiştir. Gilmore ve Gomory(1961,1963)’nin kesme problemi çalışmalarında kullandığı doğrusal programlama ile hız kazanan çözüm yöntemleri, son dönemlerde yerini kesin çözümler ve rastgele yöntemler içeren alternatiflere bırakmıştır. Örneğin, Wongprakornkul ve Charnsethikul (2010)tek boyutlu kesme problemi için kesikli talep durumunda stoklama maliyetlerini de göz önünde bulunduran iki algoritma önermişlerdir.1 Bunlardan ilki sütun oluşturma tekniğine dayalı bir matematiksel model, ikincisi yapıcı bir sezgisel algoritmadır.1Aktin ve Özdemir(2009) ,Dyckhoff (1990),Yang vd. (2006), Eshgi ve Javanshir (2008), Reinertsen ve Vossen (2010)ve daha birçok araştırmacı kesme problemini efektif bir şekilde çözmeye çalışmıştır.

Bu projede tek boyutlu kesme problemi ele alınmış olup fire miktarlarının çeşitliliği göz önünde bulundurularak efektif bir çözüm geliştirmek amaçlanmıştır.

1http://iibfdergisi.gazi.edu.tr/index.php/iibfdergisi/article/viewFile/797/592

(4)

4 1.3 Subset Sum

Kesme problemi subset-sum problemine benzer niteliktedir. Alt küme toplamı probleminin (subset-sum) amacı, alt kümeleri arasında toplamı t olan bir küme bulunan bütün S kümelerini içeren bir alt küme toplamı sınıfı bulmaktır. Alt küme toplamı problemi NP-tam bir problem olduğu için çözümü oldukça karmaşık ve zordur. Kriptografide şifrelenmiş bir metnin anahtarını bulabilmeyi sağlayabildiğinden dolayı, problemin çözümü önem kazanmıştır. Alt küme toplamı probleminin NP-tam sınıfında olması, problemin seyyar satıcı problemiyle ilişkisini de ortaya koymaktadır. Seyyar satıcı problemi, seyyar bir satıcının mallarını n adet şehirde satmak istemesinden doğar. Satıcı mantıklı ve mümkün olan en kısa şekilde bu şehirleri turlamak istemektedir. Subset-sum ve seyyar satıcı probleminin ortak noktası, n elemanı en kısa sürede dolaşmak, optimizasyon konusunda en derin incelemelere kaynak olmuştur. Kesme problemi ise bu noktada alt küme toplamı ve seyyar satıcı problemlerinden yararlanmaktadır. Stok uzunluklarını en kısa sürede taramak ve en iyi planı oluşturmak açısından, subset-sum kesme problemine benzemektedir.

Projenin devam eden bölümleri şu şekildedir: 3. bölümde mevcut problemin tanımı verilmiştir. 4. bölümde probleme için geliştirilen yeni algoritma anlatılmış ve oluşturulan yazılım paketi tanıtılmıştır. 5. bölümde algoritmanın veri kütüphanesi üzerindeki sonuçları rapor edilmiştir. Son olarak 6. bölümde sonuç verilmiştir.

2.Çözüm Yöntemleri

Optimizasyon problemlerinin çözüm yöntemleri kesin ve yaklaşık çözüm olmak üzere ikiye ayrılmaktadır. Kesin yöntemler optimal çözümü garanti eden ancak çalışma zamanı uzun süreler alan yöntemlerdir. Kısa sürelerden optimal olmayan kaliteli çözümler bulabilmek içinse yaklaşık yöntemler kullanılabilir. Yaklaşık çözümler optimal çözümleri garanti etmese de kısa sürelerde optimale yakın çözümler üretebilirler.

Kesme problemi, anlatım açısından oldukça kolay olmasına rağmen problemin çözümü oldukça zordur. Problemdeki parça sayısı arttıkça, problem üssel bir şekilde zorlaşmaya başlar. Bu sebepten büyük girdi boyutlarında tam çözüm bulmak oldukça uzun sürmektedir.

Bu nedenle de matematiksel modeller ya da tam çözüm bulan algoritmaların çalışma zamanları çok çok uzun süreler almaktadır. Araştırmacılar genel olarak tam çözümü garanti eden yöntemler yerine kısa sürelerde kaliteli çözümler bulan yöntemler geliştirmeye çalışmaktadır.

3. MEVCUT PROBLEM

Bilindiği gibi bir boyutlu kesme probleminde istenilen parçalar stoklardan kesilerek tek parça halinde elde edilir. Ancak yaptığımız araştırmalar sonucunda, özellikle uygulama kısmında problemin bir çok özel halinin olduğu gördük. Özelikle metal kesimleri gibi sanayi uygulamalarında, gerektirdiği taktirde bazı parçaların daha küçük parçalara ayrılarak daha sonra birleştirilip çöpe atılan kısmın minimize edilmesi çalışmaktadır. Buradaki kısıtlar herhangi bir parçanın en fazla ikiye bölünebilmesi ve tekrardan birleşim için kaynak uygulanacak en küçük parçanın 1 metreden büyük olmasıdır. Bu iki yeni kısıt ile kesme probleminin yeni bir versiyonu elde edilmiş olur. Bizde gerçek hayat projelerinde kullanılan bu yeni problem için bir yazılım üreterek daha kaliteli kesim planları ile fabrikaların çöpe attıkları maddeleri minimize etmeyi amaçladık.

4. GELİŞTİRİLEN YENİ ALGORİTMA

Önerilen yöntemde, kesme problemi alt küme toplamı problemi (Subset Problem) gibi modellenerek çözüm aranmıştır. Stok uzunluğu ulaşılması gereken sayı, istenilen parçaların uzunlukları ise kümenin elemanları olarak düşünülmüştür. Alt küme problemi için bulunan her

(5)

5 bir çözüm bir kesim deseni olarak düşünülerek, istenilen parçaların tümü elde edilene kadar bu alt prosedür çalışmaya devam etmektedir.

Alt küme toplamı problemi için önerilen prosedür açgözlü (Greedy) tabanlı bir algoritmadır. Klasik açgözlü algoritması altküme toplamı problemi için; parçaları büyükten küçüğe ya da küçükten büyüğe sıralayıp, dizinin ilk elemanından başlayarak sırayla ekleyebileceği parçaları çözüme ekleyerek çalışır. Fakat bu yöntem sürekli dizinin ilk elemanından başlayarak devam ettiği için, çözüm uzayını etkili bir şekilde tarayamamaktadır.

Bu problemin üstesinden gelmek ve daha kaliteli çözümler elde edebilmek için önerilen algoritma sadece dizinin ilk elemanında değil, sıra ile tüm elemanlardan başlayarak n adet çözüm bulup, bu çözümlerden en iyisini kesim deseni olarak kullanmaktadır. Bu yöntem ile açgözlü algoritmanın tekdüzeliği giderilmiş olsa da, yine de çözüm kümesinin elemanları genel olarak ardışık elemanlardan oluşmaktadır. Bu da bulunan çözümlerdeki çeşitliliği azaltıp, en iyi çözümün bulunma ihtimalini düşürmektedir. Bu sorunun üstesinden gelmek için random fonksiyonu kullanılarak her bir parçaya çözüm kümesine girmesini sağlayan bir yüzde verilmiştir. Parçaların çözüm kümesine girme yüzdesi aşağıdaki formüle göre hesaplanmaktadır:

sps: çözüme giren sıralı parça sayısı.

() (1.5) * (100 / ( 1))

fsps

Formüle göre ilk elemanın çözüme girme yüzdesi %150’dir. Böylece ilk elemanın çözüme girmesi garanti altına alınmıştır. Daha sonra, sps sayısı 1 artacağı için ikinci elemanın çözüme girme yüzdesi %75, üçüncü elemanın çözüme girme yüzdesi %50, şeklinde azalarak devam eder. Kesim desenine girecek parçadan çözüm kümesine eklenebildiği kadar eklenir. Eğer herhangi bir eleman düşük yüzdesinden dolayı çözüme giremediyse, sps değeri 1 azaltılarak kendisinden sonraki elemanın çözüme girme yüzdesi arttırılır. f fonksiyonu, çözüm uzayının daha kapsamlı bir şekilde aranmasını ve daha kaliteli çözümler elde edilmesini sağlar. Ayrıca parçaların bu işlemlerden önce uzunluklarına göre büyükten küçüğe sıralanmasıyla çözümlerin kalitesinin artması sağlanmıştır. Problemi bir bavulumuza eşyalarımızı yerleştirme şeklinde düşünürsek, öncelikle hacimsel olarak en büyük eşyalarımızı koyar, sonrasında daha küçük eşyalarla bavulumuzu doldurmaya çalışırız. Benzer şekilde stok uzunluğuna ulaşmaya çalışırken de, önce uzun parçaları kullanmak bize avantaj sağlayacaktır. Basit bir örnek vermek gerekirse; 10 tane 2 metre uzunluklu parçayı yerleştirme işlemi, 10 tane 15 metre uzunluğundaki parçayı yerleştirme işlemine göre daha kolaydır. Bu yüzden algoritmanın önceliği olabildiğince uzun parçalardan kurtulmaktadır.

Üzerinde çalıştığımız problemin klasik bir boyutlu kesme probleminden farkı, parçaların istenildiği zaman ikiye bölünerek kesim desenine girmesi, daha sonra sonra bölünmüş parçaların kaynak ile tekrar birleştirilebilmesidir. Bu sebeple her bir kesim deseni oluşturulduktan sonra, eğer stokta minimum kaynak uzunluğundan daha büyük bir boşluk kaldı ise, istenilen parçalardan biri ile bu boşluk doldurularak, ikiye bölünür. Bölünen parçanın kalan kısmı ise parçalar dizisine eklenir. Burada parça seçme işlemi yapılırken, bir üst paragrafta bahsedilen nedenlerden dolayı uzunluk dikkate alınarak, en uzun parça kaynak için kullanılır.

Bu sayede üzerinde çalışılan kesim deseninin iyileştirilmesinin yanında, kaynak için en uzun parçalar bölünerek daha küçük parçalar elde edildiğinden sonraki kesim desenlerinin kalitesinin de artması sağlanır. Bu prosedür tüm parçaların istekleri tamamlanana kadar devam eder. Algoritmanın içerinde rastgelelik fonksiyonu kullanıldığını için prosedürün istenen iterasyon sayısı kadar devam edip, en iyi çözümü vermesi sağlanmıştır. Algoritmanın akış diyagramı aşağıda Şekil 1’de verilmiştir. Akış diyagramında S dizisi parçaların uzunluklarını, D dizisi ise parçaların istek adetlerini belirtmektedir.

(6)

6 Şekil 1: Algoritmanın Akış Diyagramı.

(7)

7 4.1 Yazılım Paketi

Bir boyutlu kesme problemi için önerilen algoritma, Visual Studio 2008 ile C# dilinde kodlanmıştır. Program.txt uzantılı bir dosyadan girdi verilerini alarak, kesim planını oluşturup çıktı olarak girdi dosyasının bulunduğu diziye bir txt dosyası oluşturmaktadır. Program girdi dosyasının ilk satırından sırasıyla stok uzunluğunu ve parça sayısını, devam eden satırlarda ise uzunluk değerlerini ve istek adetlerini okumaktadır. Çıktı dosyasında ise, her bir kesim deseni ve o desenden kaç adet kesileceği raporlanmaktadır. Şekil 2’de girdi ve çıktı dosyası için birer örnek bulunmaktadır.

Şekil 3:Girdi ve Çıktı dosya örnekleri.

Yazılımın arayüzü, kullanıcının programı daha rahat kullanabilmesi için çeşitli parametreler barındırmaktadır. Programa girdi dosyası ile birlikte, kaynak işlemi uygulanabilecek en kısa uzunluk, minimum kaynak kullanım yüzdesi ve prosedürün iterasyon değeri girilmelidir. Her bir kaynak işlemi şirkete ekstra maliyet getireceği için kaynak sayısını istenilen seviyede tutmayı hedefleyen minimum kaynak yüzdesi parametresi programa eklenmiştir. Kesim deseninde kullanılan parçaların toplam uzunluğunun stok uzunluğuna yüzdesi bu parametreden daha düşük ise o kesim deseni için ekleme işlemi yapılacaktır.

Program çalıştırılıp çözüm elde edildikten sonra, arayüzde kullanılan toplam stok sayısı, çöpe atılacak parçaların toplamı, çöp yüzdesi, tüm kesim deseni için kaç adet kaynak işlemi yapılacağı ve programın çalışma zamanı raporlanmaktadır. Ayrıca tüm kesim deseni bir .txt dosyasında kullanıcıya sunulmaktadır. Şekil 3’te programın arayüzü görünmektedir.

(8)

8 Şekil 3:Geliştirilen programın arayüzü.

5. HESAPLAMA DENEMELERİ

Bu bölümde önerilen algoritmanın oluşturduğumuz örnek kütüphanesi üzerindeki sonuçları analiz edilmiştir. Önerilen algoritma C# dilinde kodlanmıştır. Hesaplama denemeleri 3.3 GHz Intel Core i3 CPU işlemci ve 2 GB RAM e sahip işletim sistemi 32-bit Windows olan bir bilgisayar üzerinde yapılmıştır.

Üzerinde çalıştığımız problem, kesme probleminin özel bir hali olduğu için literatürde bu özel hal için veri kütüphanesi veya karşılaştırılma yapılacak bir algoritma bulunmamaktadır.

Bunun yerine yöntemin performansını analiz etmek için, algoritma oluşturduğumuz örnek kütüphane üzerinde test edilmiştir. Örnek kütüphane, küçük boyutlu (a problem ailesi), orta boyutlu (b problem ailesi) ve büyük boyutlu (c problem ailesi) olmak üzere 3 farklı örnek türünden oluşmaktadır. Özel şirketlerin milimetreler üzerinde çalıştıkları düşünülerek, stok değerleri; a problem ailesinde 5000<stok<25000, b problem ailesinde 25000<stok<75000 ve c problem ailesinde 75000<stok<100000 olarak belirlenmiştir. Her bir problem ailesi için n değeri (parça sayısı) 10, 20, 30, 50, 75, 100, 200, 300, 400, 500 olan üçer adet örnek üretilmiştir.

Tablo 1, 2 ve 3’te programın örnekler üzerindeki sonuçları verilmiştir. Programda random fonksiyonu olduğu için her bir örnek 10’ar kere çalıştırılmış, bulunan en iyi, en kötü ve ortalama değerler raporlanmıştır. Verilen çalışma süreside bu 10 denemenin ortalamasıdır. Ayrıca tüm örnekler için minimum kaynak değeri 1000, minimum kaynak kullanım yüzdesi %95 ve iterasyon sayısı 10 olarak belirlenmiştir. Şekil 3’te çöpe atılacak miktarın ve çözüm sürelerin n’e bağlı grafikleri verilmiştir. Buradaki değerler tablodaki ortalama değerlerden alınmıştır.

(9)

9

En İyi En Kötü Ort Süre n

10 1 1,312047 3,909098 1,571752 00:00:00 2 2,183823 2,183823 2,183823 00:00:00 3 2,486529 2,486529 2,486529 00:00:00 20 1 0,878680 0,878680 0,878680 00:00:00 2 2,372495 2,372495 2,372495 00:00:00 3 0,578736 1,979036 0,998826 00:00:00 30 1 0,984643 0,984643 1,410962 00:00:00 2 0,571671 1,483858 1,118983 00:00:00 3 1,394761 1,394761 1,394761 00:00:00 50 1 0,464853 0,970108 0,616430 00:00:00 2 0,426319 0,426319 0,426319 00:00:00 3 0,778132 0,778132 0,778132 00:00:00 75 1 0,184699 0,487170 0,396429 00:00:00 2 0,509999 0,829903 0,573980 00:00:00 3 0,370942 0,370942 0,370942 00:00:00 100 1 0,184535 0,455038 0,427987 00:00:01 2 0,391567 0,391567 0,391567 00:00:01 3 0,722096 0,722096 0,722096 00:00:01 200 1 0,334506 0,483483 0,364301 00:00:07 2 0,313146 0,449145 0,435545 00:00:07 3 0,343582 0,483943 0,357618 00:00:07 300 1 0,240969 0,337076 0,327465 00:00:25 2 0,342852 0,342852 0,342852 00:00:25 3 0,346975 0,434698 0,373292 00:00:25 400 1 0,307928 0,372412 0,314376 00:00:59 2 0,255366 0,255366 0,255366 00:00:58 3 0,355761 0,430569 0,378204 00:00:58 500 1 0,319903 0,378668 0,361039 00:01:55 2 0,220719 0,278798 0,232335 00:01:53 3 0,307194 0,359335 0,317622 00:01:56

A Grubu

Çöp Yüzdeleri

Tablo1:Algoritmanın örnek A Kütüphanesi üzerindeki sonuçları.

(10)

10 Grafik 1: Algoritmanın örnek A kütüphanesi üzerindeki çöp yüzdeleri

Grafik 1.1: Algoritmanın örnek A kütüphanesinde ortalama çalışma süresi

0 0,5 1 1,5 2 2,5 3

10 20 30 50 75 100 200 300 400 500

A Grubunun Ortalama Çöp Yüzdesi

Seri 1 Seri 2 Seri 3

00:00:00 00:00:17 00:00:35 00:00:52 00:01:09 00:01:26 00:01:44 00:02:01 00:02:18

10 20 30 50 75 100 200 300 400 500

A Grubunun İşlem Süresi

Seri 1 Seri 2 Seri 3

(11)

11

En İyi En Kötü Ort Süre n

10 1 1,647021 1,647021 1,647021 00:00:00 2 1,885463 4,951542 2,347808 00:00:00 3 3,299218 11,63549 8,254112 00:00:00 20 1 1,241227 2,291852 1,451352 00:00:00 2 0,964748 2,465282 1,264855 00:00:00 3 3,521111 3,521111 3,521111 00:00:00 30 1 0,458674 0,966538 0,611033 00:00:00 2 0,39257 3,222326 0,849279 00:00:00 3 0,802394 1,369237 1,085815 00:00:00 50 1 0,616402 0,901987 0,673519 00:00:00 2 0,455604 0,455604 0,455604 00:00:00 3 0,428895 0,706252 0,623045 00:00:00 75 1 0,486481 1,783919 1,124513 00:00:00 2 0,502459 1,739551 0,804288 00:00:00 3 0,350938 1,23409 0,749339 00:00:00 100 1 0,443709 0,595703 0,458909 00:00:01 2 0,314787 0,619635 0,421601 00:00:01 3 0,350157 0,653505 0,502016 00:00:01 200 1 0,387248 0,458553 0,437161 00:00:08 2 0,245821 0,340825 0,312323 00:00:07 3 0,239955 0,239955 0,239955 00:00:07 300 1 0,3275 0,436671 0,371186 00:00:23 2 0,17978 0,232069 0,185008 00:00:24 3 0,21872 0,343446 0,281114 00:00:25 400 1 0,144458 0,564903 0,304931 00:00:59 2 0,200851 0,53992 0,322444 00:00:59 3 0,275175 0,606121 0,378286 00:00:56 500 1 0,194626 0,227104 0,207617 00:01:49 2 0,23539 0,360526 0,301115 00:01:55 3 0,15846 0,192853 0,165339 00:01:49

B Grubu

Çöp Yüzdeleri

Tablo 2: Algoritmanın örnek B kütüphanesi üzerindeki sonuçları.

(12)

12 Grafik 2: Algoritmanın örnek B kütüphanesi üzerindeki çöp yüzdeleri

Grafik 2.1: Algoritmanın örnek B kütüphanesinde ortalama çalışma süresi

0 1 2 3 4 5 6 7 8 9

10 20 30 50 75 100 200 300 400 500

B Grubunun Ortalama Çöp Yüzdesi

Seri 1 Seri 2 Seri 3

00:00:00 00:00:17 00:00:35 00:00:52 00:01:09 00:01:26 00:01:44 00:02:01 00:02:18

10 20 30 50 75 100 200 300 400 500

B Grubunun Süresi

Seri 1 Seri 2 Seri 3

(13)

13

En İyi En Kötü Ort Süre n

10 1 2,014161 2,014161 2,014161 00:00:00 2 2,355238 2,355238 2,355238 00:00:00 3 1,842752 1,842752 1,842752 00:00:00 20 1 1,802763 1,802763 1,802763 00:00:00 2 1,394181 1,394181 1,394181 00:00:00 3 1,39391 1,39391 1,39391 00:00:00 30 1 0,486114 0,486114 0,486114 00:00:00 2 0,470217 0,470217 0,470217 00:00:00 3 0,971794 0,971794 0,971794 00:00:00 50 1 0,613485 0,613485 0,613485 00:00:00 2 0,391971 0,819473 0,434721 00:00:00 3 0,616382 0,616382 0,616382 00:00:00 75 1 0,478378 0,478378 0,478378 00:00:00 2 0,688438 0,688438 0,688438 00:00:00 3 0,797859 0,797859 0,797859 00:00:00 100 1 0,413575 0,58587 0,465264 00:00:01 2 0,460078 0,460078 0,460078 00:00:01 3 0,62454 0,835081 0,666648 00:00:01 200 1 0,256889 0,354485 0,325206 00:00:07 2 0,248165 0,35079 0,299478 00:00:07 3 0,435058 0,435058 0,435058 00:00:08 300 1 0,373518 0,444629 0,394852 00:00:26 2 0,307752 0,372153 0,365713 00:00:26 3 0,311799 0,379939 0,325427 00:00:25 400 1 0,275401 0,329219 0,313073 00:01:00 2 0,248914 0,298889 0,278899 00:01:03 3 0,298163 0,347741 0,337825 00:01:00 500 1 0,232937 0,273247 0,261154 00:02:04 2 0,275831 0,318779 0,314484 00:01:58 3 0,350221 0,388255 0,376845 00:02:03

C Grubu

Çöp Yüzdeleri

Tablo 2: Algoritmanın örnek C kütüphanesi üzerindeki sonuçları.

(14)

14 Grafik 3: Algoritmanın örnek B kütüphanesi üzerindeki çöp yüzdeleri

Grafik 3.1: Algoritmanın örnek B kütüphanesinde ortalama çalışma süresi

Grafik ve tablolarda görüldüğü üzere geliştirilen yöntem oldukça kısa sürelerde çalışmaktadır.

Ortalama çöp yüzdeleri çoğu örnekte %3’ün altındadır. Özellikle, n değeri 50’den büyük olduğu sürece ortalama çöp miktarı %1’in altındadır.

0 0,5 1 1,5 2 2,5

10 20 30 50 75 100 200 300 400 500

C Grubunun Ortalama Çöp Yüzdesi

Seri 1 Seri 2 Seri 3

00:00:00 00:00:17 00:00:35 00:00:52 00:01:09 00:01:26 00:01:44 00:02:01 00:02:18

10 20 30 50 75 100 200 300 400 500

C Grubunun İşlem Süresi

Seri 1 Seri 2 Seri 3

(15)

15

6. SONUÇLAR ve TARTIŞMA

Bu projede rekabet ortamında, sanayi firmalarının çöp miktarlarını en aza indirerek, çalışma verimini artırmak hedeflenmiştir. Bu doğrultuda tek boyutlu kesme probleminin özel bir versiyonu ele alınmıştır. Özellikle sanayi alanında karşılaşılan bu problem için çok hızlı sürelerde çözüm bulan bir sezgisel algoritma önerilmiştir. Geliştirilen algoritmada rastgelelik kullanılarak kesim planlarındaki çeşitliliğin artması ve çözüm uzayının daha kapsamlı bir biçimde taranması sağlanmıştır.

Hesaplama denemelerine bakarak, geliştirilen algoritmanın oldukça efektif olduğu görülmektedir. Tablolardan algoritmanın genel olarak yüzde 1 oranında çöp miktarı oluşturduğu anlaşılmaktadır. Sanayi uygulamalarında yüzde 5 e kadar çöp miktarının kabul gördüğü düşünülürse, önerilen yöntemin bulduğu çözümlerin kaliteli ve kullanılabilir olduğu düşünülmektedir. Özellikle kesim deseni büyüdükçe bulunan çözümün kalitesi artmakta ve çöp yüzdesi yüzde 1’in altına düşmektedir. Kesim desenlerinin el ile günlerce uğraşılarak bulunması yerine çok kısa sürelerde kullanılanabilecek kesim planı oluşturan yazılımımız sanayi sektörüne ve sanayi çalışanlarına yeni olanaklar sağlayacağını ummaktayız.

KAYNAKLAR

[1] Soumendra Nanda (2005), CS 105: Algorithms (Grad) Subset Sum Problem, Darthmouth Üniversitesi.

[2] Robert W. Haessler and Paul E. Sweeney (1991), “Cutting stock problems and solution Procedures”, School of Business Administration, The Uniuersity of Michigan, Ann Arbor, MI, USA.

[3] Doç. Dr. Gökay SÜRSAL, “Stok kesım Problemlerı ve Doğrusal Programlamaya Dayanan Bir Çözüm Yöntemi”.

[4] P. van Emde Boas, Another NP-complete partition problem and the complexity of computing short vectors in a lattice, Rept. 81-04, Dept. of Mathematics, Univ. of Amsterdam, 1981.

[5] Gareyand D. S. Johnson, Computers and Intractability: A Guide to theTheory of NP- Completeness, W. H. Freeman and Company (1979).

[6] Fatma DEMİRCAN, Haluk SOYUER, “Tek Boyutlu Kesme Problemi: Bir İşletme Uygulaması”.

[7] Lu, Q., Wang, Z. ve Chen M. (2008), “An Ant Colony Optimization Algorith for the One-Dimensional Cutting Stock Problem with Multiple Stock Lengths”, Proceeding ICNC '08 Proceedings of the 2008 Fourth International Conference on Natural Computation , Vol: 07.

[8] Aktin, T. ve Ozdemir, R.G. (2009), “An integrated approach to the one-dimensional cutting stock problem in coronary stent manufacturing”, European Journal of Operational Research, 196: 737-743.

[9] Semih ADAKCI (2010), “Stok Kesme Problemi: Alüminyum Sektöründe Uygulaması”.

Referanslar

Benzer Belgeler

Planya, vargel, freze tezgâhlarında işlenen ve eğelenen yüzeylerin daha düzgün duruma getirilmesinde kullanılan raspaların çeşitli şekillerde olanları vardır* (düz

Zizek, metni okuyarak yürüyüşü gerçekleştirecek olanın içinde, metinde geçen kavramlara göndermede bulunmaksızın, büyüyen bir his olarak ele alınmaktadır

Ayrıca serum açlık glukoz, total kolesterol, LDL-kolesterol ve trigliserit düzeylerinin de obez grupta kontrol grubuna göre anlamlı derecede yüksek olduğu belirlenmiştir

Örnek : Klavyeden girilen bir açı değerinin (radyan olarak) sinüs, kosinüs ve tanjant değerlerini bulup ekrana tablo şeklinde yazan bir program yazınız.... Sütun

istenen embriyolar donörden östrusun başlangıcından sonra 6.5-7.5 günler arasında toplanmalıdır. Daha genç ya da daha yaşlı embriyolar dondurma ve çözdürme

Yukarıdaki takvime göre, hangi gün Pazar gününe denk

• B şirketinin borç ve hisselerini uygun oranlarda karıştırarak herhangi bir yatırımcı B’yi “kaldıraçsız” hale getirebilir ve bu da A’nın nakit akışlarına eş

Kronik hastalığı olan olgularda üst üriner sistem infeksiyonları daha sık görülür.. Poliüri, dizüri, sık idrar yapma hissi gibi alt üriner sistem semptomlarına