genetik algoritma kullanılarak maliyet tabanlı bilgisayar

advertisement
5. Uluslararası İleri Teknolojiler Sempozyumu (IATS’09), 13-15 Mayıs 2009, Karabük, Türkiye
GENETİK ALGORİTMA KULLANILARAK MALİYET TABANLI BİLGİSAYAR
KONGİFÜRASYONU BELİRLEME
DETERMINING COST BASED PC CONFIGURATION USING GENETIC
ALGORITHM
a
Mehmet GÖK a ve Cevdet GÖLOĞLU b,*
Karabük Üniversitesi, Fen Bilimleri Enstitüsü, Karabük, Türkiye, E-posta: mgok@karabuk.edu.tr
b, *
Karabük Üniversitesi, Tasarım ve Konstrüksiyon Anabilim Dalı, 78050, Karabük, Türkiye
E-posta: cgologlu@karabuk.edu.tr
Özet
Günümüzde kişisel bilgisayar konfigürasyonları genel
olarak donanım tabanlı olarak yapılmaktadır. Örneğin
işlemci, anakart vb. bileşenler belirlenmekte ve sonrasında
maliyet hesabı yapılmaktadır. Ancak bu durum müşterileri
birçok
alternatiften
uzak
tutmakta
ve
zengin
konfigürasyonlar elde edilemeyebilmektedir. Ayrıca
donanım tabanlı konfigürasyon oluşturma işlemi donanım
alternatifleri arttıkça güçleşecek ve uzun zaman alacaktır.
Bu çalışmada Genetik Algoritma (GA) kullanılarak maliyeti
verilmiş olan bir bilgisayar konfigürasyonunun farklı
alternatiflerle kısa zamanda elde edilmesi üzerinde
durulmuştur. Bu amaçla GENOEM adında bir bilgisayar
yazılımı geliştirilmiştir.
Anahtar kelimeler: Genetik Algoritma (GA), Kişisel
bilgisayar konfigürasyonu, Eniyilenim.
Abstract
Today personal computer configurations are generally
constituted based on hardware components. For example
processor, motherboard, etc. are selected and then cost of
this configuration is calculated. But in this case customers
cannot see many other alternatives and rich configurations
cannot be formed. In addition, it would be hard to make
component based configuration when there many
component alternatives and would take too much time. In
this paper, obtaining a personal computer configuration at
a desired cost in a short time using Genetic Algorithm (GA)
is considered. Computer software called GENOEM has
been developed for this purpose.
Keywords: Genetic Algorithm (GA), Personal computer
configuration, Optimization.
1. Giriş
Günümüzde kişisel bilgisayar konfigürasyonları genel
olarak donanım tabanlı olarak yapılmaktadır. Örneğin
işlemci, anakart vb. bileşenler belirlenmekte ve sonrasında
maliyet hesabı yapılmaktadır. Ancak bu durum müşterileri
birçok
alternatiften
uzak
tutmakta
ve
zengin
konfigürasyonlar elde edilemeyebilmektedir. Ayrıca
donanım tabanlı konfigürasyon oluşturma işlemi donanım
alternatifi arttıkça güçleşecek ve uzun zaman alacaktır.
Bazı
bilgisayar
firmaları
geliştirdikleri
bilgisayar
konfigürasyonu toplama sihirbazları ile bu olumsuzluğun
önüne geçmişlerdir. Ancak bu tür uygulamalar da
© IATS’09, Karabük Üniversitesi, Karabük, Türkiye
bilgisayar firmalarının stokları ile sınırlı olup çok hızlı bir
şekilde maliyet odaklı konfigürasyon oluşturma seçenekleri
sunmamaktadır. Bu çalışmada Genetik Algoritma (GA)
kullanılarak, maliyeti verilmiş olan bir bilgisayar
konfigürasyonunun farklı alternatiflerle kısa zamanda elde
edilmesi üzerinde durulmuştur. Bu amaçla GENOEM
adında bir bilgisayar yazılımı geliştirilmiştir. Geliştirilen
bilgisayar yazılımı gömülü veritabanı ile stok bilgilerini
tutmakta ve GA yardımı ile bilgisayar konfigürasyonlarını
belirlemektedir. Yazılımın kullanıcı arabirimi stok bilgilerinin
kolaylıkla girilmesini ve güncellenebilmesini sağlamaktadır.
Geriye kullanıcıya kalan tek bir butonla genetik algoritmayı
çalıştırılmak ve hesaplama sonuçlarını görmektir.
2. Yazılımın Geliştirilmesi
Yazılımın geliştirilmesi için güçlü görsel bileşen desteğine
sahip C++ Builder 2007; veritabanı erişimi için ZEOS
veritabanı erişim nesneleri kullanılmıştır. Yazılım
tarafından kullanılan gömülü veritabanı ise açık kaynak
kodlu SQLite veritabanıdır.
Yazılım geliştirme sürecinin ilk basağında bilgisayar
bileşenlerinin tutulacağı çizelgeler belirlenmiş ve veritabanı
tasarımı yapılmıştır. Ardından yazılım geliştirme ortamında
stok bilgilerinin girileceği ve güncelleneceği kullanıcı
arabirimi geliştirilmiştir. Son olarak yazılıma kullanıcının
GA ile konfigürasyon hesaplaması yaptırdığı bölüm ile
arabirim tamamlanmıştır.
2.1. Veritabanı Tasarımı
Stok bilgilerinin yönetilmesini sağlayan veritabanın
tasarımı için SQLite Administrator adlı açık kaynak kodlu
yazılım kullanılmıştır. Tasarlanan veritabanı bilgisayar
konfigürasyonunu oluşturan bileşenlerin ayrı ayrı tutulduğu
yedi çizelge içermektedir. Bu çizelgeler işlemci, anakart,
bellek, sabit disk, ekran kartı, kasa ve ekran çizelgeleridir
(Şekil 1). Bu çizelgeler, tasarımın sade ve anlaşılabilir
olması açısından en gerekli alanlarla oluşturulmuştur.
Örneğin işlemcileri tutan çizelgede GA tarafından
kullanılan “fiyat” ve işlemci-anakart uyumluluğunun kontrol
edildiği “form” alanları zorunlu alanlar olup “işlemci” adlı
alan işlemciye ait bilgilendirme alanıdır (Şekil 2). Her bir
çizelgede yer alan ortak alanlardan biri olan “kimlik” alanı
“otomatik artan” tipinde bir alan olup bileşene özel kimlik
numaraları tutmaktadır. Tasarlanmış olan yazılımdan her
bir bileşene erişim bu kimlik numaraları ile sağlanmaktadır.
Diğer bir ortak alan “stok” adlı alan olup bileşenin stokta
olup olmadığının kontrolü için kullanılmaktadır. Geliştirilen
yazılımın GA icrasında ihtiyaca göre değişebilen uzunlukla
Gök, M. ve Göloğlu, C.
kromozom
yapısı
kullanıldığından
istendiğinde
veritabanına farklı bileşenler için çizelge eklenmesi ve
yazılımın
hızlı
olarak
güncellenmesi
kolaylıkla
yapılabilmektedir.
İşlemciler
GENOEM.DB
Ekranlar
olarak kullanılacak bileşenler güncelleme arabiriminden
bağımsız olarak getirilir.
Arabirimden bağımsız veri getirilmesinin nedeni sadece
stokta olan ve uygun özelliklere sahip bileşenlerin genetik
algoritma hesaplanmasında kullanılacak olmasıdır.
GENOEM.DB
Ekran
Kartları
SQLITE
Veritabanı
Anakartlar
Bellekler
SQLITE
Veritabanı
Kasalar
Sabit
Diskler
İşlemciler
Anakartlar
Bellekler
Şekil1. Veritabanı yapısı
...
Şekil 2. İşlemciler çizelgesinin yapısı
TZConnection
(Bağlantı)
2.2. Kullanıcı Arabirimin Geliştirilmesi
Kullanıcı arabiriminin geliştirilmesinde en önemli aşama
veritabanı bağlantısının gerçekleştirilmesi ve çizelgedeki
bilgilere erişimin sağlanabilmesidir. Veri tabanına erişim
için uzun zaman alan ve yönetimi zor olan kod yazma
yöntemi yerine tasarım aracına yüklenen ZEOS veritabanı
erişim bileşenleri (nesneleri) kullanılmıştır. Bu bileşenler
SQLite dahil birçok veritabanına nesne tabanlı yaklaşım ile
erişim imkanı sağlamaktadır.
Tasarlanan yazılımın veritabanı dosyasına (Genoem.db)
bağlantı için TZConnection (bağlantı) bileşeni kullanılmıştır
[1]. Bu bileşen yazılımın veritabanına bağlanmakta ve
diğer işlem bileşenleri için bir ortak bir yol açmaktadır.
Stoğun her bir çizelgesindeki bilgilerin getirilmesi ve
yönetimi için ayrı ayrı TZQuery (sorgu) bileşenleri
kullanılmıştır. Her bir sorgu, ilişkili olduğu çizelgedeki
bilgileri bellekte tutmaktadır. Örneğin işlemci sorgusu,
işlemcilere
ait
bilgileri
veritabanındaki
işlemci
çizelgesinden getirmekte ve bu bilgileri bellekte
tutmaktadır. Bu bilgiler, TDataSource (veri kaynağı)
bileşenleri
yardımıyla
veri
bilinçli
denetimlere
aktarılmaktadır. Söz konusu veri bilinçli denetimlerden ilki
TDBGrid (Izgara) bileşenidir. Bu bileşen, bilgilerin çizelge
halinde
görüntülenmesini
ve
düzenlenmesini
sağlamaktadır. Diğeri ise veri satırları ile ilgili işlemlerin
(kaydetme, silme vb.) yapılmasını sağlayan TDBNavigator
(gezgin) bileşenidir (Şekilo3). TZConnection, TZQuery ve
TDataSource
bileşenleri
sadece
tasarım
anında
görülmekte ve tasarımın hızlıca yapılmasını sağlamaktadır.
Yazılım çalıştıktan sonra bu bileşenler görünmezken
verilerin
güncellenmesini
sağlayan
TDBGrid
ve
TDBNavigator nesneleri kullanıcı arabiriminin bir parçası
olarak kullanıcıya gözükür. GA çalışmadan önce salt
okunur sorgular (TZReadQnlyQuery) yardımıyla da girdi
TZQuery
(Sorgu)
TDBGrid
(Izgara)
TDataSource
(Veri Kaynağı)
TBNavigator
(Gezgin)
Şekil 3. Veritabanından gelen bilginin veri erişim nesneleri
arasında akışı ve kullanılan erişim nesneleri
2.3. Kromozom Yapısının Oluşturulması
Geliştirilmiş olan yazılımda her bir kromozom stokta tutulan
bilgisayar bileşenlerinin oluşturduğu bir konfigürasyon
olarak düşünülmüştür. Problemin çözümü için kullanılan
kromozom yapısının oluşturulmasında ikili kodlama (Binary
Encoding) yöntemi kullanılmıştır [2]. Şekil 4’te bilgisayar
bileşenlerinin bu kromozoma yerleşimi görülmektedir.
Ekranlar Kasalar
Ekran Sabit
Bellekler Anakartlar İşlemciler
Kartları Diskler
Şekil 4. Kromozom yapısı
Stoktaki bilgisayar bileşeni sayısı değişebileceğinden bu
kromozomun
uzunluğu
girdi
sayılarına
göre
değiştirilmektedir. Örneğin 8 adet INTEL markalı işlemci
varken işlemci için gereken bit sayısı 3 iken stok
çizelgesinden 10 adet işlemci bu değer 4 olacaktır. 10 adet
işlemci var iken 4-bitlik kodlamadan kaynaklanan 15’e
kadar olan girdi değerleri ile karşılaşılabileceğinden
kromozomdaki alellerin onlu tabana (decimal) dönüşümü
sonrasında aralık dönüşüm fonksiyonu kullanılmaktadır (1)
[3, 4].
BN = 1 + decimal( BIK ) ×
BA − 1
2b −1
(1)
Denklem (1)’de verilen fonksiyonda BN, ikili kodun karşılık
geldiği bileşen numarasını; BIK, bileşenin ikili kodunu; BA
Gök, M. ve Göloğlu, C.
ise stoktaki bileşen adedini belirtmektedir. Çözümden
kullanılan kromozomun programlama dilinde ifade edilmesi
için özel tip tanımlı C++ yapısı (struct) kullanılmıştır (Şekil
5).
typedef struct
{
unsigned short *gen;
int uygunluk;
} TKromozom ;
Şekil 5. Kromozomun kullanıcı tipi olarak tanımlanması
Şekil 5’te verilen kromozom tipi yapısındaki gen tanımı
işaretsiz kısa tamsayı gösterici (pointer) tipindedir. Gen
tanımının bu şekilde yapılması, gereken bit sayısı kadar
genin bellekten istenmesi ve hesaplama bittiğinde tekrar
belleğe iade edilmesini kolaylaştırmaktır [5]. Genetik
algoritmanın çalışması sırasında her bir kromozom
dinamik olarak bellekte oluşturulmakta ve ardından
gereken bit sayısı kadar gen bellekten istenmektedir (Şekil
6). Bellekten yer ayırma işlemi için C++ new operatörü
kullanılmıştır.
TKromozom *birey = new TKromozom;
birey->gen = new unsigned short[toplamBit];
birey->uygunluk = 0;
Şekil 6. Kromozomun bellekten istenmesi ve genler için
bellekten yer ayrılması
Genler için gereken toplam bit sayısının hesabı için
öncelikle her bir bilgisayar bileşenin adedi için gereken ikili
bit sayısı ayrı ayrı hesaplanıp sonrasında toplama işlemi
yapılmaktadır. Bu toplama işlemi sonucu toplamBit adlı
değişkene atanmaktadır. Bu noktada gen sayısı için
gereken bit sayısı kullanıcının kullanıcı arabiriminde seçtiği
platform tipine ve stoktaki ürünleri sayısına bağlıdır.
Örneğin kullanıcı, yazılımın arabiriminde AMD tipinde
platform seçtiğinde AMD marka işlemci ile beraber bu
işlemci markası ile uyumlu anakartlar bellekten
getirilmektedir. Daha sonra stoktaki diğer bileşenler
getirilmekte ve kromozom uzunluğu için gereken bit sayısı
hesabı yapılmaktadır (Şekil 7).
2.4. Bileşenlerin Bellekte Tutulması
Gereken koşulları sağlayan bilgisayar bileşenleri salt
okunur sorgu bileşenleri (TZReadonlyQuery) yardımıyla
veritabanından gerildikten sonra her bir bileşen kendi için
tanımlanmış yapılar (structs) yardımıyla GA uygunluk
fonksiyonunun kullanacağı parametrelerle beraber listelere
alınır. Bahsedilen parametrelere (fiyat, form vb.) sorgu
nesnesi ile direkt ulaşılabilmesine rağmen liste yöntemi
tercih edilmiştir. Çünkü uygunluk fonksiyonunun her
hesaplanışında diske veri erişimi yapılmakta ve bu da hızı
önemli ölçüde düşürmektedir. Disk erişimi yerine sadece
gereken parametrelerin tutulduğu bellek listelerine erişim
ile uygunluk fonksiyonunun çalışma hızı artırılmıştır.
Bileşenler listelere alınmadan önce sadece gerekli
parametrelerle ayrı bir bellek alanına yerleştirilmekte ve
ilgili olduğu listeye gösterici (pointer) adresleri yardımıyla
eklenmektedir. Her bir bileşen türünün listesi TList tipindeki
liste sınıfları aracılığı ile tutulmaktadır. Her bir bileşen tipi
için de gerekli parametreleri içeren yapılar (struct)
tanımlanmıştır.
Başla
Platform tipini seç
INTEL
AMD
?
Stoktaki INTEL
İşlemcileri getir.
Stoktaki AMD
İşlemcileri getir.
Stoktaki INTEL uyumlu
Anakartları getir.
Stoktaki AMD uyumlu
Anakartları getir.
Stoktaki diğer
bileşenleri getir.
Her bir bileşen sayısı
için gerekli bir sayılarını
ayrı ayrı hesapla.
Her bir bileşen için gerekli
Bit sayılarını topla ve toplamBit
Değişkenine ata.
Dur
Şekil 7. Bileşenlerin veritabanından getirilmesi ve
kromozom uzunluğu hesabına ilişkin akış şeması
Örneğin bir işlemci için gereken parametrele fiyat ve
formdur. Maliyet hesaplanırken işlemcinin fiyatı; seçilen
anakartla pin uyumluğu olup olmadığını kontrol için ise
form parametresi kullanılır. Bu noktada marka
parametresine ihtiyaç duyulmamaktadır çünkü bir önceki
basamakta kullanıcı platform tipini seçerken markayı zaten
belirlemiştir. Anakart bileşeninin gerekli parametreleri fiyat,
DDR2, DDR3, formdur ve VGA’dır (Şekil 8). DDR2 ve
DDR3 alanları anakartların bellek uyumluluğunun testi için
kullanılmaktadır. Şu an sadece DDR2, sadece DDR3 ve
her iki bellek tipini destekleyen anakartlar satılmaktadır.
Anakarta ait bu parametreler seçim (check) alanları
yardımıyla
kullanıcı
arabiriminden
kolayca
ayarlanabilmektedir. Anakarta ait form alanı işlemci pin
uyumluluğunun kontrolü için kullanılmaktadır. VGA alanı
ise anakartta tümleşik grafik biriminin olup olmadığı kontrol
edilmektedir. Eğer anakarta tümleşik grafik birimi var ise
optimum maliyet ekran kartı olmaksızın yapılmaktadır. Bu
durumda kullanıcı arabirimindeki bilgilendirme alanı
yardımıyla kullanıcı bilgilendirilmektedir. Bellek bileşeni ise
fiyat ve tip alanlarını içermektedir. Belleğin tip alanı
yardımıyla anakarta ait bellek uyumluluğu kontrolü
yapılmaktadır. Diğer bileşenlerin belleğe alınması için ise
sadece fiyat alanı kullanılmıştır.
typedef struct {
int fiyat;
bool DDR2;
bool DDR3;
bool VGA;
String form;} TAnakart;
Şekil 8. Anakart bileşeninin gereken alanlarla beraber
bellekte tutulması için oluşturulmuş yapı (struct).
Gök, M. ve Göloğlu, C.
2.5. Genetik Algoritmanın Uygunluk Fonksiyonu
Başla
Bu çalışmada uygunluk fonksiyonu, her bir kromozomun
ifade ettiği maliyet değerinden hedef maliyet değerini
çıkardıktan sonra farkın mutlak değerini hesaplamaktadır.
Bu çalışma şekliyle uygunluk fonksiyonunun görevi “en
küçük değeri aramak” olarak ifade edilebilir [6].
Kullanılan uygunluk fonksiyonu, kendisine parametre
olarak gönderilen kromozomunun bellek adresi yoluyla
kromozoma ulaşmakta ve uygunluk değerini hesaplayıp
kromozomun uygunluk değeri alanına hesaplama
sonucunu yazmaktadır. Uygunluk fonksiyonu hesaplamayı
yaparken ilk olarak kromozomu oluşturan parçaların ikili
değerlerini onluk değere çevirir. Çevrilmiş olan bu ondalık
değerleri aralık dönüşüm fonksiyonu kullanarak geçerli
indis değerleri haline getirir. Bu sayede 10 işlemci olan bir
stokta ondalık dönüşüm sonrasında 12 değerine sahip bir
indisin ortaya çıkması engellenir. Daha sonra bu indis
değeri yardımıyla önceden belleğe alınmış olan bileşen
listesinden ilgili elemanın fiyatı ve parametreleri alınır. Bu
işlem kromozomu oluşturan her bir bilgisayar bileşeni için
tekrarlanıp toplam maliyet değeri hesaplanır. Bu toplam
maliyet değeri hedef maliyet değerinden çıkarılır ve farkın
mutlak değeri alınır. Bu aşama sonrasında anakartta
tümleşik grafik biriminin olup olmadığı kontrolü
yapılmaktadır. Eğer anakarta tümleşik grafik birimi var ise
toplam fiyattan ekran kartı fiyatı çıkarılarak optimum
maliyet hesabı yapılmaktadır. Bu durumda kullanıcı
bilgilendirme alanı ile uyarılmaktadır. Bu noktada elde
edilen sonuç kromozomun uygunluk alanına atanır.
Kromozomun ifade ettiği bilgisayar konfigürasyonundaki
bileşenlerin birbirine uyumlu olup olmadığı bu adımdan
sonra kontrol edilmektedir. Bu kontrollerden ilki işlemci pin
sayısının ve anakarttaki işlemci soketinin pin sayısının
karşılaştırılmasıdır. Bu kontrol için her iki bileşenin de
yapısında form alanları tanımlanmıştır. Bu çalışmada
kullanılan veritabanında bulunan INTEL işlemcilerde ve
uyumlu anakartlarda iki soket tipi vardır. Bunlar LGA775 ve
LGA1366 formlarıdır. Aynı şekilde AMD işlemci ve uyumlu
anakartlarda ise AM2 ve AM2+ işlemci formları
bulunmaktadır. Uygunluk fonksiyonu anakart ve işlemci pin
sayılarının uyumsuz olması sonunda kromozomun
uygunluk değerine olası bir konfigürasyonunun en yüksek
maliyet değerinden daha büyük bir değer atamaktadır. Bu
çalışmada bu değer 10000 olarak seçilmiştir. Böylece ilgili
kromozom (konfigürasyon) yüksek bir uygunluk değeri
almaktadır. İkinci uyumsuzluk kontrolü ise anakart ile
uyumlu bellek tipleri üzerinde yapılmaktadır. Eğer
kromozomdaki bellek ile anakartın bellek tipi uyumsuz ise
yine ilgili kromozomun uygunluk değeri alanına yüksek bir
uygunluk değeri ataması yapılmaktadır (Şekil 9).
3. Genetik Algoritmanın Çalışması
GA’nın hesaplanmasında kullanılan popülasyon değeri 85
ve jenerasyon sayısı 100 olarak seçilmiştir. Popülasyon
değerinin bu şekilde seçilmesinin nedeni veritabanındaki
ürün adedinin ekran kartı ve bellek alanlarında 90’ı
aşmasıdır. Bu şekilde başlangıç durumunda mümkün
olduğu kadar farklı bileşenin çözümler kümesine dâhil
edilmesi amaçlanmıştır. Genetik algoritmanın çaprazlama
oranı %35 ve mutasyon oranı ise %1,17 seçilmiştir.
Mutasyon oranının hesaplanmasında Bäck [7] tarafından
verilen eşitsizlik kullanılmış ve mutasyon oranının en küçük
değeri alınmıştır.
Kromozomun bellek adresi
değerini al.
Kromozomdaki ikili değerleri
ondalık tabana çevir.
Aralık uygunlaştırma fonksiyonu
ile geçerli indis değerlerini hesapla.
Bellekte tutulan bileşenlerin bilgilerini
hesaplanan indisler yardımıyla getir.
Toplam maliyeti hesapla.
H
Anakartta
Tümleşik VGA
Var mı?
E
Toplam maliyetten ekran
kartı fiyatını çıkar.
Uygunluk değerini ata.
Anakart ile
İşlemci
uyumlu mu?
E
Anakart ile
bellek
uyumlu mu?
H
E
Son
H
Uygunluk değerine 10000 değerini ata.
Şekil 9. Uygunluk fonksiyonun çalışmasına ilişkin akış
şeması
1/PB < Mutasyon Oranı < 1/KB
(2)
Denklem (2)‘de PB, popülasyon boyu ve KB ise kromozom
uzunluğunu ifade etmektedir. Buna göre mutasyon
oranının en küçük değeri 1/85*100 ≈ 1,17 olmaktadır.
Genetik algoritmanın seçim operatörü olarak turnuva
seçim yöntemi kullanılmış ve turnuvaya giren eleman
sayısı 4 olarak seçilmiştir [8].
Başlangıç durumundaki çözümler kümesinin kromozomları
ve her bir jenerasyondaki kromozomlara erişim için TList
sınıfları kullanılmıştır. TList sınıfı ile tanımlı listeler
kromozomların bellek adreslerini tutmakta ve sonraki
hesaplamalar için erişim kolaylığı sağlamaktadır. Aynı
şekilde her bir jenerasyon da bellek adresleri yoluyla TList
sınıfı ile tanımlı bir jenerasyonlar listesinde tutulmaktadır.
Hesaplamanın her başlangıcında bu bileşenlere ait listeler,
kromozom listeleri ve jenerasyon listesi boşaltılmaktadır.
Stoktaki bileşenler tekrar son halleri ile getirilmekte ve
belleğe bir liste şeklinde yerleştirilmektedir. Kromozom için
gereken bit sayısı tekrar hesaplanırken kullanıcı
arabiriminde başlangıç durumuna dönülmektedir. Ardından
başlangıç durumuna ait çözümler hesaplanmakta ve
genetik algoritma döngüsüne geçilmektedir [3].
Geliştirilmiş
olan
yazılımda
kullanıcı
bilgisayar
bileşenlerinin tutulduğu stokları güncelledikten sonra
platform seçimi yapmakta ve hedef maliyeti girip hesapla
butonuna tıklamaktadır (Şekil 10). Örnek çalışma için 4000
Gök, M. ve Göloğlu, C.
dolarlık AMD tabanlı bir bilgisayar konfigürasyonunun
hesaplanması istenmektedir.
Şekil 10. İstenen platform ve maliyete göre konfigürasyon
hesaplama
Genetik algoritma döngüsü tamamlandıktan sonra kullanıcı
arabiriminden açılır liste kutusu yardımıyla her bir
jenerasyona ait kromozomlara, uygunluk değerlerine ve
her bir kromozomun ifade ettiği bilgisayar konfigürasyonu
bilgisine kolaylıkla ulaşılabilmektedir (Şekil 11).
Şekil 13. Örnek çalışmaya ait genetik çözüm grafiği
4. Sonuç ve Öneriler
Geliştirilmiş olan uygulama yazılımı ortalama bilgisayar
konfigürasyonları maliyetlerine yakın hedef maliyetler
seçildiğinde yüksek başarım ile konfigürasyonlar
oluşturabilmektedir. Yazılım bu haliyle maliyet tabanlı
konfigürasyon oluşturma çözümü olarak önerilebilir. Ancak
yüksek maliyetli hedef değerler seçildiğinde çözümün
bulunması zorlaşmaktadır. Bu durumda hesaplama
işleminin ardışıl olarak yapılması gerekebilmektedir.
Tümleşik VGA birimine sahip anakartlı konfigürasyonlarda
yüksek fiyatlı ekran kartları konfigürasyonlar içinde yer
alabilmektedir. Ayrıca aynı uygunluk değerine sahip farklı
muhtemel konfigürasyonların yönetimi yazılımın bu
sürümünde
yapılmamıştır.
Yazılımın
bir
sonraki
sürümünde bu durumların yönetilmesini kolaylaştıracak
eklemeler yapılması düşünülmektedir.
Şekil 11. Jenerasyonlar ve jenerasyondaki bireylerin
uygunluk değerleri
Şekil 11’de görüldüğü gibi çözüme (hedef maliyete) 373
dolarlık bir yaklaşımla sonuç bulunmuştur. Bu çözüme
ilişkin bilgisayar konfigürasyonu Şekil 12’de görülmektedir.
Şekil 13’te ise çözüme ilişkin minimum, maksimum ve
ortalama değerlerin gösterildiği grafik görülmektedir. Bu
grafiğe geliştirilmiş olan yazılımın “Grafik” sekmesinden
erişilebilmektedir.
Şekil 12. Örnek çalışma sonunda elde edilen
konfigürasyon
Kaynaklar
[1] Cantù, M., Mastering Delphi 6, Sybex Publishing, 536540, 2001.
[2] Sakawa, M., Genetic Algorithms and Fuzzy
Multiobjective
Optimization,
Kluwer
Academic
Publishers Boston / Dord recht / London, 15-16, 2001.
[3] Gen, M., Cheng, R., Genetic Algorithms and
Engineering Design, Wiley Publishing, 8-9, 1997.
[4] Altunkaynak, B., Esin, A., The Genetic Algorithm
Method For Parameter Estimation In Nonlinear
Regression, G.Ü. Fen Bilimleri Dergisi, 17(2), 43-51,
2004.
[5] Deitel, H. M., C++ How to Program, Fifth Edition,
Prentice Hall, 550-552, 2005.
[6] Saruhan, H., Genetic Algorithms: An Optimization
Techique, Teknoloji, 7(1), 105-114, 2004.
[7] Bäck, T., Optimal Mutation Rates in Genetic Search,
Proceedings of the 5th International Conference on
Genetic Algorithms, 2-8, 1993.
[8] Gologlu, C., A metaheuristic based self-reasoning
system for assembly sequence automation in CIM,
Beykent University, Journal of Science and
Technology, 2(1) 99-114, 2008.
Download