<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Harezmi &#187; Yapay Zeka</title>
	<atom:link href="http://harezmi.wordpress.com/category/yapay-zeka/feed/" rel="self" type="application/rss+xml" />
	<link>http://harezmi.wordpress.com</link>
	<description>Tarihin benimle ne işi var? Benimki ilk ve tek dünya.</description>
	<lastBuildDate>Mon, 19 Oct 2009 19:36:05 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>tr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='harezmi.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/901569de429b94fda07ffc7ccdd94d32?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Harezmi &#187; Yapay Zeka</title>
		<link>http://harezmi.wordpress.com</link>
	</image>
			<item>
		<title>yapay zeka&#8217;nın uygulama alanları</title>
		<link>http://harezmi.wordpress.com/2009/10/19/yapay-zekanin-uygulama-alanlari/</link>
		<comments>http://harezmi.wordpress.com/2009/10/19/yapay-zekanin-uygulama-alanlari/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 19:36:05 +0000</pubDate>
		<dc:creator>harezmi</dc:creator>
				<category><![CDATA[Yapay Zeka- Genel]]></category>
		<category><![CDATA[yapay zeka uygulama alanları]]></category>

		<guid isPermaLink="false">http://harezmi.wordpress.com/?p=279</guid>
		<description><![CDATA[uzun süredir yapay zeka&#8217; nın uygulama alanlarını nasıl formülüze edeceğimi düşünüyordum.
sonunda buldum: &#8220;doğal zeka&#8217; nın yemediği yerlerde yapay zeka kullanırız.&#8221;
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harezmi.wordpress.com&blog=3476771&post=279&subd=harezmi&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>uzun süredir yapay zeka&#8217; nın uygulama alanlarını nasıl formülüze edeceğimi düşünüyordum.<br />
sonunda buldum: &#8220;doğal zeka&#8217; nın yemediği yerlerde yapay zeka kullanırız.&#8221;</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harezmi.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harezmi.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harezmi.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harezmi.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harezmi.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harezmi.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harezmi.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harezmi.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harezmi.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harezmi.wordpress.com/279/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harezmi.wordpress.com&blog=3476771&post=279&subd=harezmi&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://harezmi.wordpress.com/2009/10/19/yapay-zekanin-uygulama-alanlari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6693d93a47473836cdb27b43c9e7ede8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">harezmi</media:title>
		</media:content>
	</item>
		<item>
		<title>yapay zekayı nasıl ele alabiliriz?</title>
		<link>http://harezmi.wordpress.com/2009/08/17/yapay-zekayi-nasil-ele-alabiliriz/</link>
		<comments>http://harezmi.wordpress.com/2009/08/17/yapay-zekayi-nasil-ele-alabiliriz/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 20:16:39 +0000</pubDate>
		<dc:creator>harezmi</dc:creator>
				<category><![CDATA[Yapay Zeka- Genel]]></category>
		<category><![CDATA[Felsefe]]></category>
		<category><![CDATA[yaklaşımlar]]></category>
		<category><![CDATA[Yapay Zeka]]></category>

		<guid isPermaLink="false">http://harezmi.wordpress.com/?p=270</guid>
		<description><![CDATA[yapay zeka, zeki makineler inşa etme bilimi olarak tanımlanabilir.
peki bir yapay zeka araştırmacısının, yapay zekadaki amacı ne olabilir?
niçin bir insan yapay zeka üzerine araştırma yapar?
bunun bir kaç nedeni olabilir.
1. Hesaplanabilir Psikoloji: Yapay zeka araştırmacısı, yapay zekayı, insan bilişini daha iyi anlamak için kulllanabilir. Bu durumda bir insanın bir işi yerine getirirken kullandığı veri yapısı ve [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harezmi.wordpress.com&blog=3476771&post=270&subd=harezmi&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>yapay zeka, zeki makineler inşa etme bilimi olarak tanımlanabilir.</p>
<p>peki bir yapay zeka araştırmacısının, yapay zekadaki amacı ne olabilir?<br />
niçin bir insan yapay zeka üzerine araştırma yapar?</p>
<p>bunun bir kaç nedeni olabilir.</p>
<p>1. Hesaplanabilir Psikoloji: Yapay zeka araştırmacısı, yapay zekayı, insan bilişini daha iyi anlamak için kulllanabilir. Bu durumda bir insanın bir işi yerine getirirken kullandığı veri yapısı ve algoritmayla, bilgisayarda aynı problemi çözmek için kullanacağımız veri yapısı ve algoritma aynı olur. Bu yolu seçen araştırmacı bilişsel psikolojiyle içiçedir.</p>
<p>2. Hesaplanabilir Felsefe:  İnsan zekası, hesaplanabilir bir süreç olarak ele alınır. Fakat bu süreçte kullanılacak veri yapısı ve algoritma, insanın zeki davranış sergilerken kullandığı veri yapısı ve algoritmayla aynı değildir. Önemli olan ortaya hesaplanabilir bir süreç koyabilmektedir.</p>
<p>3. İleri Bilgisayar Bilimi: Bu çerçevede yapay zeka araştırmacısı programlamanın sınırını, öğrenebilen- kendini geliştirebilen vs&#8230; programları amaçlar.</p>
<p>4. Sezgisel Programlama: Yapay zeka araştırmacısı durumlar arasındaki geçişin &#8220;bir kesinlikle&#8221; olduğu, sürecin sonunda çalışmanın &#8220;durduğu&#8221;, &#8220;kesinlik&#8221; içeren algoritmaların aksine davranış sergileyen yöntemler geliştirir. Bir örnek vermek gerekirse &#8220;Genetik Algoritma&#8221; bir sezgisel algoritmadır. Kesin bir durma kriteri ya da bir durumdan diğer duruma geçişi belirleyen kesin kurallar yoktur.</p>
<p>Bir de bu noktada &#8220;Ai-complete&#8221; denilen, yani belli bir problemin çözmünü, yapay zekanın çözümü olarak gören bir yaklaşım vardır. Mesela &#8220;Doğal Dil İşleme&#8221; bir &#8220;Ai-complete&#8221; dir çünkü; insanın bir dili anlaması, o insanın tüm yetileriyle birlikte &#8220;zeki&#8221; olduğunun göstergesidir. Eğer bilgisayar doğal dili işleyebilirse &#8220;zeki&#8221; olarak kabul edilebilir. Diğer &#8220;Ai-complete&#8221; alanlar ise &#8220;Bilgi Temsili ve Çıkarsama&#8221;, &#8220;Computer Vision (şu an nasıl çevirebileceğimi bilemiyorum bu kelimeyi)&#8221;, &#8220;Problem Çözme&#8221;, &#8220;Öğrenme&#8221; ve &#8220;Robotik&#8221; olarak belirtebiliriz.</p>
<p>Kaynak: Artficial Intelligence, Stuart C. Shapiro</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harezmi.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harezmi.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harezmi.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harezmi.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harezmi.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harezmi.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harezmi.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harezmi.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harezmi.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harezmi.wordpress.com/270/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harezmi.wordpress.com&blog=3476771&post=270&subd=harezmi&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://harezmi.wordpress.com/2009/08/17/yapay-zekayi-nasil-ele-alabiliriz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6693d93a47473836cdb27b43c9e7ede8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">harezmi</media:title>
		</media:content>
	</item>
		<item>
		<title>yapay bağışıklık algoritmaları-clonalg</title>
		<link>http://harezmi.wordpress.com/2009/08/03/yapay-bagisiklik-algoritmalari-clonalg/</link>
		<comments>http://harezmi.wordpress.com/2009/08/03/yapay-bagisiklik-algoritmalari-clonalg/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 22:25:41 +0000</pubDate>
		<dc:creator>harezmi</dc:creator>
				<category><![CDATA[Yapay Bağışıklık Sistemi]]></category>
		<category><![CDATA[clonal algoritması]]></category>
		<category><![CDATA[clonalg]]></category>
		<category><![CDATA[yapay bağışıklık sistemi]]></category>

		<guid isPermaLink="false">http://harezmi.wordpress.com/?p=257</guid>
		<description><![CDATA[bu aralar -ki biraz uzun bir aralık bu- yapay bağışıklık sistemini ve bunun bilgisayar bilimlerindeki tezahürleri üzerine ufak araştırmalar-okumalar yapmaktayım. sistemin biyolojik kökenleri üzerine henüz bir şeyler yazabileceğimi zannetmiyorum. ama size bu alandaki bir algoritmadan söz edeceğim ki zaten herhangi bir biyolojik alt yapı gerektirmeyecek.
algoritmamızın ismi clonalg&#8217;dir. kendileri genetik algoritmalarla benzerlik göstermekle beraber ufak tefek [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harezmi.wordpress.com&blog=3476771&post=257&subd=harezmi&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>bu aralar -ki biraz uzun bir aralık bu- yapay bağışıklık sistemini ve bunun bilgisayar bilimlerindeki tezahürleri üzerine ufak araştırmalar-okumalar yapmaktayım. sistemin biyolojik kökenleri üzerine henüz bir şeyler yazabileceğimi zannetmiyorum. ama size bu alandaki bir algoritmadan söz edeceğim ki zaten herhangi bir biyolojik alt yapı gerektirmeyecek.</p>
<p>algoritmamızın ismi clonalg&#8217;dir. kendileri genetik algoritmalarla benzerlik göstermekle beraber ufak tefek farkları vardır. en belirgin farkı ga&#8217; da iyi aday çözümler, kendi aralarında çaprazlanarak yeni bir araştırma uzayı açıyorlardı. fakat clonalg&#8217;de yeni bir araştırma uzayı açmak için aday çözümler çaprazlanmaz. her aday çözüm, genel olarak kendi uygunluk değeriyle orantılı olacak şekilde, kendilerini kopyalar ve mutasyona uğratır. yani tek birey üzerinden uzay açılır ve araştırma yapılır. üstadlara göre biz bu şekilde optimizasyon işini local&#8217;de daha mükemmel hale getirebiliyormuşuz. zira ga&#8217;nın önemli bir eksikliği optimizasyon işine global olarak bakıp, localleri atlayabilmesi (ki bu nedenden dolayı mutasyonda local optimizasyon algoritmaları kullanırız) &#8230; devam edecek olursak; ga&#8217;daki gibi rasgele aday çözümler oluşturuyoruz, her bir aday çözümün uygunluk (affinity) değerini ölçüyoruz, bu uygunluk değeriyle doğru orantılı olacak şekilde ilgili hücreyi klonluyoruz ve bu klonları uygunluk değeriyle ters orantılı olacak şekilde mutasyona uğratıyoruz. bu klonları populasyondaki kötü bireyler ile değiştiriyoruz vs&#8230;</p>
<p>neyse artık algoritmayı sözde kod olarak yazayım. ben kodlama da yaptım bu algoritmayla ilgili. ama onu şu an değil de ileride ekleyeceğim.</p>
<p>bu algoritmanın çalışma şekli aşağıdaki gibidir:</p>
<ol>
<li><em> </em><em>Populasyonu İlkle (B hücrelerini yani aday çözümleri oluştur) </em></li>
<li><em>Problemi temsil et (Antigenic Representation)</em>
<ol>
<li><em>Her bir B hücresinin uygunluk değerini hesapla</em></li>
<li><em>Uygun B hücrelerini klonla</em></li>
<li><em>Klonlanan B hücrelerini mutasyona uğrat</em></li>
<li><em>Mutasyona uğratılmış B hücrelerini populasyona kat</em></li>
</ol>
</li>
<li><em>Döngü</em></li>
</ol>
<p>tekrar açıklayacak olursak:</p>
<p><em> </em></p>
<p>algoritmanın birinci aşamasında rasgele çözüm adayları –yani B hücreleri- oluşturulur aynen genetik algoritmalarda kromozomları oluşturmak gibi.</p>
<p>ikinci aşamada ise problem temsil edilir. bu problem temsili CLONALG’ de  antijen’e karşılık gelmektedir. bu da GA’da fitness function’a karşılık gelmektedir.2-1 aşamasında ise her bir B hücresi için uygunluk değeri –yani antijene ne derecede tepki verebiliyor- hesaplanır ve bu değer oranında ilgili B hücresinin kendisini klonlamasına ve mutasyona uğratılmasına izin verilir.</p>
<p>son aşamada ise klonlanmış ve mutasyona uğratılmış B hücreleri popülasyona bir şekilde –ya en kötü bireylerin yerine ya da rasgele bireyler oluşturup onların en kötüleriyle yer değiştirerek vs…- katılır.</p>
<p>bu işlemler istediğimiz kriterler sağlanıncaya kadar ya da belli bir döngü sayısınca devam eder.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harezmi.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harezmi.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harezmi.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harezmi.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harezmi.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harezmi.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harezmi.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harezmi.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harezmi.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harezmi.wordpress.com/257/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harezmi.wordpress.com&blog=3476771&post=257&subd=harezmi&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://harezmi.wordpress.com/2009/08/03/yapay-bagisiklik-algoritmalari-clonalg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6693d93a47473836cdb27b43c9e7ede8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">harezmi</media:title>
		</media:content>
	</item>
		<item>
		<title>Hebb Öğrenme Kuralı</title>
		<link>http://harezmi.wordpress.com/2009/05/25/hebb-ogrenme-kurali/</link>
		<comments>http://harezmi.wordpress.com/2009/05/25/hebb-ogrenme-kurali/#comments</comments>
		<pubDate>Mon, 25 May 2009 00:34:44 +0000</pubDate>
		<dc:creator>harezmi</dc:creator>
				<category><![CDATA[Yapay Sinir Ağlari]]></category>
		<category><![CDATA[hebb öğrenme algoritması]]></category>

		<guid isPermaLink="false">http://harezmi.wordpress.com/?p=202</guid>
		<description><![CDATA[Hebb öğrenme kuralı, YSA&#8217; larda, en eski ve en basit öğrenme kuralıdır. Eğer birbirine bağlı iki nöron, aynı anda aynı işarete sahipse, bu nöronlar arasındaki ağırlık değeri artırılır.
Algoritması
0. Tüm ağırlıkları ilkle:
 w(i)=0        (i=1 to n) 
1. Her bir eğitim vektörü (s) ve hedef vektörü (t) için  2 -4 işlemlerini yap:
2. Giriş birimlerine eğitim vektörlerini al
x(i)=s(i)        [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harezmi.wordpress.com&blog=3476771&post=202&subd=harezmi&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hebb öğrenme kuralı, YSA&#8217; larda, en eski ve en basit öğrenme kuralıdır. Eğer birbirine bağlı iki nöron, aynı anda aynı işarete sahipse, bu nöronlar arasındaki ağırlık değeri artırılır.</p>
<p style="text-align:left;"><strong><span style="text-decoration:underline;">Algoritması</span></strong></p>
<p style="text-align:left;"><span style="color:#000000;"><em>0. Tüm ağırlıkları ilkle:</em></span></p>
<p style="padding-left:30px;"><em><span style="color:#000000;"> w(i)=0        (i=1 to n) </span></em></p>
<p style="text-align:left;"><em><span style="color:#000000;">1. Her bir eğitim vektörü (s) ve hedef vektörü (t) için  2 -4 işlemlerini yap:</span></em></p>
<p style="text-align:left;padding-left:30px;"><em><span style="color:#000000;">2. Giriş birimlerine eğitim vektörlerini al</span></em></p>
<p style="text-align:left;padding-left:60px;"><em><span style="color:#000000;">x(i)=s(i)        (i=1 to n)</span></em></p>
<p style="text-align:left;padding-left:30px;"><em><span style="color:#000000;">3. Çıkış birimlerine hedef vektörlerini al</span></em></p>
<p style="text-align:left;padding-left:60px;"><em><span style="color:#000000;">y=t</span></em></p>
<p style="text-align:left;padding-left:30px;"><em><span style="color:#000000;">4. Ağırlıkları güncelle:</span></em></p>
<p style="text-align:left;padding-left:60px;"><em><span style="color:#000000;">w(i)_yeni=w(i)_eski+x(i)*y      (i=1 to n)</span></em></p>
<p style="text-align:left;padding-left:60px;"><em><span style="color:#000000;">b_yeni=b_eski+y</span><br />
</em></p>
<p style="text-align:left;">
<p style="text-align:left;">Şimdi bir örnek üzerinden algoritmamızı işletelim. Bu örnekte AND fonksiyonunu, bipolar (yani 1 ve -1) temsille öğrenebilen bir Hebb Ağı geliştireceğiz.</p>
<p style="text-align:left;"><span style="text-decoration:underline;"> x1</span> <span style="text-decoration:underline;">x2</span> <span style="text-decoration:underline;">b</span> <span style="text-decoration:underline;">t<br />
</span>1  1  1  1<br />
1 -1 1 -1<br />
-1 1 1 -1<br />
-1 -1 1 -1</p>
<p>Bu sinir ağının yapısından bahsedelim ilk önce. Bu ağ iki girişi (x1 ve x2) ve bir bias ve de bir çıkışı olan bir sinir ağıdır. Üç tane ağırlık bağlantısı (w1, w2, w3) vardır o halde.</p>
<p>Herşeyden önce ağırlıkların hepsine birden o  değerini atayalım.<br />
(w1=0, w2=0, w3=0)</p>
<p>Şimdi ilk eğitim setimizi girelim ağa. (yani x1=1, x2=1 ve b=1 ve de t=1 olan eğitim setini)</p>
<p style="text-align:left;"><span style="text-decoration:underline;"> x1</span> <span style="text-decoration:underline;">x2</span> <span style="text-decoration:underline;">b</span> <span style="text-decoration:underline;">t</span> <span style="text-decoration:underline;">w1</span> <span style="text-decoration:underline;">w2</span> <span style="text-decoration:underline;">w3</span><br />
1   1  1 1  0   0   0</p>
<p style="text-align:left;">w1_yeni=w1_eski+x1*y</p>
<p style="text-align:left;">w1_yeni=0+1*1<br />
w1_yeni=1</p>
<p style="text-align:left;">w2_yeni=0+1*1<br />
w2_yeni=1</p>
<p style="text-align:left;">b_yeni=b_eski+y<br />
b_yeni=1</p>
<p style="text-align:left;">Ağırlıklarımızın yeni değerlerini bulduktan sonra, ikinci eğitim vektörü içinde de aynı işlem yapılır.<br />
Sonra üçüncü ve daha sonra da dördüncü eğitim seti için hesaplama yapılır.</p>
<p style="text-align:left;">Eğitim bittiği vakit w1=2, w2=2 ve b=-2 olmaldır.  Şimdi test edelim:</p>
<p style="text-align:left;">x1=1, x2=-1 olsun&#8230; Çıkış nöronuna net girdi=x1*w1+x2*w2+b  ise:<br />
f_net=((1*2)+(-1*2)+(1*-2))=-2</p>
<p style="text-align:left;">f(f_net)= Eğer f_net&gt;=0 ise 1; f_net&lt;0 ise -1 dir. O halde çıkış değerimiz -1 olacaktır.</p>
<p style="text-align:left;">Bu problemi bir de polar (1 ve 0) değerler ile çözün bakalım.<br />
Sonuca ulaşacak mısınız? Kolay gelsin.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harezmi.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harezmi.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harezmi.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harezmi.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harezmi.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harezmi.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harezmi.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harezmi.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harezmi.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harezmi.wordpress.com/202/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harezmi.wordpress.com&blog=3476771&post=202&subd=harezmi&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://harezmi.wordpress.com/2009/05/25/hebb-ogrenme-kurali/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6693d93a47473836cdb27b43c9e7ede8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">harezmi</media:title>
		</media:content>
	</item>
		<item>
		<title>&#8220;Yapay Zeka Nedir?&#8221; sunumu&#8230;</title>
		<link>http://harezmi.wordpress.com/2009/05/20/yapay-zeka-nedir-sunumu/</link>
		<comments>http://harezmi.wordpress.com/2009/05/20/yapay-zeka-nedir-sunumu/#comments</comments>
		<pubDate>Wed, 20 May 2009 23:55:52 +0000</pubDate>
		<dc:creator>harezmi</dc:creator>
				<category><![CDATA[Yapay Zeka- Genel]]></category>
		<category><![CDATA[Yapay Zeka]]></category>
		<category><![CDATA[Yapay Zeka Felsefesi]]></category>

		<guid isPermaLink="false">http://harezmi.wordpress.com/?p=170</guid>
		<description><![CDATA[Yapay Sinir Ağları dersi için arkadaşlarla hazırlamış olduğumuz &#8220;Yapay Zeka Nedir?&#8221; konulu sunum umarım işinize yarar.
İndirmek için tıklayın.
Görüşmek üzere.
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harezmi.wordpress.com&blog=3476771&post=170&subd=harezmi&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Yapay Sinir Ağları dersi için arkadaşlarla hazırlamış olduğumuz &#8220;Yapay Zeka Nedir?&#8221; konulu sunum umarım işinize yarar.</p>
<p>İndirmek için <a href="http://harezmi.wordpress.com/2009/05/20/yapay-zeka-nedir-sunumu/yz/">tıklayın</a>.</p>
<p>Görüşmek üzere.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harezmi.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harezmi.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harezmi.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harezmi.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harezmi.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harezmi.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harezmi.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harezmi.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harezmi.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harezmi.wordpress.com/170/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harezmi.wordpress.com&blog=3476771&post=170&subd=harezmi&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://harezmi.wordpress.com/2009/05/20/yapay-zeka-nedir-sunumu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6693d93a47473836cdb27b43c9e7ede8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">harezmi</media:title>
		</media:content>
	</item>
		<item>
		<title>Diophantine ve Genetik Algoritmalar</title>
		<link>http://harezmi.wordpress.com/2008/08/04/diophantine-ve-genetik-algoritmalar/</link>
		<comments>http://harezmi.wordpress.com/2008/08/04/diophantine-ve-genetik-algoritmalar/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 17:16:28 +0000</pubDate>
		<dc:creator>harezmi</dc:creator>
				<category><![CDATA[Genetik Algoritmalar]]></category>
		<category><![CDATA[diophantine denklemleri]]></category>
		<category><![CDATA[genetik algoritma]]></category>

		<guid isPermaLink="false">http://harezmi.wordpress.com/?p=22</guid>
		<description><![CDATA[Genetik algoritmaları öğrenmek için çözdüğüm ilk problem &#8220;diophantine denklemleri&#8221;dir. O zamanlar Java&#8217;da bu uygulamayı gerçekleştirmiştim. 

Bu aralar Python&#8217;a merak sardım. Bari şu diophantine&#8217;yi bir de GA ile Python&#8217;da çözeyim dedim. Çok basit bir çözüm ama GA&#8217;nın da mantığını yansıtan bir örnek oldu.

Problemimiz: a+2*b+3*c+4*d=30 denklemini sağlayan a,b,c,d doğal sayılar nelerdir?
Tasarımız ise şu şekilde oldu: Her bir [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harezmi.wordpress.com&blog=3476771&post=22&subd=harezmi&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:left;"><span style="color:#000000;">Genetik algoritmaları öğrenmek için çözdüğüm ilk problem &#8220;diophantine denklemleri&#8221;dir. O zamanlar Java&#8217;da bu uygulamayı gerçekleştirmiştim. </span></p>
<p style="text-align:left;">
<p style="text-align:left;"><span style="color:#000000;">Bu aralar Python&#8217;a merak sardım. Bari şu diophantine&#8217;yi bir de GA ile Python&#8217;da çözeyim dedim. Çok basit bir çözüm ama GA&#8217;nın da mantığını yansıtan bir örnek oldu.</span></p>
<p style="text-align:left;">
<p style="text-align:left;">Problemimiz: a+2*b+3*c+4*d=30 denklemini sağlayan a,b,c,d doğal sayılar nelerdir?</p>
<p style="text-align:left;">Tasarımız ise şu şekilde oldu: Her bir kromozom aday bir çözümdür. O halde kromozomumuz 4 tane gen içerir ve her bir gen, denklemde bir bilinmeyene karşılık gelir. Uygunluk fonksiyonumuz zaten denklemin kendisidir. Çaprazlama fonksiyonumuz anneden ilk iki gen, babadan ise son iki geni alıp yavru bir kromozom oluşturur. Seçme fonksiyonu ise son derece ilkeldir. Populasyondaki tüm kromozomları uygunluk değerine göre sıralar ve belli aralıktaki kromozomlardan anne ve baba kromozomu seçer. Mutasyon işleminde ise sadece bie kromozomun ilk genine yeniden değer ataması yapılır.</p>
<p style="text-align:left;">
<p style="text-align:left;">Afiyet olsun.</p>
<pre style="text-align:left;"><span style="color:#0000ff;">
</span><span id="more-22"></span>
<span style="color:#0000ff;">

import</span> random
<span style="color:#00ff00;">
#kromozom uretilir.
#her kromozom 4 genden olusur.
#ve her gen bir bilinmeyeni temsil eder.</span>
<strong><span style="color:#0000ff;">def</span> <span style="color:#000000;">kromozomUret</span>(): </strong>
    kromozom=[random.randint(0,(30/x)) for x in range(1,5)]
    <span style="color:#0000ff;">return</span> kromozom
<span style="color:#00ff00;">
#populasyon uretilir.
#bu populasyon popSay kadar kromozom icerir.</span>
<strong><span style="color:#0000ff;">def</span> populasyonUret</strong>(popSay):
    populasyon=[]
    <span style="color:#0000ff;">while</span> popSay&gt;0:
        kromozom=kromozomUret()
        uygunlukHesap(kromozom)
        populasyon.append(kromozom)      
        popSay-=1
    <span style="color:#0000ff;">return</span> populasyon
<span style="color:#00ff00;">
#populasyondaki kromzomlar uygunluk degerine gore siralanir.
#ilk iki siradaki kromozomlar ata kromozomlar olarak secilir</span>
<strong><span style="color:#0000ff;">def </span>anneVebabaKromozomlariGetir</strong>(populasyon):
    popBoyut=len(populasyon)
    <span style="color:#0000ff;">for</span> i in range(0,popBoyut-1):
        <span style="color:#0000ff;">if</span> (populasyon[i][4]&gt;populasyon[i+1][4]):
            geciciKr=populasyon[i+1]
            populasyon[i+1]=populasyon[i]
            populasyon[i]=geciciKr

    anneIndex=random.randint(0,popBoyut/4)
    babaIndex=random.randint(0,popBoyut/4)      
    <span style="color:#0000ff;">return</span> populasyon[anneIndex],populasyon[babaIndex]

<strong><span style="color:#0000ff;">def </span>sonuclariYazdir</strong>(populasyon):
    <span style="color:#0000ff;">for</span> kr in populasyon:
        <span style="color:#0000ff;">if</span> kr[4]==0:
            <span style="color:#0000ff;">print</span> "1*",kr[0],"+ 2*",kr[1]," + 3*",kr[2]," + 4*",kr[3]," =30"

<span style="color:#00ff00;">#iterasyon sayisi, ilgili populasyonun ne kadar evrilecegini belirler.
#populasyon sayisi, kac tane kromozom olacagini belirler.
#caprazlama sayisi, her bir iterasyonda kac defa caprazlama olacagini belirler.
#mutasyon olasiligi ise caprazlama dongusunde ne kadar sayida mutasyon olacagini belirler. </span>     
<strong><span style="color:#0000ff;">def </span>havuz</strong>(iterasyonSay,populasyonSay,caprazlamaOlasilik,mutasyonOlasilik):
    populasyon=populasyonUret(populasyonSay)   
    <span style="color:#0000ff;">while</span> iterasyonSay&gt;0:
        caprazlamaSay=caprazlamaOlasilik
        mutasyonSay=mutasyonOlasilik
        cocukIndex=populasyonSay-1
        <span style="color:#0000ff;">while</span> caprazlamaSay&gt;0:    
            anneKr,babaKr= anneVebabaKromozomlariGetir(populasyon)           
            cocuk=caprazlamaYap(anneKr, babaKr)
            populasyon[cocukIndex]=cocuk
            caprazlamaSay-=1
            <span style="color:#0000ff;">if</span> mutasyonSay&gt;0:
                mutasyon(populasyon[cocukIndex])
                mutasyonSay-=1
            cocukIndex-=1
        iterasyonSay-=1
    sonuclariYazdir(populasyon)    

<span style="color:#00ff00;">#kromzom denklemi ne derecede sagliyor, bunu hesaplar.
#kromozoma uygunluk degeri olarak, 30'a olan uzakligi atanir.
#bu durumda cozumu saglayan kromozom 0 degerini alir.  </span>  
<strong><span style="color:#0000ff;">def </span>uygunlukHesap</strong>(liste):
    uygunlukDeger=liste[0]+liste[1]*2+liste[2]*3+liste[3]*4
    liste.append(uygunlukDeger-30)</pre>
<pre style="text-align:left;"><span style="color:#00ff00;">
#anne kromozomun ilk 2 geni,
#   baba kromozomun ise son 2 geni alinarak yavru birey olusturulur. </span>
<strong><span style="color:#0000ff;">def</span> caprazlamaYap</strong>(krAnne,krBaba):
    cocuk=[0,0,0,0]
    cocuk[0:2],cocuk[2:]=krAnne[0:2],krBaba[2:]
    uygunlukHesap(cocuk)  
    <span style="color:#0000ff;">return</span> cocuk
<span style="color:#00ff00;">
#mutasyon olarak kromozomun ilk genine yeniden deger atamasi yapilir</span>
<strong><span style="color:#0000ff;">def </span>mutasyon</strong>(kromozom):
    kromozom[0]=random.randint(0,20)
    uygunlukHesap(kromozom)

<span style="color:#00ff00;">#main</span>
havuz(100, 2000, 50, 5)</pre>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/harezmi.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/harezmi.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harezmi.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harezmi.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harezmi.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harezmi.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harezmi.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harezmi.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harezmi.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harezmi.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harezmi.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harezmi.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harezmi.wordpress.com&blog=3476771&post=22&subd=harezmi&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://harezmi.wordpress.com/2008/08/04/diophantine-ve-genetik-algoritmalar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6693d93a47473836cdb27b43c9e7ede8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">harezmi</media:title>
		</media:content>
	</item>
		<item>
		<title>Sekiz vezir Problemi ve Genetik Algoritmalar</title>
		<link>http://harezmi.wordpress.com/2008/08/03/sekiz-vezir-problemi-ve-genetik-algoritmalar/</link>
		<comments>http://harezmi.wordpress.com/2008/08/03/sekiz-vezir-problemi-ve-genetik-algoritmalar/#comments</comments>
		<pubDate>Sun, 03 Aug 2008 14:42:36 +0000</pubDate>
		<dc:creator>harezmi</dc:creator>
				<category><![CDATA[Genetik Algoritmalar]]></category>
		<category><![CDATA[genetik algoritma]]></category>
		<category><![CDATA[sekiz vezir]]></category>
		<category><![CDATA[Yapay Zeka]]></category>

		<guid isPermaLink="false">http://harezmi.wordpress.com/?p=15</guid>
		<description><![CDATA[İnternette genetik algoritmaların ne olduğuna dair yeterince kaynak var. Bundan dolayı ben işin sadece uygulama kısmına değineceğim. Genetik algoritmalarla ilgili bilgilere kod ve us&#8216; tan , learnartificialneuralnetworks&#8216; den ve obitko&#8216; dan ulaşabilirsiniz.

Sekiz vezir problemi içinde yeterince kaynak var. Bu bilgilere Türkçe wikipedia&#8216;dan, ekşisözlük&#8216;ten ulaşabilirsiniz. Ve bu applet de hediyemiz olsun  .

Şimdi asıl işe gelelim. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harezmi.wordpress.com&blog=3476771&post=15&subd=harezmi&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:left;">İnternette genetik algoritmaların ne olduğuna dair yeterince kaynak var. Bundan dolayı ben işin sadece uygulama kısmına değineceğim. Genetik algoritmalarla ilgili bilgilere <a href="http://kodveus.blogspot.com/search?q=genetik+algoritma">kod ve us</a>&#8216; tan , <a href="http://www.learnartificialneuralnetworks.com/geneticalg.html">learnartificialneuralnetworks</a>&#8216; den ve <a href="http://www.obitko.com/tutorials/genetic-algorithms/">obitko</a>&#8216; dan ulaşabilirsiniz.</p>
<p style="text-align:left;">
<p style="text-align:left;">Sekiz vezir problemi içinde yeterince kaynak var. Bu bilgilere Türkçe <a href="http://tr.wikipedia.org/wiki/Sekiz_vezir_bulmacas%C4%B1">wikipedia</a>&#8216;dan, <a href="http://sozluk.sourtimes.org/show.asp?t=sekiz+vezir+problemi+&amp;nr=y&amp;pt=8+queens">ekşisözlük</a>&#8216;ten ulaşabilirsiniz. Ve bu <a href="http://spaz.ca/aaron/SCS/queens/">applet</a> de hediyemiz olsun <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p style="text-align:left;">
<p style="text-align:left;">Şimdi asıl işe gelelim. Ben bu aralar bir genetik algoritmalar kütüphanesi üzerinde çalışıyorum. Bu arada da sekiz vezir problemini çözeyim, böylece kütüphaneyi de test etmiş olurum diye düşündüm. . Burada ben sadece bu problemi çözerken kullandığım sınıfları yazacağım&#8230;</p>
<p style="text-align:left;">
<p style="text-align:left;"><span id="more-15"></span><!--more--></p>
<p style="text-align:left;"><span style="color:#ff0000;">İlk olarak <strong>genetik kütüphanesi</strong>nden gelen sınıfları yazayım:</span></p>
<p style="text-align:left;"><span style="color:#00ff00;">//Tüm Gen sınıfları bu sınıftan türetilir.</span><br />
public abstract class SoyutGen implements Cloneable{</p>
<p>protected boolean _genSecildi;</p>
<p>public boolean genSecildiMi() {<br />
return _genSecildi==true;<br />
}</p>
<p>public void genSecildi() {<br />
_genSecildi=true;<br />
}</p>
<p>public void genSecilmedi(){<br />
_genSecildi=false;<br />
}</p>
<p>public Object clone(){<br />
// TODO Auto-generated method stub<br />
try {<br />
return super.clone();<br />
} catch (CloneNotSupportedException e) {<br />
// TODO Auto-generated catch block<br />
e.printStackTrace();<br />
}</p>
<p>return null;</p>
<p style="text-align:left;">}<br />
}<br />
<!--more--><br />
<span style="color:#00ff00;">//IntGen sınıfı&#8230;<br />
//Sekiz vezir probleminde her bir vezirin temsili bu sınıfın nesneleri ile yapılır.</span><br />
public class IntGen extends SoyutGen {</p>
<p>private int _deger;</p>
<p><span style="color:#000000;">public</span> IntGen(){<br />
}</p>
<p>public IntGen(int deger){<br />
_deger=deger;<br />
}</p>
<p>public void degerVer(int deger) {<br />
_deger=deger;<br />
}</p>
<p>public int  degerNe() {<br />
return _deger;<br />
}</p>
<p>public Object clone(){<br />
IntGen gen=new IntGen();<br />
gen.degerVer(this.degerNe());<br />
return gen;<br />
}</p>
<p>public String toString() {<br />
return _deger+&#8221; &#8220;;<br />
}<br />
}<br />
<!--more--><br />
<span style="color:#00ff00;">// Bu da SoyutKromozom sınıfıdır. Diger kromozom sınıfları bu sınıftan türetilir. </span><br />
public abstract class SoyutKromozom {</p>
<p>protected double _uygunlukDegeri;<br />
protected int _kromozomBoyut;<br />
protected SoyutGen[] _genler;</p>
<p>public double uygunlukDegeriNe() {<br />
return _uygunlukDegeri;<br />
}</p>
<p>public void uygunlukDegeriniVer(double deger) {<br />
_uygunlukDegeri=deger;<br />
}</p>
<p>public SoyutGen[] genleriGetir() {<br />
return _genler;<br />
}</p>
<p>public SoyutGen lokustakiGeniGetir(int lokus) {<br />
return _genler[lokus];<br />
}</p>
<p>public int genSayisiniGetir() {<br />
return _kromozomBoyut;<br />
}<br />
}<br />
<!--more--><br />
<span style="color:#00ff00;">//Kromozom sınıfı. Sekiz vezir problemindeki her bir aday cevap bir kromozomdur.<br />
//Sekiz tane gen içerecektir.</span><br />
public class Kromozom extends SoyutKromozom {</p>
<p>public Kromozom(SoyutGen[] genler){</p>
<p>_kromozomBoyut=genler.length;<br />
_genler=new SoyutGen[_kromozomBoyut];<br />
_genler=genler;<br />
}</p>
<p>public String toString() {<br />
String s=&#8221;";<br />
for(int i=0;i&lt;_kromozomBoyut;i++)<br />
s+=_genler[i].toString();<br />
return s;<br />
}</p>
<p>public SoyutGen[] genleriGetir() {<br />
// TODO Auto-generated method stub<br />
return _genler;<br />
}</p>
<p>public SoyutGen lokustakiGeniGetir(int lokus) {<br />
return _genler[lokus];<br />
}<br />
}</p>
<p style="text-align:left;"><!--more--></p>
<p style="text-align:left;"><span style="color:#00ff00;">//KromozomFactory sinif </span></p>
<p style="text-align:left;">public class KromozomFactory {</p>
<p style="text-align:left;">private static KromozomFactory fabrika = new KromozomFactory();</p>
<p>private KromozomFactory() {</p>
<p>}</p>
<p>public static KromozomFactory fabrikayiGetir() {<br />
return fabrika;<br />
}</p>
<p>public Kromozom genleriTekilOlmayanKromozomUret(String genTur, int genSay,<br />
int minDeger, int maxDeger) {<br />
Kromozom kromozom = null;</p>
<p>if (genTur.equals(&#8220;int&#8221;)) {<br />
IntGen[] genler = TekilOmayanRasgele.fabrikayiGetir()<br />
.intGenleriUret(genSay, minDeger, maxDeger);<br />
kromozom = new Kromozom(genler);<br />
}</p>
<p>else if (genTur.equals(&#8220;double&#8221;)){<br />
DoubleGen[] genler=TekilOmayanRasgele.fabrikayiGetir()<br />
.doubleGenleriUret(genSay);<br />
kromozom=new Kromozom(genler);<br />
}</p>
<p>return kromozom;<br />
}</p>
<p>public Kromozom genleriTekilOlanKromozomUret(String genTur) {<br />
Kromozom kromozom = null;</p>
<p>if (genTur.equals(&#8220;int&#8221;)) {<br />
IntGen[] genler = TekilRasgele.fabrikayiGetir().intGenleriUret();<br />
kromozom = new Kromozom(genler);<br />
}<br />
return kromozom;<br />
}<br />
}<br />
<!--more--></p>
<p style="text-align:left;"><span style="color:#00ff00;">//Bu sınıf kromozomun rasgele değerlerle ilklenmesini sağlar.<br />
//Biz sekiz vezir probleinde permütasyon kodlama yapacağız. Yani kromozomdaki her bir gen değeri diğerinde farklı olmalı, satranc tahtasında bir konum belirtmelidir.<br />
//Bir örnek:0-5-3-2-6-1-7-4<br />
//Bunun anlamı ilk vezir tahtanın ilk sutununda sıfırıncı satıra, ikinci vezir tahtanın ikinci sutununda beşinci satıra yerleşti //demektir.</span><br />
public class TekilRasgele {</p>
<p>private static TekilRasgele _rasgele=new TekilRasgele();<br />
private SoyutGen[] _temelGenler;<br />
private  int genSay;</p>
<p>private TekilRasgele(){</p>
<p>}</p>
<p>public static TekilRasgele fabrikayiGetir() {<br />
return _rasgele;<br />
}</p>
<p>public void temelGenleriAyarla(SoyutGen[] genler) {<br />
_temelGenler=genler;<br />
genSay=_temelGenler.length;<br />
}</p>
<p>public IntGen[] intGenleriUret() {</p>
<p>IntGen[] genler = null;<br />
genler = new IntGen[genSay];</p>
<p>Random ran=new Random();<br />
for (int i = 0; i &lt; genSay; i++) {<br />
genler[i]=(IntGen) _temelGenler[i].clone();<br />
}</p>
<p>for(int i=0;i&lt;genSay;i++){<br />
int konum=ran.nextInt(genSay);<br />
IntGen gecici=genler[i];<br />
genler[i]=genler[konum];<br />
genler[konum]=gecici;<br />
}</p>
<p>return (IntGen[]) genler;<br />
}<br />
}</p>
<p><span style="color:#00ff00;">//Secim fonksiyonu</span><br />
public abstract class AbstractSecimFonksiyonu {</p>
<p>protected int _popBoyut;<br />
protected SoyutKromozom[] _kromozomlar=null;</p>
<p>public void kromozomlariVer(SoyutKromozom[] kromozomlar) {<br />
_kromozomlar=kromozomlar;<br />
_popBoyut=_kromozomlar.length;<br />
}</p>
<p>public SoyutKromozom[] kromozomlariGetir() {<br />
return _kromozomlar;<br />
}<br />
public abstract int enKotuKromozomunYeriniGetir();<br />
public abstract void fonksiyonuCalistir() ;<br />
public abstract SoyutKromozom enIyiKromozomuGetir();<br />
public abstract SoyutKromozom enKotuKromozomuGetir() ;</p>
<p>}</p>
<p><span style="color:#00ff00;">//Sabit durum secimi:</span><br />
public class SabitDurumSecimi extends AbstractSecimFonksiyonu{</p>
<p>private int _bas;<br />
private int _son=1;</p>
<p>public SoyutKromozom enIyiKromozomuGetir() {<br />
if (_bas&gt;=_popBoyut)<br />
_bas=0;<br />
return _kromozomlar[_bas++];<br />
}</p>
<p>public SoyutKromozom enKotuKromozomuGetir() {<br />
if ((_popBoyut-_son)&lt;0)<br />
_son=1;<br />
return _kromozomlar[_popBoyut-_son++];<br />
}</p>
<p>public int enKotuKromozomunYeriniGetir(){<br />
int son=_popBoyut-_son;<br />
return ++son;<br />
}</p>
<p>public void fonksiyonuCalistir() {<br />
_son=1;<br />
_bas=0;<br />
for(int i=0;i&lt;_popBoyut-1;i++){<br />
for(int j=i;j&lt;_popBoyut;j++){<br />
if (_kromozomlar[i].uygunlukDegeriNe()&gt;_kromozomlar[j].uygunlukDegeriNe()){<br />
SoyutKromozom gecici=_kromozomlar[i];<br />
_kromozomlar[i]=_kromozomlar[j];<br />
_kromozomlar[j]=gecici;<br />
}<br />
}<br />
}<br />
}<br />
}<br />
<!--more--><br />
<span style="color:#00ff00;">//Caprazlama fonksiyonu arayüzü</span><br />
public interface ICaprazlamaFonksiyonu {</p>
<p>public SoyutKromozom caprazla(SoyutKromozom anne,SoyutKromozom baba);<br />
}<br />
<span style="color:#00ff00;">//Uygunluk fonksiyonu arayüzü</span><br />
public interface IUygunlukFonksiyonu {</p>
<p>public void uygunlukDegeriHesapla(SoyutKromozom kromozom);<br />
}</p>
<p><!--more--><br />
<span style="color:#00ff00;">//Havuz sınıfı.</span><br />
public class Havuz {</p>
<p>private int _popBoyut;<br />
private int _nesilSay;<br />
private String _kromozomYapi;<br />
private String _genTur;<br />
private int _genSay;<br />
private int _minDeger;<br />
private int _maxDeger;<br />
private double _mutasyonOlasiligi;<br />
private double _caprazlamaOlasiligi;<br />
private int _mutasyonSayac;<br />
private int _caprazlamaSayac;</p>
<p>private static int MUTASYONTOHUM=4;<br />
private static int CAPRAZLAMATOHUM=5;</p>
<p>private IUygunlukFonksiyonu _uygunlukFonksiyonu;<br />
private AbstractSecimFonksiyonu _secimFonksiyonu;<br />
private ICaprazlamaFonksiyonu _caprazlamaFonksiyonu;<br />
private IKromozomMutasyon _mutasyonFonksiyonu;</p>
<p>private SoyutKromozom[] _kromozomlar;<br />
private Random ran = new Random();</p>
<p>/**<br />
*<br />
* @param popBoyut<br />
* @param nesilSay<br />
* @param kromozomTur<br />
* @param kromozomYapi<br />
* @param genTur<br />
*/<br />
public Havuz(int popBoyut, int nesilSay, String kromozomTur,<br />
String kromozomYapi, String genTur) {<br />
_popBoyut = popBoyut;<br />
_nesilSay = nesilSay;<br />
_genTur = genTur;<br />
_kromozomYapi = kromozomYapi;</p>
<p>kromozomTurBelirle(kromozomTur);<br />
}</p>
<p>public void genAyarla(int genSay, int minDeger, int maxDeger) {<br />
_genSay = genSay;<br />
_minDeger = minDeger;<br />
_maxDeger = maxDeger;<br />
}</p>
<p>private void kromozomTurBelirle(String kromozomTur) {<br />
if (kromozomTur.equals(&#8220;agac&#8221;)) {<br />
_kromozomlar = new AgacKromozom[_popBoyut];<br />
}</p>
<p>else if (kromozomTur.equals(&#8220;kromozom&#8221;))<br />
{<br />
_kromozomlar = new Kromozom[_popBoyut];</p>
<p>if (_kromozomYapi.equals(&#8220;tekilOlmayan&#8221;))<br />
for (int i = 0; i &lt; _popBoyut; i++)<br />
_kromozomlar[i] = KromozomFactory.fabrikayiGetir()<br />
.genleriTekilOlmayanKromozomUret(_genTur, _genSay,<br />
_minDeger, _maxDeger);<br />
else if (_kromozomYapi.equals(&#8220;tekil&#8221;))<br />
for(int i=0;i&lt;_popBoyut;i++)<br />
_kromozomlar[i]=KromozomFactory.fabrikayiGetir()<br />
.genleriTekilOlanKromozomUret(_genTur);</p>
<p>}<br />
}</p>
<p>public void parametreAyarla(double caprazlamaOlasiligi,<br />
double mutasyonOlasiligi) {<br />
_mutasyonOlasiligi = mutasyonOlasiligi;<br />
_caprazlamaOlasiligi = caprazlamaOlasiligi;<br />
}</p>
<p>public void fonksiyonlariAyarla(IUygunlukFonksiyonu uFonk,<br />
AbstractSecimFonksiyonu sFonk,ICaprazlamaFonksiyonu cFonk,IKromozomMutasyon mFonk) {<br />
_uygunlukFonksiyonu = uFonk;<br />
_secimFonksiyonu = sFonk;<br />
_caprazlamaFonksiyonu=cFonk;<br />
_mutasyonFonksiyonu=mFonk;</p>
<p>_secimFonksiyonu.kromozomlariVer(_kromozomlar);</p>
<p>}</p>
<p>private void kromozomlarinUygunlukDegerleriniHesapla(){<br />
for(int i=0;i&lt;_popBoyut;i++){<br />
_uygunlukFonksiyonu.uygunlukDegeriHesapla(_kromozomlar[i]);<br />
//System.out.println(_kromozomlar[i].uygunlukDegeriNe());</p>
<p>}<br />
}</p>
<p>public void genetigiCalistir() {<br />
SoyutKromozom anne=null;<br />
SoyutKromozom baba=null;<br />
SoyutKromozom cocuk=null;</p>
<p>kromozomlarinUygunlukDegerleriniHesapla();<br />
_secimFonksiyonu.fonksiyonuCalistir();</p>
<p>for (int i = 0; i &lt; _nesilSay; i++) {<br />
int konum=0;<br />
for(int j=0;j&lt;(_popBoyut*_caprazlamaOlasiligi);j++){</p>
<p>//int konum=0;<br />
if (caprazlamaVarMi()){<br />
anne= _secimFonksiyonu.enIyiKromozomuGetir();<br />
baba= _secimFonksiyonu.enIyiKromozomuGetir();<br />
cocuk=_secimFonksiyonu.enKotuKromozomuGetir();<br />
cocuk=_caprazlamaFonksiyonu.caprazla(anne, baba);<br />
konum=_secimFonksiyonu.enKotuKromozomunYeriniGetir();<br />
//  System.out.println(&#8220;cc=&gt;&#8221;+konum);<br />
_kromozomlar[konum]=cocuk;<br />
}<br />
if (mutasyonVarMi()){<br />
_mutasyonFonksiyonu.mutasyon(_kromozomlar[konum]);<br />
}<br />
}<br />
kromozomlarinUygunlukDegerleriniHesapla();<br />
_secimFonksiyonu.fonksiyonuCalistir();<br />
}<br />
}</p>
<p>public void enIyiSonucuYazdir() {<br />
System.out.println(&#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8221;);<br />
_secimFonksiyonu.fonksiyonuCalistir();<br />
_kromozomlar=_secimFonksiyonu.kromozomlariGetir();<br />
for(int i=0;i&lt;_popBoyut;i++)<br />
if (_kromozomlar[i].uygunlukDegeriNe()==0){<br />
Kromozom enIyi=(Kromozom) _kromozomlar[i];<br />
System.out.println(&#8220;En iyi Sonuc=&gt;&#8221;+enIyi.toString()+&#8221; &#8220;+&#8221;Uygunluk Degeri=&gt;&#8221;+enIyi.uygunlukDegeriNe());</p>
<p>}<br />
}</p>
<p>private boolean mutasyonVarMi() {<br />
//int x=(int) (_mutasyonOlasiligi*1000);<br />
if (ran.nextInt(MUTASYONTOHUM) == MUTASYONTOHUM/2) {<br />
if ((_mutasyonOlasiligi*1000)&gt;_mutasyonSayac++);<br />
return true;<br />
}<br />
_mutasyonSayac=0;<br />
return false;<br />
}</p>
<p>private boolean caprazlamaVarMi() {<br />
if (ran.nextInt(CAPRAZLAMATOHUM) != CAPRAZLAMATOHUM/2) {<br />
if ((_caprazlamaOlasiligi*100)&gt;_caprazlamaSayac++);<br />
return true;<br />
}<br />
_caprazlamaSayac=0;<br />
return false;<br />
}<br />
}</p>
<p><span style="color:#00ff00;">//Mutasyon Fonksiyonu</span><br />
public interface IKromozomMutasyon {</p>
<p>public void mutasyon(SoyutKromozom kromzom);<br />
}</p>
<p style="text-align:left;"><!--more--></p>
<p style="text-align:left;"><span style="color:#ff0000;"><!--more--></span></p>
<p style="text-align:left;"><span style="color:#ff0000;">Buraya kadar olan tüm sınıflar şu an üzerinde çalıştığın genetik kütüphanesinde olan sınıflardır. Şimdi<br />
sekiz vezir problemini çözmek için gerekli olan bir kaç sınıf daha yazacağız.</span></p>
<p><strong>SekizVezir kütüphanesi:</strong></p>
<p><span style="color:#00ff00;">//Mutasyon fonksiyonudur.<br />
//İlgili kromozomdaki genlerin yerini rasgele değiştirerek mutasyon gerçekleştirilir.</span><br />
public class GenlerinYeriniRasgeleDegistir implements IKromozomMutasyon{</p>
<p>private Random _ran=new Random();<br />
public void mutasyon(SoyutKromozom kromzom) {<br />
Kromozom kr=(Kromozom)kromzom;<br />
int konum=_ran.nextInt(8);<br />
int konum1=_ran.nextInt(8);</p>
<p>int gecDeger=((IntGen)kr.lokustakiGeniGetir(konum)).degerNe();<br />
int gecDeger1=((IntGen)kr.lokustakiGeniGetir(konum1)).degerNe();</p>
<p>((IntGen)kr.lokustakiGeniGetir(konum)).degerVer(gecDeger1);<br />
((IntGen)kr.lokustakiGeniGetir(konum1)).degerVer(gecDeger);<br />
}<br />
}<br />
<!--more--><br />
<span style="color:#00ff00;">//Çaprazlama fonksiyonudur.</span><br />
public class RasgeleNoktaCaprazla implements ICaprazlamaFonksiyonu{</p>
<p>private Random _ran=new Random();<br />
private int[] _dizi;<br />
private SoyutGen[] _cocukGenler;<br />
private SekizVezirUygunlukFonksiyonu _uf=new SekizVezirUygunlukFonksiyonu();<br />
private static int BOYUT=8;<br />
private SoyutKromozom _kromozom;</p>
<p>public SoyutKromozom caprazla(SoyutKromozom anne, SoyutKromozom baba) {<br />
//int boyut=anne.genSayisiniGetir();<br />
caprazlamaDizisiniOlustur();</p>
<p>for(int i=0;i&lt;BOYUT;i++){<br />
if (_dizi[i]==0){<br />
_cocukGenler[i]=(SoyutGen) anne.lokustakiGeniGetir(i).clone();<br />
}else{<br />
_cocukGenler[i]=(SoyutGen) baba.lokustakiGeniGetir(i).clone();<br />
}<br />
}<br />
_kromozom=new Kromozom(_cocukGenler);<br />
_uf.uygunlukDegeriHesapla(_kromozom);<br />
kromozomKontrol();<br />
return _kromozom;<br />
}</p>
<p>private void caprazlamaDizisiniOlustur(){<br />
_dizi=new int[BOYUT];<br />
_cocukGenler=new IntGen[BOYUT];</p>
<p>for(int i=0;i&lt;BOYUT;i++)<br />
_dizi[i]=_ran.nextInt(2);<br />
}</p>
<p>private void kromozomKontrol(){<br />
IntGen[] genler= genDizisiGetir();<br />
//SoyutKromozom kr=new Kromozom(genler);<br />
int[] knt1=new int[BOYUT];<br />
int[] knt2=new int[BOYUT];</p>
<p>for(int i=0;i&lt;BOYUT;i++){<br />
for(int j=0;j&lt;BOYUT;j++){<br />
if (genler[i].degerNe()==((IntGen)_kromozom.lokustakiGeniGetir(j)).degerNe()){<br />
knt1[i]=1;<br />
knt2[j]=1;<br />
break;<br />
}<br />
}<br />
}</p>
<p>for(int i=0;i&lt;BOYUT;i++){<br />
if (knt1[i]==0){<br />
for(int j=0;j&lt;BOYUT;j++){<br />
if (knt2[j]==0){<br />
int yeniDeger=genler[i].degerNe();<br />
((IntGen)_kromozom.lokustakiGeniGetir(j)).degerVer(yeniDeger);<br />
knt2[j]=1;<br />
break;<br />
}<br />
}<br />
}<br />
}</p>
<p>}</p>
<p>private IntGen[] genDizisiGetir() {<br />
SoyutGen[] genler=new IntGen[BOYUT];<br />
for(int i=0;i&lt;BOYUT;i++){<br />
genler[i]=new IntGen(i);<br />
}<br />
return (IntGen[]) genler;<br />
}<br />
}</p>
<p><!--more--><br />
<span style="color:#00ff00;">//Sekiz vezir problemi için uygunluk fonksiyonudur.</span></p>
<p>public class SekizVezirUygunlukFonksiyonu implements IUygunlukFonksiyonu{</p>
<p>private double _puan;<br />
private int[] _referansDizi=new int[8];</p>
<p>public  void uygunlukDegeriHesapla(SoyutKromozom kromozom) {<br />
_puan=0;</p>
<p>for(int i=0;i&lt;8;i++){<br />
diziyiIlkle();<br />
referansOlustur(i);<br />
//IntGen[] genler=new IntGen[8];<br />
//genler=(IntGen[]) kromozom.genleriGetir();<br />
for(int j=i+1;j&lt;8;j++){/*<br />
if ((genler[j].degerNe()==genler[i].degerNe()+_referansDizi[j])<br />
&amp;&amp; ((7-genler[i].degerNe())&gt;=_referansDizi[j]))<br />
_puan+=1;</p>
<p>else if ((genler[j].degerNe()==genler[i].degerNe()-_referansDizi[j])<br />
&amp;&amp; ((genler[i].degerNe())&gt;=_referansDizi[j]))<br />
_puan+=1;*/<br />
//System.out.println(&#8220;********&#8221;+i+&#8221; &#8220;+j);<br />
if ((((IntGen)kromozom.lokustakiGeniGetir(j)).degerNe()==((IntGen)kromozom.lokustakiGeniGetir(i)).degerNe()+_referansDizi[j])<br />
&amp;&amp; ((7-((IntGen)kromozom.lokustakiGeniGetir(i)).degerNe())&gt;=_referansDizi[j]))<br />
_puan+=1;</p>
<p>else if ((((IntGen)kromozom.lokustakiGeniGetir(j)).degerNe()==((IntGen)kromozom.lokustakiGeniGetir(i)).degerNe()-_referansDizi[j])<br />
&amp;&amp; ((((IntGen)kromozom.lokustakiGeniGetir(i)).degerNe())&gt;=_referansDizi[j]))<br />
_puan+=1;</p>
<p>else _puan+=0;<br />
}<br />
}<br />
kromozom.uygunlukDegeriniVer(_puan);<br />
}</p>
<p>private void referansOlustur(int referansNoktasi) {<br />
for (int i = 0; i &lt; _referansDizi.length; i++) {<br />
_referansDizi[i]-=referansNoktasi;<br />
}<br />
}</p>
<p>private void diziyiIlkle() {<br />
for (int i = 0; i &lt; _referansDizi.length; i++) {<br />
_referansDizi[i]=i;<br />
}<br />
}<br />
}<br />
<!--more--><br />
<span style="color:#00ff00;">//Çaprazlama fonksiyonudur.</span><br />
public class UniformTakasCaprazlama implements ICaprazlamaFonksiyonu{</p>
<p>private SoyutGen[] _yeniGenler=new IntGen[8];<br />
private Random ran=new Random();<br />
private int[] _kontrol={1,0,1,0,1,0,1,0};</p>
<p>public SoyutKromozom caprazla(SoyutKromozom anne, SoyutKromozom baba) {<br />
int genSay=8;//anne.genSayisiniGetir();<br />
for(int i=0;i&lt;genSay;i++){<br />
//int kontrol=ran.nextInt(2);<br />
if (_kontrol[i]==1){<br />
_yeniGenler[i]=(IntGen) anne.lokustakiGeniGetir(i).clone();<br />
}<br />
else<br />
_yeniGenler[i]=(IntGen) baba.lokustakiGeniGetir(i);<br />
}</p>
<p>SoyutKromozom kr=new Kromozom(_yeniGenler);<br />
if (ran.nextInt(5)&gt;2){<br />
IKromozomMutasyon mF=new GenlerinYeriniRasgeleDegistir();<br />
mF.mutasyon(kr);<br />
}<br />
return kr;<br />
}<br />
}<br />
<!--more--><br />
<span style="color:#00ff00;">//Şimdi çalıştırma zamanı geldi.</span><br />
public class SekizVezirMain {</p>
<p>/**<br />
* @param args<br />
*/<br />
public static void main(String[] args) {<br />
IntGen[] genler=new IntGen[8];<br />
for(int i=0;i&lt;8;i++){<br />
genler[i]=new IntGen(i);<br />
}<br />
TekilRasgele.fabrikayiGetir().temelGenleriAyarla(genler);<br />
//    Kromozom[] k=new Kromozom[3];<br />
//    k[0]=KromozomFactory.fabrikayiGetir().genleriTekilOlanKromozomUret(&#8220;int&#8221;);<br />
//    System.out.println(k[0].toString());<br />
//    k[1]=KromozomFactory.fabrikayiGetir().genleriTekilOlanKromozomUret(&#8220;int&#8221;);<br />
//    k[2]=KromozomFactory.fabrikayiGetir().genleriTekilOlanKromozomUret(&#8220;int&#8221;);</p>
<p>IUygunlukFonksiyonu uF=new SekizVezirUygunlukFonksiyonu();<br />
/*    for(int i=0;i&lt;3;i++){<br />
uF.uygunlukDegeriHesapla(k[i]);<br />
System.out.println(k[i].toString());*/<br />
//    System.out.println(k[i].uygunlukDegeriNe());<br />
//}<br />
//System.out.println(&#8220;&#8212;&#8212;-çaprazla&#8212;&#8212;&#8212;-&#8221;);<br />
RasgeleNoktaCaprazla rF=new RasgeleNoktaCaprazla();<br />
//SoyutKromozom kr=rF.caprazla(k[0], k[1]);<br />
//System.out.println(kr.toString());<br />
AbstractSecimFonksiyonu sF=new SabitDurumSecimi();<br />
//sF.kromozomlariVer(k);<br />
//sF.fonksiyonuCalistir();<br />
//System.out.println(sF.enIyiKromozomuGetir().uygunlukDegeriNe()+&#8221; &#8220;+sF.enIyiKromozomuGetir().uygunlukDegeriNe());<br />
IKromozomMutasyon mF=new GenlerinYeriniRasgeleDegistir();</p>
<p>Havuz havuz=new Havuz(5000,6,&#8221;kromozom&#8221;,&#8221;tekil&#8221;,&#8221;int&#8221;);<br />
havuz.fonksiyonlariAyarla(uF, sF, rF, mF);<br />
havuz.parametreAyarla(0.6, 0.1);<br />
havuz.genetigiCalistir();<br />
havuz.enIyiSonucuYazdir();<br />
//System.out.println(k.uygunlukDegeriNe());<br />
}</p>
<p style="text-align:left;">}</p>
<p style="text-align:left;"><!--more--><!--more--><!--more--></p>
<p style="text-align:left;">
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/harezmi.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/harezmi.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harezmi.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harezmi.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harezmi.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harezmi.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harezmi.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harezmi.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harezmi.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harezmi.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harezmi.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harezmi.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harezmi.wordpress.com&blog=3476771&post=15&subd=harezmi&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://harezmi.wordpress.com/2008/08/03/sekiz-vezir-problemi-ve-genetik-algoritmalar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6693d93a47473836cdb27b43c9e7ede8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">harezmi</media:title>
		</media:content>
	</item>
	</channel>
</rss>