B-Spline Curve Approximation using Pareto

Doç.Dr.Erkan ÜLKER, Selçuk Üniversitesi Mühendislik F, Bilgisayar Mühendisliği Bölümü
17.05.2014
Sayfa 1
Doç.Dr.Erkan ÜLKER, Selçuk Üniversitesi Mühendislik F, Bilgisayar Mühendisliği Bölümü
B-Spline Curve Approximation using Pareto Envelope-based Selection Algorithm
– PESA
ÖZET
Bilgisayarlı Modelleme alanında literatürde araştırma konusunu oluşturan problemlerden en
yaygını dışarıdan verilen nokta kümesine istenilen eğri şeklini tahmin etmektir. Bu amaçla,
farklı eğri türleri için zaman içerisinde birçok yaklaşım ve yöntem geliştirilmiş ve ilgili
problemin çözümü için işe koşulmuştur. Bu çalışmada benzer şekilde, B-Spline eğrilerinin
tahmininde Pareto Zarflama-Temelli Seçim Algoritmasının (PESA) kullanımı öne
sürülmektedir. Makale kapsamda, ters mühendislik yöntemleri ile ilgili algoritma
yaklaşımlarının bir araya getirildiği bir uygulama ortamı geliştirilmiş ve B-spline eğrinin
düğüm tahmini işlemi PESA kullanılarak ortaya konulmuştur.
1. GİRİŞ
Bilgisayarlı Modelleme, özellikle kullanım yerleri ve kullanılan problem çözüm yaklaşımları
incelenip değerlendirildiğinde günümüzde oldukça popüler olan alanlardan birisi olarak göze
çarpmaktadır. Bilgisayarlı Modellemenin popülaritesi arttıkça zaman içerisinde modelleme
tabanlı birçok problemin çözümü aşamasında yaygın bir şekilde kullanılmasına yol açmıştır.
Bu kullanım sıklığına bağlı olarak, bünyesindeki yaklaşımlar, yöntemler ve teknikler
neticesinde, farklı problemlerin daha etkili çözülebilmesi için birçok araştırma çalışmasının da
gerçekleştirilmesine ön ayak olmuştur. Bu açıdan ele alındığı zaman, Bilgisayarlı
Modellemenin günümüzde özellikle Yapay Zekâ teknikleri ile oldukça sıkı bir şekilde ilişkili
olduğu değerlendirmesi yapılabilir. Özellikle ilgili alanda çözüme ihtiyaç duyulan
problemlerin çözümü aşamasında Yapay Zekâ tekniklerinin kullanımı oldukça yaygın bir
durumdadır.
Bilgisayarlı Modellemenin problemleri arasında, araştırma çalışmalarını en çok ilgilendiren
nokta, eldeki veriler kullanılarak istenilen model faktörlerinin (eğriler, noktalar… vb.) ve
yapılarının (örneğin; yüzeyler) tahmin edilmesi ve hatta oluşturulması olmaktadır. Konu bu
açıdan ele alındığında, B-Spline, NURBS gibi eğrilerin tahmini ve hatta buradan yola
çıkılarak yüzey tahminlerinde bulunulması, popüler problem çözüm yaklaşımlarından birisi
olmaktadır. Literatürde farklı eğri türleri için zaman içerisinde birçok yaklaşım ve yöntem
geliştirildiği ve ilgili problemin çözümü için kullanıldıkları görülmektedir. Wang (2006)
planar spline, spherical spline ve the emerging manifold spline'ları içeren farklı spline
şemalarının uygulamalarını sağlayan bir rapor hazırlamıştır ve spline'ların özellik ve
kısıtlamalarını analiz etmişdir. Ayrıca spline'ların reverse engineering, geometric modeling,
scientific computation, visualization, manufacturing, gibi alanlardaki literatür
uygulamalarınıda sunmuştur. Plemenos (2000) ise özellikle bilgisayar grafiklerinde yapay
zeka tekniklerinin kullanımını detaylıca ele almıştır. Sarfraz (2004), iki boyutlu şekillerin
anahatlarından toplanan düzlemsel veriye uydurulmuş olan optimal eğri vasıtasıyla temsil
edilen şekiller için evrimsel bir yaklaşım öne sürmüştür. Kullanılan spline model rasyonel
(rational) kübik spline’dır. Genler olarak şekil parametreleri ile beraber düğümlerin yerleşim
yerlerinin olduğu adaylar hesaba katılarak kromozomlar inşa edilmiştir. Iglesias ve Galvez
(2008) eğri uydurma üzerine fonksiyon ağlarının özel bir türü olan Rational B-spline (RBS)
fonksiyon ağlarını öne sürmüştür. Şekil kontrol parametreleri ile bir rasyonel kübik spline,
Habib ve ark. (2005) tarafından bilgisayar grafikleri alanındaki uygulaması şeklinde bir bakış
17.05.2014
Sayfa 2
Doç.Dr.Erkan ÜLKER, Selçuk Üniversitesi Mühendislik F, Bilgisayar Mühendisliği Bölümü
açısıyla ele alınmıştır. Masood ve ark. (2005) veri noktalarındaki hataları minimize edecek
şekilde bir eğri tahmin etmek için quadratic B-spline'ları kullanmışlardır. Yoshimoto ve ark.
(1999) bir spline ile veri uydurmak için iyi düğümleri tanımlamayı hedefledikleri bir çalışma
yapmışlardır. Genelde veri uydurma problemindeki global optimum bulma zorluğunun
üstesinden gelmek için orjinal problemi genetik algoritma ile çözen bir strateji
kullanmışlardır. Onların genetik algoritma metodu kullanılarak düğümlerin sayısı ve
yerleşimleri eş zamanlı olarak tanımlanabilir. Mamic ve Bennamoun (2001) spline
modellemede düğüm yerleşimini otomatik tanımlama için bir Bayesian model öne sürmüştür.
Düğümlerin yerlerini ve sayısını bulurken Reversible Jump Markov Chain Monte Carlo
sampler formunda Benzetim Tavlamayı kullanmışlardır. Kullandıkları spline türü de kübiktir.
B-spline eğri uydurma amacıyla parametre optimizasyonu için Genetik Algoritmaya dayanan
bir yaklaşım da Kumar ve ark. (2003) tarafından sunulmuştur. Genetik algoritmanın başlangıç
populasyonunu oluşturmak için mevcut parametrizasyon metotlarının hepsine dayanan yeni
bir metot önermişlerdir. Kullandıkları parametrizasyon metotları RBFN ve kiriş uzunluğu
parametrizasyonudur. Bu metot, kararlı yakınsama ile yakın global çözümler için yakınsamış
yüksek uygunluklu başlangıç gen havuzu sağlamıştır. Genetik algoritmaların bilgisayar
destekli tasarımdaki yerini Renner ve Ekart (2003) irdelemiştir. Yoğun ve gürültülü veriye Bspline eğri tahmini için Li ve ark. (2005) tarafından bir adaptif düğüm yerleşim algoritması
tanımlanmıştır. Bu algoritmada veri noktalarının ayrık eğriliği (kavisi), verinin temelinde olan
eğrinin eğrilik karakteristiğini açığa çıkarmak için bir dijital süzgeç kullanılarak
yumuşatılmıştır. Sonra düğümler otomatik bir biçimde eğriye yerleştirilmiştir. Pottmann ve
ark. (2002a, 2002b) karesel uzaklık minimizasyonuna (Square Distance Minimisation - SDM)
dayanarak bir B-spline eğri ile hedef eğrinin tahmini için iteratif bir optimizasyon şeması
önermişlerdir. SDM’nin temel avantajı hedef eğri üzerindeki veri noktalarının
parametrizasyonunu gerektirmemesidir. Bir başlangıç B-spline eğrisi ile başlayarak, bu şema
hedef eğriye doğru yakınsayan bir aktif B-spline eğrisi oluşturur ve veri noktası
parametrizasyonuna güvenen mevcut metodlardan daha iyi bir tahmini B-spline eğrisi üretir.
Bununla birlikte SDM, optimizasyonun kendisinin doğasından dolayı başlangıçtaki B-spline
eğrisine duyarlıdır. Bunu adreslemek için Yang ve ark. (2004) aktif spline eğrisinin kontrol
noktalarının sayılarını ve yerlerinin her ikisini otomatik ayarlamak için prosedürlerle SDM’yi
tümleştirmiştir. Bu, tek başına kullanılan SDM’den daha sağlam ve uygulanabilir bir metoda
sebep olmuştur. Park ve Lee (2005, 2007) egemen noktanın seçimine dayanan hata-sınırlı Bspline eğri tahmini için bir metot önermiştir. Metot, ilk olarak verilen noktalar içinden nokta
kümesinin tüm şeklini yöneten başlangıç egemen noktaları seçer. Sonra egemen noktaları
kullanarak bir düğüm vektörü hesaplar ve verilen tüm noktalara B-spline eğri uydurmayı
gerçekleştirir. Valenzuela ve Pasadas (2010) düğümlerin yerlerinin gerçek değerlerini ele
alarak kübik spline tahmini yapmışlardır. Problem kodlanırken düğümlerin konumu doğrudan
alınarak alfabe ( consist of an array of floating point numbers) oluşturulmuştur. Düğümlerin
bu şekilde seçimi ile problemin combinatorial optimization problem olmaktan çıktığı
savunulmuştur. Sonra Problem Benzetimli Tavlama (SE) ile çözülmüştür. Gao ve ark. (2009)
en kısa kübik spline enterpolasyonu problemi için parçacık sürü optimizasyonuna dayanan bir
metot önermişlerdir. Çalışmalarında en kısa kübik spline enterpolasyonu probleminde the
clamped spline ve kavissel yerleştirilmiş kübik spline üzerine araştırma yapmışlardır. Xiuyang
ve ark. (2011) B-spline eğri tahmininde düğümlerin yerlerini bulmak için başlangıç
değerlerini k-means algoritması ile iyileştirdiği Gaussian Mixture Model (GMM)
kullanmıştır.
Bu çalışmada ise benzer olarak, B-Spline eğrilerinin tahmininde Yapay Zeka tekniklerinden
birisi olan Genetik Algoritmaların kullanımı konusuna değinilmiştir. Orijinal genetik
algoritma kullanılması tercih edilmemiş, bunun yerine daha özel anlamda, özellikle çok
17.05.2014
Sayfa 3
Doç.Dr.Erkan ÜLKER, Selçuk Üniversitesi Mühendislik F, Bilgisayar Mühendisliği Bölümü
kriterli optimizasyon aşamasında kullanılan ve Genetik Algoritma türlerinden birisi olan
Pareto Zarflama-Temelli Seçim Algoritmasının kullanımı açıklanmıştır. Çalışmada, özellikle
B-Spline eğri tahmininde kullanılan çeşitli ters mühendislik yöntemleri ve ilgili algoritmanın
işlem adımları, uygun bir şekilde bir araya getirilerek probleme çözüm aranmıştır. Araştırma
çalışmalarının somutlaştırılması ve etkili bir biçimde sunumu adına bir uygulama ortamı
geliştirilmiş ve değerlendirilmiştir. Elde edilen sonuçlar, ele alınan algoritmanın, B-Spline
eğri tahmini aşamasında etkili bir yaklaşım ortaya koyduğunu göstermektedir.
İlerleyen bölümler şu şekilde organize edilmiştir: İkinci bölümde, B-Spline eğri tahmini
açıklanmış, eğri tahmini için izlenilen ters mühendislik yaklaşımı ortaya konulmuş ve Pareto
Zarflama-Temelli Seçim Algoritmasına değinilmiştir. Üçüncü bölümde, PESA kullanılarak
geliştirilmiş olan yazılım ortamının özellikleri, kullanım şekli ve yapılan deneysel
çalışmalarla problemin çözümü aşamasında PESA'nın nasıl bir performans sergilediği
açıklanmaktadır. Son bölümde ise çalışma kapsamında elde edilen deneysel sonuçlara
değinilmektedir.
2. B-SPLINE EĞRİ TAHMİNİ VE YAPAY ZEKÂNIN BU AMAÇLA KULLANIMI
Çalışmada öne sürülen çözüm yaklaşımını daha iyi anlamak için, problem çözümü
bünyesinde ele alınan ve izlenen işlemlere değinmek oldukça önemlidir. Buna göre, ilgili
çalışmanın konusunu oluşturan; “Pareto Zarflama-Temelli Seçim Algoritması ile B-Spline
eğri tahmini”, B-Spline eğri tahmininde kullanılan ters mühendislik yaklaşımlarının ve söz
konusu algoritmanın kullanımını içermektedir. Bu nedenle, ilgili yaklaşımlara sırasıyla
değinmek yerinde olacaktır.
2. 1. B-Spline Eğrisi Düğüm Tahmini
B-Spline eğri tahmini aşamasında, bu çalışmada işe koşulan ters mühendislik yöntemleri,
düğüm tahminine dayanmaktadır. Genel olarak izlenilen yöntem, eldeki noktalar üzerine
uygulanan matematiksel işlemlerin kullanıldığı ters mühendislik yöntemleri ile düğüm
noktaları verilerinin elde edilmesine dayanmaktadır. Problem çözümü için kullanılan B-spline
eğrisi düğüm tahmini işlem adımları aşağıdaki gibi olmaktadır [Ülker, 2007]:
1- İlk olarak, dışarıdan sunulan mevcut noktalar arasından (FM_u) bazıları (Qm) seçilir ve
bu noktalardan Centripetal düğümler hesaplanır. Burada m<M_u dur. Bu hesaplama
aşağıdaki eşitsizliklere göre gerçekleştirilir:
u, her bir Centripetal düğümü göstermek üzere,
u 0  0, u m  1
ui  ui 1 
Qi  Qi 1
m

j 0
(Burada
Qi  Qi 1 
17.05.2014
(1)
(2)
Q j  Q j 1
Qi  Qi 1
Öklit
xi  xi 1 2   yi  yi 1 2
uzaklığıdır,
ve
düzlemde
ile hesaplanmaktadır).
Sayfa 4
Doç.Dr.Erkan ÜLKER, Selçuk Üniversitesi Mühendislik F, Bilgisayar Mühendisliği Bölümü
2- İkinci aşamada, elde edilen Centripetal düğümlerden yararlanılarak, tahmini B-Spline
düğümleri hesaplanmaktadır.
u j  p _ esas 
1
p _ esas
j  p _ esas1

i j
ui
j  1,, m  p _ esas icin
(3)
Burada u i Centripetal düğümlerdir ve uj B-spline düğümleridir.
3- B-spline kontrol noktaları (P) hesaplanmalıdır. Matris işlemleri kullanılarak kontrol
noktalarına ulaşılabilir. Q=P×R eşitsizliği dikkate alınır. Bu amaçla, ifade edilen
matris düzeni üzerinden P matrisi elde edilmeye çalışılır. Bu yolda öncelikli olarak, R
matrisinin elde edilmesi gerekmektedir. İlgili matris, harmanlama fonksiyonlarının da
kullanımı sayesinde (N değerlerine göre) elde edilir.
4- R matrisinin elde edilmesi sonucunda, Q=P×R ifadesi üzerinde P matrisini yalnız
bırakacak şekilde matris işlemleri uygulanabilmektedir. Buna göre, R matrisinin tersi
(inversi) alındıktan sonra Q=P×R-1 matris işleminde yerine konularak, P matrisi elde
edilir.
5- P matrisinin elde edilmesiyle birlikte, tahmin edilen B-Spline eğrisinin üretimi
gerçekleştirilebilir.
S (u)  i 0 Pi N i , p (u)
n
(4)
6- B-spline eğri tahmin edildikten sonra, tahminin doğruluğu için değerlendirme
yapılması gerekmektedir. Bu amaçla, dışarıdan verilen nokta verileri ile tahmin edilen
Eğri noktalarından yararlanarak hata tespitinin yapılması gerekmektedir. Öklitsel
hatalar toplamı olarak adlandırılan bu yaklaşım aşağıdaki şekilde ifade edilmektedir:
Hata 
2
M _u
S
i 1
i
 Fi
(5)
Bu hesaplama ile elde edilen hata değeri, sıfır değerine ne kadar yakın olursa, noktalar
o kadar iyi tahmin edilmiş anlamına gelmektedir. Bu amaçla, ilgili durma kriterlerinin
(belli bir hata değeri ya da iterasyon) seçimine bağlı olarak, 1-6 arası işlem adımları
tekrar edilmelidir. Daha detaylı bilgi için okuyucular Ülker [xx]'e bakabilir.
2. 2. Pareto Zarflama-Temelli Seçim Algoritmasının Eğri Tahmininde Kullanımı
Daha önce de ifade edildiği üzere, izlenilen yaklaşım popüler Yapay Zekâ tekniklerinden
birisi olan Genetik Algoritmalara dayanmakta ve yine Genetik Algoritma türlerinden birisi
olan PESA kullanmaktadır. Buna göre, problemin çözümü genel anlamda “Genetik Algoritma
kullanılarak düğüm tahmini” yaklaşımından yola çıkmakta, ancak PESA algoritmasına
dayanmaktadır. Bu nedenle, düğüm tahmininde Genetik Algoritmanın kullanımıyla ilgili
olarak, bu çalışmadaki yaklaşımda da kullanılan ya da en azından çıkış noktasını oluşturan
bazı kabulleri ifade etmek yerinde olacaktır.
17.05.2014
Sayfa 5
Doç.Dr.Erkan ÜLKER, Selçuk Üniversitesi Mühendislik F, Bilgisayar Mühendisliği Bölümü
2. 2. 1. Genetik algoritma kabulleri
Genetik Algoritma temelli yaklaşımlarda, problemin çözümü aşamasında kullanılacak olan,
kromozom yapılarının tanımlanması gerekmektedir. Yaklaşım genel olarak ele alındığında,
tanımlanan popülasyon ve nesil bilgilerine göre problemin çözümü gerçekleştirilmektedir.
Burada önemli olan, B-Spline düğüm tahmininde kullanılan kromozomların nasıl
tanımlandığıdır. B-Spline düğüm tahmini işlem adımlarının ilkinden de anlaşılacağı üzere,
tahmin işlemleri aşamasında, mevcut nokta verilerinden rastgele seçimler gerçekleştirilmekte
ve çözüm adımlarına devam edilmektedir. Bu noktada, ikili düzende ifade edilen kromozom
yapıları rastgele oluşturulduktan sonra, istenilen veriler, ikilik düzende 1’e karşılık
gelenlerden seçilebilmektedir. İkilik düzen 0 biti o noktanın seçilmediği anlamını taşır.
Önemli olan diğer bir husus da, tanımlanan her bir kromozomun bit sayısının, eldeki toplam
nokta verilerinin sayısına eşit olmasıdır. İlgili yaklaşım Şekil 1’de ifade edilmektedir.
Şekil 1. B-Spline düğüm tahmininde kromozom tanımlaması.
Bu yaklaşım kapsamında değinilmesi gereken diğer önemli bir nokta da eğrinin ilk ve son
noktalardan geçmesi zorunluluğudur. Bu nedenle düğüm tahmini aşamasında “ilk” ve “son”
noktaların gen olarak tanımlı ve seçilmiş olması gereklidir. Buna göre, rastgele ikilik düzende
oluşturulan her bir kromozomun ilk ve son bitleri 1 olmak zorundadır. Bu gereklilik, rastgele
oluşturulmuş olan her bir kromozomun, 1…000…1 şeklinde bir ifade ile “VEYA” mantıksal
işlemine tabi tutulması ile sağlanmaktadır.
PESA'nın kullanımı aşamasındaki işlem adımlarını daha iyi anlamak için, Genetik Algoritma
tekniği ile izlenen, “B-Spline düğüm tahmini” işlem adımlarının gösterilmesi de önemlidir.
Buna göre Genetik Algoritma ile düğüm tahmini Şekil 2’deki akış şeması kapsamında
gerçekleştirilebilmektedir [Ülker, 2007].
17.05.2014
Sayfa 6
Doç.Dr.Erkan ÜLKER, Selçuk Üniversitesi Mühendislik F, Bilgisayar Mühendisliği Bölümü
Şekil 2. Genetik Algoritma ile B-Spline düğüm tahmini.
Çözümün iyiliğini gösteren ve her bir iterasyonda hesaplanan uygunluk fonksiyonu için
Akaike'nin Bilgi Kriteri tercih edilmiştir [Ülker, 2007]:
AIC1  N log e  S u   22n  k 
(6)
 S u 1   S ui   Fi 2
