Genetik Algoritma ile Elde Edilen Uyumlu Renklerin

advertisement
Genetik Algoritma ile Elde Edilen Uyumlu Renklerin Web
Şablonları Üzerinde Gerçeklenmesi
Şerif Okumuş Melih Orhan
Bilgisayar Mühendisliği Bölümü, Süleyman Demirel Üniversitesi, Isparta
{serifokumus,melihorhan}@yahoo.com.tr
Abstract - Bu tez çalışmasında, yapay zekânın güçlü
tekniklerinden olan genetik algoritma yardımıyla, web
sayfalarındaki renk uyumluluk probleminin çözümü
üzerinde durulmuştur. W3C standartlarında elde edilen
uyumlu renkler, web tabanlı yazılımlar yardımıyla web
şablonları (template) üzerinde test edilmiştir. Problemin
farklı boyutları için, çözüm başarısı değişik parametre
değerleri kullanılarak ölçülmüştür. Problemin çıkan
sonuçlarının daha iyi görülebilmesini sağlayacak şekilde
web yardımıyla görselleştirme aracı geliştirilmiştir.
Geliştirilen bu araç yardımıyla web sayfalarında değişik
genetik algoritma parametreleri kullanılarak uyumlu
renkler elde edilebilmekte ve sitilleri önceden
belirlenebilen web şablonları üzerinde uyumlu renkler
test edilebilmektedir.
Anahtar Kelimeler: - Renk; renk uyumluluk; genetik
algoritma; web; web şablonları
I.
GİRİŞ
Web sayfa tasarımı, firmanın kurumsal kimliğinin en
güzel bir biçimde ulusal ve uluslararası ağ ortamında
tanıtımı ve dışa açılan en önemli pencerelerinden bir
tanesidir. Web tasarım, işitsel ve görsel öğeler içeren web
sayfalarıdır. Web sayfasının tasarımında en önemli
unsurlarından biri renk kullanımıdır. Renk, nerdeyse bir
sitenin başarısını tanımlamada içerik ve gezinti kadar
önemlidir ve tasarımın etkili bir bileşenidir. Renk, siteye
sadece görsel bir çekicilik katmaz, aynı zamanda hedef
kitleye gönderdiği mesajdan ötürü de önemlidir.
Yapay zekâ günümüzde çoğu yazılımda önemli bir
işlevi yerine getirmektedir. En küçük yazılımda bile çok
basitte olsa bir yapay zekâ tekniği kullanılmaktadır. Bu
tekniklerin bazıları yıllardır var olan teknikler olmasına
rağmen bazıları da yeni sayılabilir. Bu tezin kapsamında
web sayfalarında önemli bir problem olan renk
uyumsuzluğu genetik algoritma yardımıyla çözülmektedir.
Farklı parametre ve teknikler yardımıyla çözümlerin nasıl
farklılaştığı incelenmektedir. Üretilen çözümler web 2.0
yardımıyla HTML şablon üzerinde W3C standartları ile test
edilmektedir. Problem olarak web sayfaları için arka plan
ve yazı rengi arasında uyumsuzluk ele alınmaktadır.
Bu problemin çözümünde interaktif optimizasyon
teknikleri kullanılması amaçlandı. Bu nedenle çalışmada
yazı rengi ile arka plan renginin seçilmesi genetik algoritma
kullanılanılarak aşıldı.
Genetik algoritmalar (GA), karmaşık düzenli
problemlerin
çözümünü
gerçekleştirmek
amacıyla,
kromozomların yeni diziler üretme esasını temel alan,
sezgisel bir araştırma yöntemidir [1]. Genetik algoritmalar
John Holland [2] tarafından 1975 yılında icat edilmiş ve
öğrencileri ve iş arkadaşları tarafından geliştirilmiştir.
Algoritma popülasyon (toplum) adı verilen ve
kromozomlarla temsil edilen bir çözüm kümesi ile
başlamaktadır. Bir toplumdaki çözümler yeni toplumların
üretilmesinde kullanılmaktadır. Bu işlem, yeni toplumun
eskisinden daha iyi olacağı umuduyla yapılmaktadır. Yeni
çözümler (yavru) üretmek için alınan çözümler
uygunluklarına (fitness) göre seçilmektedir. Daha uygun
olan tekrar üretim için daha fazla şansa sahiptir. Tablo 1 de
genetik algoritmanın çalışma adımları gösterilmiştir.
Adım
1
2
3
4
5
6
7
8
Yapılan İşlem
Gösterim (kodlama) yönetiminin belirlenmesi
Başlangıç toplumun (ilk nesil) oluşturulması
Başlangıç toplumundaki her bireyin performansının
amaç fonksiyonuna göre hesaplanması
Yeni
neslin
oluşturulmasında
kullanılacak
bireylerin seçilmesi
Seçilmiş bireylere genetik işlemlerin uygulanarak
yeni neslin elde edilmesi
Yeni
neslin
bireylerinin
performanslarının
uygunluk fonksiyonuna göre hesaplanması
Bitiş koşulu sağlanmamışsa yeni nesli tekrar 3.
aşamaya gönderilmesi
Bitiş koşulu sağlanmışsa en iyi bireyin sonuç
olarak dönülmesi
Tablo 1: Genetik algoritmanın çalışma prensibi
II.
MATERYAL
A. Sistem tanımı
Bu sistemde genetik algoritmaların gerçekleştirildiği
bir genetik hesaplama birimi, veri tabanı birimi ve grafik
kullanıcı ara yüzünün gerçekleştirildiği ara yüz
biriminden oluşmaktadır. Her birimler sadece ilgili
görevlerini gerçekleştirmektedir. Sistemin ana mimari
yapısı Resim 1 de incelenebilir. Mimariden de
anlaşılacağı
gibi
sistem
birbiriyle
haberleşen,
sorumlulukları dağıtılmış birimlerden oluşmaktadır.
Genetik Hesaplama
Birimi
2)) + (maksimum (Mavi renk 1, Mavi renk 2) -minimum
(Mavi renk 1, Mavi renk 2))
(2)
Veri tabanı birimi
Kullandığımız diğer bir kriterde renklerin karşıtlık
oranı denilen contrast ratiodur. The W3C’s [4] WCAG
[5] contrast rationun formülü aşağıdaki gibidir.
Ara yüz birimi
Resim 1: MVC sistem modeli
(3)
Burada L nispi lüminans değeridir. [3].
B. Teknoloji seçimi
Yazılım,
Java
tabanlı
web
uygulamalarını
kolaylaştırmak için MVC yapısına uygun olarak
geliştirilmiş JSF 2.0 web teknolojisiyle gerçekleştirilmiştir.
Kullanıcılar sadece Java 1.6 veya daha üzeri bir jdk
kullanarak web server üzerinde çalıştırabilirler. Grafik ara
yüzü Ajax üzerinde inşa edilmiş Primefaces 2.1 ile
oluşturulmuştur. Veri tabanı olarak MySQL kullanılmıştır.
Brightness Differences
Color Differences
Contrast Ratio
Maks değer
255
765
21
Min değer
0
0
1
Tablo 2: Renk niteliklerinin maks ve min değerleri
İki renk uyumlu diyebilmemiz için ;
III.
METHOT
1.
2.
3.
A. Renk teorisi
Renk teorisi renklerin karışımında uygulanılan
prensipleri içerir. Bu teoriye göre ikili birbiriyle uyumlumu
renkler renk çemberinde karşılıklı, üçlü uyumlu renkler
üçgen, dörtlü renkler ise dikdörtgen şeklinde karşılıklı
bulunur.
İngiliz fizikçi Isaac Newton güneş ışığını elmas bir
prizmadan geçirerek, renkleri ayırmayı başarmıştır
(Newton, 1670). Bir odayı kararttıktan sonra güneş ışığının
ince bir delikten odaya girmesini sağlamış, bu ışığın önüne
bir prizma koyarak parçalanış halini, tıpkı gökkuşağında
olduğu gibi yedi rengi yukarıdan aşağıya doğru bir perdeye
aksettirmeyi sağlamıştır. Güneş ışığını meydana getiren
yedi rengin (renk tayfının) görkemi, gizemi bugün üzerinde
birçok incelemeler yapılan son derece olumlu sonuçlar
alınan çalışmaları ve araştırmaları beraberinde getirmiş,
Renk Bilim’ini bir bilim dalı olarak ortaya koymuştur.
Günümüzde tanımlanan birçok renk modeli mevcuttur.
Bunlardan en çok bilinenler RGB ve CMYK tır. RGB
bilgisayar için CMYK ise baskı renkleri için uygun bir
modeldir. RGB kırmızı, yeşil ve mavi renklerin uygun
oranlarda karışımı esasına dayalıdır.
Color brightness (Renk Parlaklığı,)
formülle değeri hesaplanmaktadır:
((R X 299) + (G X 587) + (B X 114)) / 1000
aşağıdaki
(1)
Color difference (Renk Farkı) aşağıdaki formülle
değeri hesaplanmaktadır:
(maksimum (Kırmızı renk 1, Kırmızı renk 2) - minimum
(Kırmızı renk 1, Kırmızı renk 2)) + (maksimum (Yeşil
renk 1, Yeşil renk 2) - minimum (Yeşil renk 1, Yeşil renk
Brightness Differences>125
Color Differences>500
Contrast Ratio>4.5
Bu şartları sağladığı takdirde bu renkler kendi arasında
uyumludur.
B. Genetik algoritmanın uygulanması
Bireyler, Kullanıcının girebildiği n sayıda bireyden
oluşan bir toplum kullanılmaktadır. Her birey aslında bir
web şablonu temsil etmektedir. Web şablonları için
oluşturulmuş rasgele renkler ise genleri temsil etmektedir.
Kromozomları kodlamak için değer kodlaması
kullanılmaktadır.(Resim 2)Kromozomun genleri olarak
her rengin RGB kodları tutulmaktadır.
Başlangıç popülasyonu, Bu sistemde başlangıç
popülasyonu rastgele üretildi. Başlangıç popülasyonu
problemin kısıtlarını ihlal etmeyecek bir biçimde rastgele
olarak üretilebilir veya sezgisel bir şekilde belirlenebilir
Her ne kadar sezgisel belirlenen ilk bireyler, genetik
algoritmaların
biraz
daha
hızlı
yakınsamasını
sağlayabilmişse de,
çok çeşitli problemlerde erken
yakınsamaya yol açabileceği görülmüştür.
Birey seçimi, Bir çok birey seçimi teknikleri vardır.
Bu projede rulet tekerleği seçimi kullanılmıştır. Holland [2]
tarafından kullanılan rulet tekerleği (rulet-wheel) yöntemi
olarak adlandırılan ilk seçim yöntemi adayların olasılık
dağılımına göre seçilmesine dayanıyordu. Buna göre
herhangi bir adayın seçilme şansı, onun bütün popülasyon
içindeki performansına göre rasgele belirlenmektedir.
Böylelikle performansı yüksek olan adayların şansı daha
yüksek olmaktadır. Ayrıca elitisimde elde edilen iyi
bireylerin gelecek nesilde bozulmaması için uygulandı.
Resim 2: Kromozom yapısı(Değer kodlama)
C. Fitness fonksiyonu
Birey sayısı En iyi maliyet En kötü maliyet
10
244,24
157,88
50
281,01
155,52
100
294,96
147,94
200
291,6
143,67
Bireylerin ne kadar başarılı olduğunu bulmamız
uygunluklarını bulmamızla mümkündür. Uygunluk formülü
de bireylerin toplum içerisindeki uzaklık sıralamasındaki
yeridir. Bu nedenle her bireyin uzaklığının hesaplanması
gerekmektedir. Bu hesaplama aşağıdaki formüle göre
gerçekleştirilmektedir:
Tablo 3: Birey sayısının etkisi
(4)
n: Renk sayısı. Her şablon üzerinde arka plan ve yazı
rengi ile 8 renk bulunmaktadır.
k(j): İki renk arasındaki parlaklık değeridir.
Resim 3: Birey sayısının etkisi
l(j): İki renk arasındaki renk fark değeridir.
m: m eşik değeridir. Bu değer %60 olarak verilmiştir.
IV.
DENEYSEL SONUÇLAR
Genetik algoritmanın başarısını ölçmek ve en uygun
genetik algoritma parametreleri ve kriterleri için yazılımı
farklı seçimler için ürettiği maliyet miktarı denendi. Bu
denemeler istatiksel doğruluğu bir nebze de olsa elde
edebilmek için 10 kere aynı değerlerle çalıştırmak ve bu
değerlerin aritmetik ortalamasını almak şeklinde
gerçekleştirildi. Bu denemeler tarafımızdan üç başlığa
ayrıldı.
A.
Birey ve nesil sayısının etkisi
Bu bölümdeki amaç birey
sayısının değişiminin genetik
oluşturduğu farklılığı bulmak ve en
sayılarına ulaşabilmektir. Birey
hesaplamak için aşağıdaki kriterler
sayısı değiştirildi:
sayısının ve nesil
algoritma üzerinde
uygun birey ve nesil
sayısının etkisini
sabit tutularak birey
Nesil sayısının etkisinin hesaplamak için de
yukarıdaki kriterlerden farklı olarak birey sayısı 20’ye
sabitlendi.
Tablo 3 incelendiği zaman nesil ilerledikçe maliyet
değeri değişmektedir. Nesil sayısındaki artış, maliyet
değerini oldukça fazla etkilemiştir. En iyi sonuç, nesil
sayısı 500 olduğunda alınmıştır.
Nesil
5
25
50
100
150
500
2000
En iyi maliyet En kötü maliyet
174,34
75,51
195,5
88,09
228,04
112,18
262,06
143,07
268,7
158,42
275,41
159,32
271,88
155,55
Tablo 4: Nesil sayısının etkisi



Tablo 2 yardımıyla birey sayısı artışının web
şablonlardaki renk uyumluluk kalitesini arttırdığını ancak
belli bir sayıdan sonra süredeki artışın göz önüne alınması
gerektiği ortaya çıkmaktadır. Bu nedenle birey sayısının
nesil sayısına da bağlı olmak şartıyla uygun bir değer
seçilmesi genetik algoritmanın verimini arttıracaktır.
Yukarıda belirtilen kriterler için birey sayısının uygun
değeri 100’dür.
Resim 4: Nesil sayısının etkisi
B.
Çaprazlama olasılığının etkisi
Olasılıkları hesaplamak için hesaplanan olasılık
değiştirilerek diğer olasılık sabit tutulmuştur. Diğer
kriterler için aşağıdaki sabit değerler kullanılmıştır:


Tablo 4 yardımıyla çaprazlama olasılığının artışı
ile iyi sonuçlar döndürdüğü gözlenmiştir. Bu gözlem
sonucunda süredeki değişimi de göz önüne alarak en iyi
olasılık değerinin 0,5’ten büyük değerler olduğu ortaya
çıkmıştır.
Resim 6: Mutasyon olasılığının etkisi
Çaprazlama olasılığı En iyi maliyet En kötü maliyet
0,1
174,34
75,51
0,3
195,5
88,09
0,5
270,62
158,86
0,7
275,41
159,32
0,9
286,08
159,38
Tablo 5: Çaprazlama olasılığının etkisi
Resim 7: Swing ilk populasyon test ekranı
Resim 5: Çaprazlama olasılığının etkisi
C.
Mutasyon olasılığının etkisi
Tablo 5 yardımıyla mutasyon olasılığının artışının
olumlu etkilemediği gözlenmiştir. Bu gözlem sonucunda
en iyi olasılık değerinin 0,01 olduğu ortaya çıkmıştır.
Mutasyon olasılığı En iyi maliyet En kötü maliyet
0,01
275,41
159,32
0,03
269,34
152,34
0,1
262,42
134,6
0,3
243,53
139,54
Tablo 6: Mutasyon olasılığının etkisi
Resim 8: Genetik algoritma giriş ve çıkış ekranı
GA sonucu oluşan en yüksek maliyet 400 en düşük 0
fakat 400 çıkması matematiksel doğru olmasına rağmen
bizim istemediğimiz bir durumdur.Renkler hep siyah ve
beyaz renklerden oluşmaktadır bu durumda.Bizim için en
maliyetleri kabul ettiğimiz 225 ile 325 arasıdır.0-225
arasını kötü 325-400 arasını istenmeyen durum olarak
belirledik.Ayrıca tüm test sonuçlarında istenmeyen durum
örneği görülmedi.Resim 9(a) üretilen iyi renklere ait
şablonlar resim 9(b) de ise kötü diye nitelendirdiğimiz
sonuçlar mevcuttur.Ayrıca tüm populasyonları Resim 11
görüldüğü şekilde incelenebilir ve önizileyip kaydedilelir.
(a)
Resim 11: Wizard başlangıcı;Style seçimi
(b)
Resim 10: Tüm populasyonun maliyet ve renk çiftleri
V.
SONUÇ
Bu çalışmada, web sayfalarındaki renk uyumsuzluk
probleminin GA kullanılarak giderebileceği gösterilmiştir.
Bunun için Java mimarisi üzerine inşa edilmiş web
uygulamaları geliştirmek için kullanılan JSF teknolojisi
ile etkileşimli bir program geliştirilmiştir. Ayrıca yeni bir
fitness metodu üzerinde genetik algoritma uygulandı.
Kullanıcılar gerekli verileri web üzerinden interaktif
olarak girebilmektedir. Uygun web şablon elde
edildiğinde şablon bilgilerini veri tabanına kaydedip
saklayabilmektedir.
VI.
Resim 9: En iyi templateler (a) ve en kötü templeteler(b)
REFERANSLAR
[1] Lee, C.Y., Kim, S.J.. Parallel genetic algorithms for
the earliness-tardiness job scheduling problem with
general penalty weights. Computer & Industrial
Enginnering, 28(2), 231-243, 1995
[2] J. H. Holland, Adaptation in natural and
artificial
systems, Ann Arbor, MI: University of Michigan
Press, 1975.
[3] L. Troiano, C. Birtolo, and G. Cirillo, “Interactive
Genetic Algorithm for choosing suitable colors in User
Interface”
[4]
Web content accessibility guidelines 2.0. Technical
Report 11, W3C, December 2007.
[5]
Web Content Accessibility guidelines (WCAG)
2.0 W3C Recommendation 11 December 2008
Download