Algoritma Nedir//KA Kulübü

Oxicroos

Uzman üye
30 Ocak 2016
1,093
0
Asthar
Algoritma

Algoritma, 800'lü yıllarda yaşamış olan Acem matematikçi Muhammad ibn Musa al Khwarizmi'nin yaptığı çalışmalarda ortaya konulmuştur. 12. yüzyılda bu çalışmalar Latince'ye çevrilirken, çalışmaların sahibi olan al-Kharizmi'nin adından ötürü yaptığı bu çalışma algorithm olarak çevrilmiştir. Bu kelime Türkçe'ye ise algoritma olarak girmiştir. Tarihçesinden de görüleceği üzere algoritma, bilgisayar dünyasına girmeden önce, matematik alanındaki probremlerin çözümü için kullanılmaktaydı. Daha sonra bilgisayaraların geliştirilmesiyle bu alandaki problemlerin çözümünde de kullanılmaya başlandı.

Algoritma, en basit ifadeyle, bir problemi çözmek için takip edilecek sonlu sayıda adımdan oluşan bir çözüm yoludur. Algoritmanın temek özellikleri şunlardır:

  1. Kesinlik: Algoritma içindeki adımlar herkes tarafından aynı şekilde anlaşılabiliyor olmalı, farklı anlamlara gelebilecek bulanık ifadeler içermemelidir
  2. Sıralı Olmalı: Her algoritma için bir başlangıç durumu söz konusudur. Çözüm, bu başlangıç durumu göz önünde bulundurularak gerçekleştirilir. Adımların hangi sırada gerçekleşeceği çok önemlidir ve net bir şekilde belirtilmelidir
  3. Sonluluk: Algoritma sonlu sayıda adımdan oluşmalı, sınırlı bir zaman diliminde tamamlanmalıdır. Her algoritmanın bir son noktası, bitişi olmalıdır.

Şöyle bir ifadeye ne dersiniz?

Önce araba var mı kontrol et, ardından yürü!

Bu ifade özünde doğrudur. Ancak yeterince açık değildir. Bunu hayatında ilk defa karşıdan karşıya geçecek birine söylersek, kim bilir nasıl anlar?

  • Yolun kenarına park etmiş araba var mı? Evet var. O zaman kaldırımdan yürüyeyim.
  • Yolun kenarına park etmiş araba var mı? Hayır yok. O zaman yolun ortasından yola paralel yürüyeyim.
  • Sol taraftan gelen araba var mı? Hayır yok. O zaman sola bakarakk karşıya yürüyeyim.
  • ...

Bu böylece sürüp gider.

Evet, biz yetişkin ve eğitimli insanlar "Önce araba var mı kontrol et, ardından yürü!" ifadesinden verilmek istenen mesajı açıkça alırız. Ancak bilgisayarlar öyle değildir. Onları uzaydan gelmiş yaratıklar gibi düşünebiliriz. Hiçbir şey bilmezler. Ama onlara detaylı olarak verdiğimiz bütün emirleri yerine getirebilirler. İyi tarif edersek, her şeyi hızlıca anlayıp kolayca uygulayabilirler.

Şimdi problemi daha net ve kesin ifadelerle çözmeye çalışalım. Ama nereden başlayacağız? Evde miyiz? Trafik ışıklarının yanında mıyız? Yaya geçidinin önğnde miyiz? Bu gibi durumlar önemlidir.

Bu örnekte yolun kenarındayız ve trafik ışığı yok. O zaman şöyle yapalım: Önce yürüyelim, sonra sola ve sağa bakalım (tabi eğer ezilmeden karşıya geçebildiysek). Olur mu? İşimiz şansa kalır. Eğer araba yoksa olur. Araba varsa ezilme ihtimalimiz var.

O zaman adımları gerçekleştirme sırası da önemli. Yolun kenarından başlayıp, önce sola bakmalı, gelen araba yoksa ya da karşıya geçebileceğimiz kadar uzak bir mesafedeyse sağa bakılmalı. Sağ tarafta da araç yoksa ya da gelen araç yeterince uzak mesafedeyse karşıya yürünmeli.

Şimdi biraz daha iyi bir çözüm yolu bulmuş olduk. Peki şuna ne dersiniz?

Bulunduğumuz tarafta, araç trafiği sağdan aktığı için, önce sola bakalım. Sonra da sağ taraftan araba geliyor mu diye sağa bakalım. Acaba biz sağa bakarken soldan gelen bir araba olmuş mudur diye şimdi tekrar sola bakalım. Bu arada ya sağdan bir araba geliyorsa! Tekrar sağa mı baksak. Ya soldan araba geliyorsa...

Gördüğünüz gibi yukarıdaki gibi düşünürsek sonsuz bir döngüye gireriz. Ya da "...Araba yoksa, yürü!"ifadesi gereği sonsuza kadar yürüyecek miyiz? Bu yüzden algoritmalar sonlu sayıda adımdan ve bitiş durumundan oluşmalıdır. Yoksa zaten problem çözülmüş olmaz. Yolun bu tarafında kala kalırız. Veya sonsuza kadar yürümeye devam ederiz

Bu Konu Kriptografi ve Algoritma Kulübü Tarafından Paylaşılmıştır Kulübe Katılamak İçin Tıklayın
 
Moderatör tarafında düzenlendi:

kondanta

Katılımcı Üye
29 Tem 2017
910
0
CNCF
Yalnız algoritma çok daha geniş bir başlık. En basitinden, bir programın temel taşını oluşturan adımlara algoritmamızın bir parçası desek dahi, bunun greedy algorthmi var, graph theoremleri için olan algolar var, var oğlu var. Keşke onlardan da azcık çıtlatsaydınız.
 

Oxicroos

Uzman üye
30 Ocak 2016
1,093
0
Asthar
Yalnız algoritma çok daha geniş bir başlık. En basitinden, bir programın temel taşını oluşturan adımlara algoritmamızın bir parçası desek dahi, bunun greedy algorthmi var, graph theoremleri için olan algolar var, var oğlu var. Keşke onlardan da azcık çıtlatsaydınız.

Buraya algoritmayı 300 sayfa ile de özetlerdim ama fazla okuyan çıkmazdı belki ileride başka bir konuda daha detaylı özetlerim
 

MEMO_baba

Uzman üye
6 Kas 2009
1,017
28
Buraya algoritmayı 300 sayfa ile de özetlerdim ama fazla okuyan çıkmazdı belki ileride başka bir konuda daha detaylı özetlerim

komutanım güzel makale olmuş 300 sayfa özetleseniz okunur elbet çünkü Algoritma mantığı bilinmesi gerektiğini düşünüyorum
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.