2-3 Ağacı (2-3 Tree)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde kullanılan bir veri yapısıdır (data structures). Özel bir ağaç yapısıdır ve amaç ağacı sürekli olarak dengeli (balanced) tutmaktır. Ağaçtaki düğümlere (nodes) isim olarak 2 veya 3 ismi verilebilir. Her düğüm aldığı isme göre farklı işleme tabi tutulur. Düğümlerin isimlendirilmesi aşağıdaki şekilde yapılır: 2 düğümleri (2 nodes) : 2 […]

Devam

Dairesel Bağlı liste ile Önceliğe sahip hasta sırası takibi

Yazan : Şadi Evren ŞEKER Siteye gelen bir soru üzerine bu yazıyı ekliyorum. Öncelik sırası (priority queue), kullanarak gelen hastaları verilen önceliğe göre dairesel bir bağlı listeye (linked list) yerleştiren ve ardından sırayla gelen hastaları listeden alan bir kodu C++ dilinde yazalım. İlk olarak bir hastanın tanımını yapan sınıfı aşağıdaki şekilde kodluyoruz: Bu tanıma göre […]

Devam

Levenshtein Mesafe Algoritması (Levenshtein Distance)

Yazan: Yrd. Doç. Dr. Şadi Evren ŞEKER İki dizilim arasındaki benzerliği derecelendirmek için kullanılır. Pratikte arama sonuçlarında kelimeler arasındaki benzerliği derecelendirmek için kullanılmaktadır. Basitçe, iki dizi, iki kelime, iki cümle gibi varlıklar arasındaki değiştirme ve ekleme işlemlerini tutar. Örneğin Oyun- Ayan kelimeleri arasındaki mesafe 2 ‘dir çünkü ilk ve ikinci o harfleri a harfi ile […]

Devam

Order Theory (Sıra Teorisi, Nazariyatül Tertib)

Yazan : Yrd. Doç. Dr. Şadi Evren ŞEKER Bu yazının amacı, eğitimimiz sırasında sürekli olarak okuduğumuz bir teori olan tertip teorisi (sıralama teorisi , order theory) konusunda bulunan kavramları (preorder, postorder gibi) açıklamaktır. Osmanlıda bu konuya nazariyatül tertip ismi verilmektedir. Nazariyatül tertip, bilgisayar bilimleri de dahil olmak üzere pek çok matematiksel problemin çözümünde kullanılmaktadır. Örneğin […]

Devam

Bellman Ford Algoritması

UAYRI!: Bu yazıda hatalar bulunmaktadır (Uğur Bey’e teşekkürler). Bu yazıda anlatılan algoritma verilen örnekteki özel olarak sıralanmış kenarlar için doğru çalışmakta ancak farklı durumlarda hata yapabilmektedir. Bellman-Ford algoritmasının tam ve doğru anlatımı için http://www.bilgisayarkavramlari.com/2010/08/05/bellman-ford-algoritmasi-2/ adresindeki yazıyı okuyabilirsiniz. Yazan : Şadi Evren ŞEKER Bu algoritmanın amacı, bir şekil (graph) üzerindeki, bir kaynaktan (source) bir hedefe(target veya […]

Devam

Edmonds Karp Algoritması

Edmonds Karp Algoritması Yazan : Şadi Evren ŞEKER Bu algoritmanın amacı, literatürde azami akış ( maximum flow ) olarak geçen ve düğümler (nodes) arasında akış kapasiteleri belirli bir şekildeki (graph) bir başlangıçtan bir hedefe en fazla akışın sağlandığı problemleri çözmektir. Azami akış (maximum flow) problemini örneğin şehirler arasında bağlı boru hattına veya tedarik zincirine benzetebiliriz. […]

Devam

Ford Fulkerson Algoritması

Yazan : Şadi Evren ŞEKER Bu algoritmanın amacı, literatürde azami akış ( maximum flow ) olarak geçen ve düğümler (nodes) arasında akış kapasiteleri belirli bir şekildeki (graph) bir başlangıçtan bir hedefe en fazla akışın sağlandığı problemleri çözmektir. Azami akış (maximum flow) problemini örneğin şehirler arasında bağlı boru hattına veya tedarik zincirine benzetebiliriz. Örneğin aşağıdaki şekli […]

Devam

Şekillerde Sığ Öncelikli Arama

Yazan : Şadi Evren ŞEKER Bu yazının amacı genel amaçlı şekillerde (graphs) sığ öncelikli aramayı (breadth first search , BFS) açıklamaktır. Bu yazı, ağaçlardaki sığ öncelikli arama ile karıştırılmamalıdır. Ağaçlar (trees) bilindiği üzere yönlü dairesel olmayan şekillerdir (directed acyclic graph) dolayısıyla ağaçlar üzerinde bu yazıda anlatılan sıra (queue) yapısına ihtiyaç duyulmaz. Sığ öncelikli arama bir […]

Devam

Python ile Listeler ve Sözlükler (Dictionary)

Yazan : Şadi Evren ŞEKER Bu yazının amacı python programlama dilindeki temel veri işlemleri için kullanılan listeler (lists) ve sözlükleri (dictionaries) açıklamaktır. Python programlama ortamının kurulumu ve bu dilde yapılabilecek temel bazı işlemler için python ile programlama başlıklı yazıya bakabilirsiniz. Öncelikle listelerden başlayıp ardından sözlüklerden bahasedeceğiz: Bir liste değişkeni (variable) aşağıdaki şekilde köşeli parantezler ile […]

Devam

Dijkstra Algoritması

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde kullanılan ve algoritmayı literatüre kazandıran kişinin ismini taşıyan dijkstra algoritması, verilen bir şekilde (graph) en kısa yolu (shortest path) bulmak için kullanılır. Bu algoritmanın çalışmasını örnek bir şekil( graph ) üzerinden göstermeye çalışalım. Bu gösterimin ardından Dijkstra algoritmasının başarısını ve zafiyetlerini tartışabiliriz. [flashvideo file=http://www.bilgisayarkavramlari.com/wp-content/uploads/dijkstra.flv /] Örnek olarak yukarıda […]

Devam