Home / Blog / Hayatımıza Yön Veren Algoritmalar

Hayatımıza Yön Veren Algoritmalar

Algoritma kavramı problem çözümlerinde oldukça büyük bir rol oynuyor. Algoritmalar ile belli tarzdaki problemleri, ne şekilde olurlarsa olsun çözüm imkanı buluyoruz. Temelde algoritmalar bize problemin çözüm metadolijisini ortaya koyuyor.

Algoritmalar yalnızca yazılım dünyasında değil, Matematikten tutun da mühendisliklere kadar pek çok alanda kullanılıyor.

Bir Algoritmada Olması gereken temel özelliklere gelecek olursak;

Bir Algoritmanın Sonu Olmalıdır: Evet bu özellik size garip gelecektir, ancak sürekli devam eden bir yöntem algoritma olamaz. Mesela elimizdeki sayıları küçükten büyüğe sıralamaya yarayan bir algoritma sayıları sıraladıktan sonra kendini bitirmelidir. Değilse bu bir algoritma olmaz.

Algoritma Açık ve Net Olmalıdır: Bir algoritmanın üstü kapalı olamaz, muallak kalan yönleri bulunamaz, net bir biçimde ortaya konmalı, bunu gören herkes uygulayabilmelidir.

Algoritma Efektif Olmalıdır: Bir algoritmanın temel amacı problemi çözmektir, problemi daha karmaşık hale getirmek değil.

Algoritmalar bırakın bugünkü modern bilimi, geçmiş zamanlarda filozoflar ve matematikçiler tarafından dahi kullanılmaktaydı. Şimdi Hayatımıza yön veren 10 efsane algoritmayı inceleyelim.

1- Merge Sort, Quick Sort ve Heap Sort

Siz hiç bilgisayarda kendi yöntemlerinizde sayıları sıralamayı denediniz mi? peki 1 milyon tane sayıyı sıralamaya kalksanız ne yapardınız? Neyse ki bu sorun Divide and conqueror yöntemine sahip 3 sıralama algoritması sayesinde çözülmüş. Bırakın milyonlarca sayıyı, trilyonlarca sayıyı saniyeler içerisinde sıralamak bu 3 algoritma ile mümkün. Elbette sıralama algoritmaları yalnızca 3 Algoritmadan ibaret değil, ancak en hızlı sıralama yapan algoritmanın bu üç tanesi olduğu görülüyor.

 

2. Fourier Transform ve Fast Fourier Transform

 

Eğer Elektronik Mühendisliğinde okuyorsanız bu konunun tam bir başbelası olduğunu biliyorsunuzdur. Bilmeyenler için söyleyelim, bugünkü dijital dünyanın işlemesini sağlayan sinyaller tamamen bu algoritma ile çalışmaktadır.

İnternetimiz, Wifi’ımız, akıllı telefonlarımız, uydular, routerlar ve aklınıza gelebilecek sinyal teknolojisini kullanan her cihaz Fourier Transform algoritmasına maruz kalmaktadır.

3. Dijkstra Algoritması

Bir noktadan bir noktaya en kısa yolu nasıl buluruz? Google iki nokta arasındaki en kısa yolu nasıl buluyor? Kalista’nın hayaleti harita üzerinde en kısa yolu nasıl bulup da sizi deli ediyor dersiniz? Elbette Dijkstra’nın Algoritması sayesinde.

Bu algoritma, bir noktadan diğer ulaşılmak istenen noktalara olan en kısa yolu bulmaya yarıyor ve algoritmaların yapısı gereği her duruma uyumluluk sağlıyor. Hollandalı bir bilgisayarcı olan Dijkstra’nın Algoritması adeta bir devrim niteliğinde. Bugünkü navigasyon cihazlarından tutun da, Google Maps gibi uygulamaların temelde kullandıkları Algoritma Dijkstra’ya dayanıyor. (tabii ki amaca göre geliştirilmiş halleri ile)

4. RSA Algoritması

İnternet üzerinde bugün güvenli bir gezinme sağlamamız kriptografiye dayalı. Bunun uygulanması içinse çeşitli algoritmalar gerekiyor. Bizim internet üzerinde güven içerisinde dolaşmamızı sağlayan en önemli algoritmaların başında ise RSA Algoritması geliyor.

Bu algoritma temelde basit olarak üretilse de çözümü oldukça zor. Yani Hackerlar için tam bir baş belaşı. Bugün bankalardan ya da e-ticaret siteleri üzerinden güvenli bir şekilde işlem yapmamızı sağlıyor.

 

5. Page Rank Algoritması

İsmine yabancıysanız hiç korkmayın, aslında hergün bu algoritmanın nimetlerinden yararlanıyoruz. Google’da arama yaptığımızda bu algoritma sayesinde arama sonuçlarına ulaşıyoruz. Google botları elde ettikleri verileri bu botlarla yorumluyor ve aradığımız şeyleri kolayca bulmaya yarıyor. Bu algoritmadan faydalanan sayısını gördüğümüzde hiç düşünmeden en popüler algoritmalar arasına sokabiliriz kendisini.

 

6. Random Number Generator Algoritması

Diyelim ki bir yazılımcısınız, hazır fonksiyon kullanmadan random sayı üretmeniz gerekti, ne yapardınız? Kolaymış gibi görülse de aslında pek de kolay bir konu değil. Hatta şunu da söylemek lazım, hiçbir random number generator tam anlamıyla random bir sayı üretemiyor. Algoritmanın yapısı gereği ancak “randommış gibi” sayı üretebiliyor. Yine de pek çok konuda inanılmaz avantajlar sağlayan bir algoritma.

 

7. Integer Factorization Algoritması

Matematiksel bir algoritma olan bu algoritma sayesinde bugünkü kriptografi işlemlerini büyük bir güvenlik içerisinde gerçekleştirebiliyoruz. Bizim matematikte asal çarpanlara ayırma olarak bildiğimiz Prime Factorization işlemini uygulayarak pek çok kriptografi işlemini kolaylaştırıyor. Özellikle RSA gibi çok büyük asal sayılar bulunması gerektiği durumlarda yüksek güvenlikli kriptografik işlemlerin önünü açıyor.

 

8. Data Compression Algoritmaları

Data compression yani veri sıkıştırma algoritmaları olmasaydı, bugün sahip olduğumuz çılgın boyutlardaki verileri saklama imkanına sahip olmayacaktık. Ayrıca bu verilerin iletimi de büyük problem oluşturacaktı. Bu yüzden Veri Sıkıştırma algoritmaları hayatımızı kolaylaştırmakla birlikte, teknolojinin ilerleyebilmesine de dolaylı yönden etkili olmaktadır. Bu algoritmaları günlük hayatımızda bilgisayar kullandığımız zamanlarda sürekli olarak farkında olarak ya da farkında olmayarak kullanmaya devam ediyoruz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir