Python Öğrenmeli miyim?

Algoritma Nedir? Algoritmalar Ne İşe Yarar?

Bir algoritma, bir ürüne veya bir problemin çözümüne götüren kesin ve adım adım bir kurallar dizisidir. İyi bir örnek vermemiz gerekirse, o da yemek tarifidir.

Fırıncılar, pasta yapmak için bir tarifi takip ettiklerinde, güzel bir sonuca ulaşıyor. Bu tarife tam olarak uyarsanız, zaman zaman pastanızın tadı aynı olacaktır. Ama bu tariften biraz saparsanız fırından çıkan şey damak tadınızı hayal kırıklığına uğratabilir.

Bir algoritmadaki bazı adımlar, ne olduğuna veya daha önceki adımlarda öğrenildiğine bağlıdır. Pasta örneğini ele alalım. Kuru malzemeler ve ıslak malzemelerin karıştırılmadan önce ayrı kaselerde birleştirilmesi gerekebilir. Benzer şekilde, bazı kurabiye hamurları açılmadan ve şekillerde kesilmeden önce soğutulmalıdır. Ve bazı tarifler, fırının ilk birkaç dakika pişirme için bir sıcaklığa ayarlanmasını ve ardından pişirme veya pişirme süresinin geri kalanı için değiştirilmesini gerektirir.

Hafta boyunca seçimler yapmak için bile algoritmalar kullanıyoruz.

Diyelim ki planlanmamış bir öğleden sonra var – aile aktiviteleri veya ev işleri yok. Ne yapacağınıza karar vermek için, muhtemelen bir dizi daha küçük soru (veya adım) üzerinden düşüneceksiniz. Örneğin: Yalnız mı yoksa bir arkadaşınızla mı vakit geçirmek istiyorsunuz? İçeride mi kalmak istiyorsunuz dışarıda mı? Oyun oynamayı veya film izlemeyi mi tercih edersiniz?

Her adımda bir veya daha fazla şeyi dikkate alacaksınız. Seçimlerinizden bazıları, hava durumu tahmini gibi diğer kaynaklardan topladığınız verilere bağlı olacaktır. Belki de (1) en iyi arkadaşınızın müsait olduğunu, (2) havanın sıcak ve güneşli olduğunu ve (3) basketbol oynamayı seveceğinizi fark etmişsinizdir. Sonra yakındaki bir parka gitmeye karar verebilirsiniz, böylece ikiniz seksek oynayabilirsiniz. Her adımda, sizi nihai kararınıza yaklaştıran küçük bir seçim yaptınız. (Adımları bir karara eşlemenize izin veren bir akış şeması oluşturabilirsiniz.)

Bilgisayarlar da algoritmalar kullanır. Bunlar, bir bilgisayar programının sırayla izlemesi gereken talimat dizileridir. Kek tarifinde bir adım (örneğin, unu kabartma tozuyla karıştırmak) yerine, bilgisayarın adımları denklemler veya kurallardır.

Algoritmalar Her Yerdedir

Algoritmalar bilgisayarların her yerindedir. En iyi bilinen örnek, Google gibi bir arama motoru olabilir. Yılanları tedavi eden en yakın veterineri veya okula giden en hızlı yolu bulmak için, ilgili soruyu Google’a yazabilir ve ardından olası çözümler listesini gözden geçirebilirsiniz.

Google’ın kullandığı algoritmaları matematikçiler ve bilgisayar bilimcileri tasarladı. Tüm internette her sorudaki kelimeleri aramanın çok uzun süreceğini fark ettiler. Bir kısayol: Web sayfaları arasındaki bağlantıları sayın, ardından diğer sayfalara ve diğer sayfalardan çok sayıda bağlantı içeren sayfalara fazladan kredi verin. Diğer sayfalara ve diğer sayfalardan daha fazla bağlantı içeren sayfalar, arama isteğinden kaynaklanan olası çözümler listesinde daha üst sıralarda yer alacaktır.

