10.07.2015 Views

Akademik Bilişim '10 10 - 12 Şubat 2010 Muğla

Akademik Bilişim '10 10 - 12 Şubat 2010 Muğla

Akademik Bilişim '10 10 - 12 Şubat 2010 Muğla

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Birbirleriyle Etkileşim Halinde Bulunan Maddelerin Bir Düzleme Yerleştirilmesi için Bir AlgoritmaPınar Dündar, Görkem Tokatlı, Moharram Challenger,Tufan Turacı<strong>Akademik</strong> Bilişim’<strong>10</strong> - XII. <strong>Akademik</strong> Bilişim Konferansı Bildirileri<strong>10</strong> - <strong>12</strong> Şubat 20<strong>10</strong> Muğla ÜniversitesiŞekil 2.3Yukarıdaki grafta, a ve b malzemeleri arasındabir etkileşim vardır, fakat a ve d malzemeleriarasında bir etkileşim yoktur, bunun anlamı isea ve d maddelerinin yan yana gelebileceğidir.Buradaki problem, bu malzemeleri hiçbirproblem olmaksızın bir depoya yerleştirebileceğimizbir plan hazırlayabilir miyiz?Şekil 2.4(a) ve Şekil 2.4(b)’ deki problemimizinçözümü için uygun olan çözümlerdir.Şekil 2.4Fakat Şekil 2.4’ deki çözümler alan maliyetiaçısından kötüdür. Bizim geliştirmiş olduğumuzalgoritma bu malzemeleri bir düzleme çokdaha uygun bir biçimde yerleştirmektedir.3. Geliştirdiğimiz AlgoritmaProblemi çözmek için, hangi yerleştirmeleriniyi çözüm sayılabileceğini belirtecek tanımlamalarkoymak gerekmektedir. Buna göreadet madde ve,olacak minimumt tam sayısı için, buadet maddeninlik kare matrise sığacak her yerleştirmeçözümünü iyi çözüm olarak adlandıralım.Algoritmamızı, bu yerleştirmeleri daha iyiyoldan yapacak şekilde geliştirebiliriz.Birçok graf teori probleminde olduğu gibi buproblemde de direkt en iyi sonucu verecek birmetod kurulması mümkün değildir. Bu nedenlebu tip problemlere en basit yöntemle, denemeyanılma(brute force [4]) algoritmaları ile çözümaranır. Biz bu probleme sezgisel(heuristic[4]) bir yaklaşım getirerek, iyi sayılabilecekçözümlerin en az birine en kısa zamanda ulaşmayıhedefleyen bir metod ortaya koyduk.3.1 Klasik bir Deneme Yanılma YaklaşımıBu probleme yapılacak en basit yaklaşım, karematrise maddeleri tek tek rastgele koyarak,etkileşim olduğu zaman geri dönerek değiştirmeyoluyla tüm kombinasyonları denemektir.Maddelerin köşeye karesel olarak yerleştirilmesiiçin yapılabilecek bir deneme sırasıŞekil 3.1 ‘deki gibi olabilir. Buradaki sırayagöre çakışma oluşmadıkça maddeler rastgeleyerleştirilir. Eklenen son madde çakışmaya sebepoluyorsa, yerine başka bir madde denenir.Denenen maddelerin hiçbiri uygun değilse, birönceki madde de kaldırılır ve başka madde denenir.Bu şekilde olası tümkombinasyonundenenmesi büyük değerleri için çokzordur. Bu nedenle, denemeler esnasında iyibir sonuca daha erken rastlamayı sağlayabilecekbir metod gerekmektedir.1 2 5 <strong>10</strong>4 3 6 119 8 7 <strong>12</strong>16 15 14 13Şekil 3.1 – Köşeye yerleştirme içinolası bir deneme yanılma sırası3.2 Sezgisel(Heuristic) YaklaşımımızYaklaşımımızın ana fikri, deneme yanılmaaşamasında olabilecek hatalı seçimleri en erkenzamanda yaparak, geriye dönüş miktarınıen aza indirmektir. Bu nedenle, Paull-Ungeralgoritmasını kullanarak maksimal bağımsızkümeleri buluruz. Daha sonra, bu kümelerdekielemanları, kümelerde tekrar edilme sayılarınagöre küçükten büyüğe doğru dizeriz. Busayede, yerleştirmesi en problemli olandan enkolay olana göre sıralanmış bir madde listesielde ederiz.Sonrasında en zor maddeden başlayacak şekilde,Şekil 3.2’ deki sıraya göre sol üst köşeyeyerleştirmeye başlarız. Buradaki sıralamanınmantığı, yine olası bir uyuşmazlığı en erkenzamanda farkederek daha az zaman kaybıyladenemeye devam etmektir.Örneğin, Şekil 3.2’ de 9. eklemeden sonrakiduruma bakalım. Sonraki yapacağımız eklemeler,5., 6., 7., 8., ve 9. ekleme ile uyuşmamave geri dönüş riski taşımaktadır. Geri dönüşdurumu varsa bunu en erken zamanda yapmakiçin en küçük olan 5 ‘ten başlayarak sırasıylaeklemelerin karşıları kapatılır.1 2 5 <strong>10</strong>3 4 7 <strong>12</strong>6 8 9 1411 13 15 16Şekil 3.2 – Köşeye yerleştirme içinkullandığımız deneme sırasıİlgili algoritmanın yinelemeli(recursive) yapıdakiana fonksiyonu Şekil 3.3’deki gibidir.Find(Loc L, int field[T][T], list PUList[N]){i:=0While i

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!