Algoritma

Algoritma, belli bir problemi çözmek veya belirli bir amaca ulaşmak için tasarlanan yol. Matematikte ve bilgisayar biliminde bir işi yapmak için tanımlanan, bir başlangıç durumundan başladığında, açıkça belirlenmiş bir son durumunda sonlanan, sonlu işlemler kümesidir. Genellikle bilgisayar programlamada kullanılır ve tüm programlama dillerinin temeli algoritmaya dayanır.

Aynı zamanda algoritma tek bir problemi çözecek davranışın, temel işleri yapan komutların veya deyimlerin adım adım ortaya konulmasıdır ve bu adımların sıralamasına dikkat edilmelidir. Bir problem çözülürken algoritmik ve sezgisel  olmak üzere iki yaklaşım vardır.

Algoritmik yaklaşımda da çözüm için olası yöntemlerden en uygun olan seçilir ve yapılması gerekenler adım adım ortaya konulur. Algoritmayı belirtmek için; metinsel olarak düz ifade ve akış diyagramı olmak üzere 2 yöntem kullanılır. Algoritmalar bir programlama dili vasıtasıyla bilgisayarlar tarafından işletilebilirler.

 A0 –> Başla

 A1 –> Sayaç=0 (Sayaç’ın ilk sayısı 0 olarak başlar.)

 A2 –> Sayı=? : T=T+Sayı (Sayıyı giriniz. T’ye sayıyı ekle ve T’yi göster.)

 A3 –> Sayaç=Sayaç+1 (Sayaç’a 1 ekle ve sayacı göster.)

 A4 –> Sayaç<4 ise A2’ye git. (Eğer sayaç 4’ten küçükse Adım 2’ye git.)

 A5 –> O=T/4 (Ortalama için T değerini 4’e böl)

 A6 –> O’yu göster. (Ortalamayı göster.)

 A7 –> Dur

Algoritma kavramı antik çağlardan beri var olmuştur. Bölme algoritması gibi aritmetik algoritmalar, eski Babil matematikçileri  c. MÖ 2500 ve Mısırlı matematikçiler c. MÖ 1550.  tarafından kullanılıyordu.

Yunan matematikçiler daha sonra MÖ 240’da asal sayıları bulmak için Eratosthenes algoritmaları ve iki sayının en büyük ortak bölenini bulmak için Öklid algoritmasını kullandılar. 9. yüzyılda al-Kindi gibi Arap matematikçiler, frekans analizine dayalı olarak kod kırmak için kriptografik algoritmalar kullandılar.

Algoritma nedir?

Hârizmî

İlk algoritma, el-Hârizmî tarafından “Hisab el-cebir ve el-mukabala” kitabında sunulmuştur. Algoritma sözcüğü de el-Hârizmî’nin isminin Avrupalılarca telaffuzundan doğmuştur.

Cebiri bağımsız bir disiplin olarak öğreten, “indirgeme” ve “dengeleme” (denklemin farklı taraflarındaki benzer terimlerin aynı tarafa alınarak sadeleştirilmesi) yöntemlerini tanıtan ilk kişi olduğu için, Harezmi cebrin atası ya da kurucusu olarak tanımlanmıştır. Cebir alanındaki çalışmaları, 16. yüzyıla kadar Avrupa üniversitelerinde temel matematik ders kitabı olarak kullanılmıştır.

Harezmi sıfır rakamını (0) ve x bilinmeyenini kullandığı bilinen ilk kişidir.

İkinci dereceye kadar polinom denklemlerinin çözülmesinin kapsamlı bir hesabını sağlamıştır ve terimleri bir denklemin diğer tarafına aktarmaya istinaden, diğer bir deyişle denklemin zıt taraflarındaki benzer terimleri iptal etmek olan, “indirgeme” ve “dengeleme” temel metotlarını ele almıştır.

Karenin katsayısını bölme ve al-jabr (Arapça: الجبر‎ “düzenleme” or “tamamlama”) ve al-muqābala (“dengeleme”) işlemleri.Cebir, denklemin her bir yanına aynı değeri ekleyerek negatif birimleri, kökleri ve kareleri kaldırma işlemidir. Örneğin, x2 = 40x − 4×2 denklemi 5×2 = 40x ‘e dönüştürülür. Al-Muqābala, aynı türden terimleri denklemin aynı tarafına getirme işlemidir. Örneğin, x2 + 14 = x + 5 denklemi x2 + 9 = x halini alır.

“Hisab el-cebir ve el-mukabala (حساب الجبر و المقابلة)” kitabı dünyanın ilk cebir kitabı ve aynı zamanda ilk algoritma koleksiyonunu oluşturur. Latince çevirisi Avrupa’da çok ilgi görür. Alimin ismini telaffuz edemeyen Avrupalılar “algorizm” sözcüğünü “Arap sayıları kullanarak aritmetik problemler çözme kuralları” manasında kullanırlar. Bu sözcük daha sonra “algoritma”ya dönüşür ve genel kapsamda kullanılır.