Birçok bilgisayar algoritması, bir problemin çözümü üzerinde çalışırken yeni veriler arar. Örneğin bir akıllı telefondaki bir harita uygulaması, en hızlı veya belki de en kısa rotayı bulmak için tasarlanmış algoritmalar içerir. Bazı algoritmalar, yeni inşaat bölgelerini (önlemek için) ve hatta son kazaları (trafiği bağlayabilen) belirlemek için diğer veri tabanlarına bağlanacaktır. Uygulama ayrıca sürücülerin seçilen bir rotayı takip etmelerine yardımcı olabilir.

Algoritmalar, bir veya daha fazla çözüme ulaşmak için farklı kaynaklardan çok sayıda veri topladıkça karmaşık hale gelebilir. Çoğu algoritmadaki adımlar belirli bir sırayı takip etmelidir. Bu adımlara bağımlılıklar denir.

Bir örnek, eğer / ise (if / then) ifadesidir. Öğleden sonranızı nasıl geçireceğinize karar verdiğinizde bir bilgisayar algoritması gibi davrandınız. Bir adım havayı düşünmekti. Hava güneşli ve sıcak ise, BU DURUMDA dışarı çıkmayı seçebilirsin.

Algoritmalar bazen insanların bilgisayarlarını nasıl kullandıklarına dair verileri de toplar. İnsanların okuduğu hikayeleri veya web sitelerini takip edebilirler. Bu veriler, bu insanlara yeni hikayeler sunmak için kullanılır. Aynı kaynaktan veya aynı konuyla ilgili daha fazla şey görmek istiyorlarsa bu yardımcı olabilir. Ancak bu tür algoritmalar, insanları yeni veya farklı bilgi türlerini görmekten alıkoyarlarsa veya bir şekilde cesaretlerini kırarlarsa zararlı olabilir.

Pek çok şey için bilgisayar algoritmaları kullanıyoruz. Her gün yeni veya geliştirilmiş olanlar ortaya çıkıyor. Örneğin uzman olanlar, hastalıkların nasıl yayıldığını açıklamaya yardımcı olur. Bazıları havayı tahmin etmeye yardımcı olur. Diğerleri borsadaki yatırımları seçiyor.

Gelecek, bilgisayarlara daha karmaşık verileri nasıl daha iyi anlayacaklarını öğreten algoritmalarla kolaylaşacak. Bu, insanların makine öğrenimi (machine learning) dediği şeyin başlangıcıdır: Bilgisayarlara öğreten bilgisayarlar.

Geliştirilmekte olan başka bir alan, görüntüleri sıralamanın daha hızlı bir yoludur. Bir fotoğrafa göre olası bitki adlarını alan uygulamalar var. Böyle bir teknoloji şu anda bitkiler üzerinde insanlara olduğundan daha iyi çalışıyor. Örneğin, yüzleri tanımak için tasarlanmış uygulamalar saç kesimi, gözlük, yüz kılı veya morluklar tarafından kandırılabilir. Bu algoritmalar hala insanların olma eğiliminde olduğu kadar doğru değil. Değiş tokuş: Çok daha hızlılar.

Ama neden bunlara algoritma deniyor?

9. yüzyılda, ünlü bir matematikçi ve astronom bilimde, matematikte ve şu anda kullandığımız sayı sisteminde birçok keşif yaptı. Onun adı Muhammed ibn Mūsa al-Harezmi idi. Soyadı, doğduğu yer olan Harezm’den geliyor. Yüzyıllar boyunca, şöhreti arttıkça, Orta Doğu dışındaki insanlar adını Algoritmi olarak değiştirdiler. Adının bu versiyonu daha sonra, artık algoritmalar olarak bildiğimiz adım adım tarifleri tanımlayan İngilizce terim olarak uyarlanacaktı.

Explainer: What is an algorithm? başlıklı yazıdan tercüme edilmiştir.

Yorum yazın

Send this to a friend