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

<channel>
	<title>Algoritma Archives - Halil Durmus</title>
	<atom:link href="https://www.halildurmus.com/tag/algoritma/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.halildurmus.com/tag/algoritma/</link>
	<description>Official Website</description>
	<lastBuildDate>Thu, 28 Aug 2025 13:27:33 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.halildurmus.com/wp-content/uploads/2020/06/1-HalilDurmusRetina-150x150.png</url>
	<title>Algoritma Archives - Halil Durmus</title>
	<link>https://www.halildurmus.com/tag/algoritma/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Luhn Algoritması</title>
		<link>https://www.halildurmus.com/2025/08/29/luhn-algoritmasi/</link>
					<comments>https://www.halildurmus.com/2025/08/29/luhn-algoritmasi/#respond</comments>
		
		<dc:creator><![CDATA[Halil Durmuş]]></dc:creator>
		<pubDate>Fri, 29 Aug 2025 05:00:00 +0000</pubDate>
				<category><![CDATA[Bilgisayar]]></category>
		<category><![CDATA[Genel]]></category>
		<category><![CDATA[Algoritma]]></category>
		<category><![CDATA[KrediKartıDoğrulama]]></category>
		<category><![CDATA[VeriDoğrulama]]></category>
		<guid isPermaLink="false">https://www.halildurmus.com/?p=5148</guid>

					<description><![CDATA[<p>Luhn Algoritması, IBM mühendisi Hans Peter Luhn tarafından 1954 yılında geliştirilmiş bir doğrulama algoritmasıdır. Algoritma, hızlı ve basit bir şekilde bir dizi sayının doğruluğunu kontrol etmeyi amaçlar. Günümüzde, özellikle kredi kartı ve mobil cihaz IMEI numaralarının doğruluğunu sağlamak için yaygın olarak kullanılır. Matematiksel temellere dayanan bu yaklaşım, kullanıcı hatalarını önlemede etkili bir araçtır ve birçok [&#8230;]</p>
<p>The post <a href="https://www.halildurmus.com/2025/08/29/luhn-algoritmasi/">Luhn Algoritması</a> appeared first on <a href="https://www.halildurmus.com">Halil Durmus</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Luhn Algoritması, IBM mühendisi Hans Peter Luhn tarafından 1954 yılında geliştirilmiş bir doğrulama algoritmasıdır. Algoritma, hızlı ve basit bir şekilde bir dizi sayının doğruluğunu kontrol etmeyi amaçlar. Günümüzde, özellikle kredi kartı ve mobil cihaz IMEI numaralarının doğruluğunu sağlamak için yaygın olarak kullanılır. Matematiksel temellere dayanan bu yaklaşım, kullanıcı hatalarını önlemede etkili bir araçtır ve birçok sektörde veri doğruluğunu artırmak için tercih edilmektedir.</p>



<p class="wp-block-paragraph">Luhn Algoritması, düşük işlem maliyeti ve basit kullanımıyla sistem performansını düşürmeden veri doğrulama süreçlerine entegre edilebilir. Güvenlik odaklı bir algoritma olmadığı için, sahtecilik önleme gibi durumlarda tek başına yeterli değildir. Bu yazıda, algoritmanın çalışma prensibini, nasıl çalıştığını, bir örnekle nasıl kullanıldığını ve avantajları ve dezavantajlarını ele alacağız.</p>



<h4 class="wp-block-heading">Luhn Algoritmasının Çalışma Prensibi</h4>



<p class="wp-block-paragraph">Luhn Algoritması, bir dizi sayının (genellikle bir numaranın) doğru olup olmadığını kontrol etmek için tasarlanmıştır. Bu algoritma, şu adımları takip eder:</p>



<ol start="1" class="wp-block-list">
<li><strong>Adım 1: Sayı Dizisinin Hazırlanması</strong>
<ul class="wp-block-list">
<li>Doğrulama yapılacak sayılar sağdan sola doğru değerlendirilir.</li>



<li>İlk sayı (en sağdaki) kontrol basamağı olarak ayrılır.</li>
</ul>
</li>



<li><strong>Adım 2: Her İkinci Sayıyı Çiftleme</strong>
<ul class="wp-block-list">
<li>Kontrol basamağı hariç diğer tüm sayılar sırayla alınır.</li>



<li>Sağdan sola doğru her ikinci sayı ikiyle çarpılır.</li>
</ul>
</li>



<li><strong>Adım 3: Çarpım Sonuçlarının Toplanması</strong>
<ul class="wp-block-list">
<li>İkiyle çarpılan sayılarda sonuç tek basamaklıysa aynen alınır; iki basamaklıysa basamaklar toplanır.</li>
</ul>
</li>



<li><strong>Adım 4: Tüm Sayıların Toplanması</strong>
<ul class="wp-block-list">
<li>Çiftleme sonrası elde edilen sayılar ve çiftlenmeyen diğer sayılar toplanır.</li>
</ul>
</li>



<li><strong>Adım 5: Modulo İşlemi ile Doğrulama</strong>
<ul class="wp-block-list">
<li>Toplamın 10’a bölünmesi sonucu kalan 0 ise numara geçerli sayılır.</li>
</ul>
</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h5 class="wp-block-heading">Örnek: Kredi Kartı Numarası Doğrulama</h5>



<p class="wp-block-paragraph">Bir kredi kartı numarasının doğruluğunu kontrol etmek için Luhn Algoritmasını uygulayalım. Numara: <strong>4539 1488 0343 6467</strong></p>



<ol start="1" class="wp-block-list">
<li><strong>Kontrol Basamağını Ayırma</strong>
<ul class="wp-block-list">
<li>Kontrol basamağı: 7</li>



<li>Geri kalan: 4539 1488 0343 646</li>
</ul>
</li>



<li><strong>Her İkinci Sayıyı Çiftleme</strong>
<ul class="wp-block-list">
<li>Sağdan sola: 6, 4, 3, 6, 8, 4, 9, 5</li>



<li>Çiftlenenler: 6×2=12, 4×2=8, 3×2=6, 6×2=12, 8×2=16, 4×2=8, 9×2=18, 5×2=10</li>



<li>Basamakları Toplama: (1+2) + 8 + 6 + (1+2) + (1+6) + 8 + (1+8) + (1+0) = 34</li>
</ul>
</li>



<li><strong>Çiftlenmeyen Sayılar ve Toplam</strong>
<ul class="wp-block-list">
<li>Çiftlenmeyenler: 7, 3, 8, 4, 3, 9, 5</li>



<li>Toplam: 7 + 3 + 8 + 4 + 3 + 9 + 5 = 39</li>
</ul>
</li>



<li><strong>Toplam</strong>
<ul class="wp-block-list">
<li>34 + 39 = 73</li>
</ul>
</li>



<li><strong>Doğrulama</strong>
<ul class="wp-block-list">
<li>73 mod 10 = 3 ≠ 0, bu numara geçerli değildir.</li>
</ul>
</li>
</ol>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers" data-code-block-pro-font-family="" style="font-size:.875rem;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#d8dee933" stroke="#d8dee94d" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#d8dee933" stroke="#d8dee94d" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#d8dee933" stroke="#d8dee94d" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>// C# program to implement
// Luhn algorithm
using System;
 
class GFG {
     
// Returns true if given 
// card number is valid
static bool checkLuhn(String cardNo)
{
    int nDigits = cardNo.Length;
 
    int nSum = 0;
    bool isSecond = false;
    for (int i = nDigits - 1; i >= 0; i--) 
    {
 
         int d = cardNo&#91;i&#93; - '0';
 
        if (isSecond == true)
            d = d * 2;
 
        // We add two digits to handle
        // cases that make two digits 
        // after doubling
        nSum += d / 10;
        nSum += d % 10;
 
        isSecond = !isSecond;
    }
    return (nSum % 10 == 0);
}
 
    // Driver code
    static public void Main()
    {
        String cardNo = "79927398713";
        if (checkLuhn(cardNo))
            Console.WriteLine("This is a valid card");
        else
            Console.WriteLine("This is not a valid card");
     
    }
}
 </textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #616E88">// C# program to implement</span></span>
<span class="line"><span style="color: #616E88">// Luhn algorithm</span></span>
<span class="line"><span style="color: #81A1C1">using</span><span style="color: #D8DEE9FF"> System</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span></span>
<span class="line"><span style="color: #81A1C1">class</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">GFG</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">{</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span></span>
<span class="line"><span style="color: #616E88">// Returns true if given </span></span>
<span class="line"><span style="color: #616E88">// card number is valid</span></span>
<span class="line"><span style="color: #81A1C1">static</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">bool</span><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">checkLuhn</span><span style="color: #ECEFF4">(</span><span style="color: #D8DEE9FF">String cardNo</span><span style="color: #ECEFF4">)</span></span>
<span class="line"><span style="color: #ECEFF4">{</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #81A1C1">int</span><span style="color: #D8DEE9FF"> nDigits </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">cardNo</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">Length</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #81A1C1">int</span><span style="color: #D8DEE9FF"> nSum </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #81A1C1">bool</span><span style="color: #D8DEE9FF"> isSecond </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">false;</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #81A1C1">for</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">(</span><span style="color: #81A1C1">int</span><span style="color: #D8DEE9FF"> i </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">nDigits</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">1</span><span style="color: #81A1C1">;</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">i</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">&gt;=</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0</span><span style="color: #81A1C1">;</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">i</span><span style="color: #81A1C1">--</span><span style="color: #ECEFF4">)</span><span style="color: #D8DEE9FF"> </span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #ECEFF4">{</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span></span>
<span class="line"><span style="color: #D8DEE9FF">         </span><span style="color: #81A1C1">int</span><span style="color: #D8DEE9FF"> d </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">cardNo</span><span style="color: #ECEFF4">&#91;</span><span style="color: #D8DEE9">i</span><span style="color: #ECEFF4">&#93;</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">0</span><span style="color: #ECEFF4">&#39;</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #81A1C1">if</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">(</span><span style="color: #D8DEE9">isSecond</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">==</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">true</span><span style="color: #ECEFF4">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">            </span><span style="color: #D8DEE9">d</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">d</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">*</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">2</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span></span>
<span class="line"><span style="color: #ECEFF4">        </span><span style="color: #616E88">// We add two digits to handle</span></span>
<span class="line"><span style="color: #ECEFF4">        </span><span style="color: #616E88">// cases that make two digits </span></span>
<span class="line"><span style="color: #ECEFF4">        </span><span style="color: #616E88">// after doubling</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #D8DEE9">nSum</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">+=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">d</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">/</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">10</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #D8DEE9">nSum</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">+=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">d</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">%</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">10</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #D8DEE9">isSecond</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">!</span><span style="color: #D8DEE9">isSecond</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #ECEFF4">}</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #81A1C1">return</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">(</span><span style="color: #D8DEE9">nSum</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">%</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">10</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">==</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0</span><span style="color: #ECEFF4">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #ECEFF4">}</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span></span>
<span class="line"><span style="color: #ECEFF4">    </span><span style="color: #616E88">// Driver code</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #81A1C1">static</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">public</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">void</span><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">Main</span><span style="color: #ECEFF4">()</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #ECEFF4">{</span></span>
<span class="line"><span style="color: #D8DEE9FF">        String cardNo </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">79927398713</span><span style="color: #ECEFF4">&quot;</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #81A1C1">if</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">(</span><span style="color: #88C0D0">checkLuhn</span><span style="color: #ECEFF4">(</span><span style="color: #D8DEE9">cardNo</span><span style="color: #ECEFF4">))</span></span>
<span class="line"><span style="color: #D8DEE9FF">            </span><span style="color: #D8DEE9">Console</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">WriteLine</span><span style="color: #ECEFF4">(</span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">This is a valid card</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #81A1C1">else</span></span>
<span class="line"><span style="color: #D8DEE9FF">            </span><span style="color: #D8DEE9">Console</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">WriteLine</span><span style="color: #ECEFF4">(</span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">This is not a valid card</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">     </span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #ECEFF4">}</span></span>
<span class="line"><span style="color: #ECEFF4">}</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#2e3440ff;color:#c8d0e0;font-size:12px;line-height:1;position:relative">C#</span></div>



<p class="wp-block-paragraph">Çıktı:</p>



<p class="has-background wp-block-paragraph" style="background-color:#f3f1f1">This is a valid card</p>



<p class="wp-block-paragraph">Luhn algoritması, tek basamaklı hataların yanı sıra, bitişik basamaklardaki hemen hemen tüm transpozisyonları da tespit eder.&nbsp;</p>



<h4 class="wp-block-heading">Kullanım Alanları</h4>



<p class="wp-block-paragraph">Luhn Algoritması aşağıdaki alanlarda yaygın olarak kullanılır:</p>



<ul class="wp-block-list">
<li><strong>Kredi Kartı ve Banka Kartları:</strong> Kart numaralarının doğruluğunu kontrol etmek için.</li>



<li><strong>IMEI Numaraları:</strong> Mobil cihazların uluslararası kimlik doğrulaması için.</li>



<li><strong>Sosyal Güvenlik Numaraları:</strong> Bazı ülkelerde kimlik numaralarının doğruluğunu sağlamak için.</li>



<li><strong>Online Ödeme Sistemleri:</strong> Hatalı numara girişlerini önlemek için.</li>
</ul>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="750" height="750" src="https://www.halildurmus.com/wp-content/uploads/2025/01/luhn-Algoritmasi-kredi-karti.jpg" alt="" class="wp-image-5152" srcset="https://www.halildurmus.com/wp-content/uploads/2025/01/luhn-Algoritmasi-kredi-karti.jpg 750w, https://www.halildurmus.com/wp-content/uploads/2025/01/luhn-Algoritmasi-kredi-karti-300x300.jpg 300w, https://www.halildurmus.com/wp-content/uploads/2025/01/luhn-Algoritmasi-kredi-karti-150x150.jpg 150w" sizes="(max-width: 750px) 100vw, 750px" /></figure>



<p class="wp-block-paragraph"></p>



<h4 class="wp-block-heading">Avantajları</h4>



<ul class="wp-block-list">
<li><strong>Basitlik:</strong> Algoritma kolayca anlaşılır ve uygulanabilir.</li>



<li><strong>Hız:</strong> Doğrulama işlemi hızlı bir şekilde gerçekleştirilir.</li>



<li><strong>Yanlış Veri Girişini Önleme:</strong> Hatalı numara girişlerini engelleyerek veri doğruluğunu artırır.</li>



<li><strong>Kaynak Verimliliği:</strong> Düşük işlem gücü gerektirir, bu da küçük cihazlarda bile çalışabilir olmasını sağlar.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading">Dezavantajları</h4>



<ul class="wp-block-list">
<li><strong>Güvenlik Zayıflığı:</strong> Algoritma sadece doğrulama için tasarlanmıştır; güvenlik sağlayamaz. Numaranın doğruluğunu kontrol eder ancak numaranın sahte mi yoksa gerçek mi olduğunu anlamaz.</li>



<li><strong>Basit Hatalar:</strong> Algoritma sadece tek bir basamağın yanlış girilmesini ya da iki basamağın yer değiştirilmesini tespit edebilir.</li>
</ul>



<p class="wp-block-paragraph">Luhn Algoritması, doğrulama işlemlerinde etkili bir araçtır. Özellikle kimlik numaraları ve kredi kartları gibi verilerin doğruluğunu sağlamada önemli bir rol oynar. Bununla birlikte, güvenlik açısından tek başına yeterli değildir ve daha sofistike güvenlik sistemleriyle desteklenmelidir. Günümüzde bile, hatalı girişleri engellemek için bu algoritma sıklıkla kullanılmaktadır.</p>



<p class="wp-block-paragraph"><strong>Kaynakça:<a href="https://www.investopedia.com/terms/l/luhn-algorithm.asp">investopedia</a>, <a href="https://medium.com/@vitaliykorzenkoua/understanding-the-luhn-algorithm-for-credit-card-validation-41bfe8cb4ff0">medium</a>, <a href="https://www.academia.edu/19957955/Transposition_Error_Detection_in_Luhn_s_Algorithm">academia</a></strong></p>
<p>The post <a href="https://www.halildurmus.com/2025/08/29/luhn-algoritmasi/">Luhn Algoritması</a> appeared first on <a href="https://www.halildurmus.com">Halil Durmus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.halildurmus.com/2025/08/29/luhn-algoritmasi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Kriptoloji Nedir? Şifreleme Algoritmaları</title>
		<link>https://www.halildurmus.com/2024/09/10/kriptoloji-nedir-sifreleme-algoritmalari/</link>
					<comments>https://www.halildurmus.com/2024/09/10/kriptoloji-nedir-sifreleme-algoritmalari/#respond</comments>
		
		<dc:creator><![CDATA[Halil Durmuş]]></dc:creator>
		<pubDate>Tue, 10 Sep 2024 16:47:45 +0000</pubDate>
				<category><![CDATA[Bilgisayar]]></category>
		<category><![CDATA[Genel]]></category>
		<category><![CDATA[Algoritma]]></category>
		<category><![CDATA[Kriptoloji nedir]]></category>
		<category><![CDATA[Kriptoloji örnek]]></category>
		<category><![CDATA[Veri]]></category>
		<guid isPermaLink="false">https://www.halildurmus.com/?p=4823</guid>

					<description><![CDATA[<p>Günümüzde verilerin iletilmesinin yanı sıra verilerin güvenli bir şekilde iletilmesi için iletim esnasındaki gizlilik çok önem taşımaktadır. İletilmek istenen bilgilerin bir başkası tarafından kolayca erişilmemesi için şifreleme yöntemlerine başvurulmaktadır. Bu şifreleme yöntemine kriptoloji denilmektedir. Kriptoloji, cruptos (gizli) ve logos (bilim) kelimelerinin birleşiminden oluşmuştur ve kelime anlamı olarak gizleme bilimi manasına gelmektedir. Kriptolojide orijinal metne, düz [&#8230;]</p>
<p>The post <a href="https://www.halildurmus.com/2024/09/10/kriptoloji-nedir-sifreleme-algoritmalari/">Kriptoloji Nedir? Şifreleme Algoritmaları</a> appeared first on <a href="https://www.halildurmus.com">Halil Durmus</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Günümüzde verilerin iletilmesinin yanı sıra verilerin güvenli bir şekilde iletilmesi için iletim esnasındaki gizlilik çok önem taşımaktadır. İletilmek istenen bilgilerin bir başkası tarafından kolayca erişilmemesi için şifreleme yöntemlerine başvurulmaktadır. Bu şifreleme yöntemine <strong>kriptoloji </strong>denilmektedir. Kriptoloji, cruptos (gizli) ve logos (bilim) kelimelerinin birleşiminden oluşmuştur ve kelime anlamı olarak gizleme bilimi manasına gelmektedir. </p>



<p class="wp-block-paragraph">Kriptolojide orijinal metne, düz metin (plaintext), şifrelenmiş metne ise şifreli metin (ciphertext) denilmektedir. Düz metnin içeriğini saklamak için şifreleme (encryption) işleminin yapılması gerekmektedir. Bu sayede metnin içindeki bilgi başkalarının anlayamayacağı hale gelmektedir. Şifrelenmiş metni okuyacak olan kişilerin elinde şifreyi çözecek anahtar bulunmalıdır. Bu anahtar sayesinde şifrelenmiş olan metin düz metne çevrilmektedir. Bu işleme şifre çözme (decryption) işlemi denilmektedir. Şekilde şifreleme ve şifre çözme adımları gösterilmiştir.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="328" src="https://www.halildurmus.com/wp-content/uploads/2022/12/Sifreleme-ve-sifre-cozme-adimlarii-1024x328.png" alt="" class="wp-image-4831" srcset="https://www.halildurmus.com/wp-content/uploads/2022/12/Sifreleme-ve-sifre-cozme-adimlarii-1024x328.png 1024w, https://www.halildurmus.com/wp-content/uploads/2022/12/Sifreleme-ve-sifre-cozme-adimlarii-300x96.png 300w, https://www.halildurmus.com/wp-content/uploads/2022/12/Sifreleme-ve-sifre-cozme-adimlarii-768x246.png 768w, https://www.halildurmus.com/wp-content/uploads/2022/12/Sifreleme-ve-sifre-cozme-adimlarii-810x259.png 810w, https://www.halildurmus.com/wp-content/uploads/2022/12/Sifreleme-ve-sifre-cozme-adimlarii-1140x365.png 1140w, https://www.halildurmus.com/wp-content/uploads/2022/12/Sifreleme-ve-sifre-cozme-adimlarii.png 1250w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Kriptoloji, hem şifre bilimini (kriptografi) hem de şifre analizini (kripto analiz) kapsayan matematiksel  tekniklerle ifade edilen bir bilim dalıdır. Kriptografinin temel amacında veri güvenliğinin sağlanması için açık verileri gizli verilere dönüştürme işleminin yapılması vardır.</p>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading">Şifreleme Algoritmaları</h3>



<p class="wp-block-paragraph">Şifreleme ve şifre çözme işlemleri için çeşitli algoritmalar kullanılmaktadır. Bu algoritmalara kriptografik algoritmalar denilmektedir. Kriptografik algoritmalar, şifreleme ve şifre çözme işlemlerini anahtar kullanarak yapmaktadır. Şifreli metin sadece metin şifreleme işlemi için kullanılan anahtar ile çözülebilmektedir. Anahtar kullanan şifreleme algoritmaları simetrik şifreleme (gizli anahtar şifreleme) ve asimetrik şifreleme (açık anahtar şifreleme) algoritmaları olmak üzere ikiye ayrılmaktadır.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="600" height="450" src="https://www.halildurmus.com/wp-content/uploads/2022/12/Sifreleme-Algoritmalari.png" alt="" class="wp-image-4827" srcset="https://www.halildurmus.com/wp-content/uploads/2022/12/Sifreleme-Algoritmalari.png 600w, https://www.halildurmus.com/wp-content/uploads/2022/12/Sifreleme-Algoritmalari-300x225.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></figure>



<p class="wp-block-paragraph"></p>



<h4 class="wp-block-heading">1.Simetrik Şifreleme Algoritmaları</h4>



<p class="wp-block-paragraph">Simetrik şifreleme, gizli anahtarlı şifreleme olarak adlandırılmaktadır. <strong>Simetrik şifreleme algoritmalarında bilginin şifrelenmesi ve şifrelenmiş bilginin çözülmesi işlemi aynı anahtar kullanılarak gerçekleştirilmektedir.</strong> Bu anahtar sadece şifreleme işlemi ve şifre çözme işlemini yapacak olan kişilerde bulunmaktadır. Simetrik şifreleme algoritması açık metni ile gizli anahtarı veri girişi olarak alıp, çıktı olarak şifreli metni üretir. Düz metne erişmek ise sadece gizli anahtarın bilinmesiyle mümkün olmaktadır. Yani<br>şifreli metni düz metne çevirme işlemi gizli anahtar kullanarak gerçekleştirilmektedir. Simetrik şifreleme algoritması diyagramı verilmiştir.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="328" src="https://www.halildurmus.com/wp-content/uploads/2022/12/Simetrik-Sifreleme-Algoritmalari-1024x328.png" alt="" class="wp-image-4829" srcset="https://www.halildurmus.com/wp-content/uploads/2022/12/Simetrik-Sifreleme-Algoritmalari-1024x328.png 1024w, https://www.halildurmus.com/wp-content/uploads/2022/12/Simetrik-Sifreleme-Algoritmalari-300x96.png 300w, https://www.halildurmus.com/wp-content/uploads/2022/12/Simetrik-Sifreleme-Algoritmalari-768x246.png 768w, https://www.halildurmus.com/wp-content/uploads/2022/12/Simetrik-Sifreleme-Algoritmalari-810x259.png 810w, https://www.halildurmus.com/wp-content/uploads/2022/12/Simetrik-Sifreleme-Algoritmalari-1140x365.png 1140w, https://www.halildurmus.com/wp-content/uploads/2022/12/Simetrik-Sifreleme-Algoritmalari.png 1250w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Birçok simetrik algoritma çeşitleri bulunmaktadır. Bu algoritmalardan bazılarının adı, geliştiricisi ve geliştirme tarih bilgilerine yer verilmiştir.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.halildurmus.com/wp-content/uploads/2022/12/Simetrik-Sifreleme-Algoritma-.png" alt="" class="wp-image-4833" srcset="https://www.halildurmus.com/wp-content/uploads/2022/12/Simetrik-Sifreleme-Algoritma-.png 1024w, https://www.halildurmus.com/wp-content/uploads/2022/12/Simetrik-Sifreleme-Algoritma--300x225.png 300w, https://www.halildurmus.com/wp-content/uploads/2022/12/Simetrik-Sifreleme-Algoritma--768x576.png 768w, https://www.halildurmus.com/wp-content/uploads/2022/12/Simetrik-Sifreleme-Algoritma--810x608.png 810w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading">2.Asimetrik Şifreleme Algoritmaları</h3>



<p class="wp-block-paragraph">Asimetrik şifreleme, açık anahtarlı şifreleme olarak adlandırılmaktadır. Simetrik şifreleme algoritmasından farklı olarak asimetrik şifreleme algoritmasında açık ve özel anahtar olmak üzere iki farklı anahtar bulunmaktadır. Şifreleme anahtarına <strong>açık anahtar</strong>, şifre çözüm anahtarına ise <strong>özel anahtar</strong> ismi verilmektedir. Şifre çözme işlemi için kullanılan anahtar ile şifreleme işlemi için kullanılan anahtarlar birbirinden farklıdır. Şifre anahtarının herkese açık olması gerektiğinden bu algoritmalara açık anahtarlı algoritmalar denilmiştir. Bu sebepten dolayı bir kullanıcının açık anahtarı ile şifrelenen bir metin sadece bu kullanıcıya ait olan özel anahtar ile metnin şifresi çözülebilmektedir. Asimetrik şifreleme algoritması diyagramı gösterilmiştir.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="328" src="https://www.halildurmus.com/wp-content/uploads/2022/12/Asimetrik-Sifreleme-1024x328.png" alt="" class="wp-image-4835" srcset="https://www.halildurmus.com/wp-content/uploads/2022/12/Asimetrik-Sifreleme-1024x328.png 1024w, https://www.halildurmus.com/wp-content/uploads/2022/12/Asimetrik-Sifreleme-300x96.png 300w, https://www.halildurmus.com/wp-content/uploads/2022/12/Asimetrik-Sifreleme-768x246.png 768w, https://www.halildurmus.com/wp-content/uploads/2022/12/Asimetrik-Sifreleme-810x259.png 810w, https://www.halildurmus.com/wp-content/uploads/2022/12/Asimetrik-Sifreleme-1140x365.png 1140w, https://www.halildurmus.com/wp-content/uploads/2022/12/Asimetrik-Sifreleme.png 1250w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Birçok asimetrik şifreleme algoritması bulunmaktadır. Asimetrik şifreleme algoritmalarından bazıları<br>verilmiştir.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="600" height="400" src="https://www.halildurmus.com/wp-content/uploads/2022/12/Asimetrik-Sifreleme-Algoritmalari.png" alt="" class="wp-image-4836" srcset="https://www.halildurmus.com/wp-content/uploads/2022/12/Asimetrik-Sifreleme-Algoritmalari.png 600w, https://www.halildurmus.com/wp-content/uploads/2022/12/Asimetrik-Sifreleme-Algoritmalari-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></figure>



<h4 class="wp-block-heading">Avantaj ve Dezavantajları</h4>



<p class="wp-block-paragraph">Her iki tip&nbsp;şifrelemenin&nbsp;de diğerine kıyasla avantajları ve dezavantajları bulunur. Simetrik şifreleme algoritmaları çok daha hızlıdır. Daha az hesaplama gücü gerektirir. Fakat bunların başlıca zayıflığı anahtar paylaşımıdır. Bilgiyi şifrelemek ve bilginin şifresini açmak için aynı anahtar kullanıldığından, bu anahtarın veriye erişmesi gereken herhangi bir kişiyle paylaşılması gereklidir. Bu durum da doğal olarak güvenlik riskleri meydana getirir.</p>



<p class="wp-block-paragraph">Bunun aksine asimetrik şifrelemede şifre paylaşımı sorunu, şifreleme için açık anahtar, şifreyi açmak için de özel anahtar kullanılmasıyla çözülür. Fakat bu durumda da, asimetrik şifreleme sistemleri simetrik sistemlere kıyasla çok yavaş hale gelir ve çok daha uzun anahtarlar nedeniyle daha fazla hesaplama gücünü zorunlu kılar.</p>



<h4 class="wp-block-heading">Hibrid Sistemler</h4>



<p class="wp-block-paragraph">Birçok uygulamada, simetrik ve asimetrik şifreleme bir arada kullanılır. Bu tip hibrid sistemlerin en tipik örnekleri, internet içinde güvenli iletişim sağlamak üzere tasarlanmış Güvenli Yuva Katmanı (SSL) ve Taşıma Katmanı Güvenliği (TLS) kriptografik protokolleridir. SSL protokolleri artık güvensiz kabul edilirler. Bunların kullanımına devam edilmemelidir. TLS protokolleri güvenli kabul edilirler. Tüm web tarayıcılarında yaygın olarak kullanılırlar.&nbsp;</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>Kaynakça:</strong> <a href="https://www.ssl2buy.com/wiki/symmetric-vs-asymmetric-encryption-what-are-differences#:~:text=Difference%20Between%20Symmetric%20and%20Asymmetric,and%20decrypt%20messages%20when%20communicating." target="_blank" rel="noreferrer noopener">ssl2buy</a>, <a href="https://www.encryptionconsulting.com/education-center/symmetric-vs-asymmetric-encryption/">encryptionconsulting</a></p>



<p class="wp-block-paragraph">Kodaz, H., &amp; Botsali, F. M. (2010). Simetrik ve asimetrik şifreleme algoritmalarının karşılaştırılması. Selçuk Teknik Dergisi, 9(1), 10-23</p>



<p class="wp-block-paragraph">Erkan, H. (2010). ASELSAN Kriptografik Algoritma Tasarım Yetenekleri. Aselsan, 23(81), 26.</p>
<p>The post <a href="https://www.halildurmus.com/2024/09/10/kriptoloji-nedir-sifreleme-algoritmalari/">Kriptoloji Nedir? Şifreleme Algoritmaları</a> appeared first on <a href="https://www.halildurmus.com">Halil Durmus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.halildurmus.com/2024/09/10/kriptoloji-nedir-sifreleme-algoritmalari/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Graf Renklendirme (Welsh-Powell Algoritması)</title>
		<link>https://www.halildurmus.com/2024/04/30/graf-renklendirme-welsh-powell-algoritmasi/</link>
					<comments>https://www.halildurmus.com/2024/04/30/graf-renklendirme-welsh-powell-algoritmasi/#respond</comments>
		
		<dc:creator><![CDATA[Halil Durmuş]]></dc:creator>
		<pubDate>Tue, 30 Apr 2024 05:30:00 +0000</pubDate>
				<category><![CDATA[Bilgisayar]]></category>
		<category><![CDATA[Genel]]></category>
		<category><![CDATA[Algoritma]]></category>
		<category><![CDATA[Graf]]></category>
		<category><![CDATA[Graph Coloring]]></category>
		<category><![CDATA[Matematik]]></category>
		<guid isPermaLink="false">https://www.halildurmus.com/?p=4683</guid>

					<description><![CDATA[<p>Graf renklendirme de kullanılan algoritmalardan birisi Welch ve Powel’in önerdiği yöntemdir. Bu yöntem genel olarak düğümlerin derecelerine dayanmaktadır. Renklendirmede kullanılan toplam renk sayısı kromatik (chromatik) sayı olarak adlandırılır. Algoritmanın davranışı adım adım aşağıdaki gibidir. Yukarıdaki algoritmayı aşağıdaki örnek graf üzerinde açıklayacak olursak; 1.İlk renk birinci sıradaki düğüme atanır (en yüksek derecesi olan) ve daha sonra [&#8230;]</p>
<p>The post <a href="https://www.halildurmus.com/2024/04/30/graf-renklendirme-welsh-powell-algoritmasi/">Graf Renklendirme (Welsh-Powell Algoritması)</a> appeared first on <a href="https://www.halildurmus.com">Halil Durmus</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Graf renklendirme de kullanılan algoritmalardan birisi Welch ve Powel’in önerdiği yöntemdir. Bu yöntem genel olarak düğümlerin derecelerine dayanmaktadır. Renklendirmede kullanılan toplam renk sayısı kromatik (chromatik) sayı olarak adlandırılır.  Algoritmanın davranışı adım adım aşağıdaki gibidir.</p>



<ol class="wp-block-list">
<li>Düğümler derecelerine göre büyükten küçüğe doğru sıralanır.</li>



<li>İlk renk birinci sıradaki düğüme ve bu düğümün komşusu olmayan düğümlere atanır.</li>



<li>Bir sonraki renge geçilir ve bu renk sıradaki derecesi en yüksek olan düğüme ve bu düğümün komşusu olmayan düğümlere atanır.</li>



<li>Süreç bu şekilde renklendirilmemiş düğüm kalmayana kadar devam ettirilir.</li>
</ol>



<p class="wp-block-paragraph">Yukarıdaki algoritmayı aşağıdaki örnek graf üzerinde açıklayacak olursak;</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="641" height="211" src="https://www.halildurmus.com/wp-content/uploads/2022/11/Welch-Powel-Algoritmasi.png" alt="" class="wp-image-4684" srcset="https://www.halildurmus.com/wp-content/uploads/2022/11/Welch-Powel-Algoritmasi.png 641w, https://www.halildurmus.com/wp-content/uploads/2022/11/Welch-Powel-Algoritmasi-300x99.png 300w" sizes="auto, (max-width: 641px) 100vw, 641px" /></figure>



<p class="wp-block-paragraph">1.İlk renk birinci sıradaki düğüme atanır (en yüksek derecesi olan) ve daha sonra aynı renk birbirlerine bitişik olmayacak biçimde diğer düğümlere verilir.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="341" height="211" src="https://www.halildurmus.com/wp-content/uploads/2022/11/Renklendirme-1-Asama.png" alt="" class="wp-image-4686" srcset="https://www.halildurmus.com/wp-content/uploads/2022/11/Renklendirme-1-Asama.png 341w, https://www.halildurmus.com/wp-content/uploads/2022/11/Renklendirme-1-Asama-300x186.png 300w" sizes="auto, (max-width: 341px) 100vw, 341px" /></figure>



<p class="wp-block-paragraph">2.Bir sonraki renge geçilir, bu renk sıradaki derecesi en yüksek olan düğüme atanır; ve sonra bu renk, daha önce renklendirilmemiş düğümlere birbirlerine bitişi olmayacak şekilde atanır.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="341" height="211" src="https://www.halildurmus.com/wp-content/uploads/2022/11/Renklendirme-1-Asama-1.png" alt="" class="wp-image-4687" srcset="https://www.halildurmus.com/wp-content/uploads/2022/11/Renklendirme-1-Asama-1.png 341w, https://www.halildurmus.com/wp-content/uploads/2022/11/Renklendirme-1-Asama-1-300x186.png 300w" sizes="auto, (max-width: 341px) 100vw, 341px" /></figure>



<p class="wp-block-paragraph">4.Tüm düğümlere renk verilinceye kadar işlem tekrar edilir.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="341" height="211" src="https://www.halildurmus.com/wp-content/uploads/2022/11/Renklendirme-2-Asama.png" alt="" class="wp-image-4688" srcset="https://www.halildurmus.com/wp-content/uploads/2022/11/Renklendirme-2-Asama.png 341w, https://www.halildurmus.com/wp-content/uploads/2022/11/Renklendirme-2-Asama-300x186.png 300w" sizes="auto, (max-width: 341px) 100vw, 341px" /></figure>



<h3 class="wp-block-heading">Uygulama Alanları;</h3>



<ul class="wp-block-list">
<li>Harita renklendirme,</li>



<li>İşlemcilerin işlem sırasını belirleme,</li>



<li>Ders ve sınav programı ayarlama</li>



<li>Hava alanlarında iniş ve kalkış sırasını belirleme vs.</li>
</ul>



<p class="wp-block-paragraph">Uygulamada, graf renklendirmenin kullanılacağı alanların başında, ilk akla gelen, harita üzerindeki bölgelerin renklendirilmesi olabilir. Graf renklendirme bilgisayar biliminde ve günlük yaşamdaki birçok problemin çözümüne ciddi bir yaklaşımdır. Şimde de günlük hayatımız da kullandığımız graf renklendirme işlemini, çakışmadan sınav oturumlarının belirlenmesi örneğinde inceleyeceğiz.</p>



<h3 class="wp-block-heading">Problem</h3>



<p class="wp-block-paragraph">Bir üniversitede final sınavları öyle yerleştirilmek istenmektedir ki öğrencilerin farklı derslerine ait sınavları çakışmasın. Üniversitede <strong>4 tane öğrenci</strong> ve <strong>6 tane ders</strong> vardır ve herhangi bir öğrenci tabi ki aynı anda birden çok ders almaktadır. Bir de elimizde hangi öğrencinin hangi dersleri aldığı liste vardır.</p>



<p class="wp-block-paragraph">4 tane öğrenci 6 tane ders varsa ilgili kümelerimiz:</p>



<p class="has-text-color wp-block-paragraph" style="color:#d73214">D={d0, d1, d2, d3, d4, d5}<br>Ö={Öğrenci-1, Öğrenci-2, Öğrenci-3, Öğrenci-4}</p>



<p class="wp-block-paragraph">Her bir öğrencinin aldığı dersler de aşağıdaki gibi olsun:</p>



<p class="has-text-color wp-block-paragraph" style="color:#d73214">Öğrenci-1: d0, d1, d4            Öğrenci-2: d0, d2, d4<br>Öğrenci-3: d2, d3, d5            Öğrenci-4: d3, d4, d5</p>



<p class="wp-block-paragraph"><strong>Soru:</strong> Herhangi bir öğrencinin sınavı çakışmayacak şekilde yerleştirme yapılmasına yönelik olarak sınavlar için kaç farklı oturum gerektiği ve aynı anda hangi derslere ait sınavların yapılabileceğini belirleyiniz.</p>



<h4 class="wp-block-heading"><strong>Çözüm:</strong> </h4>



<p class="wp-block-paragraph">Bu problem graf renklendirme ile çözülebilir. Dersler graf üzerindeki düğümler olarak kabul edilip  öğrencilerin aldığı dersler de düğümler arasındaki hatları belirler. Bu grafın renklendirilmesi sonucu hangi dersin aynı anda yapılabileceği sonucu çıkar; aynı renge ait dersler aynı anda yapılabilir denilir.  <strong>Kromatik</strong> sayı sınavların yapılması için gerekli toplam oturum sayısını verir.</p>



<p class="wp-block-paragraph">İlk yapılması gereken bu verilerden ilgili grafın ortaya çıkarılmasıdır; derslerin kendileri grafın düğümlerini,<br>alınan dersler de düğümler arasındaki bağlantıyı belirler. </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="981" height="321" src="https://www.halildurmus.com/wp-content/uploads/2022/11/Graf-Renklendirme-Problem.png" alt="" class="wp-image-4689" srcset="https://www.halildurmus.com/wp-content/uploads/2022/11/Graf-Renklendirme-Problem.png 981w, https://www.halildurmus.com/wp-content/uploads/2022/11/Graf-Renklendirme-Problem-300x98.png 300w, https://www.halildurmus.com/wp-content/uploads/2022/11/Graf-Renklendirme-Problem-768x251.png 768w, https://www.halildurmus.com/wp-content/uploads/2022/11/Graf-Renklendirme-Problem-810x265.png 810w" sizes="auto, (max-width: 981px) 100vw, 981px" /></figure>



<p class="wp-block-paragraph">Graf elde edildikten sonra Welch ve Powel algoritmasına göre düğümler derecelerine göre sıralanır. En yüksek dereceli düğüme ilk renk atanır.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="731" height="321" src="https://www.halildurmus.com/wp-content/uploads/2022/11/Olsuan-Graf-Derecelendirme.png" alt="" class="wp-image-4693" srcset="https://www.halildurmus.com/wp-content/uploads/2022/11/Olsuan-Graf-Derecelendirme.png 731w, https://www.halildurmus.com/wp-content/uploads/2022/11/Olsuan-Graf-Derecelendirme-300x132.png 300w" sizes="auto, (max-width: 731px) 100vw, 731px" /></figure>



<p class="wp-block-paragraph">Welch ve Powel algoritmasına göre renklendirilirse aynı renge sahip olan dersler arasında ilişki olmadığı ve sınavların aynı anda yapılabileceği ortaya çıkar.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="342" height="321" src="https://www.halildurmus.com/wp-content/uploads/2022/11/Renklendirilmis-Graf.png" alt="" class="wp-image-4690" srcset="https://www.halildurmus.com/wp-content/uploads/2022/11/Renklendirilmis-Graf.png 342w, https://www.halildurmus.com/wp-content/uploads/2022/11/Renklendirilmis-Graf-300x282.png 300w" sizes="auto, (max-width: 342px) 100vw, 342px" /></figure>
</div>


<p class="wp-block-paragraph">Dolayısıyla Sonuç</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="631" height="321" src="https://www.halildurmus.com/wp-content/uploads/2022/11/Renklendirilmis-Graf-Sonuc.png" alt="" class="wp-image-4692" srcset="https://www.halildurmus.com/wp-content/uploads/2022/11/Renklendirilmis-Graf-Sonuc.png 631w, https://www.halildurmus.com/wp-content/uploads/2022/11/Renklendirilmis-Graf-Sonuc-300x153.png 300w" sizes="auto, (max-width: 631px) 100vw, 631px" /></figure>



<p class="wp-block-paragraph">Kromatik sayı 4 çıkmıştır; toplam dört oturum yapılmalıdır. Buna göre d4 dersinin ve d5 dersinin sınavı tek başına ayrı oturumlarda yapılmalıdır; ancak d2 ile d1 veya d0 ile d3 derslerinin sınavları aynı anda yapılabilir.</p>



<p class="wp-block-paragraph"><strong>Soru:</strong> Öğrenci-4 d4 dersini almaktan vazgeçip bırakırsa sınav yerleştirimi nasıl olur?</p>



<p class="wp-block-paragraph">Bu durumda Öğrenci-4’ün alacağı dersler d3 ve d5 olacaktır ve daha önce d4’den dolayı oluşan d3-d4 ve d4-d5 hatları, eğer bu kenarlar başka bir öğrenci tarafından da oluşturulmuyorsa graftan çıkarılacaktır. Bu durumda grafın yeni durumu ve renklendirme aşağıdaki gibi olur.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="772" height="321" src="https://www.halildurmus.com/wp-content/uploads/2022/11/Olusan-Graf-Renklendirilmis-Graf.png" alt="" class="wp-image-4695" srcset="https://www.halildurmus.com/wp-content/uploads/2022/11/Olusan-Graf-Renklendirilmis-Graf.png 772w, https://www.halildurmus.com/wp-content/uploads/2022/11/Olusan-Graf-Renklendirilmis-Graf-300x125.png 300w, https://www.halildurmus.com/wp-content/uploads/2022/11/Olusan-Graf-Renklendirilmis-Graf-768x319.png 768w" sizes="auto, (max-width: 772px) 100vw, 772px" /></figure>



<p class="wp-block-paragraph">Görüldüğü gibi kromatik sayı 3 çıkmıştır; bu durumda tüm oturum yeterlidir ve derslere ait sınavları aşağıdaki gibi yapılabilir:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="662" height="321" src="https://www.halildurmus.com/wp-content/uploads/2022/11/Renklendirilmis-Graf-1.png" alt="" class="wp-image-4696" srcset="https://www.halildurmus.com/wp-content/uploads/2022/11/Renklendirilmis-Graf-1.png 662w, https://www.halildurmus.com/wp-content/uploads/2022/11/Renklendirilmis-Graf-1-300x145.png 300w" sizes="auto, (max-width: 662px) 100vw, 662px" /></figure>



<p class="wp-block-paragraph"><strong>Not:</strong>Düzlemsel bir G=(D, K) grafı en fazla 4 renk kullanılarak renklendirilebilir; yani, kromatik sayı 4&#8217;tür.</p>



<p class="wp-block-paragraph">Kaynakça: <a href="https://www.geeksforgeeks.org/graph-coloring-applications/">Geeksforgeeks</a>, <a href="http://web.math.princeton.edu/math_alive/5/Notes2.pdf" target="_blank" rel="noreferrer noopener">Princeton</a>,</p>



<p class="wp-block-paragraph">Gould, R. (Ed.). <em>Graph Theory.</em> Menlo Park, CA: Benjamin-Cummings, 1988.</p>



<p class="wp-block-paragraph"><a href="http://www.youtube.com/watch?v=h9wxtqoa1jY" target="_blank" rel="noreferrer noopener">Lec 6 | MIT 6.042J Mathematics for Computer Science, Fall 2010 | Video Lecture</a> </p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://www.halildurmus.com/2024/04/30/graf-renklendirme-welsh-powell-algoritmasi/">Graf Renklendirme (Welsh-Powell Algoritması)</a> appeared first on <a href="https://www.halildurmus.com">Halil Durmus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.halildurmus.com/2024/04/30/graf-renklendirme-welsh-powell-algoritmasi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Bellman-Ford Algoritması</title>
		<link>https://www.halildurmus.com/2020/10/10/bellman-ford-algoritmasi/</link>
					<comments>https://www.halildurmus.com/2020/10/10/bellman-ford-algoritmasi/#respond</comments>
		
		<dc:creator><![CDATA[Halil Durmuş]]></dc:creator>
		<pubDate>Sat, 10 Oct 2020 15:22:41 +0000</pubDate>
				<category><![CDATA[Bilgisayar]]></category>
		<category><![CDATA[Genel]]></category>
		<category><![CDATA[Algoritma]]></category>
		<category><![CDATA[Bellman-Ford]]></category>
		<category><![CDATA[Time]]></category>
		<guid isPermaLink="false">https://www.halildurmus.com/?p=3822</guid>

					<description><![CDATA[<p>Bellman-Ford algoritmasının amacı, bir&#160;şekil (graph)&#160;üzerindeki, bir kaynaktan (source) bir hedefe(target ) giden en kısa yolu bulmaktır. Bir s ∈ V kaynağından tüm v ∈ V&#8217;lere bütün kısa yol uzunluklarını bulur. Yada bir negatif ağırlık çevrimi olduğunu saptar. Algoritma ağırlıklı şekiller (weighted graph) üzerinde çalışır ve bir anlamda&#160;Dijkstra algoritmasının&#160;iyileştirilmişi olarak düşünülebilir. Algoritma aslında Dijkstra algoritmasından daha [&#8230;]</p>
<p>The post <a href="https://www.halildurmus.com/2020/10/10/bellman-ford-algoritmasi/">Bellman-Ford Algoritması</a> appeared first on <a href="https://www.halildurmus.com">Halil Durmus</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Bellman-Ford algoritmasının amacı, bir&nbsp;şekil (graph)&nbsp;üzerindeki, bir kaynaktan (source) bir hedefe(target ) giden en kısa yolu bulmaktır. Bir s ∈ V kaynağından tüm v ∈  V&#8217;lere bütün kısa yol uzunluklarını bulur. Yada bir negatif ağırlık çevrimi olduğunu saptar. Algoritma ağırlıklı şekiller (weighted graph) üzerinde çalışır ve bir anlamda&nbsp;Dijkstra algoritmasının&nbsp;iyileştirilmişi olarak düşünülebilir.</p>



<p class="wp-block-paragraph">Algoritma aslında Dijkstra algoritmasından daha kötü bir performansa sahiptir ancak graftaki ağırlıkların eksi(-) olması durumunda Dijkstra’nın tersine başarılı çalışır.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="622" height="311" src="https://www.halildurmus.com/wp-content/uploads/2020/09/495-Bellman-Ford.png" alt="Bellman-Ford algoritması Negatif ağırlık çevrimi graflar üzerinde çalışır." class="wp-image-3823" srcset="https://www.halildurmus.com/wp-content/uploads/2020/09/495-Bellman-Ford.png 622w, https://www.halildurmus.com/wp-content/uploads/2020/09/495-Bellman-Ford-300x150.png 300w" sizes="auto, (max-width: 622px) 100vw, 622px" /></figure>



<p class="wp-block-paragraph"></p>



<ul class="wp-block-list"><li>Her düğüm için bir uzaklık tahmini oluşturulur.</li><li>Başlangıç olarak maliyet(s)=0 diğer düğümler için maliyet(u)= ∞ olarak atanır.</li><li>En az maliyetli yol hesaplanana kadar tüm kenarlar üzerinden güncelleme yapılır.</li></ul>



<div class="hcb_wrap"><pre class="prism undefined-numbers lang-plane"><code>BELLMAN-FORD(G,w,s) 
d[s] ← 0
for each v ∈V –{s}
   do d[v] ← ∞ 
for i ← 1 to |V| - 1
   do for each edge (u,v) ∈E
        do if d[v] &gt; d[u] + w(u, v) 
            then d[v] ← d[u] + w(u, v)
for each edge (u,v) ∈ E
   do if d[v] &gt; d[u] + w(u,v)
        then bir negatif ağırlık döngüsünün var olduğunu bildirin.
 return d[v] //  = δ(s, u), negatif ağırlıklı döngü yoksa</code></pre></div>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Bu algoritmanın çalışmasını örnek bir şekil( graph ) üzerinden göstermeye çalışacağım. Bu gösterimin ardından Bellman-Ford Algoritmasının başarısını ve eksik taraflarını tartışabiliriz.</p>



<h4 class="wp-block-heading">Aşama 0</h4>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="662" height="362" src="https://www.halildurmus.com/wp-content/uploads/2020/09/487-Bellman-Ford-1-1.png" alt="Bellman-Ford algoritması aşama 0" class="wp-image-3825" srcset="https://www.halildurmus.com/wp-content/uploads/2020/09/487-Bellman-Ford-1-1.png 662w, https://www.halildurmus.com/wp-content/uploads/2020/09/487-Bellman-Ford-1-1-300x164.png 300w" sizes="auto, (max-width: 662px) 100vw, 662px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Algoritmanın çalışmasını yukarıdaki gibi eksi değerlere sahip bir şekil üzerinden anlamaya çalışalım.</p>



<p class="wp-block-paragraph">Öncelikle düğümlere değer ataması yapılıyor. Başlangıç düğümüne 0, doğrudan erişilen düğümlere erişim değerleri ve erişilemeyen düğümlere&nbsp;∞&nbsp;sonsuz değeri atanıyor. Hedef düğüm olarak da E düğümünü tanımlayalım.</p>



<h4 class="wp-block-heading">Aşama 1</h4>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="662" height="362" src="https://www.halildurmus.com/wp-content/uploads/2020/09/488-Bellman-Ford-2.png" alt="Bellman-Ford algoritması aşama 1" class="wp-image-3826" srcset="https://www.halildurmus.com/wp-content/uploads/2020/09/488-Bellman-Ford-2.png 662w, https://www.halildurmus.com/wp-content/uploads/2020/09/488-Bellman-Ford-2-300x164.png 300w" sizes="auto, (max-width: 662px) 100vw, 662px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Bellman ford algoritması işte bu kenarları teker teker dolaşması itibariyle dijkstradan ayrılır. Sırayla yukarıdaki kenarları (Edges) dolaşır ve graftaki değerleri günceller.</p>



<p class="wp-block-paragraph">İlk yineleme</p>



<p class="wp-block-paragraph">B=AB 4, min(A,B)= 0-&gt; 0+4 = 4</p>



<h4 class="wp-block-heading">Aşama 2</h4>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="662" height="362" src="https://www.halildurmus.com/wp-content/uploads/2020/09/489-Bellman-Ford-3.png" alt="Bellman-Ford algoritması aşama 2
" class="wp-image-3827" srcset="https://www.halildurmus.com/wp-content/uploads/2020/09/489-Bellman-Ford-3.png 662w, https://www.halildurmus.com/wp-content/uploads/2020/09/489-Bellman-Ford-3-300x164.png 300w" sizes="auto, (max-width: 662px) 100vw, 662px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">C=AC 3, min(A,C)=0-&gt;0+3 =3</p>



<p class="wp-block-paragraph">C= BC -2, min(B,C)= 4-&gt; 4-2 = 2</p>



<h4 class="wp-block-heading">Aşama 3</h4>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="662" height="362" src="https://www.halildurmus.com/wp-content/uploads/2020/09/490-Bellman-Ford-4.png" alt="Bellman-Ford algoritması aşama 3" class="wp-image-3828" srcset="https://www.halildurmus.com/wp-content/uploads/2020/09/490-Bellman-Ford-4.png 662w, https://www.halildurmus.com/wp-content/uploads/2020/09/490-Bellman-Ford-4-300x164.png 300w" sizes="auto, (max-width: 662px) 100vw, 662px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">D=BD 2, min(B,D)=4-&gt;4+2 =6</p>



<h4 class="wp-block-heading">Aşama 4</h4>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="662" height="362" src="https://www.halildurmus.com/wp-content/uploads/2020/09/491-Bellman-Ford-5.png" alt="Bellman-Ford algoritması aşama 4" class="wp-image-3829" srcset="https://www.halildurmus.com/wp-content/uploads/2020/09/491-Bellman-Ford-5.png 662w, https://www.halildurmus.com/wp-content/uploads/2020/09/491-Bellman-Ford-5-300x164.png 300w" sizes="auto, (max-width: 662px) 100vw, 662px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">E= BE -3, min(B,C)= 4-&gt; 4-3 = 1</p>



<p class="wp-block-paragraph">1.Tur sonu</p>



<h4 class="wp-block-heading">Aşama 5</h4>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="662" height="362" src="https://www.halildurmus.com/wp-content/uploads/2020/09/492-Bellman-Ford-6.png" alt="Bellman-Ford algoritması aşama 5" class="wp-image-3830" srcset="https://www.halildurmus.com/wp-content/uploads/2020/09/492-Bellman-Ford-6.png 662w, https://www.halildurmus.com/wp-content/uploads/2020/09/492-Bellman-Ford-6-300x164.png 300w" sizes="auto, (max-width: 662px) 100vw, 662px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">D=CD 1, min(C,D)= 2-&gt; 2+1 =3</p>



<p class="wp-block-paragraph">2.Tur Yineleme</p>



<h4 class="wp-block-heading">Aşama 6</h4>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="662" height="362" src="https://www.halildurmus.com/wp-content/uploads/2020/09/493-Bellman-Ford-7.png" alt="" class="wp-image-3831" srcset="https://www.halildurmus.com/wp-content/uploads/2020/09/493-Bellman-Ford-7.png 662w, https://www.halildurmus.com/wp-content/uploads/2020/09/493-Bellman-Ford-7-300x164.png 300w" sizes="auto, (max-width: 662px) 100vw, 662px" /></figure>



<p class="wp-block-paragraph">Üçüncü &amp; Dördüncü Yineleme</p>



<h4 class="wp-block-heading">Aşama 7</h4>



<p class="wp-block-paragraph"><strong>Sonuç</strong>:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="741" height="482" src="https://www.halildurmus.com/wp-content/uploads/2020/09/494-Bellman-Ford-8.png" alt="" class="wp-image-3832" srcset="https://www.halildurmus.com/wp-content/uploads/2020/09/494-Bellman-Ford-8.png 741w, https://www.halildurmus.com/wp-content/uploads/2020/09/494-Bellman-Ford-8-300x195.png 300w" sizes="auto, (max-width: 741px) 100vw, 741px" /></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Negatif ağırlıklar için geliştirişmiş genel ağırlıklar için Bellman-Ford algoritmasından bahsedildi ve çalışma zamanı <strong>O(VE)</strong>&#8216;ye mal olmaktaydı.</p>



<p class="wp-block-paragraph"><strong>Kaynakça: <a href="https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm">Wikipedia</a>, <a href="https://www.techiedelight.com/single-source-shortest-paths-bellman-ford-algorithm/">Techiedelight</a>,</strong> <a href="https://www.geeksforgeeks.org/bellman-ford-algorithm-dp-23/"><strong>Geeksforgeeks</strong></a></p>



<p class="wp-block-paragraph"><a href="https://www.youtube.com/watch?v=Ttezuzs39nk" target="_blank" rel="noreferrer noopener"><strong>MIT Introduction to Algorithms 6.046J/18.401J/SMA5503 Lecture 18 Prof.Erik Demaine</strong></a></p>
<p>The post <a href="https://www.halildurmus.com/2020/10/10/bellman-ford-algoritmasi/">Bellman-Ford Algoritması</a> appeared first on <a href="https://www.halildurmus.com">Halil Durmus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.halildurmus.com/2020/10/10/bellman-ford-algoritmasi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Google Arama Algoritmasını Değiştiriyor</title>
		<link>https://www.halildurmus.com/2020/01/07/google-arama-algoritmasini-degistiriyor/</link>
					<comments>https://www.halildurmus.com/2020/01/07/google-arama-algoritmasini-degistiriyor/#respond</comments>
		
		<dc:creator><![CDATA[Halil Durmuş]]></dc:creator>
		<pubDate>Mon, 06 Jan 2020 21:04:54 +0000</pubDate>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[Genel Kültür]]></category>
		<category><![CDATA[Algoritma]]></category>
		<category><![CDATA[AramaAlgoritması]]></category>
		<category><![CDATA[GoogleArama]]></category>
		<category><![CDATA[PageRank]]></category>
		<guid isPermaLink="false">https://www.halildurmus.com/?p=2460</guid>

					<description><![CDATA[<p>İnternette aradığımız içeriğe ulaşmak için kullandığımız arama motorlarının başında gelen Google, aradığımız sözcüklerle en uyumlu olan içeriği bize sunmak için karmaşık yöntemler kullanıyor. Arama algoritması olarak adlandırılan bu yöntemler değişen şartlara göre sürekli güncelleniyor. Google, kurucuları Larry Page ve Sergey Brin tarafından geliştirilen PageRank adlı algoritmayı kullanarak işe başladı. Bu algoritma web sitelerini başka siteler [&#8230;]</p>
<p>The post <a href="https://www.halildurmus.com/2020/01/07/google-arama-algoritmasini-degistiriyor/">Google Arama Algoritmasını Değiştiriyor</a> appeared first on <a href="https://www.halildurmus.com">Halil Durmus</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">İnternette aradığımız içeriğe ulaşmak için kullandığımız arama motorlarının başında gelen Google, aradığımız sözcüklerle en uyumlu olan içeriği bize sunmak için karmaşık yöntemler kullanıyor. Arama algoritması olarak adlandırılan bu yöntemler değişen şartlara göre sürekli güncelleniyor. Google, kurucuları Larry Page ve Sergey Brin tarafından geliştirilen PageRank adlı algoritmayı kullanarak işe başladı. Bu algoritma web sitelerini başka siteler tarafından referans gösterilme sayısına göre sıralıyor. Örneğin “bilim” sözcüğüyle ilgili birçok site bilimteknik.tubitak.gov.tr adresini referans gösterirse Google’da “bilim” sözcüğü aratıldığında PageRank algoritmasına göre dergimizin web sayfası üst sıralarda çıkar. Ancak zaman içinde algoritmada birçok değişiklik yapıldı.  </p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://www.halildurmus.com/wp-content/uploads/2020/01/115.jpg" alt="Google Arama Algoritmasını Değiştiriyor" class="wp-image-2581" width="302" height="170" srcset="https://www.halildurmus.com/wp-content/uploads/2020/01/115.jpg 1020w, https://www.halildurmus.com/wp-content/uploads/2020/01/115-300x169.jpg 300w, https://www.halildurmus.com/wp-content/uploads/2020/01/115-768x432.jpg 768w, https://www.halildurmus.com/wp-content/uploads/2020/01/115-810x456.jpg 810w" sizes="auto, (max-width: 302px) 100vw, 302px" /></figure>



<p class="wp-block-paragraph">Geçtiğimiz günlerde Google algoritmasında önemli bazı yeni değişiklikler yapacağını duyurdu. Artık arama sonuçlarını sadece sözcüklere göre değil yazılan cümlenin anlamına göre bağlaç ve ekleri de dikkate alarak göstermeye başlayacak. Örneğin daha öncesinde “ABD’den Brezilya’ya vize gerekir mi” diye arattığınızda Brezilya’dan ABD’ye vize gerekir mi sorusunun cevabı da üst sıralarda çıkıyordu. Yeni değişikliklerle bu gibi aramalarda daha iyi sonuçlar elde edilebilecek. Şimdilik İngilizce diliyle başlayan güncelleme ilerleyen zamanlarda diğer diller için de yapılacak. </p>



<p class="wp-block-paragraph">Her ne kadar Google arama sonuçlarının tamamen programa dayalı olarak belirlendiğini, insanlar tarafından hiçbir müdahalenin yapılmadığını iddia etselerde. Arama sonuçlarının manipüle edildiğine dair birçok eleştiri alıyor. Geçtiğimiz günlerde Wall Street Journal tarafından yapılan bir araştırmaya göre, Google arama sonuçlarında büyük firmaları küçük firmalara göre daha üst sıralara çıkarıyor. Göçmenlik gibi hassas konularda bazı sonuçları gizliyor veya tümüyle engelliyor. Google arama algoritmasının tam olarak nasıl çalıştığını açıklamadığı için bu tartışmalar sürmeye devam edecek gibi görünüyor </p>



<h5 class="wp-block-heading">Yeni bir olay değil.</h5>



<p class="wp-block-paragraph">Google&#8217;ın mobil dostu internet sitelerine destek olacağı bir süredir biliniyordu. Google algoritma sisteminde hemen değişikliğe gitmeyerek site sahiplerine vakit verirken, sitelerin bu değişimden gelir kaybı yaşamamalarını tercih ediyor. Ancak Google&#8217;ın uyarılarına rağmen yeniliğe uymayanlar için ise elbette yapacak bir şey yok.</p>



<h5 class="wp-block-heading">Doğru bilgi sunan yükselecek.</h5>



<p class="wp-block-paragraph">Google&#8217;ın bir süredir üzerinde durduğu bir diğer&nbsp;madde&nbsp;de bilgi güvenliği konusu. Sitelerin kullanıcılarına sunduğu verilerin doğruluğunu araştıran ve bu konuda Bilgiye Dayalı Güven Algoritması geliştiren Google ekibi, şu an itibariyle bilinen 2.8 milyar bilginin yer aldığı bilgi kasasından faydalanılacak ve doğru bilgiyi sunan arama sonuçlarında üst sıralara tırmanacak. Ancak Google bu konuda henüz detay paylaşmış değil.</p>



<p class="wp-block-paragraph">İnternet kullanıcılarının en çok tercih ettiği arama motoru Google, 21 Nisan&#8217;da Deep Link isimli yeni arama algoritmasını faaliyete geçirecek. Yeniden yazılacak kurallarla mobil uyumlu web siteleri daha üst sıralarda yer alırken, aramalarda karşımıza çıkan alakasız sayfaları elenecek ve son kullanıcının hayatı pratikleşecek.&nbsp;</p>



<p class="wp-block-paragraph">Kaynakça: <strong><a href="http://www.teknolojide.com/google-arama-algoritmasini-degistiriyor">Teknolojide</a></strong> , <strong><a href="http://www.bilimteknik.tubitak.gov.tr/makale/google-arama-algoritmasini-degistiriyor">Bilim ve Teknik</a></strong></p>
<p>The post <a href="https://www.halildurmus.com/2020/01/07/google-arama-algoritmasini-degistiriyor/">Google Arama Algoritmasını Değiştiriyor</a> appeared first on <a href="https://www.halildurmus.com">Halil Durmus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.halildurmus.com/2020/01/07/google-arama-algoritmasini-degistiriyor/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