Algoritma Niçin Kullanılır? Ne İşe yarar?

Bir sorunu çözmek yada amaca ulaşmak için izlenmesi gereken kurallara genellikle prosedür yada formül denilmektedir. Algoritma genellikle bilgisayar terimi olarak adlandırılsa da algoritmanın temelinde matematik vardır.

Basit bir matematik işlemi ile algoritmanın mantığını açıklayalım. İki sayının toplamını düşünürsek (örn: 5+4=9), başlangıç durumunda elimizde iki ayrı değer vardır. Birinci sayıyı alıp, birinci sayının üzerine ikinci sayıyı ekleme yaparak sonuca ulaşmış oluruz.

Algoritmayı sadece bilgisayar biliminde değil, elektronikte de düşünebilirsiniz. Örneğin bir şarj aletini düşünelim. Şebekeden gelen elektrik önce 12V’a düşürülür. Sonra da diyotlar yardımı ile doğrusal gerilim elde edilir. Eğer 12V’a düşürme işi sonra yapılmak istenseydi. Diyotlar gelen yüksek gerilimi kaldıramayacağı için devre baştan yanacaktı.

Örnekleri zorlaştırmak yada uzatmak mümkündür.

Bilgisayar ne yapacağını bizim yazdığımız kodlardan öğrenir. Bu yazılan kodlar belirli bir kural ve düzen içinde sorunun çözümüne yönelik olmalıdır. İşte kod yazma aşamasında önce sorunun hangi aşamalarda nasıl çözüleceğini açıklayan bir algoritma yazmamız gerekir. Yazdığımız kodlar bir kaç satırdan oluşuyorsa belki algoritma zihnimizden tasarlayıp kodları yazabiliriz. Fakat çözülecek problem için satırlar uzadığında işlem adımlarını içeren bir algoritma yapmadan sorunu çözmemiz mümkün olmayacaktır.

Yazılan algoritma, sorunun çözümünü net, açık ve sıralı bir şekilde ifade ediyor olması gerekir. Yazımı ile ilgili net bir kural olmamasına rağmen yazılan ifadeler tutarlı olmalıdır. Örneğin kullanıcıdan bir sayı almak için “bir sayı gir“, “bir sayı söyle“, “bir sayı ver” yada “Oku sayı1” şeklinde de yazılabilir. Önemli olan algoritmanın devamında da aynı dilin kullanılmasıdır.

Örnek: Günlük hayattan bir algoritma örneğini inceleyim(en çok verilen algoritma örneğidir.)

Algoritma dünyamızı nasıl şekillendirir?

Önemli Algoritma Türleri

  • ØArama algoritmaları
  • ØBellek yönetimi algoritmaları
  • ØBilgisayar grafiği algoritmaları
  • ØBirleşimsel algoritmalar
  • ØÇizge algoritmaları
  • ØEvrimsel algoritmalar
  • ØGenetik algoritmalar
  • ØKripto algoritmaları veya kriptografik algoritmalar
  • ØKök bulma algoritmaları
  • ØOptimizasyon algoritmaları
  • ØSıralama algoritmaları
  • ØVeri sıkıştırma algoritmaları

Algoritma Nasıl Hazırlanmalıdır?

Algoritma yazarken, programın çalışması için kullanılan kaynakların, yapılması gereken kontrollerin veya işlemlerin açıkça ifade edilmesi gerekir. Ayrıca iyi bir algoritmanın, tüm ihtimalleri kontrol edip istenmeyen durumlarda da ne yapılması gerektiğini belirtmesi gerekir.

Veri girişi: Çalışma zamanında çoğu zaman, işleyişin tamamlanması için dışarıdan bir bilgi girilmesi gerekir. Algoritmanın çalışması için ihtiyaç duyduğu veriler, işlemi başlatan kişiden veya belirtilen bir kaynaktan alınabilir. Bu bilgiler sağlanmadan işlem devam etmez.

Kararlar: Karar ve kontrol yapıları algoritmanın akışını yönlendiren en önemli kavramlardır. Girilen veya işlem sonucunda elde edilen veriler, işlemin amacına göre kontrol edilir ve sonuca göre algoritma akışı istenilen yere yönlendirilir.

İşlemler: Algoritmanın akışı boyunca veriler üzerinde değişiklikler, yeni değer atamaları gibi işlemlere ihtiyaç duyulur. Algoritmalar kurulurken, yapılan işlemlerin yalın halde, tek tek yazılması okunabilirliği arttırır.

Algoritmalar adım sırası ile çalışır ve karar yapıları sonucunda farklı bir yere yönlendirilmediği müddetçe, bir sonraki adım ile işlemeye devam eder.

Algoritmalar 3 şekilde gösterilirler:

Ø Düz Yazı ile Gösterim

• ‘BAŞLA’ ile başlanıp ‘BİTİR’ ile bitirilir.

• Her satıra numara verilir.

• Çözülecek problem, adım adım metin olarak yazılır.

• Algoritmanın konuşma dili ile yazılmasıdır.

Ø Sözde Kod ile Gösterim (Kaba Kod)

• Herkesin anlayabileceği ve rahatlıkla bir programlama diline çevrilebilecek basit komutlardan oluşan bir dildir. Sözde kodun temel işlevi program geliştirmeye geçmeden algoritmayı oluşturmak ve üzerinde tartışabilmektir. Sözde kodlar, doğrudan konuşma dilinde ve programlama mantığı altında, eğer-değilse, iken gibi koşul kelimeleri ve > = < gibi ifadeler ile beraber yazılır. Programda kullanılacak elemanları temsil etmek üzere uygun isimler veya değişkenler seçilir.

Ø Akış Şeması

• Bir algoritmanın görsel şekiller ve sembollerle ifade edilmiş haline “Akış Şemaları” adı verilir. Akış şeması sembolleri ANSI (American National Standards Institute) standardı olarak belirlenmiş ve tüm dünyada kullanılmaktadır.  Algoritma doğal dille yazıldığında herkes tarafından anlaşılamayabilir ya da başka anlamlar çıkarılabilir. Ancak akış çizgelerinde her bir şekil standart bir anlam taşıdığı için farklı yorumlanması mümkün değildir.

Ya İşlemezse

Facebook araştırmacıları yakın zamanda, yapay zekaya sahip robotlarından ikisinin iletişim kurmak için artık tutarlı İngilizce kullanmadığını fark etti. İlginç bir şekilde, araştırmacılar daha derine indiklerinde, AI ajanlarının – Bob ve Alice – İngilizce’nin farklı bir çeşidini konuştuklarını keşfettiler, çünkü bildirildiğine göre, İngilizcenin “ödülden yoksun” olduğu sonucuna varmışlardı.

Perakende brokerlar için alım satım işlemlerinde uzmanlaşmış bir firma olan Knight Capital, yeni alım satım yazılımının ve algoritmasının hatalı testi nedeniyle 2012 yılında 440 milyon dolar nakit zarara uğramıştır.

Air Sweden 294’ün 2016’da düşmesinden sonra, müfettişler  uçağa boşlukta nasıl hareket ettiğini söyleyen bir cihaz olan ADIRU’nun hatalı sinyaller göndermeye başladığını belirleyebildiler. Ama nedenini çözemediler.

Kendi tişörtünü kendin yapan bir şirket olan Solid Gold Bomb, II. Dünya Savaşı sloganı «Keep Calm and Carry On” sloganını taşıyan malları fena halde manipüle edildiği için başı belaya girmişti. Şirketin, erişimi en üst düzeye çıkarmak için tasarımları yağdırmak ve hepsini sipariş üzerine yaptırmak için bir sözlük algoritması kullandığı iddia edildi. Sonuçlar korkunçtu ve çevrimiçi e-perakende web sitelerinde “Keep Calm and Hit Her” gibi sloganlar taşıyan tişörtler görünmeye başladı.

2011 yılında, Amazon’da genetikle ilgili bir biyoloji ders kitabı 23 milyon dolara fiyatlandırıldı. Bunun nedeni, daha sonra, birbirlerinin fiyatlarını izleyen ve ardından kendi fiyatlarını sıfırlayan algoritmalar kuran iki satıcı olduğu keşfedildi.

Microsoft’un sohbet robotu Tay, yapay zeka ve makine öğreniminde bir deney olacaktı, ancak botun ırkçı olması sadece 24 saat sürdü. ‘Tay’in Y kuşağı gibi konuşması, Twitter’da ve Kik ve GroupMe mesajlaşma uygulamalarında etkileşime girdiği insanlardan öğrenmesi gerekiyordu.

ABD’de algoritma tabanlı bir botun yanlışlıkla normal bir vatandaşı suçlu olarak tanımladığı ve ehliyetini otomatik olarak askıya aldığı birkaç vaka olmuştur. Benzer vakalar, masum insanların terörist olarak “tanındığı” dünyanın her yerindeki havalimanlarında da meydana geldi.

Ø2016 yılında, makineler tarafından değerlendirilecek olan uluslararası bir güzellik yarışması için dünyanın dört bir yanından binlerce insan fotoğraflarını gönderdi. Beauty.AI, bilgisayarın gözünde “gerçek güzelliğin” nasıl göründüğünü bulmak için insan önyargılarından arınmış gelişmiş bir algoritma temelinde çalışacaktı. Ancak algoritma ten rengini güzellikle ilişkilendirmeye başlayınca ve kazananları yalnızca ırka göre seçtiği için işler hızla ters gitti.

Yorum bırakın