algoritma analizi (teory of algorithms)

Horspool Algoritması

Yazan : Şadi Evren ŞEKER Algoritmanın gayesi, bir metin içerisinde verilen bir dizginin (string) aranmasıdır. Literatürde arama yapılan metin için T (ingilizcedeki Text (metin) kelimesinden gelmektedir) ve aranan kelime için P (ingilizcedeki Pattern (örüntü) kelimesinden gelmektedir) kullanılmaktadır. Klasik bir arama, yukarıdaki temsili resimde gösterilmiştir. Algoritmanın diğer metin arama algoritmalarından en büyük farkı, aranan dizgi (pattern) [...]

Yeknesan (Invariant , Değişmez)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde, bir programın incelenmesi sırasında, herhangi bir kaziyenin (predicate, haber, önerme), çeşitli işlemler uygulanmasına karşılık yeknesan olması halidir. Diğer bir deyişle, program çalışır ve çeşitli işlemlerden geçer, ancak bazı şeyler değişmeden kalıyor ve ne kadar işlem yapılırsa yapılsın değişmiyorsa buna yeknesan (değişmez, invariant) ismi verilir. En basit örneği, bir [...]

MU Bulmacası (MU Puzzle)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde de kullanılan ve normal gösterim elde etmeyi hedefleyen, özellikle de sondan normal şekil gösterimi için oynanan bir oyundur. Oyunun aşağıda tanımlı olan kuralları ile MU kelimesinin elde edilip edilemeyeceği sorulur: Oyunda kullanılabilecek harfler M, I ve U’dur. Bu harfler dışında harf kullanılamaz. Oyuna MI kelimesi ile başlanır. Oyundaki [...]

Örtüşen Alt Problem (Overlapping Subproblem)

Yazan :Şadi Evren ŞEKER Bilgisayar bilimlerinde, özellikle özyineli (recursive) problemlerde, problemin bir kısmının tekrar edilmesi durumudur. Örneğin, klasik bir problem olan fibonacci sayıları örneğinde, örtüşen altproblem bulunmaktadır. Fibonacci serisinin 4. terimini hesaplamak isteyelim ve bunun için aşağıdaki fonksiyonu yazmış olalım: Matematiksel olarak : fib(0) = 1, fib(1) = 1 ve fib(n) = fib(n-1)+fib(n-2) Programlama dillerinde: [...]

Bin Packing (Kutulama Problemi)

Yazan : Şadi Evren ŞEKER İyileştirme problemleri açısından klasik bir örnektir (optimisation problems). Problem basitçe bir kutunun içerisine en az boş alan bırakarak, eşyaların en iyi şekilde nasıl yerleştireceği olarak düşünülebilir. Aslında problemi boyutlara göre incelersek aşağıdaki şekilde bir liste yapılabilir: Tek boyutlu kutulama (1D bin packing) :Bu problemde amaç bir çizgi veya hat gibi [...]

Amortized Algorithm Analysis (İtfa Tahlili, amotize algoritma analizi)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde algoritma performansının değerlendirilmesinde kullanılan yöntemlerden birisidir. Kısaca, bir algoritmanın en kötü durumunu araştırırken (worst case analysis) en kötü durumun olma ihtimallerinin de beraberinde incelendiği tahlil yöntemidir. Klasik bir en kötü durum analizi (worst case analysis) yöntemi algoritmanın çalışacağı en kötü durumu ortaya atar ve buradaki performansı ölçer. Örneğin [...]

Macar Algoritması (Hungarian Algorithm)

Algoritma analizi konusunda geçen meşhur problemlerden eşleşme problemini çözmek için (matching problem, bazı kaynaklarda atama problemi (assignment problem) olarak da geçmektedir) macar araştırmacıların etkisi ile gelişen algoritmanın ismidir. Algoritmanın ulaşmak istediği amaç, azami eşleşmeye ulaşmaktır. Bu adımda azami eşeleşmeyi tanımlayalım. Eşleşme problemleri (matching) iki grup altında incelenebilir: ikili eşleşme (binary matching) Azami eşleşme (maximum matching) [...]

Şadi Evren ŞEKER tarafından, 21/05/2011 tarihinde yazıldı. | algoritma analizi (teory of algorithms) | 2 yorum var

Çemberi bölen doğrular problemi

Yazan : Şadi Evren ŞEKER Bu yazının amacı, özyineli problemlere bir örnek vermek ve nasıl çözüldüğünü anlatmaktır. Problemimiz oldukça meşhur olan bir çemberin doğrular tarafından bölünmesidir. Kabaca, bir çemberi 20 adet doğrunun en fazla kaç alana ayırabileceğini soralım. Örneğin n=0 için alan sayımız 1′dir: Bir doğru ile çemberi kestiğimizde iki alan çıkar: ikinci bir doğru [...]

