<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://program.sonsuz.us/feed.xml" rel="self" type="application/atom+xml" /><link href="https://program.sonsuz.us/" rel="alternate" type="text/html" /><updated>2026-10-29T00:05:45+00:00</updated><id>https://program.sonsuz.us/feed.xml</id><title type="html">SonsuzUs</title><subtitle>Programlama ve Yazılım</subtitle><author><name>Sonsuz Us</name></author><entry><title type="html">Afet Anında En Güvenli Yol: Tahliye Rotası Optimizasyonu</title><link href="https://program.sonsuz.us/posts/afet-aninda-en-guvenli-yol-tahliye-rotasi-optimizasyonu/" rel="alternate" type="text/html" title="Afet Anında En Güvenli Yol: Tahliye Rotası Optimizasyonu" /><published>2026-10-28T00:00:00+00:00</published><updated>2026-10-28T00:00:00+00:00</updated><id>https://program.sonsuz.us/posts/afet-aninda-en-guvenli-yol-tahliye-rotasi-optimizasyonu</id><content type="html" xml:base="https://program.sonsuz.us/posts/afet-aninda-en-guvenli-yol-tahliye-rotasi-optimizasyonu/"><![CDATA[<p><img src="/img/afet-aninda-en-29.svg" alt="afet-aninda-en-29" /></p>

<p>Bir deprem ya da sel sırasında en kısa yol, her zaman en güvenli yol değildir. Normalde beş dakikada geçilen bir cadde yıkılmış binalar, yükselen su, yangın veya yoğun insan kalabalığı nedeniyle ölümcül hâle gelebilir. Tahliye rotası optimizasyonu; yol uzunluğunu, tehlike seviyesini, kapasiteyi ve sürekli değişen çevre koşullarını birlikte değerlendirerek insanları güvenli bölgelere yönlendirmeyi amaçlar.
``</p>

<h2 id="şehri-bir-graf-olarak-düşünmek">Şehri bir graf olarak düşünmek</h2>

<p>Algoritmik çözümün temelinde <strong>graf teorisi</strong> bulunur. Bir şehir haritası, düğümler ve kenarlardan oluşan bir graf şeklinde modellenebilir. Kavşaklar, binalar, toplanma alanları ve köprüler birer düğüm; bunları birbirine bağlayan yollar ise kenardır.</p>

<p>Her yolun yalnızca uzunluğu değil, afet koşullarındaki riski de hesaba katılmalıdır. Bir kenarın toplam maliyeti şu şekilde tanımlanabilir:</p>

\[C(e) = \alpha D(e) + \beta R(e) + \gamma T(e) + \delta K(e)\]

<p>Burada $D(e)$ mesafeyi, $R(e)$ tehlike puanını, $T(e)$ tahmini geçiş süresini, $K(e)$ ise kalabalık veya kapasite maliyetini temsil eder. $\alpha$, $\beta$, $\gamma$ ve $\delta$ katsayıları hangi ölçütün daha önemli olduğunu belirler. Örneğin sel sırasında risk katsayısı yükseltilerek su basmış kısa yolların tercih edilmesi engellenebilir.</p>

<table>
  <thead>
    <tr>
      <th>Ölçüt</th>
      <th>Normal navigasyon</th>
      <th>Afet navigasyonu</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Ana hedef</td>
      <td>En kısa veya hızlı yol</td>
      <td>En güvenli uygulanabilir yol</td>
    </tr>
    <tr>
      <td>Yol maliyeti</td>
      <td>Mesafe ve trafik</td>
      <td>Risk, hasar, kapasite ve süre</td>
    </tr>
    <tr>
      <td>Veri değişimi</td>
      <td>Görece yavaş</td>
      <td>Saniyeler içinde değişebilir</td>
    </tr>
    <tr>
      <td>Rota yaklaşımı</td>
      <td>Genellikle tek rota</td>
      <td>Alternatif ve yedek rotalar</td>
    </tr>
    <tr>
      <td>Kritik sonuç</td>
      <td>Gecikme</td>
      <td>Can güvenliği</td>
    </tr>
  </tbody>
</table>

<h2 id="hangi-algoritma-kullanılmalı">Hangi algoritma kullanılmalı?</h2>

<p>Pozitif maliyetli yollar için <strong>Dijkstra algoritması</strong>, başlangıç noktasından en düşük toplam maliyetli rotayı bulabilir. <strong>A*</strong> algoritması ise hedefe olan tahmini uzaklığı sezgisel bilgi olarak kullanır ve büyük haritalarda aramayı hızlandırır. Ancak afet sırasında tek bir kişinin rotasını bulmak yeterli değildir. Binlerce kişinin aynı dar köprüye yönlendirilmesi, teoride güvenli görünen yolu pratikte kullanılamaz hâle getirebilir.</p>

<p>Bu nedenle çoklu tahliye problemlerinde maksimum akış, minimum maliyetli akış ve zaman bağımlı graf modelleri kullanılabilir. Yol kapasitesi doldukça maliyetin yükseltilmesi, algoritmanın insanları farklı güzergâhlara dağıtmasını sağlar.</p>

<p>Aşağıdaki Python örneği, tehlike puanını ve mesafeyi birleştirerek güvenli rotayı hesaplar:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">networkx</span> <span class="k">as</span> <span class="n">nx</span>

<span class="n">G</span> <span class="o">=</span> <span class="n">nx</span><span class="p">.</span><span class="nc">Graph</span><span class="p">()</span>

