<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Bilgisayar Kavramları</title>
	
	<link>http://www.bilgisayarkavramlari.com</link>
	<description>www.bilgisayarkavramlari.com</description>
	<lastBuildDate>Sun, 29 Jan 2012 21:38:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/BilgisayarKavramlari" /><feedburner:info uri="bilgisayarkavramlari" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>İstatistiksel Normalleştirme (Statistical Normalisation)</title>
		<link>http://feedproxy.google.com/~r/BilgisayarKavramlari/~3/bF9sDHkgtLY/</link>
		<comments>http://www.bilgisayarkavramlari.com/2012/01/29/istatistiksel-normallestirme-statistical-normalisation/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 20:53:51 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Bilgisayar Matematiği]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/?p=6171</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Bu yazının amacı, istatistiksel normalleştirme (statistical normalization) konusunu açıklamaktır. Şayet ilgilendiğiniz konu, veri tabanlarında normalleştirme (database normalisation) ise lütfen aşağıdaki bağlantıya tıklayarak ilgili yazıya geçiniz. http://www.bilgisayarkavramlari.com/2012/01/17/normallestirme-normalisation-normalizasyon/ İstatistiksel normalleştirme, özellikle, veri madenciliği (data mining) gibi bilgisayar bilimlerinin istatistiksel veri işleme alanlarında kullanılan bir yöntemdir. Yöntemin amacı, veriler arasında farklılığın çok fazla [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER</p>
<p>Bu yazının amacı, istatistiksel normalleştirme (statistical normalization) konusunu açıklamaktır. Şayet ilgilendiğiniz konu, <a href="http://www.bilgisayarkavramlari.com/2012/01/17/normallestirme-normalisation-normalizasyon/">veri tabanlarında normalleştirme (database normalisation)</a> ise lütfen aşağıdaki bağlantıya tıklayarak ilgili yazıya geçiniz.</p>
<p><a href="http://www.bilgisayarkavramlari.com/2012/01/17/normallestirme-normalisation-normalizasyon/">http://www.bilgisayarkavramlari.com/2012/01/17/normallestirme-normalisation-normalizasyon/</a></p>
<p>İstatistiksel normalleştirme, özellikle, veri madenciliği (data mining) gibi bilgisayar bilimlerinin istatistiksel veri işleme alanlarında kullanılan bir yöntemdir. Yöntemin amacı, veriler arasında farklılığın çok fazla olduğu durumlarda verileri tek bir düzen içerisinde ele almaktır.</p>
<p>Diğer bir kullanılışı ise farklı ölçekleme sisteminde bulunan verilerin birbiri ile karşılaştırılabilmesidir. Buradaki amaç, matematiksel fonksiyonlar kullanarak, farklı sistemlerde bulunan verileri, ortak bir sisteme taşımak ve karşılaştırılabilir hale getirmektir.</p>
<p>Bu anlamda kullanılan normalleştirme fonksiyonları (normalization functions) aşağıda açıklanmıştır.<strong></strong></p>
<p><strong>1.    </strong><strong>Asgari – Azami Normalleştirmesi (Min-Max Normalisation)</strong></p>
<p>Bu yöntemde, bir grup verinin içerisindeki en büyük ve en küçük değerler ele alınır. Diğer bütün veriler, bu değerlere göre normalleştirilir. Buradaki amaç en küçük değeri 0 ve en büyük değeri 1 olacak şekilde normalleştirmek ve diğer bütün verileri bu 0-1 aralığına yaymaktır.</p>
<p><img src="data:image/png;base64,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" alt="" /></p>
<p>Yukarıda verilen formüle göre her değerin normalleştirilmiş değeri hesaplanır. Bu hesaplamanın çalışmasını bir örnek sayı dizisi üzerinde gösterelim. Örneğin sayı dizimi aşağıdaki şekilde verilmiş olsun:</p>
<p>5, 8,9,11,20, 22,24,25,27,29</p>
<p>Yukarıdaki sayıların normalleştirilmiş halleri aşağıda verilmiştir:</p>
<table style="width: 130px;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">5</p>
</td>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">0</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">8</p>
</td>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">0,125</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">9</p>
</td>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">0,166666667</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">11</p>
</td>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">0,25</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">20</p>
</td>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">0,625</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">22</p>
</td>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">0,708333333</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">24</p>
</td>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">0,791666667</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">25</p>
</td>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">0,833333333</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">29</p>
</td>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">1</p>
</td>
</tr>
</tbody>
</table>
<p>Yukarıda görüldüğü üzere en küçük sayı 0 ve en büyük sayı 1 olarak normalleştirilmiştir. Bu sayılar dışındaki sayılar ise yer aldıkları aralığa göre değerler atanır. Örneğin sayı dizimi aşağıdaki şekilde olsaydı:</p>
<p>10,15,16,17,50,51,55,56,60</p>
<p>Bu durumda normalleştirilmiş değerler aşağıdaki şekilde olacaktı:</p>
<table style="width: 130px;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">10</p>
</td>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">0</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">15</p>
</td>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">0,1</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">16</p>
</td>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">0,12</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">17</p>
</td>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">0,14</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">50</p>
</td>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">0,8</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">51</p>
</td>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">0,82</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">55</p>
</td>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">0,9</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">56</p>
</td>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">0,92</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">60</p>
</td>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">1</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Görüldüğü üzere bu yeni normalleştirme sonucunda da sayılarımız 0 ile 1 arasında değerler aldılar. Şimdi bu iki farklı sayı grubunu karşılaştırabiliriz. Örneğin ilk sayı dizimizde bulunan 25, normalleştirme sonucunda 0,83 değerini almıştır. İkinci sayı grubumuzda bulunan 51 ise, normalleştirilmiş değer olarak 0,82 değerini almıştır. Bu duruma ilk sayı dizisinde bulunan 25’in sayılar arasındaki konumu, ikinci dizide bulunan 51 ile yakındır denilebilir (en azından ikinci dizide bulunan 17 sayısına göre daha yakındır çünkü ikinci dizideki 17 sayısı 0,14 gibi çok daha farklı bir değerdir).</p>
<p>Örnekte de görüldüğü üzere iki farklı dizide bulunan sayılar, birbiri ile karşılaştırılmak istendiğinde, ortak bir sayı sistemine çevrilerek içinde bulundukları diğer sayılara göre, göreceli olarak bir değer atanmış ve karşılaştırılmıştır. İşte normalleştirme tam olarak budur</p>
<p><strong>   </strong><strong>2. Standart Skor (Standard Score):</strong></p>
<p>Diğer bir normalleştirme yöntemidir. Bir önceki yöntemde, sayılar en yüksek ve en düşük değerlere göre normalleştirilmişti. Bu yöntemde ise ortalama değer (mean value) ve <a href="../2011/05/30/standart-sapma-standard-deviation-stdev/">standart sapma (standard deviation)</a> değerleri göz önüne alınır.  Sistemde kullanılan standart sapmaya atfen, standart skor (standard score) olarak da isimlendirilir. Oldukça popüler normalleştirme yöntemlerinden birisidir. Formülü aşağıdaki şekilde yazılabilir:</p>
<p><img src="data:image/png;base64,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" alt="" /></p>
<p>Yukarıdaki denklemden de anlaşılacağı zere, bir değerin normalleştirilmesi sırasında, ortalama değere (μ) olan uzaklığı alınarak standart sapma değerine (σ) bölünür. Konunun anlaşılması için, bir önceki örnekte kullandığımız sayı dizisini yeniden işlemeye çalışalım:</p>
<table style="width: 164px;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">5</p>
</td>
<td valign="bottom" nowrap="nowrap" width="99">
<p align="right">-1,367526918</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">8</p>
</td>
<td valign="bottom" nowrap="nowrap" width="99">
<p align="right">-1,025645188</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">9</p>
</td>
<td valign="bottom" nowrap="nowrap" width="99">
<p align="right">-0,911684612</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">11</p>
</td>
<td valign="bottom" nowrap="nowrap" width="99">
<p align="right">-0,683763459</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">20</p>
</td>
<td valign="bottom" nowrap="nowrap" width="99">
<p align="right">0,341881729</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">22</p>
</td>
<td valign="bottom" nowrap="nowrap" width="99">
<p align="right">0,569802882</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">24</p>
</td>
<td valign="bottom" nowrap="nowrap" width="99">
<p align="right">0,797724035</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">25</p>
</td>
<td valign="bottom" nowrap="nowrap" width="99">
<p align="right">0,911684612</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">29</p>
</td>
<td valign="bottom" nowrap="nowrap" width="99">
<p align="right">1,367526918</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Yukarıdaki değerleri inceleyecek olursak, 5 ve 29 sayılarının normalleştirme sonucunun mutlak değeri aynı çıkmıştır. Bunun sebebi, iki sayının ortalama değer olan 17’ye olan uzaklıklarının eşit olmasıdır ( 5-17 = -12 ve 29-17 = 12) sadece yönleri farklıdır ve bu durum normalleştirme sonucunda görülmüştür.</p>
<p>Gelelim ikinci dizimizin normalleştirme sonucuna:</p>
<table style="width: 171px;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">10</p>
</td>
<td valign="bottom" nowrap="nowrap" width="106">
<p align="right">-1,251528679</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">15</p>
</td>
<td valign="bottom" nowrap="nowrap" width="106">
<p align="right">-1,016867051</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">16</p>
</td>
<td valign="bottom" nowrap="nowrap" width="106">
<p align="right">-0,969934726</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">17</p>
</td>
<td valign="bottom" nowrap="nowrap" width="106">
<p align="right">-0,9230024</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">50</p>
</td>
<td valign="bottom" nowrap="nowrap" width="106">
<p align="right">0,625764339</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">51</p>
</td>
<td valign="bottom" nowrap="nowrap" width="106">
<p align="right">0,672696665</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">55</p>
</td>
<td valign="bottom" nowrap="nowrap" width="106">
<p align="right">0,860425967</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">56</p>
</td>
<td valign="bottom" nowrap="nowrap" width="106">
<p align="right">0,907358292</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">60</p>
</td>
<td valign="bottom" nowrap="nowrap" width="106">
<p align="right">1,095087594</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Bir önceki normalleştirme sonucunda en büyük ve en küçük sayıların sadece yönü farklıyken bu sefer değerlerde farklılık oldu. Bunun sebebi iki sayının ortalama değere olan uzaklığının farklılaşmasıdır. Bu ikinci dizideki ortalama değer 36.667 olduğu için iki değer farklı olarak normalleştirilmiştir.</p>
<p>Bir önceki normalleştirme olan asgari / azami normalleştirmede bu fark görülememekteydi. Diğer bir deyişle asgari / azami normalleştirme, en büyük sayıyı hep 1 ve en küçük sayıyı hep 0 olarak kabul edip, diğer sayıları bu 0-1 aralığına yerleştirmekteydi, z-skor normalleştirmesinde ise sayılar ortalama değere göre uzaklıklarına göre normalleştirilmektedir. Ayrıca standart sapmaya bölünerek, sayılar arasındaki hareketlilik (değişim hızı) ortalamaya olan uzaklığı normalize etmektedir.</p>
<p>&nbsp;</p>

<p class="sayac_bilgi">19 views</p>

