En kötü durum analizi (Worst Case Analysis)

En kötü durum analizi (Worst Case Analysis) Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde bir algoritmanın incelenmesi sırasında sıkça kullanılan bu terim çalışmakta olan algoritmanın en kötü ihtimalle ne kadar başarılı olacağını incelemeye yarar. Bilindiği üzere bilgisayar bilimlerinde yargılamalar kesin ve net olmak zorundadır. Tahmini ve belirsiz karar verilmesi istenmeyen bir durumdur. Bir algoritmanın ne […]

Devam

Sezgisel Algoritmalar (Buluşsal Algoritmalar, Heuristic Algorithms)

Sezgisel Algoritmalar (Buluşsal Algoritmalar, Heuristic Algorithms) Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde sezgisel (heuristics) bir yaklaşımın problem çözümüne uygulandığı algoritmalardır. Uygulanan yöntemin doğruluğunun ispat edilmesi gerekmez, tek istenen karmaşık bir problemi daha basit hale getirmesi veya algoritamanın tatmin edici bir sonuç bulabilmesidir. Genel olarak bir problemin çözümü sırasında bilgisayar bilimlerinde iki amaçtan birisi güdülür. […]

Devam

Kabuk Sıralama (Shell Sort)

Kabuk Sıralama (Shell Sort) Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde kullanılan sıralama algoritmalarından birisi de kabuk sıralamadır (shell sort).  İsmi Türkçeye kabuk sıralaması olarak çevrilsede aslında Donald Shell isimli algoritmayı ilk bulan kişinin isminden gelmektedir. Algoritma performansı O(n2)’dir. Çalışması aşağıdaki örnek üzerinde anlatılmıştır: Sıralayacağımız sayılar: 5,7,2,9,6,1,3 olarak verilmiş olsun. Sıralama işlemi için öncelikle bir […]

Devam

Sallayıcı Sıralaması (Shaker Sort)

Yazan : Şadi Evren ŞEKER Veri sıralama için kullanılan ve kabarcık sıralamasının (bubble sort) neredeyse aynısı olan sıralama algoritmasıdır (sort algorithm). Kabarcık sıralamasından tek farkı, kabarcık sıralaması tek yönlü olarak kabarcığı hareket ettirirken, sallayıcı sıralaması bir sağdan bir soldan iki yönden de sıralamaktadır. Bu sebeple çift yönlü kabarcık sıralaması (bidirectional bubble sort) ismi de verilmektedir. […]

Devam

Linear Programming (Doğrusal Programlama)

Yazan : Şadi Evren ŞEKER Problem çözümünde ve iyileştirmelerde (optimization) kullanılan yaklaşımlardan birisidir. Buradaki amaç bir problemi teşkil eden parametrelerin doğrusal bir formda olması ve problem uzayını doğrusal olarak alanlara bölmesidir. Doğrusal bir fonksiyon aşağıdaki şekilde yazılabilir: f(x1,x2,x3, …. , xn ) = c1x1 + c2x2 + c3x3 + … + cnxn Yukarıdaki fonksiyonun doğrusal […]

Devam

Self Organizing Maps (Özdüzenleyici Haritalar)

Yazan : Şadi Evren ŞEKER Özdüzenleyici haritalar, yapay sinir ağlarının özel bir biçimidir ve eğitimleri sırasında gözetimsiz eğtim kullanılmaktadır. İlk kez Kohonen ismindeki finlandiyalı bilim adamı tarafından geliştirildiği için kohonen haritası (kohonen map) ismi de verilen bu ağlar diğer bütün yapay sinir ağları gibi iki farklı şekilde çalışmaktadır. İlk çalışma şeklinde sistem kendini eğitmektedir. Bu […]

Devam

Sokma Sıralaması (Ekleme Sıralaması, Insertion Sorting)

Sokma Sıralaması (Ekleme Sıralaması, Insertion Sorting) Yazan : Şadi Evren ŞEKER Sokma sıralaması, programlaması oldukça basit ancak performansı bölme sıralaması (merge sort), hızlı sıralama(quick sort) gibi sıralamalara göre nispeten yavaş bir sıralama algoritmasıdır. Çalışmasını aşağıdaki örnek üzerinden anlatmaya çalışalım: Sıralanacak olan sayılarımız : 33 44 21 83 56 73 22  olsun. Bu sayıları sıralamaya ilk […]

Devam

Backus Normal Form (BNF)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerilnde genellikle bir dil tanımlamada ve bu dilin gramerini (Dil bilgisini) belirlemekte kullanılan gösterim biçimidir. Basitçe dil bir dil tanımında başlayarak Terminal (sonuncu) ve Non-Terminal (Devamlı) terimler kullanarak tanılmanmaktadır. Örneğin aşağıda basit bir örneği verilmiştir: <dil> ::= <harf>|<imla> <harf> ::= a|b|…|z <imla> ::= .| |,|? Yukarıda bir dil tanımı […]

Devam

Buket Sıralaması (Bucket Sort)

Yazan : Şadi Evren ŞEKER Buket sıralması veya kutu sıralaması (bin sorting) isimleri verilen bu arama yöntemi öncelikle arama yapılacak olan sayıları (veya anahtarları) buketlere böler. Daha sonra her buketi kendi içinde sıralar (veya buket sıralama algoritmasını özyineli olarak (recursive) buketlerin üzerine uygulamaya devam eder) Buketler sıralandıktan sonra birleştirme aşamasına geçilir ve buketler birleştirildiğinde sıralama […]

Devam

Kıtlık (Starvation)

Yazan : Şadi Evren ŞEKER Bir algoritmada sıra bekleyen işlere bir türlü sıra gelmemesi durumudur. Teorik olarak sıradaki her işe birgün sıra gelecektir ancak fiiliyatta bu bir türlü gerçekleşmeyebilir. Bu tip problemler genelde öncelik tanımlanmış olan algoritmalarda çıkar. Şöyle bir örnek düşünelim, elimizde uzunlukları 4,5,6 olan işler olsun ve en kısa işi tercih eden bir […]

Devam