<span class="c1"># Mesafe kilometre, risk ise 0 ile 10 arasındadır.
</span><span class="n">yollar</span> <span class="o">=</span> <span class="p">[</span>
    <span class="p">(</span><span class="sh">"</span><span class="s">A</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">B</span><span class="sh">"</span><span class="p">,</span> <span class="mf">2.0</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
    <span class="p">(</span><span class="sh">"</span><span class="s">B</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">D</span><span class="sh">"</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">,</span> <span class="mi">8</span><span class="p">),</span>  <span class="c1"># Hasarlı köprü
</span>    <span class="p">(</span><span class="sh">"</span><span class="s">A</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">C</span><span class="sh">"</span><span class="p">,</span> <span class="mf">3.0</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span>
    <span class="p">(</span><span class="sh">"</span><span class="s">C</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">D</span><span class="sh">"</span><span class="p">,</span> <span class="mf">3.0</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
<span class="p">]</span>

<span class="k">for</span> <span class="n">baslangic</span><span class="p">,</span> <span class="n">bitis</span><span class="p">,</span> <span class="n">mesafe</span><span class="p">,</span> <span class="n">risk</span> <span class="ow">in</span> <span class="n">yollar</span><span class="p">:</span>
    <span class="n">maliyet</span> <span class="o">=</span> <span class="n">mesafe</span> <span class="o">+</span> <span class="mi">4</span> <span class="o">*</span> <span class="n">risk</span>
    <span class="n">G</span><span class="p">.</span><span class="nf">add_edge</span><span class="p">(</span><span class="n">baslangic</span><span class="p">,</span> <span class="n">bitis</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="n">maliyet</span><span class="p">)</span>

<span class="n">rota</span> <span class="o">=</span> <span class="n">nx</span><span class="p">.</span><span class="nf">shortest_path</span><span class="p">(</span><span class="n">G</span><span class="p">,</span> <span class="sh">"</span><span class="s">A</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">D</span><span class="sh">"</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="sh">"</span><span class="s">weight</span><span class="sh">"</span><span class="p">)</span>
<span class="n">toplam</span> <span class="o">=</span> <span class="n">nx</span><span class="p">.</span><span class="nf">shortest_path_length</span><span class="p">(</span><span class="n">G</span><span class="p">,</span> <span class="sh">"</span><span class="s">A</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">D</span><span class="sh">"</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="sh">"</span><span class="s">weight</span><span class="sh">"</span><span class="p">)</span>

<span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">Güvenli rota:</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s"> -&gt; </span><span class="sh">"</span><span class="p">.</span><span class="nf">join</span><span class="p">(</span><span class="n">rota</span><span class="p">))</span>
<span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">Toplam maliyet:</span><span class="sh">"</span><span class="p">,</span> <span class="n">toplam</span><span class="p">)</span>
</code></pre></div></div>

<p>Kodda risk, mesafeden dört kat daha etkili olacak biçimde ağırlıklandırılmıştır. Böylece kısa olmasına rağmen hasarlı köprüden geçen <code class="language-plaintext highlighter-rouge">A-B-D</code> rotası yerine daha uzun fakat güvenli <code class="language-plaintext highlighter-rouge">A-C-D</code> rotası seçilebilir.</p>

<h2 id="dinamik-veriler-neden-önemlidir">Dinamik veriler neden önemlidir?</h2>

<p>Afet haritaları sabit değildir. Deprem artçıları yeni yolları kapatabilir; sel suyu birkaç dakika içinde yükselebilir. Sensörler, uydu görüntüleri, dronlar, belediye verileri ve vatandaş bildirimleri grafın kenar maliyetlerini gerçek zamanlı güncelleyebilir. Bir yol kapanırsa kenar silinir; risk artarsa maliyeti yükseltilir ve rota yeniden hesaplanır.</p>

<p>Yine de sistem yalnızca algoritmadan ibaret değildir. Hatalı sensör verileri doğrulanmalı, internet kesintisine karşı çevrimdışı haritalar hazırlanmalı ve engelli bireyler için erişilebilir rotalar üretilmelidir. Başarılı bir tahliye sistemi, matematiksel olarak iyi bir yol bulmanın yanında belirsizliğe dayanıklı, anlaşılır ve adil olmalıdır. Çünkü afet anında algoritmanın gerçek başarısı birkaç saniye kazanmak değil, mümkün olduğunca çok insanı güvenle hedefe ulaştırmaktır.</p>]]></content><author><name>Sonsuz Us</name></author><category term="Proje" /><category term="algoritma" /><category term="optimizasyon" /><category term="afet yönetimi" /><category term="graf teorisi" /><category term="python" /><category term="yapay zeka" /><summary type="html"><![CDATA[Bir deprem ya da sel sırasında en kısa yol, her zaman en güvenli yol değildir. Normalde beş dakikada geçilen bir cadde yıkılmış binalar, yükselen su, yangın veya yoğun insan kalabalığı nedeniyle ölümcül hâle gelebilir. Tahliye rotası optimizasyonu; yol uzunluğunu, tehlike seviyesini, kapasiteyi ve sürekli değişen çevre koşullarını birlikte değerlendirerek insanları güvenli bölgelere yönlendirmeyi amaçlar.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://program.sonsuz.us/img/afet-aninda-en-29.png" /><media:content medium="image" url="https://program.sonsuz.us/img/afet-aninda-en-29.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Akıllı Ev Ağlarında Mahremiyet ve Veri Güvenliği: Eviniz Sizi Dinliyor mu?</title><link href="https://program.sonsuz.us/posts/akilli-ev-aglarinda-mahremiyet-ve-veri-guvenligi-eviniz-sizi-dinliyor-mu/" rel="alternate" type="text/html" title="Akıllı Ev Ağlarında Mahremiyet ve Veri Güvenliği: Eviniz Sizi Dinliyor mu?" /><published>2026-10-28T00:00:00+00:00</published><updated>2026-10-28T00:00:00+00:00</updated><id>https://program.sonsuz.us/posts/akilli-ev-aglarinda-mahremiyet-ve-veri-guvenligi-eviniz-sizi-dinliyor-mu</id><content type="html" xml:base="https://program.sonsuz.us/posts/akilli-ev-aglarinda-mahremiyet-ve-veri-guvenligi-eviniz-sizi-dinliyor-mu/"><![CDATA[<p>Akıllı hoparlörlerden güvenlik kameralarına, robot süpürgelerden internete bağlı ampullere kadar evlerimiz giderek daha fazla veri üretiyor. Bu cihazlar yaşamı kolaylaştırırken ses kayıtları, görüntüler, hareket bilgileri ve günlük alışkanlıklar gibi oldukça kişisel verileri de işliyor. Dolayısıyla ev ağındaki güvenlik açığı yalnızca internetin yavaşlaması değil, özel hayatın görünür hâle gelmesi anlamına gelebilir.</p>

<p><img src="/img/akilli-ev-aglarinda-39.svg" alt="akilli-ev-aglarinda-39" /></p>

<p>``</p>

<h2 id="akıllı-ev-cihazları-hangi-verileri-toplar">Akıllı ev cihazları hangi verileri toplar?</h2>

<p>Bir cihazın topladığı veri, sunduğu özellikle doğrudan ilişkilidir. Akıllı termostat sıcaklık tercihlerini öğrenirken robot süpürge evin haritasını çıkarabilir. Kapı sensörleri ise evde bulunulan saatlerin tahmin edilmesine yardımcı olabilir. Tek başına önemsiz görünen bu kayıtlar birleştirildiğinde ayrıntılı bir davranış profili ortaya çıkar.</p>

<table>
  <thead>
    <tr>
      <th>Cihaz</th>
      <th>Toplanan veri</th>
      <th>Olası risk</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Akıllı kamera</td>
      <td>Görüntü, ses, hareket</td>
      <td>İzinsiz gözetleme</td>
    </tr>
    <tr>
      <td>Akıllı hoparlör</td>
      <td>Sesli komutlar, arama geçmişi</td>
      <td>Konuşmaların ifşası</td>
    </tr>
    <tr>
      <td>Robot süpürge</td>
      <td>Oda haritası, çalışma saatleri</td>
      <td>Ev düzeninin öğrenilmesi</td>
    </tr>
    <tr>
      <td>Akıllı priz</td>
      <td>Enerji kullanımı, zaman bilgisi</td>
      <td>Günlük rutinin tahmini</td>
    </tr>
    <tr>
      <td>Akıllı kilit</td>
      <td>Giriş-çıkış kayıtları</td>
      <td>Fiziksel güvenlik riski</td>
    </tr>
  </tbody>
</table>

<p>Mahremiyet riski basitçe şu modelle düşünülebilir:</p>

\[R = P \times E \times V\]

<p>Burada $P$ saldırının gerçekleşme olasılığını, $E$ açığa çıkacak verinin miktarını, $V$ ise verinin hassasiyetini temsil eder. Çok güçlü şifrelenen bir sistemde $P$ azalır; cihaz gereksiz veri toplamıyorsa $E$ küçülür. Sağlık veya kamera verileri söz konusu olduğunda ise $V$ doğal olarak yüksektir.</p>

<h2 id="veriler-nasıl-kötüye-kullanılabilir">Veriler nasıl kötüye kullanılabilir?</h2>

<p>En yaygın tehlikelerden biri varsayılan parolaların değiştirilmemesidir. Saldırganlar internete açık cihazları tarayarak bilinen kullanıcı adı ve parola kombinasyonlarını deneyebilir. Güncellenmeyen yazılımlar, güvensiz bulut servisleri ve şifrelenmemiş bağlantılar da diğer giriş kapılarıdır.</p>

<p>Tehlike her zaman dışarıdan gelmez. Üretici firmalar kullanım verilerini reklam, analiz veya ürün geliştirme amacıyla üçüncü taraflarla paylaşabilir. Kullanıcı sözleşmesindeki belirsiz ifadeler, teknik olarak izin verilmiş fakat kullanıcı açısından beklenmeyen veri kullanımlarına yol açabilir.</p>

<h2 id="temel-koruma-katmanları">Temel koruma katmanları</h2>

<p>Güvenli bir akıllı ev, tek bir sihirli ayar yerine katmanlı savunma yaklaşımıyla kurulur.</p>

<ol>
  <li><strong>Varsayılan parolaları değiştirin:</strong> Her cihaz için uzun ve benzersiz parola kullanın.</li>
  <li><strong>Çok faktörlü doğrulamayı açın:</strong> Hesap parolası sızsa bile ikinci bir kontrol katmanı oluşturur.</li>
  <li><strong>Cihazları ayrı ağa alın:</strong> IoT cihazlarını bilgisayar ve telefonlardan ayıran misafir ağı veya VLAN kullanın.</li>
  <li><strong>Güncellemeleri izleyin:</strong> Otomatik güncellemeyi açın; desteği sona ermiş cihazları değiştirin.</li>
  <li><strong>Gereksiz özellikleri kapatın:</strong> Kullanılmayan mikrofonu, uzaktan erişimi ve konum takibini devre dışı bırakın.</li>
  <li><strong>Gizlilik politikasını okuyun:</strong> Verinin nerede saklandığını ve nasıl silinebildiğini kontrol edin.</li>
</ol>

<table>
  <thead>
    <tr>
      <th>Zayıf yaklaşım</th>
      <th>Daha güvenli yaklaşım</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Tüm cihazları aynı Wi-Fi ağına bağlamak</td>
      <td>IoT cihazlarını ayrı ağda tutmak</td>
    </tr>
    <tr>
      <td>Aynı parolayı tekrar kullanmak</td>
      <td>Parola yöneticisiyle benzersiz parola üretmek</td>
    </tr>
    <tr>
      <td>Güncellemeleri ertelemek</td>
      <td>Güvenlik yamalarını otomatik yüklemek</td>
    </tr>
    <tr>
      <td>Sürekli bulut kaydı</td>
      <td>Mümkünse yerel ve şifreli kayıt</td>
    </tr>
  </tbody>
</table>

<h2 id="ağınızdaki-cihazları-kontrol-edin">Ağınızdaki cihazları kontrol edin</h2>

<p>Teknik kullanıcılar, yönlendirici kayıtlarını incelemenin yanında yerel ağdaki aktif cihazları Python ile listeleyebilir. Aşağıdaki örnek, sistemdeki ARP tablosunu göstererek ağa yakın zamanda bağlanmış cihazların IP ve MAC adreslerini görmeye yardımcı olur:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">subprocess</span>

<span class="n">result</span> <span class="o">=</span> <span class="n">subprocess</span><span class="p">.</span><span class="nf">run</span><span class="p">(</span>
    <span class="p">[</span><span class="sh">"</span><span class="s">arp</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">-a</span><span class="sh">"</span><span class="p">],</span>
    <span class="n">capture_output</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
    <span class="n">text</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
    <span class="n">check</span><span class="o">=</span><span class="bp">True</span>
<span class="p">)</span>

<span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">Ağda görülen cihazlar:</span><span class="sh">"</span><span class="p">)</span>
<span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">.</span><span class="n">stdout</span><span class="p">)</span>
</code></pre></div></div>

<p>Bu kod bir güvenlik tarayıcısı değildir; yalnızca envanter çıkarmanın basit başlangıcıdır. Tanımadığınız bir cihaz görürseniz yönlendirici panelinden bağlantıyı engelleyebilir ve Wi-Fi parolanızı yenileyebilirsiniz.</p>

<p>Sonuç olarak akıllı ev güvenliği, cihaz satın alınırken başlamalıdır. Düzenli güncelleme sunan, açık gizlilik politikası bulunan ve yerel veri işleme seçenekleri sağlayan üreticiler tercih edilmelidir. Evinizi akıllandırırken temel ilke şu olmalı: Toplanmayan veri sızdırılamaz, erişilemeyen cihaz kolayca ele geçirilemez.</p>]]></content><author><name>Sonsuz Us</name></author><category term="Bilgi" /><category term="akıllı ev" /><category term="siber güvenlik" /><category term="mahremiyet" /><category term="nesnelerin interneti" /><category term="veri güvenliği" /><category term="iot" /><summary type="html"><![CDATA[Akıllı hoparlörlerden güvenlik kameralarına, robot süpürgelerden internete bağlı ampullere kadar evlerimiz giderek daha fazla veri üretiyor. Bu cihazlar yaşamı kolaylaştırırken ses kayıtları, görüntüler, hareket bilgileri ve günlük alışkanlıklar gibi oldukça kişisel verileri de işliyor. Dolayısıyla ev ağındaki güvenlik açığı yalnızca internetin yavaşlaması değil, özel hayatın görünür hâle gelmesi anlamına gelebilir.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://program.sonsuz.us/img/akilli-ev-aglarinda-39.png" /><media:content medium="image" url="https://program.sonsuz.us/img/akilli-ev-aglarinda-39.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Akıllı Sözleşmeler Bankacılığı Nasıl Değiştirebilir?</title><link href="https://program.sonsuz.us/posts/akilli-sozlesmeler-bankaciligi-nasil-degistirebilir/" rel="alternate" type="text/html" title="Akıllı Sözleşmeler Bankacılığı Nasıl Değiştirebilir?" /><published>2026-10-28T00:00:00+00:00</published><updated>2026-10-28T00:00:00+00:00</updated><id>https://program.sonsuz.us/posts/akilli-sozlesmeler-bankaciligi-nasil-degistirebilir</id><content type="html" xml:base="https://program.sonsuz.us/posts/akilli-sozlesmeler-bankaciligi-nasil-degistirebilir/"><![CDATA[<p>Bir kredi başvurusu yaptığınızı ve banka görevlisi, mesai saati ya da birkaç günlük onay süreci beklemeden paranızın saniyeler içinde hesabınıza geçtiğini düşünün. Üstelik faiz hesabı, teminat kontrolü ve geri ödeme takibi otomatik yürütülüyor. Akıllı sözleşmeler, finans dünyasına tam olarak bu tür programlanabilir işlemler vadediyor.</p>

<p>``</p>

<h2 id="akıllı-sözleşme-nedir">Akıllı sözleşme nedir?</h2>

<p>Akıllı sözleşme, belirli koşullar gerçekleştiğinde önceden tanımlanmış işlemleri otomatik olarak yürüten blokzincir tabanlı bir programdır. Geleneksel sözleşmeler hukuki metinlerle “ne yapılacağını” söylerken akıllı sözleşmeler, uygun şartlar oluştuğunda işlemi doğrudan gerçekleştirir.</p>

<p>Temel mantık oldukça tanıdıktır:</p>

<blockquote>
  <p>Eğer X koşulu gerçekleşirse Y işlemini yap.</p>
</blockquote>

<p>Örneğin bir borçlu, ödeme tarihine kadar gerekli tutarı gönderirse sistem borcu kapatabilir ve teminatı serbest bırakabilir. İşlem kayıtları blokzincire yazıldığı için tarafların aynı veri üzerinde uzlaşması kolaylaşır.</p>

<p>Basit bir kredinin toplam geri ödemesi şöyle modellenebilir:</p>

\[G = A(1 + r \cdot t)\]

<p>Burada $A$ anapara, $r$ faiz oranı, $t$ süre ve $G$ toplam geri ödemedir. Akıllı sözleşme bu hesabı yalnızca göstermekle kalmaz; ödeme geldiğinde bakiyeleri kurallara göre değiştirebilir.</p>

<h2 id="geleneksel-bankacılık-ile-karşılaştırma">Geleneksel bankacılık ile karşılaştırma</h2>

<table>
  <thead>
    <tr>
      <th>Özellik</th>
      <th>Geleneksel sistem</th>
      <th>Akıllı sözleşme tabanlı sistem</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Çalışma zamanı</td>
      <td>Mesai ve kurum altyapısına bağlı</td>
      <td>7/24 çalışabilir</td>
    </tr>
    <tr>
      <td>Aracı ihtiyacı</td>
      <td>Banka, takas kurumu, noter</td>
      <td>Bazı aracılar kodla değiştirilebilir</td>
    </tr>
    <tr>
      <td>İşlem hızı</td>
      <td>Saatler veya günler</td>
      <td>Ağ durumuna göre saniyeler veya dakikalar</td>
    </tr>
    <tr>
      <td>Şeffaflık</td>
      <td>Kayıtlar çoğunlukla kurum içindedir</td>
      <td>Kod ve işlemler incelenebilir</td>
    </tr>
    <tr>
      <td>Hata kaynağı</td>
      <td>İnsan ve yazılım hataları</td>
      <td>Yazılım, veri ve tasarım hataları</td>
    </tr>
    <tr>
      <td>Geri alma</td>
      <td>Kurumsal süreçlerle mümkün olabilir</td>
      <td>Çoğu işlem kolayca geri alınamaz</td>
    </tr>
  </tbody>
</table>

<p><img src="/img/akilli-sozlesmeler-bankaciligi-63.svg" alt="akilli-sozlesmeler-bankaciligi-63" /></p>

<p>Bu tablo, bankaların tamamen ortadan kalkacağı anlamına gelmez. Bankalar kimlik doğrulama, mevzuata uyum, risk değerlendirmesi ve müşteri desteği gibi görevleri sürdürürken operasyonlarının bir bölümünü akıllı sözleşmelere devredebilir.</p>

<h2 id="kodla-çalışan-küçük-bir-emanet-hesabı">Kodla çalışan küçük bir emanet hesabı</h2>

<p>Aşağıdaki Solidity örneği, alıcının parasını teslim koşulu gerçekleşene kadar sözleşmede tutar:</p>

<pre><code class="language-solidity">// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

contract Emanet {
    address public alici;
    address payable public satici;
    bool public tamamlandi;

    constructor(address payable _satici) payable {
        alici = msg.sender;
        satici = _satici;
    }

    function teslimiOnayla() external {
        require(msg.sender == alici, "Yalnizca alici onaylayabilir");
        require(!tamamlandi, "Islem zaten tamamlandi");

        tamamlandi = true;
        satici.transfer(address(this).balance);
    }
}
</code></pre>

<p>Kurucu fonksiyona gönderilen para sözleşmede kilitlenir. <code class="language-plaintext highlighter-rouge">teslimiOnayla</code> çağrıldığında önce çağrıyı yapan kişinin alıcı olup olmadığı kontrol edilir; ardından bakiye satıcıya aktarılır. Böylece basit bir emanet hizmetinin temel davranışı kodlanmış olur. Gerçek kullanımda iade süresi, anlaşmazlık çözümü ve güvenlik kontrolleri de eklenmelidir.</p>

<h2 id="finans-dünyasında-olası-kullanım-alanları">Finans dünyasında olası kullanım alanları</h2>

<p>Akıllı sözleşmeler; otomatik kredi ödemeleri, sigorta tazminatları, uluslararası para transferleri, menkul kıymet takası ve dijital varlık yönetiminde kullanılabilir. Örneğin uçuş gecikme verisini güvenilir bir kaynaktan alan sigorta sözleşmesi, koşul sağlandığında müşteriye otomatik ödeme yapabilir.</p>

<p>Ancak blokzincir dışındaki bilgileri sisteme taşıyan <strong>oracle</strong> servisleri kritik bir risk oluşturur. Kod doğru olsa bile yanlış fiyat veya olay verisi, yanlış ödeme üretebilir. Ayrıca yazılım açıkları, özel anahtar kaybı, ağ ücretleri ve değişen düzenlemeler dikkatle yönetilmelidir.</p>

<h2 id="bankasız-değil-programlanabilir-bankacılık">Bankasız değil, programlanabilir bankacılık</h2>

<p>Akıllı sözleşmelerin en güçlü etkisi bankaları yok etmekten çok finansal süreçleri programlanabilir hâle getirmektir. Mutabakat ve ödeme gibi tekrarlı işlemler otomatikleşirken kurumlar denetim, güvenlik ve müşteri ilişkilerine odaklanabilir. Geleceğin bankası muhtemelen yalnızca kasalar ve hesaplardan değil; denetlenmiş kodlardan, güvenilir veri kaynaklarından ve hukuki kurallarla uyumlu dijital protokollerden oluşacaktır.</p>]]></content><author><name>Sonsuz Us</name></author><category term="Bilgi" /><category term="akıllı sözleşmeler" /><category term="blockchain" /><category term="fintech" /><category term="bankacılık" /><category term="solidity" /><category term="merkeziyetsiz finans" /><summary type="html"><![CDATA[Bir kredi başvurusu yaptığınızı ve banka görevlisi, mesai saati ya da birkaç günlük onay süreci beklemeden paranızın saniyeler içinde hesabınıza geçtiğini düşünün. Üstelik faiz hesabı, teminat kontrolü ve geri ödeme takibi otomatik yürütülüyor. Akıllı sözleşmeler, finans dünyasına tam olarak bu tür programlanabilir işlemler vadediyor.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://program.sonsuz.us/img/akilli-sozlesmeler-bankaciligi-63.png" /><media:content medium="image" url="https://program.sonsuz.us/img/akilli-sozlesmeler-bankaciligi-63.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Algorithmic Trading: Algoritmalar Finansal Piyasalarda Nasıl İşlem Yapar?</title><link href="https://program.sonsuz.us/posts/algorithmic-trading-algoritmalar-finansal-piyasalarda-nasil-islem-yapar/" rel="alternate" type="text/html" title="Algorithmic Trading: Algoritmalar Finansal Piyasalarda Nasıl İşlem Yapar?" /><published>2026-10-28T00:00:00+00:00</published><updated>2026-10-28T00:00:00+00:00</updated><id>https://program.sonsuz.us/posts/algorithmic-trading-algoritmalar-finansal-piyasalarda-nasil-islem-yapar</id><content type="html" xml:base="https://program.sonsuz.us/posts/algorithmic-trading-algoritmalar-finansal-piyasalarda-nasil-islem-yapar/"><![CDATA[<p>Finansal piyasalarda fiyatlar saniyeler içinde değişirken insan gözü grafiklere, haberlere ve kahve fincanına aynı anda yetişemez. Algorithmic trading, yani algoritmik işlem, önceden tanımlanmış kuralları kullanarak piyasa verilerini analiz eden ve otomatik biçimde emir gönderen sistemlerin genel adıdır. Buradaki amaç geleceği sihirli şekilde bilmek değil; ölçülebilir bir fikri hızlı, tutarlı ve test edilebilir bir sürece dönüştürmektir.</p>

<p>``</p>

<h2 id="temel-çalışma-mantığı">Temel çalışma mantığı</h2>

<p>Bir işlem algoritması genellikle dört aşamadan oluşur: veri toplama, sinyal üretme, risk kontrolü ve emir yürütme. Sistem önce fiyat, işlem hacmi, emir defteri veya ekonomik gösterge gibi verileri alır. Ardından bu verilerden alım ya da satım sinyali çıkarır. Risk motoru pozisyon büyüklüğünü sınırlar; yürütme katmanı ise emri borsaya iletir.</p>

<p>Basit bir hareketli ortalama stratejisinde kısa dönem ortalaması uzun dönem ortalamasını geçtiğinde alım sinyali üretilebilir:</p>

\[SMA_n(t)=\frac{1}{n}\sum_{i=0}^{n-1}P_{t-i}\]

<p>Burada $P_t$ ilgili zamandaki fiyatı, $n$ ise incelenen dönem sayısını gösterir. Örneğin $SMA_{10} &gt; SMA_{50}$ olduğunda algoritma yükseliş eğilimi varsayabilir. Ancak bu yalnızca bir hipotezdir; kesin kazanç garantisi değildir.</p>

<table>
  <thead>
    <tr>
      <th>Yaklaşım</th>
      <th>Temel fikir</th>
      <th>Güçlü yanı</th>
      <th>Başlıca riski</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Trend takibi</td>
      <td>Mevcut yönün süreceğini varsayar</td>
      <td>Güçlü trendlerde etkilidir</td>
      <td>Yatay piyasada sık hata</td>
    </tr>
    <tr>
      <td>Ortalama dönüş</td>
      <td>Fiyatın ortalamaya yaklaşmasını bekler</td>
      <td>Aşırı hareketleri değerlendirebilir</td>
      <td>Yeni trendi yanlış yorumlayabilir</td>
    </tr>
    <tr>
      <td>Arbitraj</td>
      <td>Benzer varlıkların fiyat farkını kullanır</td>
      <td>Piyasa yönüne daha az bağımlıdır</td>
      <td>Fark çok hızlı kapanabilir</td>
    </tr>
    <tr>
      <td>Piyasa yapıcılık</td>
      <td>Alış ve satış fiyatı sunar</td>
      <td>Fiyat farkından gelir hedefler</td>
      <td>Envanter ve ani hareket riski</td>
    </tr>
  </tbody>
</table>

<h2 id="sinyalden-gerçek-emre">Sinyalden gerçek emre</h2>

<p>Doğru sinyal üretmek tek başına yeterli değildir. Algoritma piyasa emri verdiğinde hızlı gerçekleşme elde eder, fakat beklenenden kötü bir fiyatla karşılaşabilir. Limit emri fiyatı kontrol eder, ancak hiç gerçekleşmeyebilir. Büyük emirler de piyasayı hareket ettirebilir. Bu nedenle bazı sistemler emri küçük parçalara ayırarak zamana yayar.</p>

<p>Gerçekleşme fiyatı ile karar anındaki beklenen fiyat arasındaki fark <strong>kayma</strong> olarak adlandırılır. Yaklaşık işlem sonucu şöyle modellenebilir:</p>

\[Net\ Getiri = Brüt\ Getiri - Komisyon - Kayma - Vergiler\]

<p>Kâğıt üzerinde başarılı görünen pek çok strateji, bu maliyetler eklendiğinde cazibesini kaybeder.</p>

<h2 id="küçük-bir-python-örneği">Küçük bir Python örneği</h2>

<p>Aşağıdaki kod, kısa ve uzun hareketli ortalamaları karşılaştırarak örnek sinyal üretir. Gerçek para ile emir göndermez; yalnızca stratejinin karar katmanını gösterir.</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>

<span class="k">def</span> <span class="nf">sinyal_uret</span><span class="p">(</span><span class="n">fiyatlar</span><span class="p">:</span> <span class="n">pd</span><span class="p">.</span><span class="n">Series</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">pd</span><span class="p">.</span><span class="n">DataFrame</span><span class="p">:</span>
    <span class="n">sonuc</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nc">DataFrame</span><span class="p">({</span><span class="sh">"</span><span class="s">fiyat</span><span class="sh">"</span><span class="p">:</span> <span class="n">fiyatlar</span><span class="p">})</span>
    <span class="n">sonuc</span><span class="p">[</span><span class="sh">"</span><span class="s">kisa_ortalama</span><span class="sh">"</span><span class="p">]</span> <span class="o">=</span> <span class="n">fiyatlar</span><span class="p">.</span><span class="nf">rolling</span><span class="p">(</span><span class="mi">10</span><span class="p">).</span><span class="nf">mean</span><span class="p">()</span>
    <span class="n">sonuc</span><span class="p">[</span><span class="sh">"</span><span class="s">uzun_ortalama</span><span class="sh">"</span><span class="p">]</span> <span class="o">=</span> <span class="n">fiyatlar</span><span class="p">.</span><span class="nf">rolling</span><span class="p">(</span><span class="mi">50</span><span class="p">).</span><span class="nf">mean</span><span class="p">()</span>

    <span class="n">sonuc</span><span class="p">[</span><span class="sh">"</span><span class="s">sinyal</span><span class="sh">"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span>
    <span class="n">sonuc</span><span class="p">.</span><span class="n">loc</span><span class="p">[</span>
        <span class="n">sonuc</span><span class="p">[</span><span class="sh">"</span><span class="s">kisa_ortalama</span><span class="sh">"</span><span class="p">]</span> <span class="o">&gt;</span> <span class="n">sonuc</span><span class="p">[</span><span class="sh">"</span><span class="s">uzun_ortalama</span><span class="sh">"</span><span class="p">],</span> <span class="sh">"</span><span class="s">sinyal</span><span class="sh">"</span>
    <span class="p">]</span> <span class="o">=</span> <span class="mi">1</span>
    <span class="n">sonuc</span><span class="p">.</span><span class="n">loc</span><span class="p">[</span>
        <span class="n">sonuc</span><span class="p">[</span><span class="sh">"</span><span class="s">kisa_ortalama</span><span class="sh">"</span><span class="p">]</span> <span class="o">&lt;</span> <span class="n">sonuc</span><span class="p">[</span><span class="sh">"</span><span class="s">uzun_ortalama</span><span class="sh">"</span><span class="p">],</span> <span class="sh">"</span><span class="s">sinyal</span><span class="sh">"</span>
    <span class="p">]</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>

    <span class="k">return</span> <span class="n">sonuc</span>
</code></pre></div></div>

<p>Burada <code class="language-plaintext highlighter-rouge">1</code> alım yönünü, <code class="language-plaintext highlighter-rouge">-1</code> satış yönünü, <code class="language-plaintext highlighter-rouge">0</code> ise kararsız durumu temsil eder. Üretim ortamında veri eksikliği, bağlantı kopması, tekrar gönderilen emirler ve borsa reddi gibi durumlar ayrıca yönetilmelidir.</p>

<h2 id="backtest-neden-yeterli-değildir">Backtest neden yeterli değildir?</h2>

<p>Backtest, stratejiyi geçmiş veriler üzerinde çalıştırır. Fakat geçmişte iyi görünen sonuçlar aşırı uyumdan kaynaklanabilir. Algoritma piyasa davranışını değil, veri setindeki tesadüfleri ezberlemiş olabilir.</p>

<table>
  <thead>
    <tr>
      <th>Test türü</th>
      <th>Amaç</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Eğitim dönemi</td>
      <td>Kuralları ve parametreleri geliştirmek</td>
    </tr>
    <tr>
      <td>Doğrulama dönemi</td>
      <td>Parametre seçimini kontrol etmek</td>
    </tr>
    <tr>
      <td>Test dönemi</td>
      <td>Görülmemiş veride performansı ölçmek</td>
    </tr>
    <tr>
      <td>Paper trading</td>
      <td>Canlı piyasada sanal emirlerle denemek</td>
    </tr>
  </tbody>
</table>

<p>Risk yönetiminde maksimum pozisyon, günlük zarar limiti ve acil durdurma mekanizması bulunmalıdır. Sharpe oranı gibi ölçüler de getiri ile oynaklığı birlikte değerlendirir:</p>

\[Sharpe=\frac{R_p-R_f}{\sigma_p}\]

<p>Sonuç olarak algoritmik işlem; finans, istatistik, yazılım mühendisliği ve operasyon disiplininin birleşimidir. En iyi algoritma en karmaşık olan değil, varsayımları anlaşılır, maliyetleri gerçekçi ve risk sınırları açık olandır. Kod hızlı olabilir; fakat kontrolsüz risk ondan da hızlıdır. Bu içerik yatırım tavsiyesi değil, teknolojik sürecin eğitim amaçlı açıklamasıdır.</p>

<p><img src="/img/algorithmic-trading-algoritmalar-14.svg" alt="algorithmic-trading-algoritmalar-14" /></p>]]></content><author><name>Sonsuz Us</name></author><category term="Bilgi" /><category term="algorithmic trading" /><category term="algoritma" /><category term="finans" /><category term="python" /><category term="borsa" /><category term="nicel analiz" /><summary type="html"><![CDATA[Finansal piyasalarda fiyatlar saniyeler içinde değişirken insan gözü grafiklere, haberlere ve kahve fincanına aynı anda yetişemez. Algorithmic trading, yani algoritmik işlem, önceden tanımlanmış kuralları kullanarak piyasa verilerini analiz eden ve otomatik biçimde emir gönderen sistemlerin genel adıdır. Buradaki amaç geleceği sihirli şekilde bilmek değil; ölçülebilir bir fikri hızlı, tutarlı ve test edilebilir bir sürece dönüştürmektir.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://program.sonsuz.us/img/algorithmic-trading-algoritmalar-14.png" /><media:content medium="image" url="https://program.sonsuz.us/img/algorithmic-trading-algoritmalar-14.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Dijital İkizlerle Kişiselleştirilmiş Tedavi: Hastanın Sanal Kopyası Nasıl Çalışır?</title><link href="https://program.sonsuz.us/posts/dijital-ikizlerle-kisisellestirilmis-tedavi-hastanin-sanal-kopyasi-nasil-calisir/" rel="alternate" type="text/html" title="Dijital İkizlerle Kişiselleştirilmiş Tedavi: Hastanın Sanal Kopyası Nasıl Çalışır?" /><published>2026-10-28T00:00:00+00:00</published><updated>2026-10-28T00:00:00+00:00</updated><id>https://program.sonsuz.us/posts/dijital-ikizlerle-kisisellestirilmis-tedavi-hastanin-sanal-kopyasi-nasil-calisir</id><content type="html" xml:base="https://program.sonsuz.us/posts/dijital-ikizlerle-kisisellestirilmis-tedavi-hastanin-sanal-kopyasi-nasil-calisir/"><![CDATA[<p><img src="/img/dijital-ikizlerle-kisisellestirilmis-14.svg" alt="dijital-ikizlerle-kisisellestirilmis-14" /></p>

<p>Bir tedavinin işe yarayıp yaramayacağını hastaya uygulamadan önce görebildiğimizi düşünün. Dijital ikiz teknolojisi, bir organın veya fizyolojik sistemin verilerle beslenen sanal bir kopyasını oluşturarak bu fikri gerçeğe yaklaştırıyor. Böylece farklı ilaç dozları, cerrahi yaklaşımlar ya da yaşam tarzı değişiklikleri bilgisayar ortamında sınanabiliyor. Kısacası doktorlar, gerçek hastaya dokunmadan önce onun dijital benzeri üzerinde güvenli bir prova yapabiliyor.
``</p>

<h2 id="dijital-ikiz-tam-olarak-nedir">Dijital ikiz tam olarak nedir?</h2>

<p>Dijital ikiz, yalnızca üç boyutlu bir organ modeli değildir. Anatomik yapının yanında kan akışı, elektriksel aktivite, metabolizma ve ilaçlara verilen tepki gibi dinamik süreçleri de temsil eder. Manyetik rezonans görüntüleri, bilgisayarlı tomografi, laboratuvar sonuçları, genetik veriler ve giyilebilir sensör ölçümleri ortak bir modelde birleştirilebilir.</p>

<p>Modelin temelinde matematiksel denklemler bulunur. Örneğin kandaki ilaç yoğunluğunun zamanla değişimi basitleştirilmiş olarak şöyle gösterilebilir:</p>

\[\frac{dC}{dt} = \frac{D}{V} - kC\]

<p>Burada $C$ ilaç konsantrasyonunu, $D$ uygulanan dozu, $V$ dağılım hacmini ve $k$ ilacın vücuttan uzaklaştırılma hızını temsil eder. Hastaya özgü böbrek fonksiyonu veya vücut ağırlığı değiştiğinde bu parametreler güncellenir. Böylece aynı ilacın iki kişide neden farklı sonuçlar doğurabileceği simüle edilir.</p>

<h2 id="sanal-hasta-nasıl-oluşturulur">Sanal hasta nasıl oluşturulur?</h2>

<p>Süreç genellikle dört aşamada ilerler:</p>

<ol>
  <li><strong>Veri toplama:</strong> Görüntüleme, tahlil, sensör ve hasta geçmişi verileri alınır.</li>
  <li><strong>Model kurma:</strong> Organın geometrisi çıkarılır ve fizyolojik kurallar modele eklenir.</li>
  <li><strong>Kalibrasyon:</strong> Simülasyon sonuçları hastanın gerçek ölçümleriyle karşılaştırılır.</li>
  <li><strong>Senaryo denemeleri:</strong> Farklı dozlar ve tedavi seçenekleri sanal ortamda test edilir.</li>
</ol>

<table>
  <thead>
    <tr>
      <th>Geleneksel yaklaşım</th>
      <th>Dijital ikiz yaklaşımı</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Ortalama hasta verilerine dayanabilir</td>
      <td>Hastaya özgü parametreleri kullanır</td>
    </tr>
    <tr>
      <td>Tedavi etkisi uygulamadan sonra gözlenir</td>
      <td>Olası etkiler önceden simüle edilir</td>
    </tr>
    <tr>
      <td>Doz ayarlaması deneme-yanılma içerebilir</td>
      <td>Çok sayıda doz sanal olarak karşılaştırılır</td>
    </tr>
    <tr>
      <td>Sınırlı sayıda senaryo değerlendirilebilir</td>
      <td>Binlerce senaryo hızlıca taranabilir</td>
    </tr>
  </tbody>
</table>

<h2 id="basitleştirilmiş-bir-doz-simülasyonu">Basitleştirilmiş bir doz simülasyonu</h2>

<p>Aşağıdaki Python örneği, farklı dozların kandaki tahmini ilaç yoğunluğunu nasıl değiştirdiğini hesaplar. Gerçek klinik modeller çok daha karmaşıktır; bu kod yalnızca temel mantığı gösterir.</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">math</span>

<span class="k">def</span> <span class="nf">konsantrasyon</span><span class="p">(</span><span class="n">doz</span><span class="p">,</span> <span class="n">hacim</span><span class="p">,</span> <span class="n">atilim_hizi</span><span class="p">,</span> <span class="n">saat</span><span class="p">):</span>
    <span class="c1"># Tek doz sonrası üstel azalmayı yaklaşık olarak hesaplar.
</span>    <span class="n">baslangic</span> <span class="o">=</span> <span class="n">doz</span> <span class="o">/</span> <span class="n">hacim</span>
    <span class="k">return</span> <span class="n">baslangic</span> <span class="o">*</span> <span class="n">math</span><span class="p">.</span><span class="nf">exp</span><span class="p">(</span><span class="o">-</span><span class="n">atilim_hizi</span> <span class="o">*</span> <span class="n">saat</span><span class="p">)</span>

<span class="n">hasta</span> <span class="o">=</span> <span class="p">{</span>
    <span class="sh">"</span><span class="s">dagilim_hacmi</span><span class="sh">"</span><span class="p">:</span> <span class="mi">42</span><span class="p">,</span>
    <span class="sh">"</span><span class="s">atilim_hizi</span><span class="sh">"</span><span class="p">:</span> <span class="mf">0.12</span>
<span class="p">}</span>

<span class="k">for</span> <span class="n">doz</span> <span class="ow">in</span> <span class="p">[</span><span class="mi">50</span><span class="p">,</span> <span class="mi">100</span><span class="p">,</span> <span class="mi">150</span><span class="p">]:</span>
    <span class="n">sonuc</span> <span class="o">=</span> <span class="nf">konsantrasyon</span><span class="p">(</span>
        <span class="n">doz</span><span class="p">,</span>
        <span class="n">hasta</span><span class="p">[</span><span class="sh">"</span><span class="s">dagilim_hacmi</span><span class="sh">"</span><span class="p">],</span>
        <span class="n">hasta</span><span class="p">[</span><span class="sh">"</span><span class="s">atilim_hizi</span><span class="sh">"</span><span class="p">],</span>
        <span class="n">saat</span><span class="o">=</span><span class="mi">8</span>
    <span class="p">)</span>
    <span class="nf">print</span><span class="p">(</span><span class="sa">f</span><span class="sh">"</span><span class="si">{</span><span class="n">doz</span><span class="si">}</span><span class="s"> mg için 8. saat: </span><span class="si">{</span><span class="n">sonuc</span><span class="si">:</span><span class="p">.</span><span class="mi">2</span><span class="n">f</span><span class="si">}</span><span class="s"> mg/L</span><span class="sh">"</span><span class="p">)</span>
</code></pre></div></div>

<p>Bu simülasyonda dağılım hacmi ve atılım hızı hastaya göre değiştirilerek kişiselleştirme yapılır. Ardından sonuçlar, hedeflenen güvenli konsantrasyon aralığıyla karşılaştırılabilir. Ancak model çıktısı tek başına tedavi kararı değildir; doktor değerlendirmesi ve klinik kanıt gerekir.</p>

<h2 id="nerelerde-kullanılabilir">Nerelerde kullanılabilir?</h2>

<p>Kalbin dijital ikizi, ritim bozukluğunda elektrotların en uygun konumunu araştırabilir. Tümör modelleri, radyoterapi dozunun sağlıklı dokuya etkisini tahmin edebilir. Akciğer ikizleri ventilatör ayarlarını, damar modelleri ise stent yerleşimini değerlendirebilir. Sürekli sensör verisi geldiğinde ikiz de güncellenir; yani statik bir fotoğraf değil, hastayla birlikte değişen dijital bir yol arkadaşıdır.</p>

<h2 id="güçlü-fakat-kusursuz-değil">Güçlü fakat kusursuz değil</h2>

<p>Eksik veri, hatalı sensörler ve aşırı basitleştirilmiş biyolojik varsayımlar güvenilmez sonuçlar üretebilir. Ayrıca sağlık verilerinin mahremiyeti, algoritmik önyargı ve modelin kararından kimin sorumlu olacağı önemli tartışma alanlarıdır. Bu nedenle dijital ikizler doktorların yerini alan makineler olarak değil, kararlarını sayısal deneylerle destekleyen araçlar olarak görülmelidir.</p>

<p>Gelecekte daha hızlı hesaplama, gelişmiş yapay zekâ ve standartlaştırılmış sağlık verileri sayesinde kişiye özel sanal denemeler yaygınlaşabilir. Belki de reçete yazılmadan önce dijital ikizimiz kısa bir prova yapacak; fakat son sözü yine klinik uzmanlık, etik ilkeler ve gerçek dünya kanıtları söyleyecek.</p>]]></content><author><name>Sonsuz Us</name></author><category term="Bilgi" /><category term="dijital ikiz" /><category term="kişiselleştirilmiş tıp" /><category term="sağlık teknolojileri" /><category term="yapay zeka" /><category term="simülasyon" /><category term="biyoinformatik" /><summary type="html"><![CDATA[Bir tedavinin işe yarayıp yaramayacağını hastaya uygulamadan önce görebildiğimizi düşünün. Dijital ikiz teknolojisi, bir organın veya fizyolojik sistemin verilerle beslenen sanal bir kopyasını oluşturarak bu fikri gerçeğe yaklaştırıyor. Böylece farklı ilaç dozları, cerrahi yaklaşımlar ya da yaşam tarzı değişiklikleri bilgisayar ortamında sınanabiliyor. Kısacası doktorlar, gerçek hastaya dokunmadan önce onun dijital benzeri üzerinde güvenli bir prova yapabiliyor.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://program.sonsuz.us/img/dijital-ikizlerle-kisisellestirilmis-14.png" /><media:content medium="image" url="https://program.sonsuz.us/img/dijital-ikizlerle-kisisellestirilmis-14.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Finansal Zaman Serileri: Bilgisayar Geçmiş Fiyatlardan Geleceği Öğrenebilir mi?</title><link href="https://program.sonsuz.us/posts/finansal-zaman-serileri-bilgisayar-gecmis-fiyatlardan-gelecegi-ogrenebilir-mi/" rel="alternate" type="text/html" title="Finansal Zaman Serileri: Bilgisayar Geçmiş Fiyatlardan Geleceği Öğrenebilir mi?" /><published>2026-10-28T00:00:00+00:00</published><updated>2026-10-28T00:00:00+00:00</updated><id>https://program.sonsuz.us/posts/finansal-zaman-serileri-bilgisayar-gecmis-fiyatlardan-gelecegi-ogrenebilir-mi</id><content type="html" xml:base="https://program.sonsuz.us/posts/finansal-zaman-serileri-bilgisayar-gecmis-fiyatlardan-gelecegi-ogrenebilir-mi/"><![CDATA[<p>Borsa grafiklerine bakıp “Bu çizgi birazdan kesin yükselir!” demek kolaydır; bunu tutarlı biçimde kanıtlamak ise oldukça zordur. Bilgisayarlar geçmiş fiyatları insanlardan çok daha hızlı inceleyebilir, ancak geleceği gösteren sihirli bir küreye sahip değildir. Finansal zaman serisi analizi, fiyatların içindeki tekrar eden örüntüleri, riskleri ve olasılıkları matematiksel yöntemlerle araştırır.</p>

<p><img src="/img/finansal-zaman-serileri-26.svg" alt="finansal-zaman-serileri-26" /></p>

<p>``</p>

<h2 id="finansal-zaman-serisi-nedir">Finansal zaman serisi nedir?</h2>

<p>Bir varlığın belirli zamanlarda ölçülen fiyatları bir zaman serisi oluşturur:</p>

\[P_1, P_2, P_3, \ldots, P_t\]

<p>Burada $P_t$, varlığın $t$ anındaki fiyatıdır. Fakat doğrudan fiyatları modellemek çoğu zaman yanıltıcıdır. Fiyat serileri genellikle durağan değildir; ortalamaları ve oynaklıkları zamanla değişebilir. Bu nedenle analistler çoğunlukla <strong>getiri</strong> kullanır:</p>

\[r_t = \frac{P_t-P_{t-1}}{P_{t-1}}\]

<p>Logaritmik getiri ise farklı dönemleri toplamayı kolaylaştırır:</p>

\[r_t = \ln\left(\frac{P_t}{P_{t-1}}\right)\]

<p>Örneğin fiyat 100’den 103’e çıkarsa basit getiri yaklaşık yüzde 3’tür. Bilgisayar açısından asıl soru şudur: Önceki getiriler, sıradaki getiri hakkında anlamlı bilgi taşıyor mu?</p>

<h2 id="bilgisayar-hangi-sinyalleri-arar">Bilgisayar hangi sinyalleri arar?</h2>

<p>Algoritmalar trend, momentum, mevsimsellik, işlem hacmi ve oynaklık gibi özellikleri araştırabilir. Ancak bulunan her ilişki gerçek bir ekonomik mekanizma değildir. Bazen model, verideki rastlantısal gürültüyü öğrenir; buna <strong>aşırı öğrenme</strong> denir.</p>

<table>
  <thead>
    <tr>
      <th>Kavram</th>
      <th>Ne anlatır?</th>
      <th>Yaygın risk</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Trend</td>
      <td>Uzun dönemli yön</td>
      <td>Yönün aniden değişmesi</td>
    </tr>
    <tr>
      <td>Momentum</td>
      <td>Hareketin kısa süre devam etmesi</td>
      <td>Geç sinyal üretmesi</td>
    </tr>
    <tr>
      <td>Ortalama dönüş</td>
      <td>Fiyatın tipik seviyeye yaklaşması</td>
      <td>“Tipik” seviyenin değişmesi</td>
    </tr>
    <tr>
      <td>Oynaklık</td>
      <td>Hareketlerin büyüklüğü</td>
      <td>Krizlerde hızla sıçraması</td>
    </tr>
    <tr>
      <td>Hacim</td>
      <td>Piyasa katılımı</td>
      <td>Tek başına yön göstermemesi</td>
    </tr>
  </tbody>
</table>

<p>Basit bir hareketli ortalama, son $n$ fiyatın ortalamasıdır:</p>

\[MA_t = \frac{1}{n}\sum_{i=0}^{n-1}P_{t-i}\]

<p>Kısa dönemli ortalama uzun dönemli ortalamayı geçtiğinde yükseliş sinyali üretilebilir. Ne var ki bu, geleceğin kesin yükseleceği anlamına gelmez; yalnızca geçmiş hareketin belirli bir özetidir.</p>

<h2 id="python-ile-küçük-bir-deney">Python ile küçük bir deney</h2>

<p>Aşağıdaki kod fiyatlardan getiri üretir, beş günlük hareketli ortalamayı hesaplar ve bir sonraki günün yönünü tahmin etmek için lojistik regresyon kullanır:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>
<span class="kn">from</span> <span class="n">sklearn.linear_model</span> <span class="kn">import</span> <span class="n">LogisticRegression</span>
<span class="kn">from</span> <span class="n">sklearn.metrics</span> <span class="kn">import</span> <span class="n">accuracy_score</span>

<span class="c1"># CSV dosyasında Date ve Close sütunları bulunduğunu varsayıyoruz.
</span><span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nf">read_csv</span><span class="p">(</span><span class="sh">"</span><span class="s">prices.csv</span><span class="sh">"</span><span class="p">,</span> <span class="n">parse_dates</span><span class="o">=</span><span class="p">[</span><span class="sh">"</span><span class="s">Date</span><span class="sh">"</span><span class="p">])</span>
<span class="n">df</span> <span class="o">=</span> <span class="n">df</span><span class="p">.</span><span class="nf">sort_values</span><span class="p">(</span><span class="sh">"</span><span class="s">Date</span><span class="sh">"</span><span class="p">)</span>

<span class="n">df</span><span class="p">[</span><span class="sh">"</span><span class="s">return</span><span class="sh">"</span><span class="p">]</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="sh">"</span><span class="s">Close</span><span class="sh">"</span><span class="p">].</span><span class="nf">pct_change</span><span class="p">()</span>
<span class="n">df</span><span class="p">[</span><span class="sh">"</span><span class="s">ma5</span><span class="sh">"</span><span class="p">]</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="sh">"</span><span class="s">Close</span><span class="sh">"</span><span class="p">].</span><span class="nf">rolling</span><span class="p">(</span><span class="mi">5</span><span class="p">).</span><span class="nf">mean</span><span class="p">()</span>
<span class="n">df</span><span class="p">[</span><span class="sh">"</span><span class="s">distance</span><span class="sh">"</span><span class="p">]</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="sh">"</span><span class="s">Close</span><span class="sh">"</span><span class="p">]</span> <span class="o">/</span> <span class="n">df</span><span class="p">[</span><span class="sh">"</span><span class="s">ma5</span><span class="sh">"</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span>
<span class="n">df</span><span class="p">[</span><span class="sh">"</span><span class="s">target</span><span class="sh">"</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">df</span><span class="p">[</span><span class="sh">"</span><span class="s">return</span><span class="sh">"</span><span class="p">].</span><span class="nf">shift</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">).</span><span class="nf">astype</span><span class="p">(</span><span class="nb">int</span><span class="p">)</span>
<span class="n">df</span> <span class="o">=</span> <span class="n">df</span><span class="p">.</span><span class="nf">dropna</span><span class="p">()</span>

<span class="n">split</span> <span class="o">=</span> <span class="nf">int</span><span class="p">(</span><span class="nf">len</span><span class="p">(</span><span class="n">df</span><span class="p">)</span> <span class="o">*</span> <span class="mf">0.8</span><span class="p">)</span>
<span class="n">train</span><span class="p">,</span> <span class="n">test</span> <span class="o">=</span> <span class="n">df</span><span class="p">.</span><span class="n">iloc</span><span class="p">[:</span><span class="n">split</span><span class="p">],</span> <span class="n">df</span><span class="p">.</span><span class="n">iloc</span><span class="p">[</span><span class="n">split</span><span class="p">:]</span>

<span class="n">features</span> <span class="o">=</span> <span class="p">[</span><span class="sh">"</span><span class="s">return</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">distance</span><span class="sh">"</span><span class="p">]</span>
<span class="n">model</span> <span class="o">=</span> <span class="nc">LogisticRegression</span><span class="p">()</span>
<span class="n">model</span><span class="p">.</span><span class="nf">fit</span><span class="p">(</span><span class="n">train</span><span class="p">[</span><span class="n">features</span><span class="p">],</span> <span class="n">train</span><span class="p">[</span><span class="sh">"</span><span class="s">target</span><span class="sh">"</span><span class="p">])</span>

<span class="n">prediction</span> <span class="o">=</span> <span class="n">model</span><span class="p">.</span><span class="nf">predict</span><span class="p">(</span><span class="n">test</span><span class="p">[</span><span class="n">features</span><span class="p">])</span>
<span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">Doğruluk:</span><span class="sh">"</span><span class="p">,</span> <span class="nf">accuracy_score</span><span class="p">(</span><span class="n">test</span><span class="p">[</span><span class="sh">"</span><span class="s">target</span><span class="sh">"</span><span class="p">],</span> <span class="n">prediction</span><span class="p">))</span>
</code></pre></div></div>

<p>Buradaki kronolojik ayırma kritik önemdedir. Veriyi rastgele karıştırmak, gelecekteki bilgilerin eğitim kümesine sızmasına yol açabilir. Bu durum modelin gerçekte sahip olamayacağı bir avantaj kazanmasıdır.</p>

<h2 id="tahmin-başarısı-nasıl-değerlendirilir">Tahmin başarısı nasıl değerlendirilir?</h2>

<p>Yüzde 52 doğruluk ilk bakışta etkileyici görünmeyebilir; ancak işlem maliyetleri düşükse değerli olabilir. Tersine, yüzde 60 doğruluk yüksek komisyonlar ve büyük kayıplar nedeniyle zararla sonuçlanabilir. Bu yüzden doğruluğun yanında getiri, maksimum düşüş, Sharpe oranı ve işlem maliyetleri incelenmelidir.</p>

<p>Bilgisayar geçmişten olasılıksal ilişkiler öğrenebilir; fakat savaşlar, düzenlemeler, şirket haberleri ve yatırımcı psikolojisindeki kırılmalar geçmişte bulunmayabilir. En iyi yaklaşım, modeli bir kâhin değil, belirsizlik altında karar vermeye yardımcı olan ölçüm aracı olarak görmektir. Finansal tahminin asıl başarısı geleceği kusursuz bilmekten değil, yanlış çıkıldığında riski yönetebilmekten gelir.</p>]]></content><author><name>Sonsuz Us</name></author><category term="Bilgi" /><category term="finans" /><category term="zaman-serileri" /><category term="makine-öğrenmesi" /><category term="python" /><category term="veri-bilimi" /><category term="tahminleme" /><summary type="html"><![CDATA[Borsa grafiklerine bakıp “Bu çizgi birazdan kesin yükselir!” demek kolaydır; bunu tutarlı biçimde kanıtlamak ise oldukça zordur. Bilgisayarlar geçmiş fiyatları insanlardan çok daha hızlı inceleyebilir, ancak geleceği gösteren sihirli bir küreye sahip değildir. Finansal zaman serisi analizi, fiyatların içindeki tekrar eden örüntüleri, riskleri ve olasılıkları matematiksel yöntemlerle araştırır.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://program.sonsuz.us/img/finansal-zaman-serileri-26.png" /><media:content medium="image" url="https://program.sonsuz.us/img/finansal-zaman-serileri-26.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Her Tohumda Yeni Bir Macera: Oyunlarda Prosedürel Üretim</title><link href="https://program.sonsuz.us/posts/her-tohumda-yeni-bir-macera-oyunlarda-prosedurel-uretim/" rel="alternate" type="text/html" title="Her Tohumda Yeni Bir Macera: Oyunlarda Prosedürel Üretim" /><published>2026-10-28T00:00:00+00:00</published><updated>2026-10-28T00:00:00+00:00</updated><id>https://program.sonsuz.us/posts/her-tohumda-yeni-bir-macera-oyunlarda-prosedurel-uretim</id><content type="html" xml:base="https://program.sonsuz.us/posts/her-tohumda-yeni-bir-macera-oyunlarda-prosedurel-uretim/"><![CDATA[<p><img src="/img/her-tohumda-yeni-50.svg" alt="her-tohumda-yeni-50" /></p>

<p>Bir oyuna her başladığınızda dağların yer değiştirdiğini, koridorların başka yönlere uzandığını ve hazinelerin hiç beklemediğiniz köşelerde belirdiğini düşünün. Prosedürel üretim, içerikleri geliştiricinin tek tek tasarlaması yerine belirli kurallar ve algoritmalar yardımıyla oluşturan tekniktir. Böylece küçük bir kod parçası, keşfedilecek binlerce farklı dünya üretebilir.</p>

<p>``</p>

<h2 id="rastgelelik-aslında-ne-kadar-rastgele">Rastgelelik Aslında Ne Kadar Rastgele?</h2>

<p>Bilgisayarlar çoğunlukla gerçek anlamda rastgele davranmaz. Bunun yerine <strong>sözde rastgele sayı üreteci</strong> (PRNG) kullanırlar. Üretece verilen başlangıç değerine <strong>seed</strong>, yani tohum denir. Aynı algoritma ve aynı tohum kullanıldığında aynı sayı dizisi, dolayısıyla aynı dünya ortaya çıkar.</p>

<p>Bunu basitçe şöyle ifade edebiliriz:</p>

\[x_{n+1} = (a x_n + c) \bmod m\]

<p>Bu doğrusal eşlik üreteci formülünde $x_n$ mevcut sayı, $a$ çarpan, $c$ artış ve $m$ mod değeridir. İlk $x_0$ değeri ise tohumdur. Bir oyuncu arkadaşına yalnızca <code class="language-plaintext highlighter-rouge">4271</code> tohumunu göndererek aynı zindanı ziyaret etmesini sağlayabilir. Kısacası seed, koskoca dünyanın sıkıştırılmış adresi gibidir.</p>

<h2 id="zindanlar-nasıl-kurulur">Zindanlar Nasıl Kurulur?</h2>

<p>En temel yaklaşım, haritayı duvarlarla doldurup rastgele odalar açmak ve bu odaları koridorlarla bağlamaktır. Ancak tamamen rastgele seçim yapmak; ulaşılamayan odalar, anlamsız geçitler veya kapının arkasında duvar gibi komik sonuçlar doğurabilir. Bu nedenle üretim, doğrulama kurallarıyla birlikte çalışmalıdır.</p>

<table>
  <thead>
    <tr>
      <th>Yöntem</th>
      <th>Güçlü yanı</th>
      <th>Zayıf yanı</th>
      <th>Uygun kullanım</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Rastgele odalar</td>
      <td>Basit ve hızlıdır</td>
      <td>Çakışma oluşturabilir</td>
      <td>Klasik zindanlar</td>
    </tr>
    <tr>
      <td>BSP</td>
      <td>Düzenli oda dağılımı sağlar</td>
      <td>Fazla geometrik görünebilir</td>
      <td>Bina ve tesisler</td>
    </tr>
    <tr>
      <td>Hücresel otomat</td>
      <td>Doğal mağaralar üretir</td>
      <td>Bağlantı kontrolü gerekir</td>
      <td>Mağara sistemleri</td>
    </tr>
    <tr>
      <td>Gürültü fonksiyonları</td>
      <td>Akıcı arazi geçişleri sağlar</td>
      <td>İnce ayar ister</td>
      <td>Açık dünyalar</td>
    </tr>
    <tr>
      <td>Wave Function Collapse</td>
      <td>Yerel kurallara uyar</td>
      <td>Çelişkiler pahalı olabilir</td>
      <td>Şehir ve desenler</td>
    </tr>
  </tbody>
</table>

<p><strong>BSP</strong> yönteminde harita dikdörtgen bölgelere tekrar tekrar ayrılır. Her yaprak bölgeye bir oda yerleştirilir ve kardeş bölgeler koridorlarla bağlanır. Hücresel otomatta ise her karo, komşularının durumuna göre duvar veya zemin olur. Örneğin bir karonun çevresinde beşten fazla duvar varsa sonraki adımda onun da duvara dönüşmesi mağara benzeri kümeler üretir.</p>

<h2 id="küçük-bir-oda-üreticisi">Küçük Bir Oda Üreticisi</h2>

<p>Aşağıdaki Python örneği, sabit bir tohumla çakışmayan dikdörtgen odalar yerleştirir:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">random</span>

<span class="n">WIDTH</span><span class="p">,</span> <span class="n">HEIGHT</span> <span class="o">=</span> <span class="mi">40</span><span class="p">,</span> <span class="mi">20</span>
<span class="n">random</span><span class="p">.</span><span class="nf">seed</span><span class="p">(</span><span class="mi">4271</span><span class="p">)</span>
<span class="n">rooms</span> <span class="o">=</span> <span class="p">[]</span>

<span class="k">def</span> <span class="nf">overlaps</span><span class="p">(</span><span class="n">candidate</span><span class="p">):</span>
    <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">h</span> <span class="o">=</span> <span class="n">candidate</span>
    <span class="k">for</span> <span class="n">rx</span><span class="p">,</span> <span class="n">ry</span><span class="p">,</span> <span class="n">rw</span><span class="p">,</span> <span class="n">rh</span> <span class="ow">in</span> <span class="n">rooms</span><span class="p">:</span>
        <span class="n">separated</span> <span class="o">=</span> <span class="p">(</span><span class="n">x</span> <span class="o">+</span> <span class="n">w</span> <span class="o">&lt;</span> <span class="n">rx</span> <span class="ow">or</span> <span class="n">rx</span> <span class="o">+</span> <span class="n">rw</span> <span class="o">&lt;</span> <span class="n">x</span> <span class="ow">or</span>
                     <span class="n">y</span> <span class="o">+</span> <span class="n">h</span> <span class="o">&lt;</span> <span class="n">ry</span> <span class="ow">or</span> <span class="n">ry</span> <span class="o">+</span> <span class="n">rh</span> <span class="o">&lt;</span> <span class="n">y</span><span class="p">)</span>
        <span class="k">if</span> <span class="ow">not</span> <span class="n">separated</span><span class="p">:</span>
            <span class="k">return</span> <span class="bp">True</span>
    <span class="k">return</span> <span class="bp">False</span>

<span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nf">range</span><span class="p">(</span><span class="mi">30</span><span class="p">):</span>
    <span class="n">w</span><span class="p">,</span> <span class="n">h</span> <span class="o">=</span> <span class="n">random</span><span class="p">.</span><span class="nf">randint</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="mi">9</span><span class="p">),</span> <span class="n">random</span><span class="p">.</span><span class="nf">randint</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">6</span><span class="p">)</span>
    <span class="n">x</span> <span class="o">=</span> <span class="n">random</span><span class="p">.</span><span class="nf">randint</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">WIDTH</span> <span class="o">-</span> <span class="n">w</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
    <span class="n">y</span> <span class="o">=</span> <span class="n">random</span><span class="p">.</span><span class="nf">randint</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">HEIGHT</span> <span class="o">-</span> <span class="n">h</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
    <span class="n">candidate</span> <span class="o">=</span> <span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">h</span><span class="p">)</span>
    <span class="k">if</span> <span class="ow">not</span> <span class="nf">overlaps</span><span class="p">(</span><span class="n">candidate</span><span class="p">):</span>
        <span class="n">rooms</span><span class="p">.</span><span class="nf">append</span><span class="p">(</span><span class="n">candidate</span><span class="p">)</span>

<span class="nf">print</span><span class="p">(</span><span class="sa">f</span><span class="sh">"</span><span class="s">Üretilen oda sayısı: </span><span class="si">{</span><span class="nf">len</span><span class="p">(</span><span class="n">rooms</span><span class="p">)</span><span class="si">}</span><span class="sh">"</span><span class="p">)</span>
</code></pre></div></div>

<p>Kod, otuz yerleştirme denemesi yapar. <code class="language-plaintext highlighter-rouge">overlaps</code> fonksiyonu yeni odanın mevcut odalarla kesişip kesişmediğini denetler. Bu yalnızca ilk adımdır; odaların merkezlerini hesaplayıp en yakın komşuları koridorlarla birleştirmek, zindanı gerçekten oynanabilir hâle getirir.</p>

<h2 id="eğlenceyi-algoritmaya-bırakmamak">Eğlenceyi Algoritmaya Bırakmamak</h2>

<p>Prosedürel üretimin hedefi yalnızca çeşitlilik değildir. Bir seviyenin kalitesi kabaca şu dengeyle düşünülebilir:</p>

\[Q = \alpha V + \beta O - \gamma F\]

<p>Burada $V$ çeşitlilik, $O$ oynanabilirlik ve $F$ adaletsizliktir. Katsayılar oyunun önceliklerini temsil eder. Her harita farklı olsa bile oyuncu çıkışa ulaşamıyorsa algoritma görevini başaramamıştır.</p>

<p>Bu nedenle üretilen içerik; bağlantılılık, zorluk, kaynak dağılımı ve başlangıç güvenliği bakımından test edilmelidir. Başarılı sistemler insan tasarımını ortadan kaldırmaz; tasarımcının kurallarını çoğaltır. Algoritma zarları atar, fakat zarların hangi masada ve hangi kurallarla atılacağına hâlâ geliştirici karar verir.</p>]]></content><author><name>Sonsuz Us</name></author><category term="Bilgi" /><category term="prosedürel üretim" /><category term="oyun geliştirme" /><category term="algoritma" /><category term="python" /><category term="zindan üretimi" /><category term="rastgelelik" /><summary type="html"><![CDATA[Bir oyuna her başladığınızda dağların yer değiştirdiğini, koridorların başka yönlere uzandığını ve hazinelerin hiç beklemediğiniz köşelerde belirdiğini düşünün. Prosedürel üretim, içerikleri geliştiricinin tek tek tasarlaması yerine belirli kurallar ve algoritmalar yardımıyla oluşturan tekniktir. Böylece küçük bir kod parçası, keşfedilecek binlerce farklı dünya üretebilir.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://program.sonsuz.us/img/her-tohumda-yeni-50.png" /><media:content medium="image" url="https://program.sonsuz.us/img/her-tohumda-yeni-50.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Klinik Deney Verilerinde İstatistiksel Analiz: R ile Tedavi Etkinliğini Ölçmek</title><link href="https://program.sonsuz.us/posts/klinik-deney-verilerinde-istatistiksel-analiz-r-ile-tedavi-etkinligini-olcmek/" rel="alternate" type="text/html" title="Klinik Deney Verilerinde İstatistiksel Analiz: R ile Tedavi Etkinliğini Ölçmek" /><published>2026-10-28T00:00:00+00:00</published><updated>2026-10-28T00:00:00+00:00</updated><id>https://program.sonsuz.us/posts/klinik-deney-verilerinde-istatistiksel-analiz-r-ile-tedavi-etkinligini-olcmek</id><content type="html" xml:base="https://program.sonsuz.us/posts/klinik-deney-verilerinde-istatistiksel-analiz-r-ile-tedavi-etkinligini-olcmek/"><![CDATA[<p>Yeni bir tedavinin gerçekten işe yarayıp yaramadığını anlamak, birkaç hastanın kendini daha iyi hissettiğini gözlemlemekten çok daha fazlasını gerektirir. Randomize kontrollü çalışmalar, tedavinin etkisini karşılaştırılabilir gruplar üzerinden ölçerken istatistiksel analiz yazılımları da ham verileri bilimsel kanıta dönüştürür. Bu süreçte R, SAS, Stata ve Python gibi araçlar araştırmacıların güçlü yardımcılarıdır; ancak yazılım ne kadar gelişmiş olursa olsun, yanlış tasarlanmış bir deneyi sihirli biçimde düzeltemez.</p>

<p><img src="/img/klinik-deney-verilerinde-68.svg" alt="klinik-deney-verilerinde-68" /></p>

<p>``</p>
<h2 id="randomizasyon-neden-önemlidir">Randomizasyon neden önemlidir?</h2>

<p>Randomize kontrollü çalışmada katılımcılar genellikle yeni tedavi ve kontrol gruplarına rastgele atanır. Randomizasyonun amacı yaş, hastalık şiddeti ve yaşam tarzı gibi sonucu etkileyebilecek özellikleri gruplar arasında dengelemektir. Böylece gözlenen farkın tedaviden kaynaklandığı iddiası daha güvenilir hâle gelir.</p>

<p>Basit bir sürekli sonuç için tedavi etkisi şöyle ifade edilebilir:</p>

\[\Delta = \bar{X}_{tedavi} - \bar{X}_{kontrol}\]

<p>Burada $\Delta$, iki grubun ortalama sonuçları arasındaki farktır. Örneğin düşük skorun daha iyi olduğu bir ağrı ölçeğinde negatif bir $\Delta$, yeni tedavinin lehine olabilir. Bununla birlikte etki büyüklüğü tek başına yeterli değildir; belirsizliği göstermek için güven aralığı da raporlanmalıdır:</p>

\[GA_{95\%} = \hat{\Delta} \pm 1.96 \times SE(\hat{\Delta})\]

<p>Güven aralığı hem etkinin olası yönünü hem de klinik açıdan anlamlı değerlerle uyumunu değerlendirmeye yardımcı olur.</p>

<h2 id="hangi-yazılım-ne-sunar">Hangi yazılım ne sunar?</h2>

<table>
  <thead>
    <tr>
      <th>Yazılım</th>
      <th>Güçlü yönü</th>
      <th>Dikkat edilmesi gereken</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>R</td>
      <td>Ücretsiz, geniş paket ekosistemi, tekrarlanabilir analiz</td>
      <td>Kodlama bilgisi gerektirir</td>
    </tr>
    <tr>
      <td>SAS</td>
      <td>Klinik araştırmalarda yaygın, doğrulama araçları güçlü</td>
      <td>Lisans maliyeti yüksektir</td>
    </tr>
    <tr>
      <td>Stata</td>
      <td>İstatistiksel komutları anlaşılır, veri yönetimi pratiktir</td>
      <td>Bazı özelleştirmeler sınırlı kalabilir</td>
    </tr>
    <tr>
      <td>Python</td>
      <td>Veri işleme ve makine öğrenmesinde esnektir</td>
      <td>Klinik raporlama iş akışları ek kurulum isteyebilir</td>
    </tr>
  </tbody>
</table>

<p>Araç seçimi yalnızca popülerliğe göre yapılmamalıdır. Düzenleyici gereksinimler, ekibin deneyimi, denetlenebilirlik ve analizlerin yeniden üretilebilmesi birlikte değerlendirilmelidir.</p>

<h2 id="r-ile-örnek-etkinlik-analizi">R ile örnek etkinlik analizi</h2>

<p>Aşağıdaki örnekte <code class="language-plaintext highlighter-rouge">sonuc</code> değişkeninin yüksek olması daha iyi klinik sonucu temsil etsin. Kod, grupları özetler ve bağımsız iki örneklem t-testi uygular:</p>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">library</span><span class="p">(</span><span class="n">dplyr</span><span class="p">)</span><span class="w">

</span><span class="n">veri</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">read.csv</span><span class="p">(</span><span class="s2">"klinik_deney.csv"</span><span class="p">)</span><span class="w">

</span><span class="n">veri</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">group_by</span><span class="p">(</span><span class="n">grup</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">summarise</span><span class="p">(</span><span class="w">
    </span><span class="n">katilimci</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">n</span><span class="p">(),</span><span class="w">
    </span><span class="n">ortalama</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">mean</span><span class="p">(</span><span class="n">sonuc</span><span class="p">,</span><span class="w"> </span><span class="n">na.rm</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">TRUE</span><span class="p">),</span><span class="w">
    </span><span class="n">standart_sapma</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sd</span><span class="p">(</span><span class="n">sonuc</span><span class="p">,</span><span class="w"> </span><span class="n">na.rm</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">TRUE</span><span class="p">)</span><span class="w">
  </span><span class="p">)</span><span class="w">

</span><span class="n">model</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">t.test</span><span class="p">(</span><span class="n">sonuc</span><span class="w"> </span><span class="o">~</span><span class="w"> </span><span class="n">grup</span><span class="p">,</span><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">veri</span><span class="p">)</span><span class="w">
</span><span class="n">print</span><span class="p">(</span><span class="n">model</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>

<p>Özet tablo her gruptaki katılımcı sayısını, ortalamayı ve değişkenliği gösterir. <code class="language-plaintext highlighter-rouge">t.test()</code> ise ortalama farkına ilişkin hipotez testini ve güven aralığını üretir. Fakat normal dağılım, bağımsızlık ve aykırı değerler gibi varsayımlar kontrol edilmeden sonuçlara güvenilmemelidir.</p>

<table>
  <thead>
    <tr>
      <th>Ölçüt</th>
      <th>Yanıtladığı soru</th>
      <th>Yaygın hata</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Etki büyüklüğü</td>
      <td>Tedavi ne kadar fark oluşturdu?</td>
      <td>Yalnızca p-değerine bakmak</td>
    </tr>
    <tr>
      <td>Güven aralığı</td>
      <td>Tahmin ne kadar belirsiz?</td>
      <td>Geniş aralığı görmezden gelmek</td>
    </tr>
    <tr>
      <td>p-değeri</td>
      <td>Veri, sıfır etki varsayımıyla ne kadar uyumlu?</td>
      <td>Etkinin büyüklüğü sanmak</td>
    </tr>
    <tr>
      <td>Klinik anlamlılık</td>
      <td>Fark hasta açısından önemli mi?</td>
      <td>İstatistiksel anlamlılıkla eşitlemek</td>
    </tr>
  </tbody>
</table>

<h2 id="itt-eksik-veri-ve-güvenlik">ITT, eksik veri ve güvenlik</h2>

<p>Birincil analiz çoğunlukla <strong>tedavi niyetine göre analiz</strong> (ITT) yaklaşımını izler: Katılımcılar, tedaviyi tamamlamasalar bile randomize edildikleri grupta değerlendirilir. Bu yaklaşım randomizasyonun sağladığı dengeyi korur. Eksik sonuçların silinmesi ise yanlılığa yol açabileceğinden çoklu atama veya karma etkili modeller gibi yöntemler önceden hazırlanmış analiz planında tanımlanmalıdır.</p>

<p>Etkinlik kadar advers olaylar, tedaviyi bırakma oranları ve ciddi güvenlik sinyalleri de incelenir. Sonuç olarak iyi bir klinik analiz; doğru yazılım, önceden kayıtlı hipotezler, şeffaf kod, uygun istatistiksel model ve klinik uzmanlığın ortak ürünüdür. Bilgisayar hesabı hızlandırır, fakat bilimsel muhakemenin yerini alamaz.</p>]]></content><author><name>Sonsuz Us</name></author><category term="Bilgi" /><category term="klinik-deney" /><category term="istatistik" /><category term="r-programlama" /><category term="veri-analizi" /><category term="randomize-kontrollü-çalışma" /><category term="biyostatistik" /><summary type="html"><![CDATA[Yeni bir tedavinin gerçekten işe yarayıp yaramadığını anlamak, birkaç hastanın kendini daha iyi hissettiğini gözlemlemekten çok daha fazlasını gerektirir. Randomize kontrollü çalışmalar, tedavinin etkisini karşılaştırılabilir gruplar üzerinden ölçerken istatistiksel analiz yazılımları da ham verileri bilimsel kanıta dönüştürür. Bu süreçte R, SAS, Stata ve Python gibi araçlar araştırmacıların güçlü yardımcılarıdır; ancak yazılım ne kadar gelişmiş olursa olsun, yanlış tasarlanmış bir deneyi sihirli biçimde düzeltemez.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://program.sonsuz.us/img/klinik-deney-verilerinde-68.png" /><media:content medium="image" url="https://program.sonsuz.us/img/klinik-deney-verilerinde-68.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Kozmik Samanlıkta İğne Aramak: SETI ve Radyo Sinyal İşleme</title><link href="https://program.sonsuz.us/posts/kozmik-samanlikta-igne-aramak-seti-ve-radyo-sinyal-isleme/" rel="alternate" type="text/html" title="Kozmik Samanlıkta İğne Aramak: SETI ve Radyo Sinyal İşleme" /><published>2026-10-28T00:00:00+00:00</published><updated>2026-10-28T00:00:00+00:00</updated><id>https://program.sonsuz.us/posts/kozmik-samanlikta-igne-aramak-seti-ve-radyo-sinyal-isleme</id><content type="html" xml:base="https://program.sonsuz.us/posts/kozmik-samanlikta-igne-aramak-seti-ve-radyo-sinyal-isleme/"><![CDATA[<p>Gökyüzüne çevrilmiş bir radyo teleskop, yalnızca yıldızları dinlemez; yıldırımlardan uydulara, pulsarlardan mikrodalga fırınlara kadar sayısız kaynağın oluşturduğu dev bir elektromanyetik kalabalığı kaydeder. SETI’nin, yani Dünya Dışı Akıllı Yaşam Araştırması’nın temel problemi de bu kozmik gürültü içinde yapay olabilecek kadar düzenli, dar bantlı veya tekrarlayan sinyalleri bulmaktır. Kısacası mesele sadece “uzaylıları dinlemek” değil, olağanüstü zor bir veri ayıklama problemidir.</p>

<p>``</p>

<h2 id="radyo-teleskop-gerçekte-ne-kaydeder">Radyo teleskop gerçekte ne kaydeder?</h2>

<p>Bir radyo teleskop, belirli zamanlarda ölçülen elektriksel gerilim örnekleri üretir. Ham zaman serisini kabaca şöyle modelleyebiliriz:</p>

\[x(t) = s(t) + n(t) + r(t)\]

<p>Burada $s(t)$ aradığımız göksel sinyal, $n(t)$ doğal ve elektronik gürültü, $r(t)$ ise radyo frekansı girişimidir (RFI). Cep telefonu baz istasyonları, GPS uyduları ve radar sistemleri RFI oluşturabilir. İşin eğlenceli kısmı şudur: İlk bakışta “uzaylı mesajı” gibi görünen güçlü bir çizgi, yakındaki bir cihazın paraziti çıkabilir.</p>

<p>Sinyalin gücünü değerlendirmek için sinyal-gürültü oranı kullanılır:</p>

\[\mathrm{SNR} = \frac{P_{sinyal}}{P_{gürültü}}\]

<p>SNR yükseldikçe algılama kolaylaşır; ancak zayıf bir sinyal, uzun süre gözlemlenip örnekler birleştirilerek görünür hâle getirilebilir.</p>

<h2 id="zaman-alanından-frekans-alanına">Zaman alanından frekans alanına</h2>

<p>Ham örneklerde düzen görmek zordur. Bu nedenle Hızlı Fourier Dönüşümü (FFT), sinyali zaman alanından frekans alanına taşır. Sonuç çoğunlukla zaman, frekans ve güç eksenlerinden oluşan bir <strong>spektrogram</strong> olarak incelenir.</p>

<table>
  <thead>
    <tr>
      <th>Yaklaşım</th>
      <th>Gösterdiği bilgi</th>
      <th>SETI açısından kullanım</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Zaman serisi</td>
      <td>Genliğin zamana göre değişimi</td>
      <td>Darbe ve tekrar arama</td>
    </tr>
    <tr>
      <td>Güç spektrumu</td>
      <td>Enerjinin frekans dağılımı</td>
      <td>Dar bantlı taşıyıcı bulma</td>
    </tr>
    <tr>
      <td>Spektrogram</td>
      <td>Frekansın zamanla değişimi</td>
      <td>Doppler kaymasını izleme</td>
    </tr>
    <tr>
      <td>Korelasyon</td>
      <td>İki örüntünün benzerliği</td>
      <td>Bilinen şablonları arama</td>
    </tr>
  </tbody>
</table>

<p><img src="/img/kozmik-samanlikta-igne-91.svg" alt="kozmik-samanlikta-igne-91" /></p>

<p>Uzak bir verici tek frekansta yayın yapsa bile gezegenlerin dönmesi ve yörünge hareketleri Doppler kaymasına yol açar. Gözlenen frekans yaklaşık olarak</p>

\[f' = f\left(1 + \frac{v}{c}\right)\]

<p>biçiminde değişir. Burada $v$ göreli radyal hız, $c$ ışık hızıdır. Spektrogramda bu etki düz bir çizgi yerine eğimli bir iz oluşturabilir.</p>

<h2 id="basit-bir-dar-bant-sinyali-arama">Basit bir dar bant sinyali arama</h2>

<p>Aşağıdaki Python örneği, gürültülü bir zaman serisinin spektrumunu hesaplar ve en güçlü frekans bileşenini bulur:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">numpy</span> <span class="k">as</span> <span class="n">np</span>

<span class="n">ornekleme_hizi</span> <span class="o">=</span> <span class="mi">4096</span>
<span class="n">sure</span> <span class="o">=</span> <span class="mi">2</span>
<span class="n">t</span> <span class="o">=</span> <span class="n">np</span><span class="p">.</span><span class="nf">arange</span><span class="p">(</span><span class="n">ornekleme_hizi</span> <span class="o">*</span> <span class="n">sure</span><span class="p">)</span> <span class="o">/</span> <span class="n">ornekleme_hizi</span>

<span class="c1"># 730 Hz yapay sinyali beyaz gürültü içine saklıyoruz.
</span><span class="n">veri</span> <span class="o">=</span> <span class="mf">0.25</span> <span class="o">*</span> <span class="n">np</span><span class="p">.</span><span class="nf">sin</span><span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">np</span><span class="p">.</span><span class="n">pi</span> <span class="o">*</span> <span class="mi">730</span> <span class="o">*</span> <span class="n">t</span><span class="p">)</span>
<span class="n">veri</span> <span class="o">+=</span> <span class="n">np</span><span class="p">.</span><span class="n">random</span><span class="p">.</span><span class="nf">normal</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="nf">len</span><span class="p">(</span><span class="n">t</span><span class="p">))</span>

<span class="c1"># Pencereleme, spektral sızıntıyı azaltır.
</span><span class="n">pencere</span> <span class="o">=</span> <span class="n">np</span><span class="p">.</span><span class="nf">hanning</span><span class="p">(</span><span class="nf">len</span><span class="p">(</span><span class="n">veri</span><span class="p">))</span>
<span class="n">spektrum</span> <span class="o">=</span> <span class="n">np</span><span class="p">.</span><span class="nf">abs</span><span class="p">(</span><span class="n">np</span><span class="p">.</span><span class="n">fft</span><span class="p">.</span><span class="nf">rfft</span><span class="p">(</span><span class="n">veri</span> <span class="o">*</span> <span class="n">pencere</span><span class="p">))</span> <span class="o">**</span> <span class="mi">2</span>
<span class="n">frekanslar</span> <span class="o">=</span> <span class="n">np</span><span class="p">.</span><span class="n">fft</span><span class="p">.</span><span class="nf">rfftfreq</span><span class="p">(</span><span class="nf">len</span><span class="p">(</span><span class="n">veri</span><span class="p">),</span> <span class="mi">1</span> <span class="o">/</span> <span class="n">ornekleme_hizi</span><span class="p">)</span>

<span class="n">tepe</span> <span class="o">=</span> <span class="n">np</span><span class="p">.</span><span class="nf">argmax</span><span class="p">(</span><span class="n">spektrum</span><span class="p">[</span><span class="mi">1</span><span class="p">:])</span> <span class="o">+</span> <span class="mi">1</span>
<span class="nf">print</span><span class="p">(</span><span class="sa">f</span><span class="sh">"</span><span class="s">Aday frekans: </span><span class="si">{</span><span class="n">frekanslar</span><span class="p">[</span><span class="n">tepe</span><span class="p">]</span><span class="si">:</span><span class="p">.</span><span class="mi">2</span><span class="n">f</span><span class="si">}</span><span class="s"> Hz</span><span class="sh">"</span><span class="p">)</span>
</code></pre></div></div>

<p>Bu yöntem öğretici olsa da gerçek gözlemlerde milyonlarca frekans kanalı ve saatlerce kayıt bulunur. Ayrıca tek bir güçlü tepe, keşif ilan etmek için kesinlikle yeterli değildir.</p>

<h2 id="bir-sinyal-ne-zaman-aday-olur">Bir sinyal ne zaman aday olur?</h2>

<p>SETI işlem hatları adayları çeşitli testlerden geçirir:</p>

<ol>
  <li>Sinyal teleskop gökyüzünden ayrıldığında kaybolmalı, hedefe dönüldüğünde tekrar görünmelidir.</li>
  <li>Aynı sinyal farklı yönlerde eşzamanlı görülüyorsa muhtemelen yerel RFI’dır.</li>
  <li>Doppler sürüklenmesi fiziksel olarak makul olmalıdır.</li>
  <li>Bağımsız teleskopların doğrulaması aranmalıdır.</li>
  <li>Tekrarlanabilirlik, tek seferlik heyecandan daha değerlidir.</li>
</ol>

<p>Makine öğrenmesi de spektrogram görüntülerini sınıflandırmak ve alışılmadık örüntüleri sıralamak için kullanılabilir. Fakat model, eğitim verisindeki insan yapımı parazitleri öğrenip önyargılı sonuçlar üretebilir. Bu yüzden otomasyon adayları azaltır; nihai bilimsel yorumun yerini almaz.</p>

<p>SETI, sabır ile istatistiğin buluştuğu bir alandır. Anlamlı bir sinyal bulunmasa bile geliştirilen FFT, filtreleme, anomali tespiti ve büyük veri teknikleri astronomiden haberleşmeye kadar pek çok alana katkı sağlar. Kozmik samanlık çok büyük olabilir; fakat arama araçlarımız her geçen gün daha keskin hâle geliyor.</p>]]></content><author><name>Sonsuz Us</name></author><category term="Bilgi" /><category term="seti" /><category term="sinyal işleme" /><category term="radyo astronomi" /><category term="python" /><category term="veri analizi" /><category term="uzay" /><summary type="html"><![CDATA[Gökyüzüne çevrilmiş bir radyo teleskop, yalnızca yıldızları dinlemez; yıldırımlardan uydulara, pulsarlardan mikrodalga fırınlara kadar sayısız kaynağın oluşturduğu dev bir elektromanyetik kalabalığı kaydeder. SETI’nin, yani Dünya Dışı Akıllı Yaşam Araştırması’nın temel problemi de bu kozmik gürültü içinde yapay olabilecek kadar düzenli, dar bantlı veya tekrarlayan sinyalleri bulmaktır. Kısacası mesele sadece “uzaylıları dinlemek” değil, olağanüstü zor bir veri ayıklama problemidir.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://program.sonsuz.us/img/kozmik-samanlikta-igne-91.png" /><media:content medium="image" url="https://program.sonsuz.us/img/kozmik-samanlikta-igne-91.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Mikroskobik Görüntülerde Otomatik Hücre Sayımı ve Segmentasyon</title><link href="https://program.sonsuz.us/posts/mikroskobik-goruntulerde-otomatik-hucre-sayimi-ve-segmentasyon/" rel="alternate" type="text/html" title="Mikroskobik Görüntülerde Otomatik Hücre Sayımı ve Segmentasyon" /><published>2026-10-28T00:00:00+00:00</published><updated>2026-10-28T00:00:00+00:00</updated><id>https://program.sonsuz.us/posts/mikroskobik-goruntulerde-otomatik-hucre-sayimi-ve-segmentasyon</id><content type="html" xml:base="https://program.sonsuz.us/posts/mikroskobik-goruntulerde-otomatik-hucre-sayimi-ve-segmentasyon/"><![CDATA[<p>Mikroskop altında kan hücrelerini tek tek saymak, sabır isteyen ve insan hatasına açık bir işlemdir. Neyse ki görüntü işleme algoritmaları; eritrosit, lökosit ve trombosit gibi hücreleri arka plandan ayırabilir, sınırlarını belirleyebilir ve saniyeler içinde sayabilir. Bu süreç yalnızca “resimdeki daireleri bulmak” değildir; aydınlatma farklılıkları, üst üste binen hücreler ve boyama artefaktlarıyla mücadele eden çok aşamalı bir analiz problemidir.</p>

<p>``</p>

<h2 id="segmentasyon-neden-gereklidir">Segmentasyon neden gereklidir?</h2>

<p>Segmentasyon, görüntüdeki her pikselin hücreye mi yoksa arka plana mı ait olduğuna karar verme işlemidir. Gri tonlu bir görüntü matematiksel olarak $I(x,y)$ yoğunluk fonksiyonuyla temsil edilebilir. En basit yaklaşımda bir eşik değeri $T$ seçilir:</p>

\[M(x,y)=\begin{cases}
1, &amp; I(x,y) &lt; T \\
0, &amp; I(x,y) \geq T
\end{cases}\]

<p>Burada $M$, ikili hücre maskesidir. Kan hücreleri arka plandan daha koyu görünüyorsa eşikten küçük pikseller hücre kabul edilir. Ancak sabit eşik, düzensiz aydınlatmada başarısız olabilir. Otsu yöntemi, sınıf içi varyansı küçülten eşiği otomatik seçer; adaptif eşikleme ise görüntünün farklı bölgeleri için farklı eşikler hesaplar.</p>

<table>
  <thead>
    <tr>
      <th>Yöntem</th>
      <th>Güçlü yanı</th>
      <th>Zayıf yanı</th>
      <th>Uygun senaryo</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Sabit eşik</td>
      <td>Çok hızlıdır</td>
      <td>Işığa duyarlıdır</td>
      <td>Kontrollü çekimler</td>
    </tr>
    <tr>
      <td>Otsu</td>
      <td>Otomatik eşik seçer</td>
      <td>Histogram örtüşürse zorlanır</td>
      <td>Homojen arka plan</td>
    </tr>
    <tr>
      <td>Adaptif eşik</td>
      <td>Yerel ışık değişimini yönetir</td>
      <td>Gürültüyü büyütebilir</td>
      <td>Düzensiz aydınlatma</td>
    </tr>
    <tr>
      <td>Derin öğrenme</td>
      <td>Karmaşık hücreleri tanır</td>
      <td>Etiketli veri ve GPU ister</td>
      <td>Klinik ölçekli sistemler</td>
    </tr>
  </tbody>
</table>

<p><img src="/img/mikroskobik-goruntulerde-otomatik-13.svg" alt="mikroskobik-goruntulerde-otomatik-13" /></p>

<h2 id="i̇şlem-hattı-nasıl-çalışır">İşlem hattı nasıl çalışır?</h2>

<p>Tipik bir hücre sayım sistemi şu adımları izler:</p>

<ol>
  <li><strong>Ön işleme:</strong> Görüntü yeniden boyutlandırılır, gri tona çevrilir ve Gauss filtresiyle gürültü azaltılır.</li>
  <li><strong>Segmentasyon:</strong> Otsu, adaptif eşikleme veya renk uzayı analiziyle hücre maskesi üretilir.</li>
  <li><strong>Morfolojik düzeltme:</strong> Açma işlemi küçük lekeleri temizler; kapama işlemi hücre içindeki boşlukları doldurur.</li>
  <li><strong>Hücreleri ayırma:</strong> Birbirine temas eden hücreler distance transform ve watershed algoritmasıyla ayrılır.</li>
  <li><strong>Sayım:</strong> Bağlı bileşenler veya konturlar bulunur; alanı makul aralıkta olan nesneler hücre kabul edilir.</li>
</ol>

<p>İkili maskede hücre alanı, hücreye ait piksellerin toplamıdır:</p>

\[A=\sum_{x,y}M(x,y)\]

<p>Bir konturun alanı $A$, çevresi $P$ ise dairesellik $C=\frac{4\pi A}{P^2}$ ile ölçülebilir. Kusursuz çemberde $C=1$ olur. Böylece uzun çizikler veya boya kalıntıları hücrelerden ayrılabilir.</p>

<h2 id="python-ve-opencv-ile-örnek-sayım">Python ve OpenCV ile örnek sayım</h2>

<p>Aşağıdaki kod, hücreleri koyu nesneler olarak kabul eder. Gürültüyü temizler, dış konturları bulur ve çok küçük parçaları sayım dışında bırakır:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">cv2</span>
<span class="kn">import</span> <span class="n">numpy</span> <span class="k">as</span> <span class="n">np</span>

<span class="n">image</span> <span class="o">=</span> <span class="n">cv2</span><span class="p">.</span><span class="nf">imread</span><span class="p">(</span><span class="sh">"</span><span class="s">kan_ornegi.jpg</span><span class="sh">"</span><span class="p">)</span>
<span class="n">gray</span> <span class="o">=</span> <span class="n">cv2</span><span class="p">.</span><span class="nf">cvtColor</span><span class="p">(</span><span class="n">image</span><span class="p">,</span> <span class="n">cv2</span><span class="p">.</span><span class="n">COLOR_BGR2GRAY</span><span class="p">)</span>
<span class="n">blurred</span> <span class="o">=</span> <span class="n">cv2</span><span class="p">.</span><span class="nc">GaussianBlur</span><span class="p">(</span><span class="n">gray</span><span class="p">,</span> <span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">),</span> <span class="mi">0</span><span class="p">)</span>

<span class="c1"># Koyu hücreleri beyaz maskeye dönüştürür.
</span><span class="n">_</span><span class="p">,</span> <span class="n">mask</span> <span class="o">=</span> <span class="n">cv2</span><span class="p">.</span><span class="nf">threshold</span><span class="p">(</span>
    <span class="n">blurred</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">255</span><span class="p">,</span>
    <span class="n">cv2</span><span class="p">.</span><span class="n">THRESH_BINARY_INV</span> <span class="o">+</span> <span class="n">cv2</span><span class="p">.</span><span class="n">THRESH_OTSU</span>
<span class="p">)</span>

<span class="c1"># Küçük gürültüleri morfolojik açma ile temizler.
</span><span class="n">kernel</span> <span class="o">=</span> <span class="n">np</span><span class="p">.</span><span class="nf">ones</span><span class="p">((</span><span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="n">np</span><span class="p">.</span><span class="n">uint8</span><span class="p">)</span>
<span class="n">mask</span> <span class="o">=</span> <span class="n">cv2</span><span class="p">.</span><span class="nf">morphologyEx</span><span class="p">(</span><span class="n">mask</span><span class="p">,</span> <span class="n">cv2</span><span class="p">.</span><span class="n">MORPH_OPEN</span><span class="p">,</span> <span class="n">kernel</span><span class="p">,</span> <span class="n">iterations</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>

<span class="n">contours</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">cv2</span><span class="p">.</span><span class="nf">findContours</span><span class="p">(</span>
    <span class="n">mask</span><span class="p">,</span> <span class="n">cv2</span><span class="p">.</span><span class="n">RETR_EXTERNAL</span><span class="p">,</span> <span class="n">cv2</span><span class="p">.</span><span class="n">CHAIN_APPROX_SIMPLE</span>
<span class="p">)</span>

<span class="n">cells</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">contour</span> <span class="ow">in</span> <span class="n">contours</span><span class="p">:</span>
    <span class="n">area</span> <span class="o">=</span> <span class="n">cv2</span><span class="p">.</span><span class="nf">contourArea</span><span class="p">(</span><span class="n">contour</span><span class="p">)</span>
    <span class="k">if</span> <span class="mi">150</span> <span class="o">&lt;</span> <span class="n">area</span> <span class="o">&lt;</span> <span class="mi">5000</span><span class="p">:</span>
        <span class="n">cells</span><span class="p">.</span><span class="nf">append</span><span class="p">(</span><span class="n">contour</span><span class="p">)</span>
        <span class="n">cv2</span><span class="p">.</span><span class="nf">drawContours</span><span class="p">(</span><span class="n">image</span><span class="p">,</span> <span class="p">[</span><span class="n">contour</span><span class="p">],</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">255</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">2</span><span class="p">)</span>

<span class="nf">print</span><span class="p">(</span><span class="sa">f</span><span class="sh">"</span><span class="s">Tahmini hücre sayısı: </span><span class="si">{</span><span class="nf">len</span><span class="p">(</span><span class="n">cells</span><span class="p">)</span><span class="si">}</span><span class="sh">"</span><span class="p">)</span>
<span class="n">cv2</span><span class="p">.</span><span class="nf">imwrite</span><span class="p">(</span><span class="sh">"</span><span class="s">sonuc.jpg</span><span class="sh">"</span><span class="p">,</span> <span class="n">image</span><span class="p">)</span>
</code></pre></div></div>

<p>Alan sınırları mikroskobun büyütmesine ve görüntü çözünürlüğüne göre kalibre edilmelidir. Sabit <code class="language-plaintext highlighter-rouge">150</code> değeri her laboratuvar görüntüsünde sihirli biçimde çalışmaz; ne yazık ki algoritmaların da mikroskop ayarı vardır!</p>

<h2 id="üst-üste-binen-hücreler-ve-doğrulama">Üst üste binen hücreler ve doğrulama</h2>

<p>Basit kontur sayımı, temas eden üç hücreyi tek nesne sanabilir. Watershed yaklaşımı, distance transform üzerindeki yerel tepeleri hücre merkezleri olarak kullanıp birleşik bölgeleri ayırır. Daha karmaşık örneklerde U-Net veya Mask R-CNN gibi modeller, piksel düzeyinde segmentasyon sağlayabilir.</p>

<p>Sistemin başarısı yalnızca tahmini sayıya bakılarak ölçülmemelidir. Uzman tarafından hazırlanmış gerçek maske ile karşılaştırma yapılabilir. Kesişim-birleşim oranı</p>

\[IoU=\frac{\vert M_{tahmin}\cap M_{gerçek}\vert }{\vert M_{tahmin}\cup M_{gerçek}\vert }\]

<p>şeklindedir. Ayrıca sayım hatası için $MAE=\frac{1}{n}\sum \vert y_i-\hat{y}_i\vert $ kullanılabilir. Yüksek IoU doğru sınırları, düşük MAE ise doğru hücre sayısını gösterir. Böylece sistem sadece hızlı değil, ölçülebilir biçimde güvenilir hâle gelir.</p>]]></content><author><name>Sonsuz Us</name></author><category term="Proje" /><category term="görüntü işleme" /><category term="hücre sayımı" /><category term="segmentasyon" /><category term="opencv" /><category term="python" /><category term="bilgisayarlı görü" /><summary type="html"><![CDATA[Mikroskop altında kan hücrelerini tek tek saymak, sabır isteyen ve insan hatasına açık bir işlemdir. Neyse ki görüntü işleme algoritmaları; eritrosit, lökosit ve trombosit gibi hücreleri arka plandan ayırabilir, sınırlarını belirleyebilir ve saniyeler içinde sayabilir. Bu süreç yalnızca “resimdeki daireleri bulmak” değildir; aydınlatma farklılıkları, üst üste binen hücreler ve boyama artefaktlarıyla mücadele eden çok aşamalı bir analiz problemidir.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://program.sonsuz.us/img/mikroskobik-goruntulerde-otomatik-13.png" /><media:content medium="image" url="https://program.sonsuz.us/img/mikroskobik-goruntulerde-otomatik-13.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>