Algoritma (Algorithm)

Yazan : Şadi Evren ŞEKER Bazan biz insanlar için çok kullanılan kelimeler, tanımlanması en güç kelimeler haline dönüşebiliyor. Algoritma da sanırım bilgisayar bilimleri için benzer özellikte olan bir kelime. Sanırım bu kelimeyi tanımlarken “bir dizi matematiksel adım” ifadesini kullanmak yerinde olur. Bütün algoritmalar, matematiksel olarak ispatlanabilen ve dizilimi kesinlikle önem taşıyan ve bir metot anlatmasıdır. [...]

Post Karşılık Problemi (Post Correspondence Problem)

Yazan : Şadi Evren ŞEKER Emil Post tarafından 1946 yılında ortaya atılan ve belirsiz karar problemi olarak sınıflandırılabilecek olan (undecidable decision problem) problemin ismidir. Literatürde kısaca PCP olarak da geçmektedir. Bu problem, yine Emil Post tarafından geliştirilen, Post Makinesi (post machine) olarak bilinen ve Turing makinesinin (Turing Machine) bir benzeri olan makinenin geliştirilmesini sağlamıştır. Problem, [...]

Merkezi poligon sayıları (Centeral Polygon Numbers)

Yazan : Şadi Evren ŞEKER Bir dairenin verilen doğru sayısıyla kaç farklı parçaya bölünebileceğini veren sayı serisidir. 1, 2, 4, 7, 11 şeklindeki sayılara, merkezi poligon sayıları ismi verilir. Bu sayılar, verilen doğru sayısına göre, bir daireyi kaç farklı şekle böldüğünü gösterir. Örneğin yukarıdaki sayı serisini eksi olmayan tam sayılar ile birebir eşleştirirsek 0 1 [...]

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 [...]

Zaman Çizelgeleme (TimeTabling)

Yazan : Şadi Evren ŞEKER Klasik bir optimizasyon problemidir. Basitçe belirli bir süreye, en verimli şekilde belirli kurallara uyarak olayları yerleştirmeyi hedefler. Örneğin öğrencilerin haftalık programının yapılması, doktor / hemşirelerin nöbet çizelgeleri, televizyon kanallarının yayın akışları gibi. Daha basit anlaşılacağı için öğrenci programlarını örnek vererek konuyu açıklamaya çalışayım. Bir öğrenci probleminde, sistemin uyması istenen kıstaslar(constraints) [...]

Doğrusal Programlama Örnekleri

Yazan : Şadi Evren ŞEKER Bu yazının amacı, daha önceden anlatılan doğrusal programlama (linear programming) konusunu, gerçek hayatta yaşanabilecek problemler ve bu problemlerin nasıl doğrusal denklemlerle modellendiğini örneklerle anlatmaktır. Doğrusal programlama daha önce de bahsedildiği üzere birden fazla doğrusal denklem için en verimli, en iyi noktayı bulmayı hedefler. Öncelikle bir problemin nasıl doğrusal denklemlerle ifade [...]

Şadi Evren ŞEKER tarafından, 10/11/2010 tarihinde yazıldı. | algoritma analizi (teory of algorithms) | A yorum var

Permutasyon Algoritması

Yazan : Şadi Evren ŞEKER Bu yazıyı Fatih Bey’in sorusu üzerine siteye eklemeye karar verdim. Fatih Bey’in sorusunu alıntılıyorum: Hocam merhabalar bir soru sormak icin rahatsız etmiştim sizi,Bir fonksiyonumuz olsun ve parametre olarak zarSayisi alsin ve bu fonksiyon zar sayısına gore olası tum sonucları(zarların permutasyonunu ekrana bassın).ornegin zar sayısı 2 ise asagıdaki gibi sonuc elde [...]

Şadi Evren ŞEKER tarafından, 01/11/2010 tarihinde yazıldı. | algoritma analizi (teory of algorithms), C/C++ | 3 yorum var

