Cumartesi, Aralık 16, 2006

BluePlayer 0.66 for Linux

En sonunda yeniden Linux altında çalışmaya başlaya bildim.
SuSe 10.1 Linux' u indirdim ve bilgisayarıma kurdum.
YasT ile gereken paketleri kurdum
Audiere ve FLTK kütüphanelerini Kaynak kodundan derleyerek kurdum.
CodeBlocks'u da kurduktan sonra başladım çalışmaya.
Kısa bir uğraş sonunda BluePlayer'ı derlemeyi başardım.
Download : BluePlayer 0.66 for Linux

Kullanabilmeniz için Audiere kütüphanesini kurmanız lazım
Kaynok Kodunu İndirin : audiere-1.9.4.tar.gz
uygun bir yere açın ve audiere-1.9.4 dizini oluşacak içine girin
./configure
make
make install
make install için yetki alın
veya kullandığınız Linux için derlenmiş paket halinde varsa
libaudiere-1.9.4 kurun

Cuma, Aralık 15, 2006

CBuiler 'ın Ölümü 1


Her şey Turbo C ile başladı Turbo Pascal gibi uçuk bir hızda derleme yapmasada C kullananlar için tek alternatifti. Microsoftun Quick C'nin esamesi bile okunmazdı.

Turbo C 3.0 ile birlikte derleme için Uzatılmış belleğide kullanmaya başladı ki değmeyin keyfimize ( Önceden büyük bir proje derlerken hafız yetmediğinde swapping diyerek diski hafıza yerine kullanmaya başlıyordu. -ölüm- Derlemeyi hızlandırmak için bir sürü dalavere yapmanız gerekiyordu - RamDisk oluşturup derlenecek projeyi oraya atıp orada derlemek gibi
Yanlış hatırlamıyorsam TurboVision kütüphaneside bu versiyonda çıkmıştı
Ben de ilk olarak TVision yüzünden farkına varmıştım. TVision pascalda yazılmış C ye tercüme edilmişti. TVision dökümantasyonunda örneklerin bazılarının tercüme edilmesi unutulmuş
pascal olarak duruyordu. Hatta birde Pascal dan C++'a çevri hatası içeriyordu ; Bir TInputLine kullandığınızda hiçbir şey yazmadan Del tuşuna basınca - c de char dizi sonunu gösteren 0 karekterini siliyorsunuz - olanlar oluyordu.
Demekki neymiş C/C++ Borlandın üvey evladıymış. Yıllar geçtikçe C/C++ camiasında ( ! )
Turbo C hakimiyeti azalmaya başladı -ne de olsa kimse üvey evlat olmak istemiyordu.

Çarşamba, Aralık 13, 2006

Yapay Zeka Optimizasyon Algoritmaları



Geçen haftasonu kitapçıları gezerken rastladım bu kitaba "Yapay Zeka Optimizasyon Algoritmaları".
Derviş KARABOĞA'nın yazdığı kitap herhalde bu konuda Türkçe yazılmış tek kaynak. Uygulamaya dönük örnekler verilmesine rağmen anlatımı bence biraz akademik olmuş ama yinede alın bir inceleyin, destekleyin.
Bu kitap yapay zeka optimizasyon algoritmaları olarak adlandırılan tabu araştırma, genetic programlama, yapay ısıl işlem, karınca koloni ve yapay bağışıklık algoritmalarını kapsamaktadır.
...

Kitap, önce optimizasyonla ilgili temel kavramları tanımakta ve sonra bu beş optimizasyon algoritmasının temel prensiplerini vererek her birisiyle ilgili değişik mühendislik alanlarından uygulamalar sunmaktadır.
google da Derviş beyin adından ufak bir araştırmayla aşağıdaki makalelerede ulaştım özellikle ilki çok ilginç, Kitapda da bahsedilen Ders Programı sistemi için Genetic Programlama kullanılmış.

Perşembe, Aralık 07, 2006

Genetik Programlamayla Bir işlem



Yine bir yapay zeka projesiyle karşınızadayız !

Bu sefer YSA değil genetik programlama metoduyla birşeyler yapya çalışacağız.

Ya bu genetik Programlamada nedir yahu ? diyenleriniz için linke müracat ediniz.
Link!

Daha yokmu diyen için google emrinize amade sizi bekliyor
Her neyse Biz uygulamamıza dönelim

Bir Kelime Bir İşlem yarışmasını bilmeyeniniz yoktur herhalde Biz Bir işlem kısmını yapmaya çalışacağız - Bir Kelime kısmınıda siz yaparsınız artık :) -

