Genetik Programlama (Genetic Programming)

Yazan : Şadi Evren ŞEKER Genetik programlama, yapay zeka çalışmaları altında kabul edilebilecek ve doğal süreçlerin ve mutasyon gibi genetik fonksiyonların bilgisayar problemlerine uygulanması ile sonuç elde etmeyi hedefleyen yaklaşımın adıdır. Belirli bir hedef fonksiyonun sonuca ulaşması için bilgisayar programlarının nasıl çalışması gerektiğini bulmayı hedefleyen makine öğrenmesi (machine learning) yaklaşımıdır denilebilir. Genetik algoritmaların (genetic algorithms) […]

Devam

JAVA Appletleri

Yazan : Şadi Evren ŞEKER Bu yazının amacı, JAVA programlama ortamında kullanılan applet teknolojisine hızlı bir başlangıç yapmak ve basit bir appletin nasıl kodlanıp çalıştığını göstermektir. Öncelikle applet nedir bundan bahsedelim. Applet teknolojisi aslında JAVA’nın günümüzdeki tahtına ulaşmasında en önemli role sahip olan teknolojilerindendir. Sene 1995-1996 yıllarında henüz en güçlü internet taryıcısı Netscape Navigator iken […]

Devam

PROLOG

Yazan : Şadi Evren ŞEKER Bu yazının amacı, PROLOG diline giriş yapmak ve basit bazı yapay zeka problemlerinin PROLOG dilinde nasıl kodlanarak çözüldüğünü göstermektir. Kurulum ve çalıştırma: Bu yazı kapsamında SWI-PROLOG programı kullanılacaktır. Programı, www.swi-prolog.org adresinden temin etmek mümkündür. Yazı kapsamında MAC OSX üzerinde örnekler çalıştırılarak gösterilecektir ancak kurulum ve sonrasında başarılı bir çalıştırma yapılabiliyorsa […]

Devam

Callback (Geriçağrım)

Yazan : Şadi Evren ŞEKER Bu yazının amacı, bilgisayar programlama dillerinde kullanılan bir yaklaşım olan geri çağırım (call back) kavramını açıklamaktır. Bir programlama dilinin, yapısal programlama dili (structured programming language) olabilmesi için aşağıdaki üç özelliğe haiz olması gerekir: Kod bloğunun koşula bağlı olabilmesi : Klasik programlama dillerindeki if/else yapısı Kod bloğunun tekrar ettirilebilir olması : […]

Devam

Lisan-ı Kaime (Dillerde Dik Açı, Orthogonal Languages)

Yazan : Şadi Evren ŞEKER Özellikle bilgisayar programlama dillerinde kullanılan bir terimdir. Buna göre dillerde bulunan özelliklerin birbirine dik olması, yani birbirinden bağımsız olması kast edilir. Kelime olarak, yöneylerin (vectors) dikliğinden esinlenilmiştir. Vektörlerin birbirine dik olması, aralarında ilişki bulunmaması (birbirine iz düşümünün sıfır olması) anlamına gelmektedir. Şayet bir dilde bulunan özellikler arasında da ilişki bulunmuyorsa, […]

Devam

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

Devam

Ö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: […]

Devam

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

Devam

Swing Kütüphanesi

Yazan : Şadi Evren ŞEKER Bu yazının amacı, JAVA dilinde bulunan ve grafiksel kullanıcı ara yüzü geliştirmekte kullanılan SWING kütüphanesine hızlı bir başlangıç yapmaktır. Öncelikle Swing kütüphanesinin gelişiminden hızlıca bahsedelim. Swing kütüphanesi JAVA diline JDK 1.1 sürümünden sonra eklenmiştir. Daha önce AWT (Active Window Toolkit) ismi verilen bir kütüphane kullanmaktaydık ancak çok daha fazla ve […]

Devam

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

Devam