<p><a href="http://feedads.g.doubleclick.net/~a/1jGqdpXeRZfECZ4d9VDWmWNHCTg/0/da"><img src="http://feedads.g.doubleclick.net/~a/1jGqdpXeRZfECZ4d9VDWmWNHCTg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/1jGqdpXeRZfECZ4d9VDWmWNHCTg/1/da"><img src="http://feedads.g.doubleclick.net/~a/1jGqdpXeRZfECZ4d9VDWmWNHCTg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/bF9sDHkgtLY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2012/01/29/istatistiksel-normallestirme-statistical-normalisation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2012/01/29/istatistiksel-normallestirme-statistical-normalisation/</feedburner:origLink></item>
		<item>
		<title>Filozofların Akşam Yemeği (Dining Philosophers)</title>
		<link>http://feedproxy.google.com/~r/BilgisayarKavramlari/~3/gCkhktiLA5A/</link>
		<comments>http://www.bilgisayarkavramlari.com/2012/01/22/filozoflarin-aksam-yemegi-dining-philosophers/#comments</comments>
		<pubDate>Sun, 22 Jan 2012 04:01:36 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[işletim sistemleri]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/?p=6162</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Bu yazının amacı, eş zamanlı işlemlerin (concurrent processes) yönetimini anlatmak için geliştirilmiş bir örnek olan yemek yiyen filozoflar konusunu açıklamaktır. Eş zamanlı işlemler, işletim sistemleri (operating systems), ağ programlama (network programming) gibi pek çok bilgisayar bilimi konusunda geçmektedir. Yemek yiyen filozoflar örneği, literatüre Dijkstra tarafından kazandırılmıştır ve eş zamanlı işlem [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER</p>
<p>Bu yazının amacı, eş zamanlı işlemlerin (concurrent processes) yönetimini anlatmak için geliştirilmiş bir örnek olan yemek yiyen filozoflar konusunu açıklamaktır. Eş zamanlı işlemler, işletim sistemleri (operating systems), ağ programlama (network programming) gibi pek çok bilgisayar bilimi konusunda geçmektedir.</p>
<p>Yemek yiyen filozoflar örneği, literatüre Dijkstra tarafından kazandırılmıştır ve eş zamanlı işlem yönetimini (concurrent process management) sembolize eder.</p>
<p>Öncelikle örneği anlatarak konuya başlayalım. Örneğe göre, ikiden fazla ( örnek için n kadar kabul edilebilir) filozof, bir yuvarlak masanın etrafına dizilerek yemek yerler. Literatürde örnek iki şekilde anlatılmaktadır ve orijinalinde filozoflar pirinç pilavı yemektedir. Buna göre pirinç yemek için iki adet yemek sopası (chopstick) gerekmektedir. Çinlilerin yemek yerken kullandıkları sopaları düşünebilirsiniz. Tek sopa ile yemek yenmesi imkansızdır ve her filozofun en az iki sopaya ihtiyacı vardır. Olayın daha iyi anlaşılması için aşağıdaki şekilde bu durum tasvir edilmiştir:</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/012212_0401_Filozoflarn1.png" alt="" /></p>
<p>Şekilde de görüldüğü üzere, başlangıç durumunda, her filozofun iki yanında birer sopa durmaktadır.</p>
<p>Örneğin biraz daha batı dünyasına uyarlanmış halinde ( buna göre batıda çatal kullanılmaktadır), her filozof makarna yemek ister ancak makarna yemek için en az iki çatala ihtiyaç vardır. Filozofların iki yanında birer çatal olduğuna göre problem bir önceki pirinç ve Çinlilerin yemek sopası probleminden bir farkı kalmaz.</p>
<p>Problemde, yukarıda anlatılanlara ilave olarak, filozofların belirli bir süre düşünme süreci bulunur.</p>
<p>Problemin buna göre filozofların hepsi örneğin sağındaki sopayı alırsa, hepsinde birer sopa olacak ve yemek yiyemeyeceklerdir. Şayet hepsi iki yanındakini birden almaya kalkarsa, bu durumda, eş zamanlı işlemlerde karşılaşılan yarış durumu (racing condition) ortaya çıkacaktır ve hangisi önce davranırsa (ki bu konuda bir garantimiz bulunmamaktadır) o yemeğini yiyebilecektir. Ve belki de hepsi birer sopa alacağı için yine hiçbirisi yemek yiyemeyecektir. Şayet hepsi birden sopalarını bir diğeri yesin diye bırakırsa, bu durumda yine hiçbirisi yiyemeyecektir. Bu tip problemler, genelde<a href="http://www.bilgisayarkavramlari.com/2008/11/19/kitlik-starvation/"> kıtlık problemi (starvation) olarak</a> düşünülebilir. Buna göre her filozofun yemek yeme ihtimali bulunmaktadır ancak hiçbir şekilde yiyeceği garanti edilmemektedir. Örneğin filozoflardan birisi her durumda aç kalabilir ve asla sıra kendisine gelmeyebilir.</p>
<p>Problemde karşılaşılan diğer bir sorun ise ölümcül kilitlenmedir (deadlock). Yanlış bir tasarım sonucunda, tek çatal alan ve çatalı bırakmak için diğer filozofun bırakmasını bekleyen bir filozof sistemi kilitleyebilir. Bu da problemde bulunan ikinci risktir.</p>
<p>Son olarak problemin tanımında, filozoflar birbiri ile konuşamaz kuralı getirilmiştir. Bu kural önemli bir kural olmakla birlikte, aşağıdaki çözümlerin çoğunda bu kuralın ihlal edildiği görülebilir. Aslında filozoflar birbiriyle çatallar üzerinden iletişim kurmaktadır. Örneğin sağındaki veya solundaki filozofun o anda çatalı alıp almaması, yanındaki filozoflar hakkında bilgi vermekte ve bu da üstü kapalı bir iletişim olarak kabul edilmektedir. Aşağıdaki çözümlerin tamamında iletişim sadece çatalların durumuna göre sağlanmaktayken, sadece son çözüm olan chandy misra çözümünde, filozoflar doğrudan birbiri ile iletişime geçebilmektedir.</p>
<p>Problemin çözümü için farklı algoritmalar geliştirilmiştir. Bu algoritmalar aşağıda başlıklar altında anlatılacaktır.<strong></strong></p>
<p><strong>1. Rastgele süre çözümü (Random Solution)<br />
</strong></p>
<p>Bu çözümde, filozofların problemi çözmek için tamamen rastgele davranması öngörülür. Filozoflar, bir çatal aldıktan sonra ikincisini alabilirse yemeğini yer. Şayet ikinci çatalı alamazsa rastgele bir süre bekler ve bu süre içinde ikinci çatalın boşalmasını bekler. Şayet bu süre içerisinde diğer çatal, yanındaki filozof tarafından bırakılırsa, çatalı alır ve yemeğini yer. Şayet beklediği bu rastgele süre boyunca ikinci çatal bırakılmazsa bu durumda yemeğini yiyemeden elinde tuttuğu çatalı diğer filozofun yemesi için masaya geri bırakır.</p>
<p>Bu çözümde dikkat edileceği üzere, işlem tamamen rastgelelik üzerine kuruludur. Buna göre sistem tam başarı ile çalışmayabilir. Hatta sistemin çalışacağının hiçbir şekilde garantisi yoktur.</p>
<p>Çözüm yönteminin en önemli özelliği, çözümün gerçeklemesinin (kodlamasının) diğer bütün sistemlere göre çok daha kolay olmasıdır.</p>
<p><strong>2. Garson çözümü (Conductor Solution)<br />
</strong></p>
<p>Problemin bir seviye daha karmaşık ancak yine de basit bir çözümü, masanın etrafında bir garsonun (literatürde conductor ismi verilmiştir ve bu yüzden conductor solution olarak geçer) dolaşmasıdır.</p>
<p>Garson, sürekli olarak masada boş duran ve filozoflar tarafından yemek için kullanılan çatalların sayılarını takip etmektedir. Bir şekilde her filozof, masadan çatal alabilmek için garsonun iznini istemek zorundadır. Şayet garson izin vermezse filozof masadan çatal alamaz. Bu çözümde filozofların <a href="http://www.bilgisayarkavramlari.com/2008/11/19/kitlik-starvation/">kıtlık problemi (starvation)</a> ile karşılaşmaları engellenir çünkü mantıklı bir garson tasarımı, bütün filozoflara yemek imkanı tanır. Aynı zamanda <a href="http://www.bilgisayarkavramlari.com/2008/11/20/kilitlenme-deadlock/">ölümcül kilitlenme (deadlock)</a> ihtimali de çözülmüştür çünkü garson hiçbir filozofu sonsuza kadar bekletmez. Yani filozofların birbirini bekleyerek sonsuza kadar yaşlanması sorunu çözülmüştür.</p>
<p>Çözümün daha iyi anlaşılabilmesi için, garsonun, saat yönünde masada döndüğünü, düşünelim. O anda işaretlediği filozof yemek yiyor, sonraki yemiyor sonraki yiyor ve böylece kaç filozof farsa, sırayla bir yiyor bir yemiyor şeklinde düşünülebilir. Bu durumda her filozofun yemek yemek için yeterli çatalı (veya sopası) bulunuyor demektir. Sonra garson, sırasıyla bir yönde (örneğin saat yönünde) dönerek masayı dolaşmakta ve sıradaki filozofa yemek yedirmekte (ve dolayısıyla sıradaki filozoftan sonraki yememekte ve sonraki yemekte ve böylece bütün masadakiler bir yer bir yemez şeklinde işaretlenmektedir).<strong></strong></p>
<p><strong>3. Monitör Çözümü (Monitor Solution)<br />
</strong></p>
<p>Bu çözüm, bir önceki garson çözümüne çok benzemektedir. Amaç sırasıyla her filozofun bir yiyen bir de yemeyen şeklinde sıralanmasıdır. Burada her filozof belirli bir sırayla sıralanmaktadır (örneğin saat yönünde veya saat yönünün tersi istikamette) ardından kendinden önceki filozofun durumunu kontrol ederek yemek yiyorsa yemez, kendinden önceki filozof yemek yemiyorsa bu durumda kendisi yemek yer.</p>
<p>Tek sayıda filozof olması durumunda yemek yeme eyleminin masada bir dalga şeklinde bir noktadan başlayarak sürekli döndüğü görülebilir. Şayet filozof sayısı çift ise bu durumda sürekli aynı filozoflar yemek yerken diğer filozoflar ölecektir. Bir çözüm olarak, şayet toplam filozof sayısı çift ise, sırasıyla tek ve çift filozoflara yemek yedirmek bir çözüm olabilir. Örneğin önce 1,3,5 numaralı filozoflar yemek yerken, sonra 2,4,6 numaralı filozoflar yemek yiyebilir.<strong></strong></p>
<p><strong>4. Chandy Misra Çözümü (Chandy Misra Solution)<br />
</strong></p>
<p>Bu çözüm, geliştiren iki kişinin ismi ile anılmaktadır (K. Mani Chandy ve J. Misra). Çözümün en önemli özelliği, merkezi bir karar mekanizmasını ortadan kaldırması ancak buna karşılık, filozoflar birbiri ile konuşamaz kuralını çiğnemesidir.</p>
<p>Çözüm aşağıdaki 4 adımdan oluşmaktadır denilebilir:</p>
<ol>
<li>Her filozof ikilisi için bir çatal üretilir ve bu çatal en düşük sayı sahibi olan filozofa verilir. Her çatal kirli veya temiz olarak işaretlenebilir ve başlangıç durumunda bütün çatallar kirlidir.</li>
<li>Bir filozof, bir kaynak kümesini kullanmak istediğinde (yani yemek yemek istediğinde), komşusu olan çatalları kullanmak zorundadır. Elinde olmayan (ihtiyacı olan) bütün çatallara bir talep yollar.</li>
<li>Bir filozof, elindeki bir çatal için talep aldığında, şayet elindeki çatal temizse kullanmaya devam eder, şayet çatal kirli ise, çatalı masaya koyar. Ayrıca masaya konan çatal temiz olarak işaretlenerek konulur.</li>
<li>Bir filozof yemek yedikten sonra çatalı kirli olarak işaretler. Şayet bir filozof, daha önce bir çatalı talep ettiyse, çatalı temzileyerek masaya koyar.</li>
</ol>
<p>Yukarıdaki algoritma adımlarını şu şekilde anlamak mümkündür. Öncelikle bütün çatallara bir işaret getiriliyor. Buna göre bir çatal, kirli veya temiz olabiliyor. Çatalın talep edilmesi ve edilmemesi arasındaki fark, bu işaret ile belirleniyor. Üzerinde talep olmayan çatallar temiz olarak tutulurken, üzerinde bir filozofun talebi bulunması halinde kirli oluyor. Bu durumda ikinci bir filozofun talepte bulunması engelleniyor. Her çatal sadece talep eden filozof tarafından kullanılacağı için de kullanma işlemi öncesinde tek bir filozofa atama yapılmış oluyor. Ayrıca filozofların talep işleminin gerçekleşebilmesi için çatal kümesinin (iki çatalın birden) atamasının yapılması gerekmektedir. Şayet tek bir çatal ataması yapılırsa bu durumda çatal filozofa ayrılmadan diğer filozofun kullanımı için serbest olmuş oluyor.</p>
<p>Burada akla, acaba bu çatal ayırımı sırasında, problemin orjinalinde bulunan kilitlenme ihtimali bulunmaz mı? Şeklinde bir soru gelebilir. Bu soru aslında mantıklı bir soru olmakla birlikte, kilitlenme probleminin önüne geçmek için, algoritma tasarımında bulunan en küçük numaraya sahip filozof koşulu getirilmiştir. Yani filozofların hepsi aynı önceliğe sahip olduğu durumlarda bir kilitlenme ihtimali bulunmakla birlikte, bu ihtimali bertaraf etmek için her filozofa bir numara verilmiş ve bu numaraya göre en düşük değere sahip filozof öncelikli olmuştur. Peki sürekli bu filozof yemek yiyerek diğerlerini bir kıtlığa sokabilir mi? Bu durumda kirli ve temiz çatal ataması ile engellenmiştir.</p>

<p class="sayac_bilgi">74 views</p>

<p><a href="http://feedads.g.doubleclick.net/~a/MbEi5lgUI8NvTWZcqkJfjUvapEU/0/da"><img src="http://feedads.g.doubleclick.net/~a/MbEi5lgUI8NvTWZcqkJfjUvapEU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/MbEi5lgUI8NvTWZcqkJfjUvapEU/1/da"><img src="http://feedads.g.doubleclick.net/~a/MbEi5lgUI8NvTWZcqkJfjUvapEU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/gCkhktiLA5A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2012/01/22/filozoflarin-aksam-yemegi-dining-philosophers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2012/01/22/filozoflarin-aksam-yemegi-dining-philosophers/</feedburner:origLink></item>
		<item>
		<title>Encoder (Kodlayıcı)</title>
		<link>http://feedproxy.google.com/~r/BilgisayarKavramlari/~3/6zWFF-dF8Cc/</link>
		<comments>http://www.bilgisayarkavramlari.com/2012/01/19/encoder-kodlayici/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 03:54:00 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Donanım ( Hardware )]]></category>
		<category><![CDATA[Mantık Devreleri (Logic Circuits)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/?p=6150</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Bu yazının amacı, bir mantıksal devre elemanı olan kolayıcının (encoder) çalışma mantığını ve tasarımını açıklamaktır. Basit bir kodlayıcı, kod çözücünün (decoder) tersine üssel işlemi geri alır. Örneğin bir kod çözücüde, yapılan işlem 2n şeklinde gelen girdinin (input) üstünü almaktır. 3&#215;8 bir kod çözücüde, gelen 3 bitlik girdinin (input) değeri n [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER</p>
<p>Bu yazının amacı, bir mantıksal devre elemanı olan kolayıcının (encoder) çalışma mantığını ve tasarımını açıklamaktır.</p>
<p>Basit bir kodlayıcı, <a href="http://www.bilgisayarkavramlari.com/2007/12/09/kod-cozucu-decoder/">kod çözücünün (decoder)</a> tersine üssel işlemi geri alır. Örneğin bir kod çözücüde, yapılan işlem 2<sup>n</sup> şeklinde gelen girdinin (input) üstünü almaktır. 3&#215;8 bir kod çözücüde, gelen 3 bitlik girdinin (input) değeri n olarak kabul edilirse, kod çözücü bu değere göre 8 farklı çıktıdan (output) bir tanesini seçer.</p>
<p>Kodlayıcı ise bu işlemin tam tersi yönde 8 farklı girdiden birisinden sinyal gelmesi halinde 3 çıktıdan (output) ilgili ihtimalleri işaretleyerek üst alma işleminin tersini (logaritma) yapar.</p>
<p>Örneğin aşağıda bir 4&#215;2 kodlayıcının (encoder) <a href="http://www.bilgisayarkavramlari.com/2007/12/08/dogruluk-cizelgesi-truth-table/">doğruluk tablosu (truth table)</a> verilmiştir:</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011912_0355_EncoderKodl1.png" alt="" /></p>
<p>Tabloda I ile ifade edilen kolonlar girdi (input) ve O ile ilfade edilen kolonlar ise çıktı (output) değerlerdir. Örneğin 0100 değerinin 10&#8242;luk tabanda karşılığı 4 olarak yazılabilir. Bu değerin tablodaki çıktı değeri (output) 10 olarak okunacaktır. 10 değeri ise 10&#8242;luk tabanda 2 olarak yazılabilir. Gerçekten de log<sub>2</sub>4 = 2 olmaktadır ve kodlayıcının bir logaritma işlemi olduğu görülebilir.</p>
<p>Yukarıdaki tabloyu gerçekleyen kodlayıcının genelde kullanlıan blok çizimi aşağıdaki şekildedir:</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011912_0355_EncoderKodl2.png" alt="" /></p>
<p>Ayrıca doğruluk tablosunda görülebileceği üzere, V biti (valid bit, kabul edilebilir) kullanılarak tanımsız durumlar ortadan kaldırılabilir. Örneğin logaritmanın tanımından bilindiği üzere 0&#8242;ın logaritması tanımsızdır. Bu durumda bütün girdi (input) bitlerinin 0 olması durumunda çıktı belirsiz olacaktır. İşte bu belirsizlik durumunda çıktının kabul edilemez (invalid) olduğunu ifade için V biti 0 değerinde verilebilir.</p>
<p>Şayet bir <a href="http://www.bilgisayarkavramlari.com/2007/12/09/kod-cozucu-decoder/">kod çözücü (decoder)</a> ile bir kodlayıcı (encoder) arka arkaya bağlanırsa, sistemin girdi değeri, çıktı değeri olarak okunur.</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011912_0355_EncoderKodl3.png" alt="" /></p>
<p>Yukarıdaki devrede, soldan verilen girdi sağdan değişmeden okunurken devre tam tersine çevrilerek, sağdan bir girdi verilmesi halinde de soldan okunacaktır.</p>
<p>Kodlayıcı devresini, kapılar kullanarak yapmak da mümkündür. Örnek bir tasarım aşağıda verilmiştir:</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011912_0355_EncoderKodl4.png" alt="" /></p>
<p>Doğruluk tablosunun <a href="http://www.bilgisayarkavramlari.com/2007/12/07/karnaugh-haritasi-karnaugh-map/">karnaugh haritasını (karnaugh map)</a> çizersek:</p>
<p>O<sub>0</sub> için</p>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 75px;" />
<col style="width: 67px;" />
<col style="width: 66px;" />
<col style="width: 66px;" />
<col style="width: 66px;" /></colgroup>
<tbody valign="top">
<tr>
<td style="padding-left: 7px; padding-right: 7px; border: solid 0.5pt;"></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">I<sub>1</sub>I<sub>0</sub>= 00</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">I<sub>1</sub>I<sub>0</sub>= 01</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">I<sub>1</sub>I<sub>0</sub>= 11</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">I<sub>1</sub>I<sub>0</sub>= 10</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">I<sub>3</sub>I<sub>2</sub>= 00</td>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">0</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">1</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">I<sub>3</sub>I<sub>2</sub>= 01</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">0</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">I<sub>3</sub>I<sub>2</sub>= 11</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">I<sub>3</sub>I<sub>2</sub>= 10</td>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
</tr>
</tbody>
</table>
<p>Yukarıdaki haritada, sonucu etkilemeyen (kodlayıcının çalışması belirsiz ve hiçbir şekilde girdi olarak gelemeyecek değerler) X ile ifade edilmiştir. Bu tip kodlayıcılara (encoder) özel olarak öncelik kodlayıcısı (priority encoder) ismi de verilmektedir. Bu haritada X değerleri 1 veya 0 olarak kabul edilebilir. O halde yukarıdaki tabloda mavi ile işaretlenmiş olan 4 ihtimal tek başına alınarak O<sub>0</sub> için I<sub>0</sub>&#8216;I<sub>2</sub>&#8216; sonucuna varılabilir.</p>
<p>O<sub>1</sub> için</p>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 75px;" />
<col style="width: 67px;" />
<col style="width: 66px;" />
<col style="width: 66px;" />
<col style="width: 66px;" /></colgroup>
<tbody valign="top">
<tr>
<td style="padding-left: 7px; padding-right: 7px; border: solid 0.5pt;"></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">I<sub>1</sub>I<sub>0</sub>= 00</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">I<sub>1</sub>I<sub>0</sub>= 01</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">I<sub>1</sub>I<sub>0</sub>= 11</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">I<sub>1</sub>I<sub>0</sub>= 10</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">I<sub>3</sub>I<sub>2</sub>= 00</td>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">0</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
<td style="background: white; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">0</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">I<sub>3</sub>I<sub>2</sub>= 01</td>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">I<sub>3</sub>I<sub>2</sub>= 11</td>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">I<sub>3</sub>I<sub>2</sub>= 10</td>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
<td style="background: white; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">X</td>
</tr>
</tbody>
</table>
<p>Yukarıdaki tabloda da benzer şekilde O<sub>1</sub> için I<sub>1</sub>&#8216;I<sub>0</sub>&#8216; sonucuna varılabilir.</p>
<p>Yukarıdaki sonuçlara göre bir kodlayıcıyı (encoder) aşağıdaki şekilde çizebiliriz:</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011912_0355_EncoderKodl5.png" alt="" /></p>

<p class="sayac_bilgi">51 views</p>

<p><a href="http://feedads.g.doubleclick.net/~a/HkPnLDwgxhCIOQx7pAq5JYc9PNk/0/da"><img src="http://feedads.g.doubleclick.net/~a/HkPnLDwgxhCIOQx7pAq5JYc9PNk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/HkPnLDwgxhCIOQx7pAq5JYc9PNk/1/da"><img src="http://feedads.g.doubleclick.net/~a/HkPnLDwgxhCIOQx7pAq5JYc9PNk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/6zWFF-dF8Cc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2012/01/19/encoder-kodlayici/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2012/01/19/encoder-kodlayici/</feedburner:origLink></item>
		<item>
		<title>Normalleştirme (Normalisation, Normalizasyon)</title>
		<link>http://feedproxy.google.com/~r/BilgisayarKavramlari/~3/X8xygWoVmT4/</link>
		<comments>http://www.bilgisayarkavramlari.com/2012/01/17/normallestirme-normalisation-normalizasyon/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 17:15:30 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Bilgisayar Kavramları]]></category>
		<category><![CDATA[Veri Tabanı (Database)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/?p=6142</guid>
		<description><![CDATA[Yazan: Şadi Evren ŞEKER Bu yazının amacı, site üzerinde daha önceden anlatılmış olan birinci normal form (1NF), ikinci normal form (2NF) ve üçüncü normal form (3NF) konularını kapsayan bir örnek çözmektir. Genel olarak çok sayıda sınav sorusunda normalleştirme için hayali bazı tablolar sunulur ve bu tabloların normalleştirilmesi (normalizasyonu) istenir. Örnek olarak aşağıdaki tabloyu ele alalım. [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan: Şadi Evren ŞEKER</p>
<p>Bu yazının amacı, site üzerinde daha önceden anlatılmış olan <a href="http://www.bilgisayarkavramlari.com/2009/01/16/ilk-normal-sekil-first-normal-form-1nf/">birinci normal form (1NF),</a><br />
<a href="http://www.bilgisayarkavramlari.com/2009/01/16/ikinci-normal-sekil-second-normal-form-2nf/">ikinci normal form (2NF)</a> ve <a href="http://www.bilgisayarkavramlari.com/2009/03/05/ucuncu-normal-sekil-third-normal-form-3nf/">üçüncü normal form (3NF)</a> konularını kapsayan bir örnek çözmektir.</p>
<p>Genel olarak çok sayıda sınav sorusunda normalleştirme için hayali bazı tablolar sunulur ve bu tabloların normalleştirilmesi (normalizasyonu) istenir.</p>
<p>Örnek olarak aşağıdaki tabloyu ele alalım.</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011712_1716_Normalletir1.png" alt="" /></p>
<p>Yukarıdaki tabloda görüldüğü üzere 4 adet kolon ve her kolonda çeşitli sayılar ile gösterilmiş değerler bulunmaktadır. Bu tablonun üzerinde normalleştirme yapmaya başlamadan önce bazı konuları açıklayalım.</p>
<p>Örneğin yukarıdaki tabloda bir <a href="http://www.bilgisayarkavramlari.com/2009/01/16/aday-anahtar-candidate-key/">aday anahtar (candidate key)</a> bulmamız istense ne yaparız?</p>
<p>Bir aday anahtar bulma işlemi için en kolay yol, tablonun birincil anahtarını (primary key) bulmaktan geçer. O halde sorumuzu öncelikle tablonun birincil anahtarını (primary key) bulmak üzere değiştirelim:</p>
<p>Yukarıdaki tabloda, satır bazlı olarak tekrar etmeyen bir kolon var mıdır?</p>
<p>Cevap : D kolonudur. Dikkat edilirse D kolonu, her satırda farklı bir değer almıştır. Demek ki tek bir kolonun birincil anahtar (primary key) olmasını istersek, D kolonunu seçmemiz yerinde olur.</p>
<p>Peki birden fazla kolon alınması durumunda hangi kolonları seçebiliriz?</p>
<p>Cevap: D kolonunun zaten her satırda tekrarsız olduğunu (unique) biliyoruz. Dolayısıyla D kolonu ile birlikte hangi kolon alınırsa alınsın bu kolonlar da tekrarsız (unique) olacaktır.</p>
<p>Ancak acaba D kolonunu almadan bir asil anahtar ( primary key) bulunabilir mi?</p>
<p>Cevap: Evet vardır. Örneğin (A,B) ikilisi de tablodaki her satırda tek başına tekrarsız (unique) olma özelliğindedir. Bir önceki cevabımızdan çıkardığımız üzere, (A,B) ikilisi ile birlikte alınacak diğer bir kolon da (örneğin C ) bu durumda birincil anahtar (primary key) olma özelliğini taşıyacaktır.</p>
<p>Yukarıdaki cevapların doğru olmasına karşılık, birincil anahtar (primary key) seçimi yapılırken en az sayıda kolonu içeren alternatifin seçilmesi yerinde olur. Bu anlamda, yukarıdaki anahtar ihtimallerinin hepsi birer <a href="http://www.bilgisayarkavramlari.com/2009/01/16/aday-anahtar-candidate-key/">aday anahtar (candidate key</a>) olarak değerlendirilebilir ancak birincil anahtar olarak D kolonun tek başına seçilmesi yerinde olur.</p>
<p>Gelelim bir diğer soruya:</p>
<p>Yukarıdaki tabloya, aşağıdaki şekilde ilave bir kolon eklediğimizi düşünelim:</p>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 56px;" />
<col style="width: 57px;" />
<col style="width: 57px;" />
<col style="width: 57px;" />
<col style="width: 47px;" /></colgroup>
<tbody valign="top">
<tr style="background: #8064a2;">
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>A</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>B</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>C</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>D</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;"><span style="color: white;"><strong>E</strong></span></td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">X</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">3</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">Y</td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">4</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">Y</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">5</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">X</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>Yeni tablomuzda bulunan fonksiyonel bağlılıkları (functional dependency) çıkarmaya çalışalım:</p>
<p>Öncelikle, biliyoruz ki D kolonu birincil anahtardır (primary key) dolayısıyla zaten D kolonu bütün kolonların fonksiyonel olarak bağımlı olduğu bir kolondur ve aşağıdaki satırların tamamı doğrudur:</p>
<p>D <span style="font-family: Wingdings;">à</span> A , D <span style="font-family: Wingdings;">à</span>B , D<span style="font-family: Wingdings;">à</span> C , D<span style="font-family: Wingdings;">à</span> E</p>
<p>Ayrıca bir dipnot olarak, her kolonun kendisine fonksiyonel bağlı olduğunu söyleyebiliriz (self functional dependency), dolayısıyla D<span style="font-family: Wingdings;">à</span>D ifadesi de doğrudur ancak bu ifade, genelde veritabanı normalleştirmesinde bir anlam ifade etmediğinden göz ardı edilir.</p>
<p>Gelelim diğer fonksiyonel bağımlılıklara. Tabloda ikili üçlü ve dörtlü fonksiyonel bağlılıklar bulunabilir. Örneğin yukarıdaki sorularda (A,B) çiftinin de bir aday anahtar olduğundan bahsetmiştik. Bu durumda (A,B) <span style="font-family: Wingdings;">à</span> C, (A,B) <span style="font-family: Wingdings;">à</span> D , (A,B) <span style="font-family: Wingdings;">à</span> E ifadeleri de doğru olacaktır. Hatta D ile birlikte herhangi bir kolonun alınması da doğrudur. Örneğin (C,D) <span style="font-family: Wingdings;">à</span> A, (C,D) <span style="font-family: Wingdings;">à</span> B , (C,D) <span style="font-family: Wingdings;">à</span> E ifadeleri de doğrudur. Benzer şekilde D bir aday anahtar, birden fazla kolon birleşimini de fonksiyonel olarak ifade eder. Örneğin D <span style="font-family: Wingdings;">à</span> (A,B,C) veya D<span style="font-family: Wingdings;">à</span> (B,C,E) veya (A,B) <span style="font-family: Wingdings;">à</span> (C,D,E) ifadelerinin tamamı da doğru kabul edilebilir.</p>
<p>Ancak acaba tek kolon seviyesinde başka fonksiyonel bağımlılık bulunabilir mi? Bu sorunun cevabı aslında bir kolon değişirken diğer bir kolonun değerlerinin bu değişimi yansıtıp yansıtmadığıdır.</p>
<p>Örneğin yukarıdaki tabloda, B ve E kolonları birlikte değişmektedir. Diğer bir deyişle B(1) <span style="font-family: Wingdings;">à</span> E(X) ve B(2)<span style="font-family: Wingdings;">à</span> E(Y) bağlantısı bulunmaktadır. Yani B tablosundaki 1 ile E tablosundaki X ve B tablosundaki 2 ile E tablosundaki Y arasında bir birliktelik söz konusudur.</p>
<p>Bu anlamda, B<span style="font-family: Wingdings;">à</span>E ve E<span style="font-family: Wingdings;">à</span>B ifadeleri doğrudur. Ancak konunun daha iyi anlaşılması için tabloda ufak bir oynama yapalım:</p>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 56px;" />
<col style="width: 57px;" />
<col style="width: 57px;" />
<col style="width: 57px;" />
<col style="width: 47px;" /></colgroup>
<tbody valign="top">
<tr style="background: #8064a2;">
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>A</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>B</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>C</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>D</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;"><span style="color: white;"><strong>E</strong></span></td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">X</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">3</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">Y</td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">4</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">Y</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">3</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">5</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">X</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>Yukarıdaki yeni tabloda, B kolonunun son satırı 3 olarak değiştirilmiştir. Bu durumda acaba B<span style="font-family: Wingdings;">à</span>E ve E<span style="font-family: Wingdings;">à</span>B ifadelerinden bahsedilebilir mi?</p>
<p>Tablonun yeni halinde E&#8217;deki her değişim, B&#8217;de bir değişimle karşılandığı için B<span style="font-family: Wingdings;">à</span>E ibaresi doğrudur ancak ne yazık ki E<span style="font-family: Wingdings;">à</span>B ibaresi kullanılamaz çünkü E, B&#8217;deki değişimleri göstermek için yetersizdir.</p>
<p>Ayrıca yukarıdaki tabloda, C kolonu, bütün diğer kolonlara fonksiyonel olarak bağımlıdır. Bunun sebebi C kolonunun sabit olması ve dolayısıyla bütün kolonlar tarafından doğası gereği fonksiyonel bağımlılığının ifade edilmesinin mümkün olmasıdır.</p>
<p>Gelelim tablomuzu normalleştirmeye. Tablomuzda bulunan fonksiyonel bağımlılıkları normalleştirme aşamasında kullanacağız. Normalleştirme işleminin amacını kısaca tabloda tekrar eden veri bırakmamak (veya en aza indirmek) olduğunu söyleyebiliriz.</p>
<p>Yukarıdaki son halini almış tablomuzda, B<span style="font-family: Wingdings;">à</span>E bağımlılığının bulunması bize aşağıdaki durumu oluşturma imkanı sağlar:</p>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 318px;" />
<col style="width: 318px;" /></colgroup>
<tbody valign="top">
<tr style="height: 136px;">
<td style="padding-left: 7px; padding-right: 7px;">&nbsp;</p>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 56px;" />
<col style="width: 57px;" />
<col style="width: 57px;" />
<col style="width: 57px;" /></colgroup>
<tbody valign="top">
<tr style="background: #8064a2;">
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>A</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>B</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>C</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;"><span style="color: white;"><strong>D</strong></span></td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">2</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">3</td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">4</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">3</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">5</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>Tablo K</td>
<td style="padding-left: 7px; padding-right: 7px;">
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 57px;" />
<col style="width: 47px;" /></colgroup>
<tbody valign="top">
<tr style="background: #8064a2;">
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>B</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;"><span style="color: white;"><strong>E</strong></span></td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">X</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">Y</td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">3</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">X</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Tablo M</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>Görüldüğü üzere, B kolonu ve E kolonu ayrı bir tabloda tutularak, E kolonunun B kolonuna fonksiyonel bağımlılığından yararlanılmıştır. Bu durumda E kolonunun orjinal tabloda yer almasına gerek yoktur. A,B,C veya D kolonları ile birlikte karşılığı olan E kolonunu bir kişinin sorgulamak istemesi halinde, iki tablo arasında bir <a href="http://www.bilgisayarkavramlari.com/2009/01/14/birlestirme-join/">birleştirme (join)</a> işlemi uygulanacak ve istenen veriye kolaylıkla ulaşılabilecektir. Bu durumda K tablosundaki B kolonu bir yabancı anahtar (foreign key) olmuş ve M tablosundaki B kolonu ise birincil anahtar (primary key) olmuştur denilebilir.</p>
<p>Gelelim C kolonuna. Bu kolon da herhangi bir kolona fonksiyonel bağımlı kabul edilebilir demiştik. O halde aşağıdaki şekilde bölünebilir:</p>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 318px;" />
<col style="width: 318px;" /></colgroup>
<tbody valign="top">
<tr style="height: 136px;">
<td style="padding-left: 7px; padding-right: 7px;">&nbsp;</p>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 56px;" />
<col style="width: 57px;" />
<col style="width: 57px;" /></colgroup>
<tbody valign="top">
<tr style="background: #8064a2;">
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>A</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>B</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;"><span style="color: white;"><strong>D</strong></span></td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">2</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">3</td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">4</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">3</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">5</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>Tablo K</td>
<td style="padding-left: 7px; padding-right: 7px;">
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 57px;" />
<col style="width: 47px;" />
<col style="width: 47px;" /></colgroup>
<tbody valign="top">
<tr style="background: #8064a2;">
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>B</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>C</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;"><span style="color: white;"><strong>E</strong></span></td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">X</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">Y</td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">3</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">X</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Tablo M</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>Yukarıdaki gösterim doğru olmasına karşılık, aşağıdaki gösterim de doğrudur:</p>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 198px;" />
<col style="width: 198px;" />
<col style="width: 198px;" /></colgroup>
<tbody valign="top">
<tr style="height: 136px;">
<td style="padding-left: 7px; padding-right: 7px;">&nbsp;</p>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 56px;" />
<col style="width: 57px;" />
<col style="width: 57px;" /></colgroup>
<tbody valign="top">
<tr style="background: #8064a2;">
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>A</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>B</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;"><span style="color: white;"><strong>D</strong></span></td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">2</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">3</td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">4</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">3</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">5</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>Tablo K</td>
<td style="padding-left: 7px; padding-right: 7px;">
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 57px;" />
<col style="width: 47px;" /></colgroup>
<tbody valign="top">
<tr style="background: #8064a2;">
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>B</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;"><span style="color: white;"><strong>E</strong></span></td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">X</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">Y</td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">3</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">X</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Tablo M</td>
<td style="padding-left: 7px; padding-right: 7px;">
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 56px;" />
<col style="width: 56px;" /></colgroup>
<tbody valign="top">
<tr style="background: #8064a2;">
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>A</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;"><span style="color: white;"><strong>C</strong></span></td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">1</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">1</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Tablo N</strong></td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>Veya diğer bir çözüm olarak aşağıdaki çözüm de doğrudur:</p>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 198px;" />
<col style="width: 198px;" />
<col style="width: 198px;" /></colgroup>
<tbody valign="top">
<tr style="height: 136px;">
<td style="padding-left: 7px; padding-right: 7px;">&nbsp;</p>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 56px;" />
<col style="width: 57px;" />
<col style="width: 57px;" /></colgroup>
<tbody valign="top">
<tr style="background: #8064a2;">
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>A</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>B</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;"><span style="color: white;"><strong>D</strong></span></td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">2</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">3</td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">4</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">3</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">5</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>Tablo K</td>
<td style="padding-left: 7px; padding-right: 7px;">
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 57px;" />
<col style="width: 47px;" /></colgroup>
<tbody valign="top">
<tr style="background: #8064a2;">
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>B</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;"><span style="color: white;"><strong>E</strong></span></td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">X</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">Y</td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">3</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">X</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Tablo M</td>
<td style="padding-left: 7px; padding-right: 7px;">
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 56px;" />
<col style="width: 56px;" /></colgroup>
<tbody valign="top">
<tr style="background: #8064a2;">
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>E</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;"><span style="color: white;"><strong>C</strong></span></td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">X</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">1</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">Y</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">1</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Tablo P</strong></td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>Yukarıdaki bütün çözümler doğrudur. Görüldüğü üzere, normalleştirme işleminde, tekrar eden satırlar elenmiş ve mümkün olduğunca tekrarsız satırların bırakılması amaçlanmıştır.</p>
<p>Burada bir soru, D<span style="font-family: Wingdings;">à</span>A özelliğini neden kullanmadık şeklinde sorulabilir. Yani D kolonu zaten A kolonunu veya B kolonunu belirlemektedir, o halde bu özelliği de kullanarak bir bölme işlemine daha gidilebilir mi?</p>
<p>Cevabı hem evet hem de hayırdır. Teorik olarak bahsedildiği gibi bir bölme olabilir. Ancak bu bölmenin hiçbir faydası olmaz. Aşağıda göstermeye çalışalım:</p>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 198px;" />
<col style="width: 198px;" /></colgroup>
<tbody valign="top">
<tr style="height: 136px;">
<td style="padding-left: 7px; padding-right: 7px;">&nbsp;</p>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 56px;" />
<col style="width: 57px;" /></colgroup>
<tbody valign="top">
<tr style="background: #8064a2;">
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>A</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;"><span style="color: white;"><strong>D</strong></span></td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">2</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">3</td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">4</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">5</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Tablo K</td>
<td style="padding-left: 7px; padding-right: 7px;">
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 57px;" />
<col style="width: 57px;" /></colgroup>
<tbody valign="top">
<tr style="background: #8064a2;">
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;"><span style="color: white;"><strong>B</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid #9f8ab9 1.0pt; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;"><span style="color: white;"><strong>D</strong></span></td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">1</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">2</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">3</td>
</tr>
<tr style="background: #dfd8e8;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">2</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">4</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid #9f8ab9 1.0pt; border-bottom: solid #9f8ab9 1.0pt; border-right: none;">3</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid #9f8ab9 1.0pt; border-right: solid #9f8ab9 1.0pt;">5</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Tablo Q</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>Bir önceki şekilde bulunan tablo K&#8217;yı tablo K ve tablo Q olarak bölmeye çalıştım. Görüldüğü üzere herhangi bir satır sayısında azalma olmamıştır. Bu tip birincil anahtar kullanarak bölme işlemleri mümkün olmakla birlikte genelde normalleştirme anlamında bir fayda sağlamaz. Bu şekilde böldükten sonra, iki tablo arasında (örneğimizdeki tablo K ve Q ) <a href="http://www.bilgisayarkavramlari.com/2008/11/25/sayisallik-cardinality/">sayısallık açısından (cardinality)</a> birebir (one-to-one) ilişki kurulmaktadır ki teorik olarak iki tablo arasında birebir ilişki varsa aslında bu iki tablo, bir tablonun ikiye bölünmüş halidir denilebilir. Genelde birebir ilişki, veritabanında hız amacıyla kullanlan (bazı kolonlara istatistiksel olarak çok nadir erişim yapıldığı biliniyorsa) veya veritabanı kısıtlarından dolayı kullanılan (örneğin veri tabanımızın tablo başına sadece 10 kolon tutmaya izin verdiği durumda 15 kolonlu bir tablo oluşturmak için) bir özelliktir.</p>
<p>&nbsp;</p>

<p class="sayac_bilgi">80 views</p>

<p><a href="http://feedads.g.doubleclick.net/~a/Ea1f6CWZoPlftK9MD1VPRSH7vg4/0/da"><img src="http://feedads.g.doubleclick.net/~a/Ea1f6CWZoPlftK9MD1VPRSH7vg4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Ea1f6CWZoPlftK9MD1VPRSH7vg4/1/da"><img src="http://feedads.g.doubleclick.net/~a/Ea1f6CWZoPlftK9MD1VPRSH7vg4/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/X8xygWoVmT4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2012/01/17/normallestirme-normalisation-normalizasyon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2012/01/17/normallestirme-normalisation-normalizasyon/</feedburner:origLink></item>
		<item>
		<title>Horspool Algoritması</title>
		<link>http://feedproxy.google.com/~r/BilgisayarKavramlari/~3/CpgCBVt85M0/</link>
		<comments>http://www.bilgisayarkavramlari.com/2012/01/16/horspool-algoritmasi/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 13:14:00 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[algoritma analizi (teory of algorithms)]]></category>
		<category><![CDATA[veri yapıları]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/?p=6136</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Algoritmanın gayesi, bir metin içerisinde verilen bir dizginin (string) aranmasıdır. Literatürde arama yapılan metin için T (ingilizcedeki Text (metin) kelimesinden gelmektedir) ve aranan kelime için P (ingilizcedeki Pattern (örüntü) kelimesinden gelmektedir) kullanılmaktadır. Klasik bir arama, yukarıdaki temsili resimde gösterilmiştir. Algoritmanın diğer metin arama algoritmalarından en büyük farkı, aranan dizgi (pattern) [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER</p>
<p>Algoritmanın gayesi, bir metin içerisinde verilen bir <a href="http://www.bilgisayarkavramlari.com/2008/08/02/dizgi-string/">dizginin (string)</a> aranmasıdır. Literatürde arama yapılan metin için T (ingilizcedeki Text (metin) kelimesinden gelmektedir) ve aranan kelime için P (ingilizcedeki Pattern (örüntü) kelimesinden gelmektedir) kullanılmaktadır.</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011612_1314_HorspoolAlg1.png" alt="" /></p>
<p>Klasik bir arama, yukarıdaki temsili resimde gösterilmiştir.</p>
<p>Algoritmanın diğer metin arama algoritmalarından en büyük farkı, aranan dizgi (pattern) yerine aranılan metin (text) üzerinden işlem yapmasıdır.</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011612_1314_HorspoolAlg2.png" alt="" /></p>
<p>Yukarıdaki şekilde gösterildiği gibi, üzerinde arama işleminin yapıldığı metinde bulunan herhangi bir x harfi için, aranılan metin üzerindeki (pattern) en solda olan harf bulunmaya çalışılır.</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011612_1314_HorspoolAlg3.png" alt="" /></p>
<p>arama işlemine başlanan α değerinin ardından gelen harfler eşleştiği sürece, aranan kelimenin (pattern) sonuna kadar eşleştikçe arama işlemi devam eder. Şayet bu aşama uyuşmayan bir harf olursa, zaten aranan kelimenin olmadığı sonucuna varılabilir.</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011612_1314_HorspoolAlg4.png" alt="" /></p>
<p>Ardından uyuşma olup olmadığına bakılmaksızın aranan kelimeyi ß değerine denk gelecek şekilde kaydırma işlemi yapılır. Bu kaydırmanın olması için kelimenin (pattern) kalan kısmında ikinci bir değerinin bulunmaması gerekir.</p>
<p><strong>Örnek<br />
</strong></p>
<p>Algoritmanın çalışmasını bir örnek üzerinden göstermeye çalışalım.</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011612_1314_HorspoolAlg5.png" alt="" /></p>
<p>Yukarıdaki şekilde görüldüğü üzere, aranan kelime için (P) sağdan sola doğru bir numaralandırma yapılmakta ve bu numaralandırma üzerinden aşağıda gösterilen HpBc dizisi çıkarılır. Bu dizi üzerinden metin üzerinde arama yapılır.</p>
<p>Sırasıyla önce, A harfi aranır. Ardından C ve G harfleri aranır. Dikkat edilirse, kelimede üç kere geçen A harfi, dizide bir kere kullanılmaktadır.</p>
<p>Uyuşma oldukça aranan kelime kaydırılmaktadır.</p>
<p>&nbsp;</p>
<p><strong>Müsvette Kod (Pseudo Code)<br />
</strong></p>
<p>Algoritmanın müsvette kodu aşağıdaki şekilde yazılabilir:</p>
<p>Horspool (P = <em>p<sub>1</sub>p<sub>2</sub>…p<sub>m</sub></em>,T = <em>t<sub>1</sub>t<sub>2</sub>…t<sub>n</sub></em>)</p>
<p>Önişleme Aşaması</p>
<p>For <em>c </em><span style="font-family: Symbol;"><strong>Î</strong></span> ∑ Do <em>d</em>[<em>c</em>]<em> ← m</em></p>
<p>For <em>j </em><span style="font-family: Symbol;"><strong>Î</strong></span> 1…<em>m</em>-1 Do <em>d</em>[<em>p<sub>j</sub></em>]<em> ← m &#8211; j</em></p>
<p>Arama Aşaması</p>
<p><em>pos</em>←0</p>
<p>While <em>pos</em> ≤ <em>n-m</em> Do</p>
<p><em>j </em>←<em>m</em></p>
<p>While <em>j </em>&gt; 0 And t<em><sub>pos+j</sub></em> = <em>p<sub>j</sub></em>     Do <em>j</em> ← <em>j-</em>1</p>
<p>If <em>j</em> = 0 bulundu: <em>pos</em>+1</p>
<p><em>pos</em> ← <em>pos</em> +<em>d</em>[<em>t<sub>pos+m</sub></em>]</p>
<p>End of while</p>
<p>Yukarıdaki algoritmada geçen değerlerin, örnek üzerindeki gösterimlerini adım adım anlatmaya çalışalım:</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011612_1314_HorspoolAlg6.png" alt="" /></p>
<p>Yukarıdaki ilk adımda aranan ilk harf olan C harfi için öncelikle kümede olup olmadığı kontrolü yapılır. Bunun anlamı aranan kelimenin harflerinden birisi olmaması durumunda vakit kaybedilmemesidir.</p>
<p>İkinci adımda ise daha önce çıkardığımız HpBc[a] dizisine göre her harfin değerleri atanır.</p>
<p>Arama işleminin devamı aşağıdaki şekildedir:</p>
<p>&nbsp;</p>
<p>GCATCGC<strong>A</strong>GAGAGTATACAGTACG</p>
<p>GCAGAGA<strong>G</strong></p>
<p><em>     pos </em>← <em>0 </em>+ <em>d[t<sub>0+7</sub>] , pos </em>← <em>0 </em>+ <em>d[</em>A<em>], pos </em>← 1</p>
<p><em><br />
</em>Yukarıda görüldüğü üzere, kelimenin ilk kontrolü için 1. pozisyonda bulunan A değeri aranmıştır. Ardından arama işlemi sonraki harf olan G için aşağıdaki şekilde devam eder:<em><br />
</em></p>
<p>GCATCG<strong>CAG</strong>AGAGTATACAGTACG</p>
<p>GCAGA<strong>GAG</strong></p>
<p><em>pos </em>← 1<em></em> + <em>d[t<sub>1+7</sub>] , pos </em>← 1<em></em> + <em>d[</em>G<em>], pos </em>← 3</p>
<p>G harfi ile C harfinin tutuşmamasından dolayı aranan kelime (P) kaydırılmıştır.</p>
<p>GCATCG<strong>CAGAG</strong>AGTATACAGTACG</p>
<p>GCA<strong>GAGAG</strong></p>
<p><em>pos </em>← 3<em></em> + <em>d[t<sub>3+7</sub>] , pos </em>← <em>3 </em>+ <em>d[</em>G<em>], pos </em>← 5</p>
<p>Benzer şekilde C ve G uyuşmamasından dolayı bir kere daha kaydırıyoruz.</p>
<p>GCATC<strong>GCAGAGAG</strong>TATACAGTACG</p>
<p><strong>GCAGAGAG</strong></p>
<p>While <em>j </em>&gt; 0 And t<em><sub>pos+j</sub></em> = <em>p<sub>j</sub></em> Do <em>j</em> ← <em>j-1</em></p>
<p>If <em>j</em> = 0 <em>pos</em>+1&#8242;de bulundu</p>
<p><em>pos </em>← 5<em></em> + <em>d[t<sub>5+7</sub>] , pos </em>← 5<em></em> + <em>d[</em>G<em>], pos </em>← 7</p>
<p>Görüldüğü üzere aranan kelime ile uyuşma oldu. Algoritmamızın ilgili satırlarını çalıştırıyor ve bulunduğunu rapor ediyoruz.</p>
<p>GCATCGCAGAGAGT<strong>A</strong>TACAGTACG</p>
<p>GCAGAGA<strong>G</strong></p>
<p><em>pos </em>← 7<em></em> + <em>d[t<sub>7+7</sub>] , pos </em>← 7<em></em> + <em>d[</em>A<em>], pos </em>← 8</p>
<p>İkinci kere A harfini arıyoruz.</p>
<p>GCATCGCAGAGAGTA<strong>T</strong>ACAGTACG</p>
<p>GCAGAGA<strong>G</strong></p>
<p><em>pos </em>← 8<em></em> + <em>d[t<sub>8+7</sub>] , pos </em>← 8<em></em> + <em>d[</em>T<em>], pos </em>← 16</p>
<p>Bulunan A harfi G harfi ile uyuşmadığı için atlıyoruz:</p>
<p>GCATCGCAGAGAGTATACAGTAC<strong>G</strong></p>
<p>GCAGAGA<strong>G</strong></p>
<p><em>pos </em>← 16<em></em> + <em>d[t<sub>16+7</sub>] , pos </em>← 16<em></em> + <em>d[</em>G<em>], pos </em>← 18</p>
<p><em>pos &gt; n-m // pos &gt;23-7 </em></p>
<p><em>while döngüsünden çık.</em></p>
<p>Son olarak kelimenin sonuna gelindiği halde aranan yazı bulunmadığı için algoritma sonlanıyor.</p>
<p><strong>Algoritmanın Karmaşıklığı<br />
</strong></p>
<p>Algoritmanın zaman karmaşıklığı aranan kelimenin boyu n ve aranılan kelimenin boyu m olmak üzere O(mn)&#8217;dir denilebilir. Çünkü en kötü durumda her aranılan kelime harfi için üzerinde arama yaptığımız her harfi karşılaştırmamız gerekebilir. Bu da her n harf için m adet karşılaştırmaya eşittir.</p>
<p>&nbsp;</p>

<p class="sayac_bilgi">59 views</p>

<p><a href="http://feedads.g.doubleclick.net/~a/rftXVykkdvFFyVnfTfXM87MT-I4/0/da"><img src="http://feedads.g.doubleclick.net/~a/rftXVykkdvFFyVnfTfXM87MT-I4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/rftXVykkdvFFyVnfTfXM87MT-I4/1/da"><img src="http://feedads.g.doubleclick.net/~a/rftXVykkdvFFyVnfTfXM87MT-I4/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/CpgCBVt85M0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2012/01/16/horspool-algoritmasi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2012/01/16/horspool-algoritmasi/</feedburner:origLink></item>
		<item>
		<title>İleri ve geri zincirleme (Forward and Backward Chaining)</title>
		<link>http://feedproxy.google.com/~r/BilgisayarKavramlari/~3/vbkSagk3aVw/</link>
		<comments>http://www.bilgisayarkavramlari.com/2012/01/16/ileri-ve-geri-zincirleme-forward-and-backward-chaining-2/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 23:11:36 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Mantık Devreleri (Logic Circuits)]]></category>
		<category><![CDATA[yapay zeka (artificial intelligence)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/?p=6128</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Bu yazının amacı, bilgisayar bilimlerinde, özellikle de mantıksal sistemlerin ispatında kullanılan ileri zincirleme ve geri zincirleme yöntemlerini açıklamaktır. Yöntemin çalışması oldukça basittir. Öncelikle problem, mantık düzleminde modellenir. Buradaki mantık sistemi sonlu ispatı olan herhangi bir system olabilir. Örneğin birinci dereceden mantık (first order logic) veya daha özel olarak boole cebiri [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER
</p>
<p>Bu yazının amacı, bilgisayar bilimlerinde, özellikle de mantıksal sistemlerin ispatında kullanılan ileri zincirleme ve geri zincirleme yöntemlerini açıklamaktır.
</p>
<p>Yöntemin çalışması oldukça basittir. Öncelikle problem, mantık düzleminde modellenir. Buradaki mantık sistemi sonlu ispatı olan herhangi bir system olabilir. Örneğin <a href="http://www.bilgisayarkavramlari.com/2010/03/24/birinci-derece-mantik-first-order-logic/">birinci dereceden mantık (first order logic) </a> veya daha özel olarak boole cebiri kullanılabilir.
</p>
<p>Modelleme aşamasının ardından problemin çözümüne geçilir. İşte tam bu noktada ileri zincirleme (forward chaining) veya geri zincirleme (backward chaining) yöntemlerinden birisi seçilebilir.
</p>
<p>Örneğin aşağıdaki mantıksal sistemi ve şekli ele alalım:
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011512_2311_lerivegeriz1.png" alt=""/>
	</p>
<p>Sistemde görüldüğü üzere bazı mantıksal dizilimler verilmiş ve son iki satırda A ve B önermelerinin (kaziye) doğru olduğu belirtilmiştir.
</p>
<p>Buna göre sağdaki çizim, hangi durumlarda, hangi diğer durumların doğru olacağını bu mantıksal sistemden çıkarır. Örneğin p=&gt; q ifadesi, çizimin en tepesinde gösterilmiş ve p önermesinin (predicate, kaziyesinin) doğruluğu halinde q önermesinin de (kaziyesinin de) doğru olacağını ifade etmektedir.
</p>
<p>Benzer şekilde, L <a href="http://www.bilgisayarkavramlari.com/2009/05/07/haber-predicate/">önermesinin (kaziyesinin)</a> doğruluğu A ve B önermelerine bağlı olduğu gibi, A ve P önermelerinin doğruluğuna da bağlanmıştır. Bu iki sistemden birisinin doğru olması sonucun doğruluğunu sağlar.
</p>
<p>Şimdi şekilde gösterilen sistemi ileri zincirleme (forward chaining) yöntemi ile çözelim. Öncelikle sistemdeki bütün doğruluk şartlarını sayısal olarak ifade ediyoruz:
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011512_2311_lerivegeriz2.png" alt=""/>
	</p>
<p>Şekilde görüldüğü üzere bütün doğruluk şartları birer sayı ile ifade edilmiştir. Söz gelimi, M önermesinin doğruluğu L ve B önermesi gibi 2 önermenin doğruluğunu gerektirir. Bu yüzden M birleşiminde 2 sayısı bulunur. Benzer şekilde Q önermesinde bulunan 1 sayısı, sadece P önermesinin doğruluğunun yeterli olduğunu ifade etmektedir.
</p>
<p>Şimdi ileri zincirleme yöntemini kullanarak sistemin doğru olduğu verilen A ve B önermelerinden itibaren çözümünü izleyelim.
</p>
<p>Öncelikle A ve B&#8217;ye komşu olan düğümlerdeki değerleri 1&#8242;er azaltıyoruz:
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011512_2311_lerivegeriz3.png" alt=""/>
	</p>
<p>Yukarıdaki şekilde ileri zincirleme işlemi (forward chaingin) A önermesi için çalıştırılmış olup A&#8217;nın komşularını 1 azaltmıştır. Sırada B önermesi var ve onu da çalıştıralım:
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011512_2311_lerivegeriz4.png" alt=""/>
	</p>
<p>Görüldüğü üzere B&#8217;nin komşuları da 1 azaldığında 0 değerine sahip bir düğüm elde ettik. Bu durumda L&#8217;nin doğru olduğunu söyleyebiliriz çünkü L&#8217;nin doğru olması için gereken 2 değer de sağlandı. Yani mantıksal sistemimizde bulunan
</p>
<p>A <span style="font-family:Symbol">Ù</span> B <span style="font-family:Symbol">Þ</span> L
</p>
<p>Satırını sağlamış olduk. Buradan doğruluğunu bulduğumuz L önermesinin komşularını 1 azaltıyoruz:
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011512_2311_lerivegeriz5.png" alt=""/>
	</p>
<p>L&#8217;nin komşularının 1 azalması sonucunda M&#8217;nin değeri 0&#8242;a inmişi oluyor ve artık M için de doğru diyebiliyoruz. Şimdi M&#8217;nin komşularını 1 azaltalım:
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011512_2311_lerivegeriz6.png" alt=""/>
	</p>
<p>Artık P için doğru sonucuna ulaştık ve P&#8217;nin iki komşusununda değerini 1 azaltarak sonucu buluyoruz:
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011512_2311_lerivegeriz7.png" alt=""/>
	</p>
<p>Görüldüğü üzere zaten doğru olduğunu bildiğimiz L için tekrar doğru sonucunu bulduk ve ilave olarak Q için de doğru sonucunu bulduk.
</p>
<p>Demek ki ilk  sistem bize verildiğinde, Q&#8217;nun değeri sorulsaydı, doğru olduğunu söyleyebilirdik, ancak bunu bilgisayarın bulması için yukarıda adım adım anlatılan aşamaların tamamlanması gerekmektedir.
</p>
<p><strong>Geri Zincirleme (Backward Chaining)<br />
</strong></p>
<p>Gelelim aynı amaç için kullanılan, yani bir mantıksal sistemi çözmek için kullanılan geri zincirleme yöntemine. İleri zincirleme yöntemine çok benzer olarak yine bir mantıksal sistem, bir şekil üzerinde gösterilebilr:
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011512_2311_lerivegeriz8.png" alt=""/>
	</p>
<p>Sistemde diyelim ki Q&#8217;nun değerini merak ediyor olalım. Bilgisayar algoritması, bu defa Q&#8217;nun değerinin doğruluğunun P&#8217;nin değerinin doğruluğuna bağlı olduğunu çözerek işe başlayacaktır. Aslında geri zincirlemede kullanılan yaklaşım, tam olarak ileri zincirlemenin tersidir. İleri zincirlemede, doğruluğunu bildiğimiz önermelerden başlanırken, geri zincirlemede, doğruluğunu aradığımız önermelerden başlıyoruz. Burada doğruluğunu aradığımız önerme Q olduğuna göre, Q&#8217;dan başlayarak sistemi dolaşacağız. İlk adımda Q&#8217;nun doğruluğu, P&#8217;nin doğruluğuna bağlıdır, o halde Q yerine P doğru mudur diye sistemi çözmeye çalışırız:
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011512_2311_lerivegeriz9.png" alt=""/>
	</p>
<p>P&#8217;nin doğruluğu, şekilde de görüldüğü üzere, L ve M&#8217;ye bağlıdır ve artık L ve M doğru mudur diye sorarız. Bunlardan birisinin yanlış olması halinde sonuç yanlış veya ikisinin de doğru olması halinde sonuç doğru olacaktır. Burada sonuç ile kastedilen P ve dolayısıyla Q&#8217;dur. Dikkat edilirse artık L ve M&#8217;ye bakarak Q&#8217;nun değerini tahmin edebiliyoruz. Devam edelim:
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011512_2311_lerivegeriz10.png" alt=""/>
	</p>
<p>L&#8217;nin doğruluğuna bakıldığında P ve A bulunmakta, aslında bu sorunun cevabını P&#8217;nin değerini bilmediğimiz için veremeyiz. Ancak burada bir tehlike bizi bekliyor, şayet doğruluğunu araştırmak için DFS (depth first search, derin öncelikli arama) benzeri bir algoritma ile ağacı (veya şekli (graph) ) dolaşıyorsak, bu durumda bir sonsuz döngüye (fasit daire) girme ihtimalimiz bulunuyor. Bunu engellemek için diyelim ki derinliği sabitledik ve L&#8217;nin doğruluğu için A ve B ikilisine bakmaya karar verdik:
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/011512_2311_lerivegeriz11.png" alt=""/>
	</p>
<p>Sonuçta A ve B doğru ise L doğru demektir. O halde L doğru mu sorusunu sormayı bırakıyor ve M doğrumu A ve B doğru mu sorularını arayarak sistemi çözmeye devam ediyoruz. M&#8217;nin doğruluğu ise L ve B&#8217;ye dayanmakta, o halde bir kere daha L&#8217;nin doğruluğunu sorguluyor ve yukarıda anlatıldığı üzere bir kere daha A ve B&#8217;nin doğruluğunu sorguluyoruz. Neticede sorumuz basitçe A ve B doğru mudur şeklinde oluyor.
</p>
<p>Verilen mantıksal sistemden de bildiğimiz üzere A ve B doğrudur, o halde Q da doğrudur diyebiliriz, çünkü sistemi buraya kadar adım adım çözdük ve neticede Q&#8217;nun doğruluğunu sorgulamanın A ve B&#8217;nin doğruluğunu sorgulamak olduğunu gördük.
</p>
<p>Geri zincirleme (backward chaining) yaklaşımında istenirse buradan geriye dönülerek bütün sistemdeki önermelerin durumları doğru veya yanlış olarak işaretlenebilir. Ancak geri zincirleme algoritması, bu aşamada aranan Q önermesinin sonucunu bularak durabilir de. Bu iki yaklaşım arasındaki fark aslında CPS (call by passing style) ile birikimsel tarz (accumulation style) arasındaki fark gibidir.
</p>
<p>İki yöntemde de sonuç doğru bir şekilde bulunur. Belki ufak bir fark olarak dikkat edilmesi gereken, geri zincirlemede, özel olarak aranan bir önermenin sonucuna konsantre olmamız, buna bağlı olarak da bazı büyük sistemlerde, sistemin sadece belirli bir kısmını çözüyor olmamız görülebilir. Buna mukabil, ileri zincirleme yaklaşımında, sistemin tamamı çözülmektedir.</p>

<p class="sayac_bilgi">38 views</p>

<p><a href="http://feedads.g.doubleclick.net/~a/H2o8jRSKcu-Cw8i8EyLvanSbch4/0/da"><img src="http://feedads.g.doubleclick.net/~a/H2o8jRSKcu-Cw8i8EyLvanSbch4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/H2o8jRSKcu-Cw8i8EyLvanSbch4/1/da"><img src="http://feedads.g.doubleclick.net/~a/H2o8jRSKcu-Cw8i8EyLvanSbch4/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/vbkSagk3aVw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2012/01/16/ileri-ve-geri-zincirleme-forward-and-backward-chaining-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2012/01/16/ileri-ve-geri-zincirleme-forward-and-backward-chaining-2/</feedburner:origLink></item>
		<item>
		<title>PROLOG</title>
		<link>http://feedproxy.google.com/~r/BilgisayarKavramlari/~3/NOzTqVAx0yw/</link>
		<comments>http://www.bilgisayarkavramlari.com/2012/01/15/prolog/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 00:40:27 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Programlama Dilleri]]></category>
		<category><![CDATA[yapay zeka (artificial intelligence)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/?p=6091</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Bu yazının amacı, PROLOG diline giriş yapmak ve basit bazı yapay zeka problemlerinin PROLOG dilinde nasıl kodlanarak çözüldüğünü göstermektir. Kurulum ve çalıştırma: Bu yazı kapsamında SWI-PROLOG programı kullanılacaktır. Programı, www.swi-prolog.com adresinden temin etmek mümkündür. Yazı kapsamında MAC OSX üzerinde örnekler çalıştırılarak gösterilecektir ancak kurulum ve sonrasında başarılı bir çalıştırma yapılabiliyorsa [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">Yazan : Şadi Evren ŞEKER</p>
<p class="MsoNormal"><span lang="TR">Bu yazının amacı, PROLOG diline giriş yapmak ve basit bazı yapay zeka problemlerinin PROLOG dilinde nasıl kodlanarak çözüldüğünü göstermektir. </span></p>
<p class="MsoNormal"><strong><span lang="TR">Kurulum ve çalıştırma:</span></strong></p>
<p class="MsoNormal"><span lang="TR">Bu yazı kapsamında SWI-PROLOG programı kullanılacaktır. Programı, </span><a href="http://www.swi-prolog.com/"><span lang="TR">www.swi-prolog.com</span></a><span lang="TR"> adresinden temin etmek mümkündür. </span></p>
<p class="MsoNormal"><span lang="TR">Yazı kapsamında MAC OSX üzerinde örnekler çalıştırılarak gösterilecektir ancak kurulum ve sonrasında başarılı bir çalıştırma yapılabiliyorsa hangi işletim sisteminde olduğunuzun bir önemi yoktur, bütün sistemlerde aynı PROLOG komutları çalışır. </span></p>
<p class="MsoNormal"><span lang="TR">Siteden indirilip kurulum yapıldıktan sonra, </span></p>
<p class="MsoNormal"><tt><span style="font-size: 10pt;" lang="TR">$ /opt/local/bin/swipl</span></tt><span lang="TR"> </span></p>
<p class="MsoNormal"><span lang="TR">Dizini altında bulunan swipl komutu çalıştırılarak, PROLOG komut satırı açılabilir. </span></p>
<p class="MsoNormal"><span lang="TR">Program çalıştırıldığında, aşağıdakine benzer bir komut satırı ile komut girilmesini bekleyecektir:</span></p>
<p class="MsoNormal"><tt><span style="font-size: 10pt;" lang="TR">?- _</span></tt></p>
<p class="MsoNormal"><strong><span lang="TR">Yardım</span></strong></p>
<p class="MsoNormal"><span lang="TR">İlk ve en önemli komutumuz olan yardım komutu ile başlayabiliriz. </span></p>
<p class="MsoNormal"><tt><span style="font-size: 10pt;" lang="TR">?- help(help).</span></tt></p>
<p class="MsoNormal"><span lang="TR">Bu komut, X11 ekranında, yardım dokümanını görüntüleyecektir. Basitçe herhangi bir komut hakkında bilgi alınmak istendiğinde bu komutu help fonksiyonuna parametre olarak vermek yeterlidir. Yukarıdaki kullanımda help komutunun kendisi için yardım alınmıştır. </span></p>
<p class="MsoNormal"><strong><span lang="TR">Çıkış</span></strong></p>
<p class="MsoNormal"><span lang="TR">Prolog komut satırından çıkmak için </span></p>
<p class="MsoNormal"><tt><span style="font-size: 10pt;" lang="TR">?- halt.</span></tt></p>
<p class="MsoNormal"><span lang="TR">Yazılması yeterlidir. Bu komut programı sonlandıracaktır. </span></p>
<p class="MsoNormal"><strong><span lang="TR">Basit Kaziyeler</span></strong></p>
<p class="MsoNormal"><span lang="TR">Aşağıdaki komutları PROLOG üzerinde çalıştıralım ve ardından burada yapılan işlemleri yorumlayalım.</span></p>
<p class="MsoNormal"><span lang="TR">Sistemimizde kayıtlı olan bir dosyayı program tarafından açıp çalıştırılır bir şekilde yüklemek için dosya ismi köşeli parantezler içerisinde verilmelidir:</span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: Courier;" lang="TR">?- [‘ilkdosya.pl'].</span></p>
<p class="MsoNormal"><span lang="TR">Yukarıda, bilgisayarımızda bulunan “ilkdosya.pl” isimli dosyayı sisteme tanıtarak yükledik. Bu dosyada bulunan tanımlar da otomatik olarak yüklenmiş ve sorgulanmaya / çalışmaya hazır hale getirilmiş olacaktır. Ayrıca bu dosyada bulunan genel hatalar, yükleme sırasında ekrana basılır.<br />
</span></p>
<p class="MsoNormal"><strong><span lang="TR">PROLOG ile Faktöriyel Kodu</span></strong></p>
<p class="MsoNormal"><span lang="TR">PROLOG dili, yapısal olarak özyineli (recursive) bir yapıdadır ve döngülerin yerine özyineli fonksiyon (recursive function) kullanılması gerekir. Bu kullanımı göreceğimiz en basit uygulamalardan birisi olan faktöriyel kodunu yazıp kodlamaya çalışalım.</span></p>
<p class="MsoNormal"><span lang="TR">Herhangi bir editör açılarak (ben tercihen vi kullanıyorum, siz de istediğiniz bir editör ile dosyayı açıp içeriğini ) aşağıdaki şekilde yazabilirsiniz:</span></p>
<pre><span lang="TR">factorial(0,1).      </span></pre>
<pre><span lang="TR">factorial(A,B) :- </span></pre>
<pre><span lang="TR">             A &gt; 0,</span></pre>
<pre><span lang="TR">             C is A-1,</span></pre>
<pre><span lang="TR">            factorial(C,D),</span></pre>
<pre><span lang="TR">            B is A*D. </span></pre>
<p class="MsoNormal"><span lang="TR">Ardından aşağıdaki şekilde dosyamızı sisteme yükleyelim:</span></p>
<p class="MsoNormal"><span lang="TR">?- ['ilkdosya.pl'].</span></p>
<p class="MsoNormal"><span lang="TR">% ilkdosya.pl compiled 0.00 sec, 732 bytes</span></p>
<p class="MsoNormal"><span lang="TR">true.</span></p>
<p class="MsoNormal"><span lang="TR"> </span></p>
<p class="MsoNormal"><span lang="TR">Komut satırında dosyamızın yüklendiği ve yükleme süresi ve dosya boyutu gösterilmektedir. Son satırda yer alan true bilgisine kadar bir hata bulunmamış olması, dosyamızda bir hata olmadığını gösterir. Şimdi artık ilk fonksiyonumuzu kullanmaya başlayabiliriz. </span></p>
<p class="MsoNormal"><span lang="TR">?- factorial(5,X).</span></p>
<p class="MsoNormal"><span lang="TR">X = 120 ;</span></p>
<p class="MsoNormal"><span lang="TR">false.</span></p>
<p class="MsoNormal"><span lang="TR"> </span></p>
<p class="MsoNormal"><span lang="TR">Komut satırında, factorial(5,X) komutu verilerek, 5! Değerinin X değişkenine döndürülmesi istenmiştir. Burada öğrenilen birkaç önemli noktayı belirtelim. Birincisi X ile gösterilen değer bir değişkendir ve PROLOG dünyasında buna unbounded variable (bağlanmamış değişken) ismi verilir. Basitçe Prolog kodlarındaki bütün büyük harf ile başlayan ifadeler birer değişkendir ve ayrıca bir değişken tanımı yapılmaz. İkinci bir nokta, Prolog dilinde kod yazılırken girilen her satır bir emirdir ( declaration) ve yapısal olarak Prolog dili, haber mantığını (predicate calculus) barındırır. Buna göre yüklü olan dosyada bulunan komutlar yukarıdan aşağıya doğru çalıştırılırken üstte bulunan satır, alttakine gore öncelikli olur ve aynı zamanda birden fazla satırda emirin tanımlanması durumunda, sırasıyla bu emirler işlenir. </span></p>
<p class="MsoNormal"><span lang="TR">Örneğin yukarıdaki kodda, ilk satırda bulunan factorial (0,1). İfadesi, 0! = 1 anlamındadır ve bir şekilde birisi bize sıfır faktöriyeli sorarsa, ikinci değer olarak 1 sonucunu döndürmeyi gerektirir. </span></p>
<p class="MsoNormal"><span lang="TR">İkinci satırdan sonra başlayan tanımda ise, sırasıyla A&gt;0 kontrolü yapılmış, ardından C değişkenine değer olarak A-1 değeri konmuş ve yeni bulunan C değerinin faktöriyeli hesaplanarak, B sonucuna hesaplanan bu C faktöriyel değeri ile A’nın çarpımı eklenmiştir. </span></p>
<p class="MsoNormal"><span lang="TR">Yukarıdaki şekilde kodumuzu ilkdosya.pl<span>  </span>dosyasına yazıp kaydettikten sonra prolog komut satırında dosyamızı yükleyip çalıştırabiliriz:</span></p>
<p class="MsoNormal"><span lang="TR"> <a href="http://www.bilgisayarkavramlari.com/wp-content/uploads/Untitled2.png"><img class="alignnone  wp-image-6106" title="Untitled2" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/Untitled2.png" alt="" width="510" height="235" /></a></span></p>
<p class="MsoNormal"><span lang="TR">Yukarıda görüldüğü üzere faktöriyel kodumuz çalışmış ve sonucu doğru şekilde bulmuştur. </span></p>
<p class="MsoNormal"><span lang="TR">Kodun çalışmasını takip etmek için trace komutu kullanılabilir. Basitçe komut satırında:</span></p>
<p class="MsoNormal"><span lang="TR">trace.</span></p>
<p class="MsoNormal"><span lang="TR">Yazıldıktan sonra çalışmaya başlar ve bu çalışmadan sonra çağrılan fonksiyonların detayları ekrana basılır:</span></p>
<p class="MsoNormal"><span><a href="http://www.bilgisayarkavramlari.com/wp-content/uploads/Untitled1.png"><img class="alignnone  wp-image-6107" title="Untitled" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/Untitled1.png" alt="" width="311" height="708" /></a></span></p>
<p class="MsoNormal"><span lang="TR">Görüldüğü üzere factorial fonksiyonumuzun her adımı ekrana basılmıştır.</span></p>
<p class="MsoNormal"><strong><span lang="TR">Hanoi Kuleleri (Towers of Hanoi)</span></strong></p>
<p class="MsoNormal"><span lang="TR">İkinci bir uygulama olarak çok klasik bilgisayar bilimleri problemlerinden olan Hanoi Kulelerini ( tower of hanoi ) kodlamaya çalışalım.</span></p>
<p class="MsoNormal"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeEAAADICAYAAADfnllEAAADHmlDQ1BJQ0MgUHJvZmlsZQAAeAGFVN9r01AU/tplnbDhizpnEQk+aJFuZFN0Q5y2a1e6zVrqNrchSJumbVyaxiTtfrAH2YtvOsV38Qc++QcM2YNve5INxhRh+KyIIkz2IrOemzRNJ1MDufe73/nuOSfn5F6g+XFa0xQvDxRVU0/FwvzE5BTf8gFeHEMr/GhNi4YWSiZHQA/Tsnnvs/MOHsZsdO5v36v+Y9WalQwR8BwgvpQ1xCLhWaBpXNR0E+DWie+dMTXCzUxzWKcECR9nOG9jgeGMjSOWZjQ1QJoJwgfFQjpLuEA4mGng8w3YzoEU5CcmqZIuizyrRVIv5WRFsgz28B9zg/JfsKiU6Zut5xCNbZoZTtF8it4fOX1wjOYA1cE/Xxi9QbidcFg246M1fkLNJK4RJr3n7nRpmO1lmpdZKRIlHCS8YlSuM2xp5gsDiZrm0+30UJKwnzS/NDNZ8+PtUJUE6zHF9fZLRvS6vdfbkZMH4zU+pynWf0D+vff1corleZLw67QejdX0W5I6Vtvb5M2mI8PEd1E/A0hCgo4cZCjgkUIMYZpjxKr4TBYZIkqk0ml0VHmyONY7KJOW7RxHeMlfDrheFvVbsrj24Pue3SXXjrwVhcW3o9hR7bWB6bqyE5obf3VhpaNu4Te55ZsbbasLCFH+iuWxSF5lyk+CUdd1NuaQU5f8dQvPMpTuJXYSWAy6rPBe+CpsCk+FF8KXv9TIzt6tEcuAcSw+q55TzcbsJdJM0utkuL+K9ULGGPmQMUNanb4kTZyKOfLaUAsnBneC6+biXC/XB567zF3h+rkIrS5yI47CF/VFfCHwvjO+Pl+3b4hhp9u+02TrozFa67vTkbqisXqUj9sn9j2OqhMZsrG+sX5WCCu0omNqSrN0TwADJW1Ol/MFk+8RhAt8iK4tiY+rYleQTysKb5kMXpcMSa9I2S6wO4/tA7ZT1l3maV9zOfMqcOkb/cPrLjdVBl4ZwNFzLhegM3XkCbB8XizrFdsfPJ63gJE722OtPW1huos+VqvbdC5bHgG7D6vVn8+q1d3n5H8LeKP8BqkjCtbCoV8yAAAL9UlEQVR4Ae3dAXLiRhAFUJPa+1+ZmGSNBQJbiJFm+uttVSpYBk3367F/pFDL6fz558MfAgQIECBAYHeBf3Zf0YIECBAgQIDAfwJC2EYgQIAAAQKdBIRwJ3jLEiBAgAABIWwPECBAgACBTgJCuBO8ZQkQIECAgBC2BwgQIECAQCcBIdwJ3rIECBAgQEAI2wMECBAgQKCTgBDuBG9ZAgQIECAghO0BAgQIECDQSUAId4K3LAECBAgQEML2AAECBAgQ6CQghDvBW5YAAQIECAhhe4AAAQIECHQSEMKd4C1LgAABAgSEsD1AgAABAgQ6CQjhTvCWJUCAAAECQtgeIECAAAECnQSEcCd4yxIgQIAAASFsDxAgQIAAgU4Cfzqte4hlT6fTrM/z+Tw75gABe8UeuAjYB8fbB66EN5r5ox+mZz9kG5XgtEUE7JUig9q4TPtgY+BBTy+ENxjMsx+mr6V++/7X8/w7X+C3vfDb9/OFjtHhb3P+7fvHUMrsUgg3nuv8h+Vy+/nrn+/F5s/7/p5HxxCY74GvfXL7vyzmzzuGz1G6nM/XPjjK7C99CuFNp337y/T/MN50QScvK2CvlB1d08Ltg6acBU4mhAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCkghDPnqisCBAgQKCAghAsMSYkECBAgkCnwJ7Ot97s6nU7vn+Tj53O8s8b5fG5Qn1MQIECAQE8BV8IP9N8Jxwen2+RQhRo3adxJCRAgECQghO+GWSncKtV6x+xLAgQIEPgUcDt6sg1moTbqLd/JrfJLzW5NT4boIQECBAoJuBJ+NqxRA/hS78i1PfN0nAABAgRmAkJ4RuIAAQIECBDYR0AI7+NsFQIECBAgMBMQwjMSBwgQIECAwD4CQngfZ6sQIECAAIGZgBCekThAgAABAgT2ERDC+zhbhQABAgQIzASE8IzEAQIECBAgsI+AEN7H2SoECBAgQGAmIIRnJA4QIECAAIF9BITwPs5WIUCAAAECMwEhPCNxgAABAgQI7CMghPdxtgoBAgQIEJgJCOEZiQMECBAgQGAfASH8zHnycYHPntLt+Mi1dUOxMAECBOoJ+Dzhycwun8t785nCBcLOZwlPBughAQIEigm4Er4bWKVQq1TrHbMvCRAgQOBTQAg/2AYVwq1CjQ9oHSJAgACBiYDb0ROM6cO1IXdzO/vjPD3l38en67G1a1xP4AEBAgQIlBZwJVx6fIonQIAAgcoCQrjy9NROgAABAqUFhHDp8SmeAAECBCoLCOHK01M7AQIECJQWEMKlx6d4AgQIEKgsEPfu6Nt3J/cezfc7oR9V0rtW785+NBXHCBAgsJ9A1JVw71Dbb2xtVuLVxtFZCBAgsFYgJoQFyrotwG2dm1cRIECghUDE7ehZkHz+HdD+/CIw+XuxL35uTf/i5dsECBDYQCDmSvhqI4CvFD8+4PQjj28SIEBgD4G8EN5DzRoECBAgQKCBgBBugOgUBAgQIEBgjYAQXqPmNQQIECBAoIGAEG6A6BQECBAgQGCNgBBeo+Y1BAgQIECggYAQboDoFAQIECBAYI2AEF6j5jUECBAgQKCBgBBugOgUBAgQIEBgjYAQXqPmNQQIECBAoIGAEG6A6BQECBAgQGCNgBBeo+Y1BAgQIECggYAQboDoFAQIECBAYI2AEF6j5jUECBAgQKCBQF4ITz6ir4FP7ik45c5WZwQIlBGI+Dzhy2fh3nymsIB5aQP6LOGXuDyZAAECzQRiroQFybo9wW2dm1cRIECghUBMCF8wBMprW4LXa16eTYAAgdYCEbejpyi9g+XmtvjHeVra38en67HetV4L8YAAAQIEughEXQl3EbQoAQIECBBYKSCEV8J5GQECBAgQeFdACL8r6PUECBAgQGClgBBeCedlBAgQIEDgXQEh/K6g1xMgQIAAgZUCQ707+vadxSs7Gupl3++EflRWQr/e4f1oso4RIEBgmcAwV8IJgbSMPOtZ5pY1T90QILCvwBAh7Bf5vkNvvZr5tRZ1PgIEjiLQ/Xb07Bf4598D7U8Rgcnf0X2Zo1vTReamTAIEhhEY4kr4qiGArxQlHphXiTEpkgCBcQXGCuFxnVRGgAABAgSaCwjh5qROSIAAAQIElgkI4WVOnkWAAAECBJoLCOHmpE5IgAABAgSWCQjhZU6eRYAAAQIEmgsI4eakTkiAAAECBJYJCOFlTp5FgAABAgSaCwjh5qROSIAAAQIElgkI4WVOnkWAAAECBJoLCOHmpE5IgAABAgSWCQjhZU6eRYAAAQIEmgsI4eakTkiAAAECBJYJCOFlTp5FgAABAgSaC4wVwpOPxmveqRO2FzCv9qbOSIDAoQS6f57w5TNobz5T2C/2khvQZwmXHJuiCRDoLDDElbBf4J13wZvLm9+bgF5OgMBhBYYI4Yu+X+Q196C51ZybqgkQGEOg++3oKUPCL/SbW+sf52l7fx+frscS+r024wEBAgQIvCwwzJXwy5V7AQECBAgQKC4ghIsPUPkECBAgUFdg89vRt7dn60JtUTmbLVQzz2mvZM711a7sg1fFlj2/5/8a3CyEbZZlw/csAgQIEOgr8JVXPcJ4k9vRXw31ZR1h9e83Yf1fzf3XI9SohjEE7vfG/ddjVKmKrQXu537/9dbrH/v8PbJrsyvhY49y2r0foqmGxz8J2Cs/6Rzne/bBcWb98dH8SrjHf0kcaWB6JUCAAIEcgeYhnEOjEwIECBAgsK2AEN7W19kJECBAgMBTgeYh3OPdZU+78w0CBAgQIDCwQPMQHrhXpREgQIAAgaEENnl3tKvhoWasGAIECBAYVMCV8KCDURYBAgQI5AsI4fwZ65AAAQIEBhUQwoMORlkECBAgkC8ghPNnrEMCBAgQGFRACA86GGURIECAQL6AEM6fsQ4JECBAYFABITzoYJRFgAABAvkCQjh/xjokQIAAgUEFhPCgg1EWAQIECOQLCOH8GeuQAAECBAYVEMKDDkZZBAgQIJAvIITzZ6xDAgQIEBhUQAgPOhhlESBAgEC+gBDOn7EOCRAgQGBQASE86GCURYAAAQL5AkI4f8Y6JECAAIFBBYTwoINRFgECBAjkCwjh/BnrkAABAgQGFRDCgw5GWQQIECCQLyCE82esQwIECBAYVEAIDzoYZREgQIBAvoAQzp+xDgkQIEBgUAEhPOhglEWAAAEC+QJCOH/GOiRAgACBQQWE8KCDURYBAgQI5AsI4fwZ65AAAQIEBhUQwoMORlkECBAgkC8ghPNnrEMCBAgQGFRACA86GGURIECAQL6AEM6fsQ4JECBAYFABITzoYJRFgAABAvkCQjh/xjokQIAAgUEF/gWdCJj2GkovIAAAAABJRU5ErkJggg==" alt="" /></p>
<p class="MsoNormal"><span lang="TR">Oyunun kuralı gayet basit. Başlangıçta bir çubukta dizili olan bütün diskler her adımda tek bir disk hareket ettirerek diğer iki çubuktan birisine taşınacaktır. Bu taşıma işlemleri sırasında büyük bir disk, küçük olan bir diskin üzerine gelmeyecektir. </span></p>
<p class="MsoNormal"><span lang="TR">Ayrıca oyunun internetten oynan bir denemesi için daha önce hazırladığım aşağıdaki ödev sayfasına bakabilirsiniz:</span></p>
<p class="MsoNormal"><a href="http://www.sadievrenseker.com/c/odev5.html"><span lang="TR">http://www.sadievrenseker.com/c/odev5.html</span></a></p>
<p>Problemin çözümünde kullanacağımız kod aşağıdaki şekildedir:</p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">SADIs-MacBook-Air:prolog sadievrenseker$ vi hanoi.pl </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">oyna(1,X,Y,_) :-</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">    write(X),</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">    write(&#8216; en üstteki diskini &#8216;),</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">    write(Y),</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">    write(&#8216; oynat &#8216;),</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">    nl.</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">oyna(N,X,Y,Z) :-</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">    N&gt;1,</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">    M is N-1,</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">    oyna(M,X,Z,Y),</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">    oyna(1,X,Y,_),</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">    oyna(M,Z,Y,X).</span></p>
<p class="MsoNormal"><span lang="TR">Kod örneği yukarıda verilmiştir. Kodumuzun çalışmasını görüp ardından nasıl çalıştığını açıklamaya geçebiliriz. </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR"> </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">?- oyna(4,a,b,c).</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">a en üstteki diskini c oynat </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">a en üstteki diskini b oynat </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">c en üstteki diskini b oynat </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">a en üstteki diskini c oynat </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">b en üstteki diskini a oynat </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">b en üstteki diskini c oynat </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">a en üstteki diskini c oynat </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">a en üstteki diskini b oynat </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">c en üstteki diskini b oynat </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">c en üstteki diskini a oynat </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">b en üstteki diskini a oynat </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">c en üstteki diskini b oynat </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">a en üstteki diskini c oynat </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">a en üstteki diskini b oynat </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">c en üstteki diskini b oynat </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">true .</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">?-</span></p>
<p class="MsoNormal"><span lang="TR">Yukarıdaki çalışmadan da görüldüğü üzere ilk baştaki 4 diskin dizili olduğu a çubuğundan bütün diskler sırasıyla b çubuğuna taşınmıştır.<br />
</span></p>
<p class="MsoNormal"><span lang="TR">Kodumuz, doğru sıra ile oynama yaklaşımı ile kodlanmıştır. Hanoi kulelerinin farklı çözümleri bulunur. Örneğin geri izleme algoritması (backtracking) kullanarak kaba kuvvetle (brute force) bütün ihtimallerin denendiği ve başarısızlık olması halinde en son iyi duruma geri dönen yaklaşımları kodlamak da mümkündür. </span></p>
<p class="MsoNormal"><span lang="TR">Bizim kodlamamızda ise her seferinde doğru çubuktan doğru diskin oynatılması esası kullanılmıştı. Bu yüzden hiç geri oynama veya yapılan hamleden vaz geçme olmamıştır. </span></p>
<p class="MsoNormal"><span lang="TR">Bu oynama esasını daha iyi anlatabilmek için daha ufak bir örnek üzerinden çalışmayı gösterelim :</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">?- oyna(2,a,b,c).</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">a en üstteki diskini c oynat </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">a en üstteki diskini b oynat </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">c en üstteki diskini b oynat </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">true </span></p>
<p class="MsoNormal"><span lang="TR"> </span></p>
<p class="MsoNormal"><span lang="TR">Görüldüğü üzere iki disklik bir dizilimde, c çubuğu geçici olarak kullanılmakta, esas büyük diskin b çubuğuna oynanması sırasında, küçük diskleri depolamak için kullanılmaktadır. </span></p>
<p class="MsoNormal"><span lang="TR">Bu durum disk sayısı artsa da değişmez. En büyük diskin a çubuğundan b çubuğuna oynanması sırasında,<span>  </span>diğer bütün küçük diskleri depolamak için c çubuğunu kullanırız. Buradan anlaşılacağı üzere ikinci büyük diskin c çubuğuna oynaması gerekir. Bunun için de b çubuğunu geçici depolama için kullanırız. Bu yaklaşım en büyük diskten en küçüğüne kadar aynı mantıkla işleyerek devam eder.<br />
</span></p>
<p class="MsoNormal"><strong><span lang="TR">8 Vezir Problemi (8 Queens Problem)</span></strong></p>
<p class="MsoNormal"><span lang="TR">Yeni bir problem olarak klasik sorulardan birisi olan 8 vezir problemini ( eight queens problem) ele alalım. Problem basitçe bir satranç tahtasına 8 veziri, birbirini yemeden nasıl yerleştireceğimizdir. </span></p>
<p class="MsoNormal"><span lang="TR"> </span><img src="data:image/png;base64,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" alt="" /></p>
<p class="MsoNormal"><span lang="TR">Problemin çözümü olan PROLOG kodu aşağıda verilmiştir.</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">perm([X|Y],Z) :- perm(Y,W), birinial(X,Z,W).</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">perm([],[]).</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR"> </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">birinial(X,[X|R],R).</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">birinial(X,[F|R],[F|S]) :- birinial(X,R,S).</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR"> </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">cozum(P) :-</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">     perm([1,2,3,4,5,6,7,8],P),</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">     birlestir([1,2,3,4,5,6,7,8],P,S,D),</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">     hepsifarkli(S),</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">     hepsifarkli(D).</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR"> </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">birlestir([X1|X],[Y1|Y],[S1|S],[D1|D]) :-</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">     S1 is X1 +Y1,</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">     D1 is X1 &#8211; Y1,</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">     birlestir(X,Y,S,D).</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">birlestir([],[],[],[]).</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR"> </span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">hepsifarkli([X|Y]) :-  \+member(X,Y), hepsifarkli(Y).</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">hepsifarkli([X]).</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR"> </span></p>
<p class="MsoNormal"><span lang="TR">Kodun çalışan örneği aşağıdaki şekildedir:</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">?- cozum(P).</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">P = [5, 2, 6, 1, 7, 4, 8, 3] ;</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">P = [6, 3, 5, 7, 1, 4, 2, 8] ;</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">P = [6, 4, 7, 1, 3, 5, 2, 8] ;</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">P = [3, 6, 2, 7, 5, 1, 8, 4] ;</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">P = [6, 3, 1, 7, 5, 8, 2, 4] ;</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">P = [6, 2, 7, 1, 3, 5, 8, 4] ;</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">P = [6, 4, 7, 1, 8, 2, 5, 3] ;</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">P = [3, 6, 2, 7, 1, 4, 8, 5] ;</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">P = [6, 3, 7, 2, 4, 8, 1, 5] ;</span></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">&#8230;</span></p>
<p class="MsoNormal"><span lang="TR"> </span></p>
<p class="MsoNormal"><span lang="TR">Yukarıdaki örneklerde görüldüğü üzere her kolon için, o kolondaki kaçıncı satıra vezir yerleştirilebileceği ve bu yerleştirme işlemine göre bütün kuralları sağlayan bir dizilimin nasıl elde edileceği listelenmiştir. Problemin birden fazla çözümü olduğu için her satır, çözümlerden birisini göstermektedir. Örneğin ilk çözüm satırını ele alırsak, aşağıdaki gibi bir satranç tahtası elde ederiz. </span></p>
<p class="MsoNormal"><span lang="TR"> </span><img src="data:image/png;base64,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" alt="" /></p>
<p class="MsoNormal"><span style="font-family: courier new,courier;" lang="TR">P = [5, 2, 6, 1, 7, 4, 8, 3] ;</span></p>
<p class="MsoNormal"><span lang="TR">Kodda, kabaca bütün ihtimalleri deneyen bir permütasyon algoritması geliştirilmiştir. Ardından koşulların sağlanıp sağlanmadığı kontrol edilmiş ve buna göre koşulları sağlayan ihtimaller sonuç olarak döndürülmüştür. </span></p>
<p class="MsoNormal"><span lang="TR">Algoritma, bir arama algoritması (search algorithm) şeklinde probleme yaklaştığı için, problemin çözümü sırasındaki bütün ihtimaller sadece bir kere denenecek ve denenen bir ihtimal tekrar etmeyecektir. Bu deneme sırası, permütasyon fonksiyonu ile sağlanır.<br />
</span></p>

<p class="sayac_bilgi">92 views</p>

<p><a href="http://feedads.g.doubleclick.net/~a/eYX-NgERdf0AuStDN8G1cu0hsR8/0/da"><img src="http://feedads.g.doubleclick.net/~a/eYX-NgERdf0AuStDN8G1cu0hsR8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/eYX-NgERdf0AuStDN8G1cu0hsR8/1/da"><img src="http://feedads.g.doubleclick.net/~a/eYX-NgERdf0AuStDN8G1cu0hsR8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/NOzTqVAx0yw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2012/01/15/prolog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2012/01/15/prolog/</feedburner:origLink></item>
		<item>
		<title>Şifre Aritmetik (Cryptarithmetic)</title>
		<link>http://feedproxy.google.com/~r/BilgisayarKavramlari/~3/l4V5df1YV7c/</link>
		<comments>http://www.bilgisayarkavramlari.com/2011/12/08/sifre-aritmetik-cryptarithmetic/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 01:49:51 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Bilgisayar Matematiği]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/?p=6084</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Çeşitli kayanklarda kelime aritmetiği (verbal aritmetic), kelime toplamı (word addition) veya kısaca cryptarth olarak da geçmektedir. Basitçe iki kelimenin toplamından elde edilen harf denklemidir. Aşağıda bir cryptartihm verilmiştir: Yazının tam bu noktasında belirtmeliyim ki tek çözümlü anlamlı bir cryptarithm bulmak oldukça zor. Bu yazıyı yazarken hiç Türkçe cryptarithm olmadığını gördüm [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER</p>
<p>Çeşitli kayanklarda kelime aritmetiği (verbal aritmetic), kelime toplamı (word addition) veya kısaca cryptarth olarak da geçmektedir. Basitçe iki kelimenin toplamından elde edilen harf denklemidir.</p>
<p>Aşağıda bir cryptartihm verilmiştir:</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/2011/cryptarithmetic.png" alt="" /></p>
<p>Yazının tam bu noktasında belirtmeliyim ki tek çözümlü anlamlı bir cryptarithm bulmak oldukça zor. Bu yazıyı yazarken hiç Türkçe cryptarithm olmadığını gördüm ve yaklaşık bir saatlik bir uğraştan sonra (yüzlerce ihtimal denemesi yaparak) yukarıdaki örneği yazabildim. Elbette daha başka örnekler de Türkçe için anlamlı olarak geliştirilebilir ama en azından konuyu bundan sonra anlatırken yukarıdaki örneği kullanacak olanlar bilgisayarkavramlari.com sitesine atıfta bulunurlarsa sevinirim.</p>
<p>Örneğin yukarıda verilen denklemi çözmeye çalışalım. Buna göre nota + keman = musiki olduğuna göre m harfi en fazla 1 olabilir. Çünkü 4 haneli bir sayı ile 5 haneli bir sayı toplandığında çıkan 6 haneli sayının ilk hanesi 1&#8242;den büyük olamaz. Bu durumda m = 1 olarak bulunursa, k harfinin alacağı değer 9 olmuş olur. Bunun sebebi 5 haneli bir sayının ilk hanesi 9 olmalıdır ki 4 haneli sayı ile toplamındaki 4. basamaktan gelen değer 1 olduğunda (iki tek haneli sayının toplamının sonucunda elde var değerinin en fazla 1 olacağını hatırlayınız) 9 ile toplanarak 10 sonucuna ulaşılsın.</p>
<p>O halde k = 9 ve doğal olarak 9+1 = 10 ise m = 1 ve u = 0 olarak bulunur.</p>
<p>Şimdi diğer değerlere bakalım. k değeri ile toplanarak bir ilave hane çıktığına göre n + e değeri 10&#8242;dan büyük olmalıdır.</p>
<p>n + e &gt; 10 ise  n + e = 10 + s</p>
<p>a+n = 10 + i veya i  olabilir</p>
<p>a + t = 9 veya 19 olduğunu biliyoruz (çünkü k = 9 olduğunu bulmuştuk)</p>
<p>Bu durumda a + n + 10 a + 10 t + 100 m + 100 o = 100 i + 10 k + i olmalıdır. Bu denklemde bilinenleri yerine yazarsak (m ve k )</p>
<p>n + 11 a + 10 t + 100 + 100 o = 101 i + 10 k denklemini buluruz.</p>
<p>denklemde 100&#8242;e bölünenleri ortak paranteze alırsak</p>
<p>100 ( 1 + o ) = 101 i + 10 ( k &#8211; t ) &#8211; 11 a &#8211; n</p>
<p>o halde t asgari 1 olabileceğine ve a ise azami 0 olabileceğine göre ( bu durumda eşitliğin sağ tarafı için aşağıdaki durum geçerlidir):</p>
<p>101 + 100 o &lt;= 101 i + 98</p>
<p>3  + 100 o &lt;= 101 i</p>
<p>Buna göre denklemi sağlayan tek o değeri 3 olur.</p>
<p>Bu haliyle denklem aşağıdaki şekildedir:</p>
<p>n3ta + 9e1an = 10si9i</p>
<p>Diğer değişkenleri bulmak artık daha da basittir:</p>
<p>m + o = 1 + 3 = 4 olduğuna göre i = 4 bulunur.</p>
<p>n3ta + 9e1an = 10s494</p>
<p>son iki hane için aşağıdaki denklem çıkarılabilir:</p>
<p>10 t + a + 10 a + n = 94 (elde var devri olmadığı için)</p>
<p>11 a + 10 t + n = 94 denklemindeki çözüm ihtimalleri aşağıdaki şekildedir:</p>
<table border="0">
<tbody>
<tr>
<td>a</td>
<td>t</td>
<td>n</td>
</tr>
<tr>
<td colspan="1">0</td>
<td colspan="1">9</td>
<td colspan="1">4</td>
</tr>
<tr>
<td>1</td>
<td>8</td>
<td>3</td>
</tr>
<tr>
<td colspan="1">2</td>
<td colspan="1">7</td>
<td colspan="1">2</td>
</tr>
<tr>
<td colspan="1">3</td>
<td colspan="1">6</td>
<td colspan="1">1</td>
</tr>
<tr>
<td colspan="1">4</td>
<td colspan="1">5</td>
<td colspan="1">0</td>
</tr>
<tr>
<td colspan="1">5</td>
<td colspan="1">3</td>
<td colspan="1">9</td>
</tr>
<tr>
<td colspan="1">6</td>
<td colspan="1">2</td>
<td colspan="1">8</td>
</tr>
<tr>
<td colspan="1">7</td>
<td colspan="1">1</td>
<td colspan="1">7</td>
</tr>
<tr>
<td colspan="1">8</td>
<td colspan="1">0</td>
<td colspan="1">6</td>
</tr>
</tbody>
</table>
<p>Yukarıdaki ihtimaller dışında bir çözüm bulunmamaktadır.</p>
<p>ayrıca n + e &gt; 9 olmalı şartını hatırlayalım. Bu durumda n değeri 0 olamaz. Son olarak a + n = 4 veya 14 olduğuna göre tabloda bu şartı sağlamayanları eleyelim:</p>
<table border="0">
<tbody>
<tr>
<td>a</td>
<td>t</td>
<td>n</td>
</tr>
<tr>
<td colspan="1">0</td>
<td colspan="1">9</td>
<td colspan="1">4</td>
</tr>
<tr>
<td colspan="1">7</td>
<td colspan="1">1</td>
<td colspan="1">7</td>
</tr>
<tr>
<td colspan="1">6</td>
<td colspan="1">2</td>
<td colspan="1">8</td>
</tr>
</tbody>
</table>
<p>Son olarak n = a olmadığına göre yani eşit olsalar aynı değişkenle gösterileceklerine göre kalan iki ihtimali incleyelim:</p>
<p>4390 + 9e104 = 10s494</p>
<p>denkleminde a = u olduğu için bu değerleri de alamayız.</p>
<p>son olarak kalan diğer ihtimale bakalım:</p>
<p>8326 + 97168 = 105494 olarak sonuçlar bulunur.</p>

<p class="sayac_bilgi">235 views</p>

<p><a href="http://feedads.g.doubleclick.net/~a/oM0A5APCESwDcKe1lUrJRPyKZD0/0/da"><img src="http://feedads.g.doubleclick.net/~a/oM0A5APCESwDcKe1lUrJRPyKZD0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/oM0A5APCESwDcKe1lUrJRPyKZD0/1/da"><img src="http://feedads.g.doubleclick.net/~a/oM0A5APCESwDcKe1lUrJRPyKZD0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/l4V5df1YV7c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2011/12/08/sifre-aritmetik-cryptarithmetic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2011/12/08/sifre-aritmetik-cryptarithmetic/</feedburner:origLink></item>
		<item>
		<title>Elias Kodlaması (Elias Code)</title>
		<link>http://feedproxy.google.com/~r/BilgisayarKavramlari/~3/0hngdg26OhM/</link>
		<comments>http://www.bilgisayarkavramlari.com/2011/12/06/elias-kodlamasi-elias-code/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 06:33:39 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Veri Sıkıştırma (Data Compression)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/?p=6082</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Veri sıkıştırmada veya verinin ikilik tabanda gösterilmesinde kullanılan bir algoritmadır. Basit bir çevirim fonksiyonu olarak da düşünülebilir. Bu yazı kapsamında birkça farklı elias kodu (elias code) şekli anlatılacaktır. Elias-Υ Kod (Elias &#8211; Υ  Code): Elias upsilon kodlaması olarak okunur. İki formül bu kodlama için gereklidir. kd = taban(log2 k) kr = [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER</p>
<p>Veri sıkıştırmada veya verinin ikilik tabanda gösterilmesinde kullanılan bir algoritmadır. Basit bir çevirim fonksiyonu olarak da düşünülebilir. Bu yazı kapsamında birkça farklı elias kodu (elias code) şekli anlatılacaktır.</p>
<p><strong>Elias-Υ Kod (Elias &#8211; Υ  Code)</strong>: Elias upsilon kodlaması olarak okunur.</p>
<p>İki formül bu kodlama için gereklidir.</p>
<p>k<sub>d</sub> = taban(log<sub>2</sub> k)</p>
<p>k<sub>r</sub> = k<sub>d</sub> - 2 <sup>log<sub>2</sub> k</sup><br />
Yukarıdaki formülde k değeri, çevirimini istediğimiz değerdir. Elias-Upsilon kodlaması ise bu değerlerden ilkinin <a href="http://www.bilgisayarkavramlari.com/2011/12/06/tekil-kodlama-unary-coding/">tekil kodlaması (unary coding)</a> ile ikincisinin <a href="http://www.bilgisayarkavramlari.com/2011/12/06/tekil-kodlama-unary-coding/">ikli kodlaması (binary coding)</a> birleşimidir (yan yana yazılması, üleştirilmesi)</p>
<p>Örnek olarak bazı sayıların çevirimleri aşağıda verilmiştir:</p>
<table border="0">
<tbody>
<tr>
<td>k</td>
<td>kd</td>
<td>kr</td>
<td>Elias-Upslion</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td colspan="1">2</td>
<td colspan="1">1</td>
<td colspan="1">0</td>
<td colspan="1">10 0</td>
</tr>
<tr>
<td colspan="1">15</td>
<td colspan="1">3</td>
<td colspan="1">7</td>
<td colspan="1">1110 111</td>
</tr>
<tr>
<td colspan="1">255</td>
<td colspan="1">7</td>
<td colspan="1">127</td>
<td colspan="1">11111110 1111111</td>
</tr>
<tr>
<td colspan="1">1023</td>
<td colspan="1">9</td>
<td colspan="1">511</td>
<td colspan="1">1111111110 111111111</td>
</tr>
</tbody>
</table>
<p>Yukarıdaki tabloda görüldüğü üzere sayılar büyüdükçe kodlama uzunluğu da değişmektedir.</p>
<p><strong>Elias-δ  Kodu (Elias-<strong>δ</strong>   Code)</strong> : Elias-Delta kodlama olarak okunabilir.</p>
<p>Yukarıda anlatılan elias-upsilon kodlamasını daha az bit ile gösterebilmek için geliştirilmiştir. Basitçe elias-upsilon kodlaması yaklaşık 2 log <sub>2</sub>( k) kadar bit gerektirmektedir. Bu bit sayısını azaltmak için elias-delta kodlaması kd ve kr hesaplamalarına ilave olarak iki değer daha hesaplar.</p>
<p>k<sub>dd</sub> = taban(log<sub>2</sub>(k<sub>d</sub> + 1))</p>
<p>k<sub>dr</sub> = k<sub>d</sub> &#8211; 2 <sup>log<sub>2</sub>(k<sub>d</sub> + 1))</sup><br />
Görüldüğü üzere aslında elias-delta kodlamasında yapılan işlem, elias-upsilon kodlamasında bulunan kd değerini yeniden aynı formüllere koymak ve kd üzerinden kdd ve kdr değerlerini hesaplamaktır. Ardından bulunan kdd kdr ve kr değerleri birleştirilerek elias-delta kodu sonucu bulunur.</p>
<p>Örnek bazı saylar aşağıda verilmiştir:</p>
<table border="0">
<tbody>
<tr>
<td>k</td>
<td>kd</td>
<td>kr</td>
<td rowspan="1">kdd</td>
<td rowspan="1">kdr</td>
<td>Elias-Delta</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>0</td>
<td rowspan="1">0</td>
<td rowspan="1">0</td>
<td>0</td>
</tr>
<tr>
<td colspan="1">2</td>
<td colspan="1">1</td>
<td colspan="1">0</td>
<td rowspan="1">1</td>
<td rowspan="1">0</td>
<td colspan="1">10 0 0</td>
</tr>
<tr>
<td colspan="1">15</td>
<td colspan="1">3</td>
<td colspan="1">7</td>
<td rowspan="1">2</td>
<td rowspan="1">0</td>
<td colspan="1">110 00 111</td>
</tr>
<tr>
<td colspan="1">255</td>
<td colspan="1">7</td>
<td colspan="1">127</td>
<td rowspan="1">3</td>
<td rowspan="1">0</td>
<td colspan="1">1110 000 1111111</td>
</tr>
<tr>
<td colspan="1">1023</td>
<td colspan="1">9</td>
<td colspan="1">511</td>
<td rowspan="1">3</td>
<td rowspan="1">2</td>
<td colspan="1">1110 010 111111111</td>
</tr>
</tbody>
</table>
<p>Yukarıda görüldüğü üzere genel olarak sayılar büyüdükçe elias-upsilon kodlamasına göre daha az bit gerekmektedir. düşük sayılarda daha fazla bit gerektiği görülmekte ve biraz da olsa işlem karmaşıklığı artmaktadır.</p>

<p class="sayac_bilgi">128 views</p>

<p><a href="http://feedads.g.doubleclick.net/~a/k3X9DKzscUZxFJH18JhCUFZhMT0/0/da"><img src="http://feedads.g.doubleclick.net/~a/k3X9DKzscUZxFJH18JhCUFZhMT0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/k3X9DKzscUZxFJH18JhCUFZhMT0/1/da"><img src="http://feedads.g.doubleclick.net/~a/k3X9DKzscUZxFJH18JhCUFZhMT0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/0hngdg26OhM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2011/12/06/elias-kodlamasi-elias-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2011/12/06/elias-kodlamasi-elias-code/</feedburner:origLink></item>
		<item>
		<title>Tekil Kodlama (Unary Coding)</title>
		<link>http://feedproxy.google.com/~r/BilgisayarKavramlari/~3/omzIwxbe7QU/</link>
		<comments>http://www.bilgisayarkavramlari.com/2011/12/06/tekil-kodlama-unary-coding/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 06:09:18 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Veri Sıkıştırma (Data Compression)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/?p=6078</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Verilerin tekil karşılıkla kodlanmasıdır. Buna göre her verinin kendisine ait bir basamakta karşılığı bulunur. Basitçe k değerindeki bir sayının kodlanması için k adet 1 ve sonuna bir adet 0 konulur. Örneğin aşağıda bazı sayıların tekil kodlama (unary coding) karşılıkları verilmiştir: 1 &#8211;&#62; 10 2 &#8211;&#62; 110 3 &#8211;&#62; 1110 11 [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER</p>
<p>Verilerin tekil karşılıkla kodlanmasıdır. Buna göre her verinin kendisine ait bir basamakta karşılığı bulunur.</p>
<p>Basitçe k değerindeki bir sayının kodlanması için k adet 1 ve sonuna bir adet 0 konulur.</p>
<p>Örneğin aşağıda bazı sayıların tekil kodlama (unary coding) karşılıkları verilmiştir:</p>
<p>1 &#8211;&gt; 10</p>
<p>2 &#8211;&gt; 110</p>
<p>3 &#8211;&gt; 1110</p>
<p>11 &#8211;&gt; 111111111110</p>
<p>Buna göre, 1023 sayısının karşılığı olarak 1023 adet 1 ve ardından 0 gelmesi gerekir.</p>
<p>Tekil kodlama düşük seviyeli sinyal işleme için bazı durumlarda kullanışlıdır ve her veri ünitesinin (her sayının) bitişini belirten bir sinyal olarak 0 kullanılmıştır. Ancak tekil kodlamanın en büyük mahsuru veriyi çok uzun kodlaması ve bunun sonucunda yer israfıdır.</p>
<p>Örneğin ikili kodlama (binary coding) için veriler ikilik tabana çevrilir. Bu durumda yukarıdaki örnekte verilen sayıların karşılıkları aşağıdaki şekilde olacaktır:</p>
<p>1 &#8211;&gt; 1</p>
<p>2 &#8211;&gt; 10</p>
<p>3 &#8211;&gt; 11</p>
<p>11 &#8211;&gt; 1011</p>
<p>Görüldüğü üzere çok daha az yer kaplayan veriler elde edilebilmektedir ancak bu değerlerin sürekli olarak 1 ve 0 olarak değişmesi söz konusudur. Diğer yandan veriler arasında bir ayrım söz konusu değildir. Örneğin tekil kodlama ile yollanan aşağıdaki dizgiyi (string) ele alalım:</p>
<p>101101110</p>
<p>Bu dizginin karşılığının 123 olduğu kolayca bulunabilirken aynı verinin ikili kodlamadaki karşılığı</p>
<p>11011</p>
<p>olmakta ve bu verinin 123 mü yoksa 11 mi olduğu bilinememektedir.</p>

<p class="sayac_bilgi">56 views</p>

<p><a href="http://feedads.g.doubleclick.net/~a/_I5COfZ-6rS9Qx3JwlseYDZVLHk/0/da"><img src="http://feedads.g.doubleclick.net/~a/_I5COfZ-6rS9Qx3JwlseYDZVLHk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/_I5COfZ-6rS9Qx3JwlseYDZVLHk/1/da"><img src="http://feedads.g.doubleclick.net/~a/_I5COfZ-6rS9Qx3JwlseYDZVLHk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/BilgisayarKavramlari/~4/omzIwxbe7QU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2011/12/06/tekil-kodlama-unary-coding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.bilgisayarkavramlari.com/2011/12/06/tekil-kodlama-unary-coding/</feedburner:origLink></item>
	</channel>
</rss>

