Bağlı listeler, verileri bilgisayar üzerinde etkili şekilde inşa etmenin önemli yollarından biridir. Bu yazıda doğrusal ve dairesel bağlı listelerden hem tek hem de çift yönlü olanlarına değinilerek, C dilinde örneklenmiştir. Örnek kodlara buradan erişebilirsiniz.

Bağlı Listeler Ne İşe Yarar?

Birbiriyle anlamlı birden çok veriyi bir araya getirmek gerektiğinde, başvurduğumuz araçlardan biri genellikle dizidir. Belirli bir veri büyüklüğü için tanımlanan diziler, bilgisayar hafızasında aşağıdaki gibi bir mimariyle oluşturulur:

Başlangıç adresi bilinen bir dizinin herhangi bir elemanına, bu adrese programcının belirttiği indis ve veri büyüklüğü çarpımının eklenmesiyle ulaşılabilir. Sözgelimi şekildeki dizinin 4. elemanına (indisi 3) erişilmek isteniyor olsun. Bu durumda gerekli adres aşağıdaki gibi hesaplanır:

Hex(0 +…


Kitap önerisi serisine; günümüzün internet tabanlı teknolojik araçlarının, insanın kişisel ve sosyal hayatında ne derece söz sahibi olabileceğine dikkat çeken bir popüler-teknoloji kitabıyla devam ediyoruz.

Mahremiyet Sanrısı

Bağımsız bir düşünce kuruluşunda (think tank) danışmanlık yapan Eirik Lokke’nin kaleme aldığı Mahremiyet: Dijital Toplumlarda Özel Hayat; Koç Üniversitesi Yayınları’ndan çıkma ve aslı Norveççeden dilimize Dilek Başak tarafından kazandırılmış. Kitap, aslında; sosyal medya ve internet kültürüyle uzaktan yakından ilgili olan herkesin, aklının ucundan mutlaka geçmiş bir sorunsalı merkezine taşıyor.

Kitapta mahremiyet ve özel hayat kavramlarının demokratik ve liberal ilkeler çerçevesinde tanımlarına sıkça rastlanıyor ve birbirlerine göre farklı ve tamamlayıcı yanları vurgulanıyor. Henüz giriş bölümünde yazar…


Bu yazıda K-NN (K-Nearest Neighbors, K-En Yakın Komşular) algoritması kısaca tanıtılarak, Python üzerinde basit bir uygulamayla örneklenmiştir. Uygulamanın kaynak kodlarına buradan ulaşabilirsiniz.

K-NN Algoritması nedir?

K-NN (K-Nearest Neighbors) algoritması, model oluşturmaksızın; sınıflandırma ve regresyon problemlerinin her ikisi üzerinde de çalışabilen, denetimli makine öğrenmesi algoritmasıdır. Veriler üzerinde basit denebilecek bir çıkarımla tahmin yapmaktır. Bu çıkarıma göre; etiket değeri tahmin edilecek bir veri için, n-boyutlu bir uzayda, kendisine en yakın k komşunun etiket değerleri referans alınmalıdır.

Örnek olması açısından; e-postalar için bir spam filtresi geliştiriliyor olsun. Spam e-postaları, yalnızca başlıklarını kontrol ederek ayırt edebileceğimizi varsayalım. Yeterli sayıda e-posta, spam ve spam olmayan şeklinde elle etiketlenerek…


Bu yazıda PID kontrolcü parametrelerinin optimizasyonu (eniyilenmesi) için Genetik Algoritmalar’ın (GA) kullanımına dair, Python üzerinde geliştirilmiş basit bir örnek sunulmuştur. PID kontrolcüsü; klasik bir kontrol problemi olan basit sarkaç (simple pendulum) modeli üzerinde çalıştırılarak, zaman uzayında benzetimler yapılmıştır. PID ve Genetik Algoritmalar kavramlarını ilk kez duyuyorsanız, daha önce yazdığım yazılara kavramların üzerlerine tıklayarak göz atabilirsiniz.

Uygulamanın kaynak kodlarına buradan ulaşabilirsiniz.

Amaç

Basit sarkaç problemi: 1 serbestlik dereceli sarkacın açısal konum kontrolünün sağlanmasını ifade eden, alışılagelmiş kontrol problemlerinden birisidir. Genellikle ip veya uzunluğu sabit bir çubuğa bağlı küre olarak tasvir edilir. Özellikle farklı kontrol yöntemlerini birbirleriyle kıyaslamak için yaygın olarak tercih edilir.

Sarkacın hız ve ivme vektörleriyle gösterimi (kaynak)


Dijital oyun platformları yaz indirimleri sezonunu açmışken, yapay zeka üzerine deneyimlenebilecek 7 oyunu sizler için derledim. Öncelikle belirteyim: Oyunlardaki yapay zekadan bahsetmiyorum. Ana teması yapay zeka olan veya en azından bununla bağdaştırılabilecek oyunlardan bahsediyor olacağım. Hazırsanız başlayalım!

1. Portal Serisi

Platform bulmaca oyun türünün akla gelen ilk örneklerinden birisi şüphesiz Portal’dır. Oyunun hikayesi Aperture Science adında hayali bir laboratuvarda geçmektedir. Chell isimli ana karakterimiz, uyandığında kendisini bu laboratuvarda, küçük bir hücrenin içinde bulur. Tüm test odaları boyunca kendisini gözetleyen bir ses, Portal silahını kullanarak bu odalardaki bulmacaları çözmesini ve diğer test odalarına doğru ilerlemesini söyler. Portal silahı, uygun yüzeyler arasında solucan deliği…


Görsel: Kaynak

Uzun zaman önce, çok uzak bir galakside; yerleşik hayatı kozmik göçe tercih etmiş uzaylı dostlarımız, tam da bilim-kurgu fantezilerimizi süsteleyen teknolojik motifleriyle, günün birinde yeşil yeşil soluyan radar monitörlerimizi tomurcuklar halinde şenlendirivermişler. Hasbelkader, radyo dalgalarımız denk düşmüş, 0 gitmiş 1 gelmiş, çat pat da olsa NASA bir yeni ileti almış: “Geçiyorduk, uğradık”. Amerikan başkanı derhal devreye girmiş tabii: “Hiç sizinle uğraşacak durumda değiliz, acil değilse hattı meşgul etmeyin!”. İnsanlığın kendilerinde kalmasını isteyen uzaylılar, “Neyse, siz meşgulsünüz galiba” deyip, gitmeden son bir kıyak yapalım demişler: “Bilmek istediğiniz ne varsa, sorun. Ama yalnızca bir soru!”

Şimdi bu absürt hikayenin, gerçekleşeceğini pek sanmam…


Bu yazıda basit bir kontrol problemi, Scikit-Fuzzy modülü kullanılarak Python üzerinde simüle edilmiştir. Uygulamanın kaynak koduna buradan ulaşabilirsiniz. Bulanık kontrol, Bulanık Mantık temelli bir kontrol yaklaşımıdır. Bulanık Mantığı ilk kez duyuyorsanız, buradaki yazıma göz atabilirsiniz.

görsel: kaynak

Problem

Şuradaki yazıda paylaştığım problem üzerinden gidelim. Problemimiz: Bir helikopterin irtifasının kontrol edilmesi. Aşağıdaki grafikle, helikopter pervanesinin ivmesine göre yer değiştirmesindeki ilişki verilmiş olsun.


Bu yazıda Python kullanılarak basit bir PID kontrol simülasyonu gerçekleştirilmiştir. Uygulamanın kaynak kodlarına buradan ulaşabilirsiniz.

PID Nedir?

PID (Proportional Integral Derivative — Oransal İntegral Türev); endüstriyel, mekatronik, robotik vb. sistemlerde kullanılan bir kontrol yöntemidir. Uygulanması ve modellenmesi görece kolay olduğu için yaygın olarak kullanılmaktadır.

PID kontrolün temel amacı: Bir giriş olarak referans değerini, kontrol edilecek sistemin değişkenlerinde meydana getirebilmektir. Referans değerini, sistemde kontrol etmek istediğiniz değişkenin bir temsili gibi düşünebilirsiniz. Örneğin; sisteminiz bir yolcu uçağı ve kontrol etmek istediğiniz değişkeni de uçağın irtifası olsun. Yolcu uçakları, yaklaşık 30–35 bin feet irtifada seyretmektedir. …


Kitap önerisi serisine, okurken de tanıtırken de epey keyif aldığım bir kitapla devam ediyorum. Kapağındaki “Yaklaşam Kuantum Biyolojisi Çağı” başlığıyla, saniyesinde beni kendine bağlayan bu kitabun, nelerden bahsettiğine yakından göz atalım.

Kuantum Sınırında Yaşam; kuramsal fizikçi Jim Al-Khalili ve moleküler genetikçi Johnjoe McFadden’ın birlikte kaleme aldıkları, Şiirsel Taş’ın dilimize kazandırdığı, Domingo Yayınları’ndan çıkan bir popüler bilim kitabı. Kitabın en çarpıcı yanı, üstteki paragrafta da belirttiğim gibi, kuantum mekaniği ve biyoloji disiplinlerini buluşturan kuantum biyolojisi alanı hakkında yazılmış olması. Başlı başına geniş bu iki alan; üstelik kuantum mekaniğinin anlatılması ve anlaşılmasının imkansızlığıyla ilgili söylemler şehir efsanesi gibi dolaşırken, nasıl ve neden…


Bu yazıda Minimax Algoritması’nı ve onu örneklemek için, oldukça popüler bir oyun olan TicTacToe’dan bahsedeceğiz. Tarayıcı üzerinde çalışacak şekilde basitçe kodlayıp, yapay zekaya karşı mücadele etmeye çalışacağız. Hazırsanız başlayalım!

Minimax Algoritması Nedir?

Minimax algoritması, ihtimaller havuzu içinden en iyi ve en kötü senaryoları değerlendiren bir karar verme algoritmasıdır.

Satranç, TicTacToe ve dama gibi sıra tabanlı oyunları ele alalım. Her bir oyuncu, sıra kendine geldiğinde, elindeki taşı/taşları kurallara riayet ederek bir noktaya götürüp hamlesini yapar. Her bir hamle için, taşların gidebileceği noktalar kadar ihtimal bulunur. Örneğin TicTacToe oyununda: Her hamlede bir nokta kapatılmış olduğu için, sonraki hamlenin ihtimal sayısı öncekinden bir eksilerek gider. …

Ahmet Ataşoğlu

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store