Problemi analiz edersek :
3 Basamaklı bir sayıya 6 adet sayı ile ulaşmaya çalışılır

Elimizde 6 adet sayı var ve sadece bir kere kullanabiliyoruz.
işlem 4 işlem yapılabiliyor fakat her sayıyı kullanmak zorunda da değiliz
Problemin bütün çözümleri için
sayı Num
işlem Op

Num1 Op1 Num2 Op2 Num3 Op3 Num4 Op4 Num5 Op5 Num6

sayıların kullanılacağı sıralama = 6 * 5 * 4 * 3 * 2 * 1 =6! = 720 ihtimal
her iki sayı arasında 4 işlem yada kullanılmama olmak üzere 5 ihtimal 6 sayı için 5 kere
5*5*5*5*5=5^5= 3125 ihtimal

Toplam = 720 *3125 = 62500 değişik sıralama oluyor.
Pek tabi Problemin pek çok çözümüde olabilir. Tam Çözümü olmayada bilir

Gelelim çözüme öncelikle bize bir Genetik Programlama kütüphanesi lazım
-tabii tekerleği yeniden icad edip debelenip durmak ta bir tercih olabilir biz kolay yoldan gidiyoruz -
İhtiyacınıza göre kütüphane bulmak için size freshmeat'i önerebilirim

Efendim biz bukonuda FGA -Fast Genetic Algorithm - kullanacğız
FGA sadece tek bir başlık dosyasından -fga.h- oluşan kullanımı kolay template library.
Paralel çalışa bilmek için POSIX thread kullanılmış yani windows altında bizim pthreads-win32 indirip kurmamız lazım zahmet edip aramayın indirin pthreads-win32 açın ve derleyiciniz için uygun olan library ve dll dosyalarını gereken kısımlara ekleyin

FGA ve pthreads-win32 indirip kurduktan sonra Kodumuzu yazmaya başlaya biliriz

Problemin kodlanması için veri yapımızı oluşturuyoruz

typedef struct {
int Num[6]; // sayılar
int Op[5]; // işlemler
}PData ;


sonra bu veri yapısıyla işlem yapacak GP için gereken fonksiyonlarımızı yazıyoruz

my_fitness // uygunluk yada sağlık değeri
my_random_chromosome // rasgele varyasyon üret
my_mutate_chromosome // değişme uğrat
my_crossover // Çaprazlama yap

Ooo yazı epey uzamış. kim okur bukadar yazıyı ? Daha fazla uzatmayayım en iyisi inirip inceleyin. Soracağınız bir şey olursa biz de bilebilirsek eğer cevaplamaya gayret ederiz

Download : GHedef yada daha kolay GHedef

* Kullanıcı Ara birimi pek tabii ki FLUID ile FLTK kullanılarak yazıldı. IDE olarak CodeBlock kullanıldı
** www.biliyormusun.net de bugünkü (08/12/2006) Bir işlem kısmındaki günün sorusunun çözümü

9*75 = 675
675-7= 668
668-9=659
659+10=669

Cuma, Aralık 01, 2006

BluePlayer 0.66

BluePlayer 0.66
  • Bazı ufak tefek düzeltmeler yapıldı
  • Windows'a daha uygun dosya seçim dialogu kullanıldı
  • sürükle bırak konuldu
  • Çalan dosya isimleri ufak animasyonla! gösterildi

hala eksikleri var.
Linux versiyonu için uygun bir zaman ve
uygun bir Linux versiyonu - full set - lazım bulunca İnşallah

Destekleriniz , hata bildirimleriniz, uyarı ve önerileriniz
hasretle bekleniyor ;)