EQP (Exact Quantum Polynomial)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde, kuantum hesaplama konusunda kullanılan bir karmaşıklık sınıfıdır. Literatürde tam kuantum polinom zaman (exact qunatum polynomial time) olarak geçmektedir. Özellikle olasılıksal problemler için %100 başarı ile (yani bütün ihtimalleri eleyerek) sonuç üretme süresinin polinom zamanda olduğunu belirtir. Bilindiği üzere karmaşıklık problem sınıfları tanımlanırken, klasik problemlerin (burada klasik kelimesi, kuantum [...]

Şadi Evren ŞEKER tarafından, 28/10/2010 tarihinde yazıldı. | algoritma analizi (teory of algorithms), Kuantum Hesaplama | A yorum var
Tags:

Çakışma Problemi (Collision Problem)

Yazan: Şadi Evren ŞEKER Bilgisayar bilimlerinde, karmaşıklık teoremi (complexity theory) ve kuantum işleme (quantum computing) gibi konularda sıkça geçen bir problemdir. Problem basitçe, bir fonksiyonun 1′e 1 veya n’e 1 olup olmadığını sorgular. Örneğin f: {1 … n } à { 1 … n } bir fonksiyon olsun. Yani n sayıdan n sayıya tanımlı bir [...]

Şadi Evren ŞEKER tarafından, 28/09/2010 tarihinde yazıldı. | algoritma analizi (teory of algorithms) | A yorum var
Tags:

Algoritma Analizi (Analysis of Algorithms)

Yazan : Şadi Evren ŞEKER Bu yazının amacı, bilgisayar bilimlerinin temelini oluşturan, algoritma analizini açıklamaktır. Genelde lisans seviyesinde bir dönemlik ders olarak okutulmaktadır. Bu ders hakkında çok sayıda kitap da yazılmıştır. Dolayısıyla bu yazıda sadece konu hakkında bilgi verilecektir. Bilgisayar bilimlerinde temel olarak iki önemli kaynak bulunur: Yer ( Hafıza ) Zaman ( Hız ) [...]

Bellman Ford Algoritması

Yazan : Şadi Evren ŞEKER Bu algoritmanın amacı, bir şekil (graph) üzerindeki, bir kaynaktan (source) bir hedefe(target veya sink) giden en kısa yolu bulmaktır. Bu anlamda, literatürde en kısa yol bulma algoritması (shortest path algorithm) olarak sınıflandırılabilir. Algoritma ağırlıklı şekiller (weighted graph) üzerinde çalışır. Kabaca, bütün düğümler için bütün kenarları dolaşır. Dolayısıyla performansı düğüm sayı [...]

NL (Non-deterministic Logarithmic)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde de sıkça kullanılan ve matematiğin bir parçası olan karmaşıklı teorisi (complexity theory) içerisinde tanımlı olan bir karmaşıklık sınıfıdır (kümesidir, set) Bu kümenin özelliği, bu kümenin üyesi olan, fonksiyon, denklem veya algoritmaların logaritmik zamanda veya logaritmik hafıza ihtiyacı ile çalışıp çalışamayacağının veya çözülüp çözülemeyeceğinin belirlenememesidir. Bu kümenin tanım itibariyle [...]

Bool Tatmin Problemi

Yazan : Şadi Evren ŞEKER Litartürde, Boolean Satisfiability Problem olarak geçen ve boole cebirindeki denklemlerin doğruluğunun sağlanması olarak özetlenebilecek olan problemdir. Ayrıca çeşitli kaynaklarda bu probleme, problemin İngilizce tanımında geçen Satisfiability kelimesinin kısaltması olan SAT kelimesi olarak da rastlanabilir. Bu problemi, bilgisayar bilimleri açısından ilginç kılan yanı ise, problemin yapısal olarak bir NP-Tam (NP-Complete) sınıfı [...]

Ve/Veya bağlacı normal şeklleri (Conjunction / Disjunction Normal Form)

Yazan : Şadi Evren ŞEKER Bu gösterim, bool cebirinde (boolean algebra) kullanılan ve kaziyeleri (önerme, proposition) ve (and) bağlacı ile bağlamanın özel bir şeklidir. Kısaca CNF (conjuction normal form) olarak ifade edilir. Diğer bir normal şekil olan Chomsky Normal Form (CNF) ile ilgili bilgi arıyorsanız buradan ulaşabilirsiniz. Bu özel şeklin taşıdığı kuralları aşağıdaki şekilde sıralayabiliriz: [...]

Karmaşıklık Sınıfları (Complexity Classes)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerine matematikten miras kalan karmaşıklık teorisi (complexity theory) konularından birisidir. Aslında problem veya algoritmaların çözüme ulaşmadaki karmaşıklığını ölçmek için kullanılır. Bu tanımın ardında, her problem veya algoritmanın bir fonksiyon gibi düşünülebilmesi, ve matematikteki fonksiyonların karmaşıklığını sınıflandırmak için kullanılan karmaşıklık sınıflarının (complexity classes, asimptotik notasyonlar) , algoritmalar için uygulanması yatmaktadır. [...]

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 [...]

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. Örneğin aşağıdaki şekli [...]