(7)
Burada F tahmin edilen eğri noktalarıdır, F mevcut veri noktalarının tamamıdır ve k eğrinin
order'ıdır. Tahmin edilen eğri noktaları da bilinen B-Spline eğri fonksiyonundan elde
edilmektedir;
n
S u    ci N qk u  Pi , u  u k 1 , u n1 
(8)
q 0

1 if u  u j , u j 1 ,
N 1j (u )  
0 aksi takdirde
N kj (u ) 
u uj
u j  k 1  u j
N kj 1 (u ) 
u j k  u
u j  k  u j 1
N kj11 (u )
(9)
Denklem (6) ve (7) ile elde edilen AIC değerine göre veya belirli bir nesil sınırına kadar,
belirtilen işlem adımları yerine getirilmektedir.
2. 2. 2. Pareto zarflama-temelli seçim algoritması
17.05.2014
Sayfa 7
Doç.Dr.Erkan ÜLKER, Selçuk Üniversitesi Mühendislik F, Bilgisayar Mühendisliği Bölümü
Pareto Zarflama-Temelli Seçim Algoritması (Pareto Envelope-Based Selection Algorithm –
PESA), Corne vd. tarafından öne sürülen bir genetik algoritma türüdür [Corne ve Ark, 2000].
Çok kriterli optimizasyon aşamasında kullanılan algoritmalar arasında yer alan PESA, seçim
ve çeşitliliğin korunması aşamasında bir hiper grid şemasının kullanımına dayanmaktadır.
PESA kapsamında izlenilen seçim yaklaşımı, popülasyonda çözümlerin bastırdığı diğer
çözümlerin derecelendirilmesine bağlı bir katsayı kullanmaktadır. Çeşitliliğin sağlanması
aşamasında ise yine bütün Genetik Algoritma türlerinde olduğu gibi çaprazlama ve mutasyon
gibi işlemlerden yararlanmaktadır [Sağ 2008, Konak 2006].
Popülasyon açısından incelendiğinde, PESA küçük bir dahili popülasyon ve genellikle bundan
daha geniş bir harici popülasyon kullanarak, ele alınan problemin çözümüne ulaşmaya
çalışmaktadır. Bu noktada harici popülasyon, gerçekten Pareto yüzeye o anki yakınsamayı
depolayan küme niteliğinde olmaktadır. Diğer yandan, dahili popülasyon ise, ilgili kümeye
girmek için mücadele veren yeni aday çözümlerden ibaret olmaktadır [Sağ, 2008].
Anlaşılacağı üzere, PESA kapsamında çaprazlama ve mutasyon katsayıları kullanılmaktadır.
Bunların dışında ayrıca, popülasyon boyutuyla ilgili olarak iki ve hiper grid kalabalıklık
stratejisi ile ilgili olarak da bir tane daha parametre, söz konusu işlem adımları kapsamında
kullanılmaktadır [Sağ, 2008].
Temel olarak PESA’nın işlem adımları aşağıdaki gibi olmaktadır [Sağ, 2008]:
1- Başlangıç popülasyonunun (dahili popülasyon: IP) tüm kromozomlarını üret ve
değerlendir. Diğer yandan, harici popülasyon: EP’yi boş küme olarak oluştur.
2- IP’nin bastırılmamış bireylerini EP’ye ekle.
3- Seçilen bir sonlandırma kriterine (uygunluk değeri, hata, nesil… vb.) ulaşılmışsa
çalışmayı durdur ve EP’deki kromozom kümesini sonuç olarak kabul et. Aksi
durumda ise, IP’nin geçerli içeriğini sil ve PI yeni aday çözümleri üretilinceye kadar
şu işlemleri yerine getir:
İlgili olasılık değeri ile EP’den iki ebeveyn seç, çaprazlamayla tek bir çocuk üret ve
buna mutasyon uygula. Yine olasılık değeri kapsamında bir ebeveyn daha seç ve bir
çocuk üretmek için buna mutasyon uygula.
4- 2. İşlem Adımı’na dön.
Bu çalışmada, B-Spline düğüm tahmininde, populasyon boyutu kadar rastgele kromozomlar
(toplam nokta sayısına göre) oluşturulmaktadır. Kullanılacak düğümlerin seçimi ve kullanımı,
Denklem (1)-(5) kullanılarak Şekil 1 deki akış izlenerek ters mühendislik hesaplamaları ile
yapılmaktadır. Sürekli olarak elde edilen hata değeri izlenmekte, ulaşılan nesil sayısı ya da
yine Eşitlik (6) ve (7)’den yararlanılarak elde uygunluk değeri kriterlerine bağlı olarak, en
uygun çözümü bulma adına gerekli süreç döngüsel tarzda yerine getirilmektedir.
Söz konusu bu yaklaşımın daha somut bir forma kavuşması ve yaklaşımın etkinliğinin
değerlendirmesi de çalışma kapsamında oldukça önemli bir konudur. Bu nedenle, PESA
yardımıyla B-Spline düğüm tahmininin gerçekleştirildiği bir uygulama ortamı geliştirilmiştir.
Sonraki bölümde bu uygulama ortamının özellik ve işlevleri açıklanmıştır.
17.05.2014
Sayfa 8
Doç.Dr.Erkan ÜLKER, Selçuk Üniversitesi Mühendislik F, Bilgisayar Mühendisliği Bölümü
3. PESA İLE B-SPLINE EĞRİ TAHMİNİNİN UYGULAMA ORTAMINDA
GERÇEKLEŞTİRİLMESİ
PESA ile B-Spline eğrisi düğüm tahmininin gerçekleştirmek amacıyla, C# programlama dili
yardımıyla, Visual Studio 2010 platformu üzerinde bir yazılım geliştirilmiştir. Geliştirilen
yazılım, verilen parametreler ve değerler ışığında, PESA yaklaşımını bazı almak suretiyle,
ilgili B-Spline eğrisinin tahminini gerçekleştirmektedir. Bu noktada öncelikli olarak,
geliştirilen uygulama ortamının kullanım özelliklerini incelemek, problem çözümü için
geliştirilen yazılımın incelenmesini sağlayacaktır.
3. 1. Yazılımın Temel Özellikleri
Geliştirilen yazılım, kolay ve hızlı bir kullanım tecrübesi sağlamak adına, uygun yapıda bir
arayüz üzerinde inşa edilmiştir. Yazılım ilk çalıştırıldığında, gerekli bütün ayarlama ve
işlemlerin sağlanabildiği “Giriş Arayüzü” ekrana gelmektedir. Giriş Arayüzü’nden bir ekran
görüntüsü Şekil 3 de sunulmuştur.
Şekil 3. Yazılım – Giriş Arayüzü.
Yazılımın genel kullanımı, sol, orta ve sağ kesimde yer alan alanlar üzerine dayalıdır. Sol
tarafta PESA algoritması ile ilgili parametrelerin yazılımının çalışma sürecine dayalı görsel
işlevlerin ayarlanabildiği bazı kontroller ve gerek tahmin sürecinin başlatılması, gerekse
tahmin sonrası elde edilen görsel sonuçların görüntülenmesi gibi birtakım temel görevleri
yerine getiren düğmeler bulunmaktadır. Diğer yandan orta alanda, tahmin edilen “en iyi” BSpline eğrisinin ve istendiği takdirde de ulaşılması gereken eğrinin görüntülendiği alan
bulunmaktadır. Son olarak sağ tarafta ise, PESA’nın çalışması esnasında, tahmin edilen
değerlerin, ulaşılan hata ve uygunluk değerlerinin listelendiği ve dosyaya yazdırılabildiği,
ilgili kontroller yer almaktadır. Söz konusu alanlar bünyesinde yer alan “ortak nitelikli”
kontroller, GroupBox kontrolleri yardımıyla bir araya toplanmıştır.
İlgili kontrollerin birçoğu, yazılımın gerek görsel, gerekse işlevsel yönleri üzerine dayalı
olduğundan, makale kapsamında daha detaylı bir şekilde incelemeye alınmayacaktır. Bunun
17.05.2014
Sayfa 9
Doç.Dr.Erkan ÜLKER, Selçuk Üniversitesi Mühendislik F, Bilgisayar Mühendisliği Bölümü
yerine, çalışmanın esas konusunu oluşturan PESA algoritmasının, bu yazılım üzerinde nasıl
çalıştırıldığı açıklanacak ve gerektiği taktirde, bu süreç dahilinde kullanılan spesifik
kontrollerin işlev ve özelliklerine değinilmiş olacaktır.
3. 2. Yazılımın Kullanımı: B-Spline Eğrisi Düğüm Tahmini
B-Spline eğrisi düğüm tahmininde bulunmak için, Giriş Arayüzü’nde sunulan ilgili alanlarda,
istenilen PESA parametreleri başlangıçta belirtilmektedir. PESA parametreleri şunlardır;
“Popülasyon Sayısı”, “Nesil Sayısı”, “Çaprazlama Oranı” ve “Mutasyon Oranı”. İlgili
değerler, yazılımın sol üst kısmında yer alan, “PESA (Algoritma) Seçenekleri” başlıklı alan
altından ayarlanmaktadır. Varsayılan değerler, Popülasyon Sayısı=10, Nesil Sayısı=50,
Çaprazlama Oranı=(%)20 ve Mutasyon Oranı=(%)30 şeklindedir. Söz konusu parametreler
ayarlandıktan sonra, tahmin süreci başlatılmaktadır.
PESA algoritması üzerine geliştirilen yazılım, B-Spline eğrisi düğüm tahmininde kullanılacak
olan gerekli verileri bir .TXT dosyasından okumaktadır. Bu dosya içerisinde ilk iki satır
sırasıyla “eğri derecesini” ve “toplam nokta sayısı” değerlerini belirtmekte, geriye kalan
satırlar ise ilgili noktaların X ve Y eksenleri üzerindeki değerlerini belirtmektedir. İlgili
dosyadan bir ekran görüntüsü Şekil 4’de sunulmaktadır.
Şekil 4. Nokta verilerinin tutulduğu .TXT dosyasının içeriği.
Program çalıştırıldığında, yazılım bu dosyanın içeriğini okuyup, gerekli verileri almakta ve
daha önce açıklanan yaklaşımlar kapsamında tahmin sürecine başlamaktadır. Tahmin
sürecinin işleyişi, sol taraftaki alanda yer alan ve sırasıyla “Nesil” ve “Pop.” Etiketleri altında
sunulan, genel nesil değerlendirme sürecini ve her nesil altında popülasyon değerlendirme
sürecini gösteren ProgressBar kontrolleri yardımıyla izlenebilmektedir. Ayrıca bu süre
zarfında, nesiller ve ilgili kromozomlar bağlamında tahmin edilen eğrinin gösterimi, eş
zamanlı olarak orta alanda sunulmaktadır. Süreç sırasında görüntülenen bir eğri görüntüsü
Şekil 5 de sunulmaktadır.
17.05.2014
Sayfa 10
Doç.Dr.Erkan ÜLKER, Selçuk Üniversitesi Mühendislik F, Bilgisayar Mühendisliği Bölümü
Şekil 5. PESA süreci esnasında tahmin edilen bir eğri çizimi.
Süreç sona erdiğinde, orta alanda en az hata değeri ile elde edilmiş olan eğri çizimi
görüntülenmekte, sağ alanda yer alan kontroller altında, her nesil ve popülasyon altında
tahmin edilen koordinat değerleri, hata değerleri, uygunluk değerleri listelenmekte ve genel
hata ve uygunluk değerlerinin değişimi, iki farklı grafik altında otomatik olarak
gösterilmektedir. Program hem gerçek hem de en iyi tahmin edilen eğrileri aynı anda
görüntüleyebilme esnekliğine de sahiptir.
Yazılımın etkinliğini görmek için, örnek olarak varsayılan değerlerle PESA çalıştırılmıştır.
Süreç sonrası elde edilen genel görünüm aşağıdaki gibidir:
Şekil 6. PESA süreci sonunda genel görünüm.
Sonuçlar incelendiğinde; görüntülenen eğri, 1938,83808 değerinde bir Öklitsel toplam hata
(m=108 düğüme göre) ile elde edilmiştir. İlgili değer, 41. nesil, 4. kromozom için elde
17.05.2014
Sayfa 11
Doç.Dr.Erkan ÜLKER, Selçuk Üniversitesi Mühendislik F, Bilgisayar Mühendisliği Bölümü
edilmiştir. Söz konusu değerler ışığında elde edilmiş olan Hata Değişim Grafiği ve Uygunluk
Değişim Grafiği, sırasıyla Şekil 7 ve Şekil 8 de gösterilmektedir.
Şekil 7. PESA süreci sonunda “Hata Değişim Grafiği”.
Şekil 8. PESA süreci sonunda “Uygunluk Değişim Grafiği”.
Yazılım marifetiyle süreçle ilgili daha detaylı bilgilerde TEXT dosyaya saklanmaktadır. Bu
bilgiler arasında, her eğri tahmininde elde edilen X ve Y koordinatları, her nesil ve kromozom
için elde edilen hata değerleri ve yine her nesil ve kromozom için elde edilen uygunluk
değerleri mevcuttur. Ayrıca detay veriler dosyaya aktarılabilmektedir. Şekil 9, birinci deneyde
elde edilen en iyi sonuç olan, 41. nesil 4. kromozom için, kromozomdaki ilk 32 nokta
koordinat değerlerini göstermektedir.
17.05.2014
Sayfa 12
Doç.Dr.Erkan ÜLKER, Selçuk Üniversitesi Mühendislik F, Bilgisayar Mühendisliği Bölümü
Şekil 9. Örnek uygulama kapsamında, 41. nesil 4. kromozom için elde edilen ilk 32 noktanın
koordinat değerlerine ilişkin .TXT dosyası içeriği.
4. SONUÇLAR
Bu çalışmada, B-Spline eğri tahmini için Genetik Algoritma türlerinden birisi olan Pareto
Zarflama-Temelli Seçim Algoritmasının (Pareto Envelope-Based Selection Algorithm –
PESA) kullanımı açıklanmıştır. Söz konusu eğrinin düğüm tahmini aşamasında, ifade edilen
ters mühendislik yaklaşımları ve PESA işlem adımları bir araya getirilmiştir. Eğri tahmini
işleminde Genetik Algoritmanın problem temsil öğesi olan kromozomlar, tahmin noktasında
kullanılacak rastgele noktaların belirtilmesi ve değerlendirme sokulması amacıyla
oluşturulmuş ve işe koşulmuştur. Makalede, çok-modlu optimizasyonu problemlerinde
kullanılan PESA nın eğri tahmini işleminde de değerlendirilmesi için kullanımı sağlanmıştır.
Genel olarak, öne sürülen yöntemin etkinliğini göstermek adına, sunulan veri noktalarından
B-Spline eğrisi düğüm tahminini gerçekleştiren bir uygulama ortamı geliştirilmiştir. Elde
edilen PESA süreç değerleri göstermektedir ki; C# programlama dili temelli bir yazılım
olarak sunulan bu uygulama ortamı, verilen nokta bilgilerine bağlı olarak, uygun B-Spline
eğrisinin noktalarının ve dolayısıyla çiziminin, etkili bir biçimde elde edilmesini
sağlamaktadır.
Referanslar
Wang, H., "A Survey on Spline Theory and Applications", Report, 67 pages, State University of New
York, 2006.
Plemenos, D., “Using Artificial Intelligence Techniques in Computer Graphics”, Graphic'con 2000,
Moscou, pp 29-35, 2000.
Sarfraz, M., “Representing Shapes by Fitting Data using an Evolutionary Approach”, International
Journal of Computer-Aided Design & Applications, Vol. 1(1-4), 2004, pp 179-186, 2004.
Iglesias, A., Gálvez, A., “Curve Fitting with RBS Functional Networks”, Proc. of the Third 2008
International Conference on Convergence and Hybrid Information Technology (ICCIT), pp. 299-306,
2008.
Habib, Z., Sarfraz, M., Sakai, M., “Rational Cubic Spline Interpolation with Shape Control”,
Computers & Graphics, Vol 29, pp. 594-605, 2005.
17.05.2014
Sayfa 13
Doç.Dr.Erkan ÜLKER, Selçuk Üniversitesi Mühendislik F, Bilgisayar Mühendisliği Bölümü
Masood, A., Sarfraz, M., Haq, S.A., "Curve approximation with quadratic B-splines", Proc. of the
Ninth International Conference on Information Visualisation (IV'05), pp. xx-xx, 2005.
Yoshimoto, F., Moriyama, M., Harada, T., “Automatic knot placement by a genetic algorithm for data
fitting with a spline”, Proceedings of the International Conference on Shape Modeling and
Applications, p. 162-172, 1999.
Mamic, G., Bennamoun, M., "Automatic Bayesian Knot Placement for Spline Fitting", IEEE, pp. 169172, 2001.
Kumar, G.S., Kalra, P.K., Dhande, S.G., (2003). Parameter Optimization for B-spline Curve Fitting
using Genetic Algorithms, The Congress on Evolutionary Computation CEC’03, Vol. 3, pp. 18711878, 2003.
Renner, G., Ekart, A., “Genetic Algorithms in Computer-Aided Design”, Computer-Aided Design,
Vol. 35(8), pp. 709-726, 2003.
Li, W., Xu, S., Zhao, G., Goh, L.P., “Adaptive knot placement in B-spline curve approximation”,
Computer-Aided Design, Vol. 37, pp. 791–797, 2005.
Pottman, H., Leopoldseder, S., Hofer, M., “Approximation with Active B-spline curves and surfaces”,
Proc. of 10th Pasific Conf. On Computer Graphics and Applications (PG’02), pp. 8-25, 2002.
Pottmann, H., Hofer, M., “Geometry of the squared distance function to curves and surfaces”,
Technical Report 90, Institute of Geometry, Vienna University of Technology, 2002.
Yang, H., Wang, W., Sun, J., “Control point adjustment for B-spline curve approximation”,
Computer-Aided Design, Volume 36, pp. 639-652, 2004.
Park, H., Lee, J.H., "Error-Bounded B-Spline Curve Approximation Based on Dominant Point
Selection," cgiv, pp. 437-446, International Conference on Computer Graphics, Imaging and
Visualization (CGIV'05), 2005.
Park, H., Lee, J.H., "B-spline curve fitting based on adaptive curve refinement using dominant points",
Computer-Aided Design,39(6), pp.439–51, 2007.
Valenzuela, O., Pasadas, M., " Using Simulated Annealing for knot placement for cubic spline
approximation", Mathematical Models for Engineering Science, pp. 148-154, 2010.
Gao, S., Zhang, Z., Cao, C., "Particle Swarm Algorithm for the Shortest Cubic spline interpolation",
Proceedings of the 2009 International Symposium on Information Processing (ISIP), pp. 129-131,
Huangshan, P. R. China, 2009.
Xiuyang, Z., Caiming, Z., Bo, Y., Pingping, L., "Adaptive knot placement using a GMM-based
continuous optimization algorithm in B-spline curve approximation", Computer-Aided Design, Vol.
43, pp. 598–604, 2011.
Ülker, E., 2007, “Yapay Zeka Teknikleri Kullanılarak Yüzey Modelleme”, PhD Thesis, Selcuk
University, Electrical-Electronic Engineering Department, Konya, Turkey.
Corne, D.W., Knowles, J.D. and Oates, M.J., 2000, “The Pareto Envelope-based Selection Algorithm
for Multiobjective Optimization” Proceedings of the 6th International Conference on Parallel Problem
Solving from Nature, Paris, France, Sept. 18–20.
Sağ, T., 2008, “Çok Kriterli Optimizasyon için Genetik Algoritma Yaklaşımları” Master Thesis,
Selçuk University, Computer Engineering Department, Konya, Turkey.
Konak, A., Coit, D.W. and Smith, A.E., 2006, “Multi-objective optimization using genetic algorithms:
A tutorial” Reliability Engineering and System Safety, 91, pp. 992–1007.
Makalenin Deneysel kısmında başka bir yöntemle karşılaştırması eksik kalmış ve bariz belli
oluyor. Onu düzeltelim!!
17.05.2014
Sayfa 14