Bilgisayarlar; onlara anlatılabilen
(yada ifade edilebilen) belirli emirleri; işleyen,
belirli
verileri depolayabilen, gercekleştirdiği bu işlemleri insanlara gore daha hızlı
ve
hatasız
tamamlayabilen (bilgisayarlar
hata yapamamaktadır – sadece onları
programlayan programcılar
hata yaparsa, bilgisayarlarda bu hatalı emirleri
gerçekleştirmiş olduğu
için hata yaparlar)
elektronik makinelerdir.
Bilgisayarları,
kontrol etmek icin bilgisayar programlarını kullanırız ve programlarla
bilgisayarları
yonetiriz. Yani programlar, bilgisayarların direksiyonudur
veya
dizginidir diyebiliriz.
Konuya başlamadan önce,
inanmanız gereken, bu işin aslında düşündüğünüzden daha
kolay olduğudur. İşin zor
kısmı, sizi, programlama ve algoritmanın kolay olduğuna
inandırmaktır, programlama
öğretmek değil!!!
Programlama
oğrenmek icin okuduğunuz bir kitabın algoritma konusu ile başlaması olağandır.
Cunku, her
tur planlama ve programlamanın temeli, algoritma kurmakla mumkun olacaktır. Bu
kitabı
okuyan
herkes algoritma kurabilecek yeteneğe sahip olduğundan dolayı, okuyucular icin;
“programlama
yapabileceği garantisi” verilebilir (tabi bu hemen her programı yazabileceğiniz
anlamına
gelmemektedir). Cunku, “okuma-yazma” bile algoritma
gerektirmektedir, ve siz okurlar,
okuma bildiğiniz icin algoritma kurabilir,
dolayısıyla programlama yapabilirsiniz.
Algoritmaya
giriş yapmadan once, bir soruya cevap vermeye calışalım: “Neden
düşünürüz?”.
Şuan, “Neden
duşunuruz” sorusunun cevabını bulmak icin düşünüyorsunuz,
çünkü bu
sorunun cevabını bilmiyorsunuz. O halde, duşunmenin nedenlerinden
birinin, bir sorunun
cevabı
bulmak olduğunu soyleyebiliriz. Cunku eğer bu sorunun cevabını biliyor olsaydınız,
duşunmenize
gerek kalmazdı ve direkt olarak cevaplardınız.
Algoritma Algoritma, "algorithm
is a procedure or
formula for solving problems [e2]" yani;
"problemleri
cozmek icin tasarlanmış bir prosedur veya formul" anlamında
gelmektedir.
Daha acıkcası,
bir problemin çözümü için izlenecek yol (yontem - metod) yani
(bu
yontem
icerisinde bulunan) bir dizi işleme verilen addır. Bir dizi işlem: tek bir işlem
veya birden
fazla işlem olabilir. Eğer yapılacak bir dizi işlem yok ise, ortada problem
olan bir
durum soz konusu değildir.
Algoritma
Kısa Tarihi
Algoritmanın kurucusu
dokuzuncu yüzyıl başlarında yaşayan Müslüman-Türk
matematik alimi Ebu
Abdullah Muhammed bin Musa el-Harezmi’dir. Matematikçiler
için temel olan Kitab-ül
Muhtasar fi Hesab-il Cebri ve’l-Mukabele adlı eseri
meşhurdur. Kitabın aslı,
Oxford’daki Bodliana kütüphanesindedir. Matematikteki
şöhreti on altıncı
yüzyılda Avrupa’yı etkisi altına almıştır. Harezmi’nin ismi
Avrupa’da türlü şekillerle
söylenmiştir. Latince’de “Alkhorismi” şeklinde söylenerek
bulduğu metod Algoritma
(algorizme) olarak literatüre geçmiştir. [e3]
Bir problemi
cozmek icin, duşunme eylemi gercekleştirdiğimiz her evrede, algoritma kurarız
veya daha
onceden (bizim veya başkası tarafından) kurulmuş olan algoritmaları kullanırız.
Bazı
durumlarda
da, gecerli olan durumlar icin algoritma kuramayabiliriz. Gelişen dunya – bilişim
sayesinde
artık her tur problem cozulmeye, cozum yolları da herkes tarafından oğrenilmeye
(internet
veya
kitaplar tarafından) başlandı. Artık bu noktadan sonra, onemli olan, algoritma
kurabilme değil,
16
kuracağınız
algoritmaların; ne kadar hızlı, ne kadar kapsamlı,
ne kadar ucuz ve ne kadar yüksek
performanslı olduğudur.
Algoritma
kurmanın nedeni, düşünmektir ve duşunmenin nedeni ise, problem
çözmekdir
(dört paragraf öncesinde,
düşünmenin nedenlerinden birinin, bilinmeyen bir sorunun cevabını
bulmak olduğunu söylemiştim, bir
sorunun cevabının bilinmemesi de bir problemdir).
Problem Problem; istenilmeyen bir durumdur[durum:
Bir zaman kesiti içinde bir şeyi
belirleyen şartların hepsi,
vaziyet, hâl, keyfiyet, mevki, pozisyon] (bir kullanıcı,
kişinin veya
topluluğun istemediği bir durum – değiştirilmesi gerekli olan bir durum)
ve algoritma
kurularak, bir dizi işlem oluşturulur. Bu işlemler, o anki durumu,
problem
durumundan cıkarır ve istenilen hale getirir.
İlk okul cağlarından
hatırladığımız “matematik problemleri” de aynı esasla cozulur.
Problemlerde,
bilinmeyen bir durum soz konusudur. Bir işci problemi duşunelim... Evimizi
boyatacağız
ve boya ustasının gunluğu 40 YTL (veya artık 2009’da isek, 40 Lira) olsun ve
boyacı bir
gunde sadece
bir oda boyayabilsin.. Bizde buradan oda sayısı ile gunluk masraf olan 40 lirayı
carpıp
boyacıya
vereceğimiz ucreti hesaplarız...
Yapay zeka
(insan gibi duşunebilen – cozum uretebilen – sistemler geliştiren bir bilim dalı)
sistemlerinde
de; insan gibi duşunen sistemler geliştirmede ilk temel alınan yontemlerden
biri,
başlangıc
durumundan, istenilen duruma ulaşan bir formul bulmaktır. Algoritma kurma
evresi
aşağıdaki
diagramdaki gibi gercekleşmektedir.
Figür 1.2.1 A : Problem ve
Çözüm durumu
Şimdiye
kadar ki bolum tamamen teorikti, bu oğrendiklerimizi pratiğe dokelim.
Bu anlatılanların
aklınızda daha uzun sure kalmasını ve anlaşılır olmasını sağlamak amacıyla,
gecmişe
cocukluğunuza donelim. Hepimiz, Hansel ve Gretel hikayesini hatırlarız. Bu hikaye
icinde gecen
1-2 cumleyi yazayım. (Hansel
ile Gretel iki kardeştir ve üvey anneleri onların
kaybolmasını ister.)
“.... Hansel zeki bir çocukmuş.
Sabah ormana doğru yürürlerken, akşam yemeğinde
cebine sakladığı kuru ekmeğin
kırıntılarını (yere iz bırakıp kaybolmamak ve daha sonra
bu izi takip ederek evin yolunu
bulmak için için) yere saçıp arkasında bir iz
bırakmış.......”
Cok basit
bir ornek olarak; Hansel, evin yolunu kaybetmemek icin bir algoritma yani cozum
bularak,
ekmek kırıntılarını yere işaret bırakmak icin kullanmıştır.
Algoritma
ustunde neden bu kadar yoğun olarak durulduğunu ileri ki bolumlerde daha iyi
kavrayacaksınız.
Bircoğunuzun, “bu
konuları zaten herkes biliyor” dediğini tahmin ediyorum.
Bazılarınızda,
“bu konular aslında zor
olduğu için mi üzerinde bu kadar duruluyor?” şeklinde
duşunuyor
olabilir. Bu duşuncenin aksine algoritma konusu inanılmaz derecede kolaydır.
Ancak,
algoritmanın
oneminin surekli olarak aklımızda olmasını sağlamak gerekmektedir.
Daha fazla
bilgi için aşağıdaki linkten kıtabı indiribilirsiniz...İndir
0 Yorumlar
Bizimle fikirlerinizi paylaşabilirsiniz.