Avrasya Sosyal ve Ekonomi Araştırmaları Dergisi (ASEAD)
Eurasian Journal of Researches in Social and Economics (EJRSE)
www.asead.com
ISSN:2148-9963
ALGORİTMALARIN HAYATIMIZDAKİ YERİ VE ÖNEMİ
Doç. Dr. Alper AYTEKİN1
Öğr. Gör. Dr. Fatma SÖNMEZ ÇAKIR2
Yakup Bahadır YÜCEL3
İlknur KULAÖZÜ4
ÖZET
Algoritma bir problemin çözümünün veya belirlenen amaca nasıl ulaşılacağının
anlatıldığı yoldur. Bu ifadeden anlaşılacağı üzere algoritma bir sonuç değil sonuca götüren
yoldur. Günümüzde her alanında var olan algoritmalar; teknolojik gelişmeler ile hayatımızı
daha da fazla etkileyerek yaşantımızda merkezi bir önem kazanmış durumdadır. Algoritmanın
başarılı olabilmesi için sadece sonuca ulaştırması yeterli değildir aynı zamanda sade ve hızlı
olması da gerekmektedir. Algoritmanın, kesin olarak tanımlamış bir dizi talimattan
oluşmasının yanı sıra, her zaman bir sonu olmalı ve her durumda çalıştığı kanıtlanabilmelidir.
Algoritmalar günlük hayatımızın her adımında vardır. Sayıların sıralanması, fotoğraf
kamerasının yüz algılaması, Google ile kelime aratmaya kadar her şey bir algoritma mantığı
üzerine kurulmuştur. Bir çay demlerken bile farkında olmadan kullanmakta olduğumuz
algoritmaların önemini kavramak ve bu algoritmaların neler olduğunu bilmek çağımıza ayak
uydurmak için gereklidir. Evde, işte ve hayatımızın diğer alanlarında karşılaştığımız
problemleri etkin bir şekilde analiz ederek, çözüme en kısa yoldan en sade şekilde
ulaşabilmek algoritmaları anlamak ve benimsemekten geçmektedir. Ayrıca özgün problemleri
hızlıca çözüme ulaştırabilmek adına algoritma geliştirebilmek de algoritmaları benimsemeye
bağlıdır.
Bu çalışmada algoritmaların hayatımızı nasıl kolaylaştırdığından, hayatımızın ve
çağımızın merkezini oluşturan modern algoritmalardan ve eskiden beri kullanılmakta olan
bazı algoritmalardan bahsedilmiştir. Algoritma geliştirmenin ve algoritmaların hayatımızdaki
yerinden bahsedilerek öneminin kavranmasına yönelik farkındalık yaratmak için gündelik
hayatta kullanmakta olduğumuz bazı algoritmalar örnekler ile aktarılmıştır.
Anahtar Kelimeler: Algoritma, Modern Algoritmalar, Algoritma Geliştirme,
Algoritma Türleri,
Bartın Üniversitesi, İİBF, Yönetim Bilişim Sistemleri, aytekin@bartin.edu.tr
Bartın Üniversitesi, İİBF, Yönetim Bilişim Sistemleri YL Öğrencisi, fsonmez@bartin.edu.tr
3
yakupbahadiryucel@gmail.com
4
ilknurkulaozu@gmail.com
1
2
ASEAD CİLT 5 SAYI 7 Yıl 2018, S 151-162
Doç. Dr. Alper AYTEKİN 152
Öğr. Gör. Dr. Fatma SÖNMEZ ÇAKIR
Yakup Bahadır YÜCEL
İlknur KULAÖZÜ
THE IMPORTANCE OF ALGORITHMS IN HUMAN LIFE
ABSTRACT
Algorithm is the way to solve a problem or explain how to achieve it. As it is
understood from this statement, the algorithm is the path that leads to the result, not a result.
Algorithms that exist in every field today; has gained a central importance in our life by
further affecting our life with technological developments. In order for the algorithm to be
successful, it is not enough to deliver only the result, but at the same time it needs to be
simple and fast. In addition to the formation of a series of definite descriptions of the
algorithm, it must always be a result and be proven to work in all cases. Algorithms are every
step of our daily life. Everything is based on an algorithmic rationale, from the sorting of
numbers, face detection of photo cameras, to word search with Google. It is necessary to
know the importance of the algorithms that we are unwittingly using even when we brew a
tea, and to know what these algorithms are. It is time to understand and adopt the algorithms
to analyze the problems we encounter at home, at work and in other areas of our life, and to
reach the simplest solution from the shortest path in an efficient way. Moreover, it is also up
to the algorithms to develop algorithms in order to quickly solve the original problems.
In this work, we talked about how algorithms make our lives easier, modern
algorithms that are the center of our lives and ours, and some algorithms that have been used
for a long time. Some algorithms that we use in everyday life to convey awareness of the
concept of algorithm development and the place of the algorithms in our lives are conveyed
with examples.
Keywords: Algorithm, Modern Algorithms, Algorithm Development, Algorithm Types
GİRİŞ
Bilgisayarlar verilen talimatları ve tekrar eden görevleri çok hızlı bir şekilde adım adım
uygulayabilen makinalardır. Bilgisayarların bu hızlarından yararlanabilmek için net bir
şekilde tanımlanmış talimatlara yani algoritmalara ihtiyaç vardır. Bu nedenle algoritma
mantığını anlamak ve gerekli algoritmaları geliştirebilmek çok önemlidir. Algoritmalar
modern kullanımlarına rağmen aslında bilgisayardan çok eskidir. Algoritmalar çözülmesi
gereken problemler için genel bir çözüm oluşturmaktadır. Bu durum hem modern hem de eski
algoritmalar için geçerlidir. Gerek günlük hayatımızda karşılaşmakta olduğumuz problemlerin
çözümünde gerek dijital çağımıza yeni katkılarda bulunabilmek için algoritmaları
benimseyerek hayatı kolaylaştırabilecek algoritma geliştirebilmek inanılmaz derecede bir
öneme sahiptir.
ASEAD CİLT 5 SAYI 7 Yıl 2018, S 151-162
Doç. Dr. Alper AYTEKİN 153
Öğr. Gör. Dr. Fatma SÖNMEZ ÇAKIR
Yakup Bahadır YÜCEL
İlknur KULAÖZÜ
Algoritma, sonlu bir işi tanımlamada kullanılan, açık bir şekilde tanımlanan ve sıralı
aşamalardan oluşan yapılara denmektedir. Algoritmalar programlamanın tasarımında
faydalanılan ve programın geliştirilmesi için gereken aşamaların kendi dilimize uygun bir
biçimde anlatıldığı yapılardır5. Programlama da en önemli basamak programlama mantığını
öğretmektir. Çözülmek istenen soruna yönelik gerçekleştirilmek istenen işlemler esnasında
yazılması gereken kodlar programlamanın diline göre değişiklik gösterebilir fakat
programlamanın algoritma mantığı değişlik göstermemektedir. Bu kapsamda programlama
eğitiminden daha önce programlama mantığına önem verilmelidir6. Programlama mantığının
en önemli adımı ise algoritmalardır. Algoritmaların kullanılması programlamanın daha basit
bir şekilde yazılmasıdır. Bu sebeple programlama eğitimi süresinde ilk olarak algoritma
yapısının üstünde durmak gerekli olacaktır. Algoritmalar sadece programlamaların plan
aşamasında ve yazılımın tasarım aşamasında değil insanların kendi hayatlarında kullandıkları
tüm sonlu işlemlerin içinde de yer almaktadır. Tüm bu işlemlerde algoritmik olarak
düşünülmektedir. Bu kapsamda algoritma teriminin etkili eğitimi üzerine yapılan çalışmalar
her geçen gün artış göstermektedir7.
Algoritmalar sadece bilgisayarlarla ilgili değildir. Müzik nasıl insan ruhuna değen
evrensel bir dil ise, algoritma da sorunları çözmeye yönelik kullanılan evrensel bir dil
olmuştur. Algoritmalar düşünme adımlarının ortaya konuluş şeklidir. Çünkü algoritmanın
yapısı kullanıcı düşüncesini ifade eden bir bilgisayar geometrisidir.
Algoritmaları
benimsemek
ve
algoritmik
düşünmek
problem
çözümünü
kolaylaştırabilmektedir. Gündelik hayatta karşılaşılan problemleri analiz ederek çözüm
adımlarını sade bir şekilde belirlemek yani problemin çözüm algoritmasını oluşturmak
çözüme en kısa yoldan etkili bir şekilde ulaşabilmeye olanak sağlamaktadır. Önceden
geliştirilmiş çözüm algoritmalarını bilmek ve benimsemek daha önce karşılaşılmamış
problemler ile karşılaşıldığında, çözüm üretmek için uyarlanabilir veya yeni algoritma
oluşturmada fikir verebilir. Bu bağlamda algoritmaları bilmek ve farkında olmak oldukça
önemli görülmektedir.
ARABACIOĞLU, Taner. BÜLBÜL, Halil İbrahim. FİLİZ, Ali. “Bilgisayar Programlama Öğretiminde Yeni
Bir Yaklaşım” IX. Akademik Bilişim Konferansı, Sayfa:193-197.
5
GÖKOĞLU, Seyfullah. “Programlama Eğitiminde Algoritma Algısı: Bir Metafor Analizi” Cumhuriyet
International Journal of Education, Cilt:6, Sayı:1, Sayfa:1-14.
7
KÖSE, Utku. TÜFEKÇİ, Aslıhan. “Algoritma ve akış şeması kavramlarının öğretiminde akıllı bir yazılım
sistemi kullanımı”, Pegem Eğitim ve Öğretim Dergisi, Cilt:5, Sayı:5, Sayfa:569-586.
6
ASEAD CİLT 5 SAYI 7 Yıl 2018, S 151-162
Doç. Dr. Alper AYTEKİN 154
Öğr. Gör. Dr. Fatma SÖNMEZ ÇAKIR
Yakup Bahadır YÜCEL
İlknur KULAÖZÜ
1. ALGORİTMA
Algoritma ilk olarak El-Harezmi tarafından ortaya çıkmıştır. Bir probleme çözüm üretmek
veya belirlenen amaca ulaşabilmek için tasarlanmış yola ve birbirini takip eden işlem
adımlarına algoritma denir. Belirlenen amaca ulaşmak için çözüm yolları ve aşamaları
belirlenmektedir. Doğru geliştirilen bir algoritma belirlenen aşamaları takip ederek en
mantıklı çözüme ulaşacaktır 8 . Günlük yaşamda bir iş için genellikle önceden plan
yapılmaktadır. Bu plan, aslında yapılacak olan işin adımlarını belirler. Bu adımlar ilerleyerek
yaşamı kolaylaştırmada ve hedefe ulaşmada yol göstermektedir. Bilgisayar bilimlerinde,
yapılan bu planların yerini algoritma almaktadır. Bir sorunun çözümünde giriş değerlerinin
nereden alınması gerektiği, bu değerlerin işlenmesinde hangi yöntemlerin kullanılacağı ve
çıkan sonuçların nerelerde saklanacağı gibi tüm adımları algoritma belirler9. Bir algoritmanın
kısa ve anlaşılması basit olması gerekmektedir.10 Algoritma hazırlarken ilk yapılması gereken
işlem, çözülmesi istenen sorunun özenle irdelenerek tüm olasılıkların gözden geçirilmesidir.
Basit, açık ve kısa zamanda en az adımla sonuca ulaşılmasını sağlayacak çözüm yolunun
belirlenmesi gerekmektedir. Bir sorunun çözülmesi için hazırlanmış olan algoritma çözüm
için gerekli tüm adımları sıralı bir biçimde anlatmalıdır. Algoritma, esnek olabilmeli ve
güncellemelere uygun şekilde tasarlanmalıdır. Ayrıca algoritma programlamaya uygun
olmalıdır. Herhangi bir programlama diline bağlı olmamalıdır.
1.1. Algoritma Türleri
Bir programın tasarlanmasında kullanılacak olan veri yapıları ve algoritmaları direkt
olarak uygulamaya bağlılık göstermektedir. Program yazan insanlar çözüme ulaşabilmek için
var olan algoritmaları kullanabilecekleri gibi, ihtiyaçlarına göre yeni algoritmalarda
oluşturabilirler. Bir problemle ya da çözülecek konuyla daha önceden de karşılaşılmış
olunabilir, bu durumda problemin çözümü için geliştirilmiş algoritmalar var demektir. Bu
algoritma tekrar kullanılabilir ya da isteğe bağlı olarak uyarlanabilir. En uygun olanı tespit
etmek programcının bilgi birikimine bağlı olarak değişiklik gösterebilmektedir. Uygun
algoritma ve model belirlenmeden başlanılan projelerde kullanılan programlama diline ne
kadar hakim olunursa olunsun bir çok problem yaşanması kaçınılmaz bir durum olmuştur11.
Bu nedenle yazılım geliştirmede ve problemlerin çözümünde uygun şekilde yazılmış bir
algoritmaya ihtiyaç duyulmaktadır. Algoritmalar kullanım alanlarına, karmaşıklıklarına,
tasarım yöntemlerine ve uygulama şekillerine göre çeşitli türlere ayrılmaktadır.
“Algoritma Nedir?”, Robotistan, 26 Aralık 2017, Web, https://maker.robotistan.com/algoritma/ [Erişim Tarihi:
9 Haziran 2018].
8
“Algoritma Nedir”, Robotik Sistem, Web, http://www.robotiksistem.com/algoritma_nedir_algoritma
_hazirlama.html [Erişim Tarihi: 9 Haziran 2018].
9
“Algoritma Nedir?”, Enes Kamış, 8 Şubat 2017, Web, https://www.eneskamis.com/%EF%BB%BF algoritmanedir-algoritma-ne-ise-yarar/ [Erişim Tarihi: 9 Haziran 2018].
10
“Algoritma nedir? Algoritma çeşitleri”, Kodlama merkezi, 7 Ekim 2014, Web, https://www.kodlama
merkezi.com/algoritma/algoritma-nedir-algoritma-cesitleri/ [Erişim Tarihi: 9 Haziran 2018].
11
ASEAD CİLT 5 SAYI 7 Yıl 2018, S 151-162
Doç. Dr. Alper AYTEKİN 155
Öğr. Gör. Dr. Fatma SÖNMEZ ÇAKIR
Yakup Bahadır YÜCEL
İlknur KULAÖZÜ
1.1.1. Arama Algoritması
Arama algoritması, dijital sistemlerde arama yapılmak istenildiğinde kullanılabilecek bir
algoritma türüdür 12 . Bu algoritma türü bilgi kümesi içerisinde belli anahtar kelimelere
dayanılarak aranılan verilere ulaşmayı amaçlamaktadır. Büyük miktarda verilerin saklandığı
alanlarda istenilen bilgiye kısa ve çabuk sürede ulaşmak için geliştirilen algoritmalardır. Bu
algoritma ile listeler, şekiller ve metinler üzerinde aramalar yapılmaktadır. Örneğin bir metin
içerisinde yer alan bir kelime, karışık görseller arasında yer alan bir resim veya kalabalık bir
listede bulunan bir kaydın bulunmasında bu algoritmalar kullanılır.
1.1.2. Sıralama Algoritması
Sıralama algoritmaları dağınık halde bulunan verileri belirli özelliklerine göre sıralı hale
getirebilmek için kullanılır. Sıralama algoritmalarının kullanıldığı uygulamalarda genellikle
isimler alfabetik dizilime, sayılar ise matematiksel büyüklüklere göre sıralanabilirler.
Sıralanması istenilen bu verilerin düzenli bir şekilde saklanması, gerektiğinde bu verilere
erişimin daha hızlı olmasını sağlamaktadır. Ayrıca verileri kullanan programlara ait
algoritmaların gerçekleştirilmesini kolaylaştırır.
1.2.3. Graf Boyama Algoritması
Graf boyama algoritması, graf üzerinde birbiriyle komşu olan düğümlere farklı atama
yapma işlemidir. Graf boyamada amaç en az sayıda renkleri kullanarak bütün düğümlere
komşularından ayrı birer renk vermektir. Renklendirmede kullanılacak olan renk sayısı
kromatik sayı olarak adlandırılmaktadır. Graf boyama bilgisayar biliminde ve günlük hayatta
çoğu problemin çözümlenmesinde kullanılan bir yaklaşımdır. Örneğin, üniversitelerdeki sınav
programlarının hazırlanmasının karmaşık ve hata yapılma oranının yüksek olması aynı
zamanda bu sorunun her dönemde yaşanması bu algoritmaların kullanımını gerekli
kılmaktadır. Bu soruna çözüm olarak sınav programlarını çakıştırmadan dağıtacak bir
algoritmaya ihtiyaç duyulmuştur. Bu ihtiyacı giderebilmek için Graf Boyama Algoritması
kullanışlı ve soruna çözüm getirebilecek bir algoritma türü olarak görülebilmektedir.
1.2.4. Kriptografik Algoritması
Günümüzde internet alt yapısına bağlı olarak güvenlik terimi ön plana çıkmaktadır.
Verilerin güvenli bir şekilde aktarılması ve elde edilmesi için kriptografi algoritmasıyla çeşitli
şifreleme ve çözümleme algoritmaları sunulmaktadır. Kriptografi, bir iletinin birden fazla
nokta arasında aktarıldığı ortamdan bağımsız bir şekilde güvenli olarak paylaşımını
sağlamaktadır 13 . Şifreleme işlevinin güvenli bir şekilde gerçekleşmesi şifreleme sırasında
kullanılan bütün yöntemlerin ve bilgilerin gizliliğine dayanmaktadır. Fakat farklı nedenlerle
kripto işlevlerinin açığa çıkabileceği düşünülmüştür bu nedenle iletişim güvenliği, kripto
anahtarı denilen ek bilgi ile arttırılmaktadır. Bu nedenle şifreleme işlemi esnasında açık ileti
kripto anahtarı ile şifrelenmektedir.
“Algoritma nedir?”, Teknokoliker, 21 Ocak 2014, Web, http://teknokoliker.com/2014/01/algoritma-nedir-vealgoritma-cesitleri.html [Erişim Tarihi: 9 Haziran 2018].
12
YERLİKAYA, Tarık. BULUŞ, Ercan. BULUŞ, Nusret. “Asimetrik Şifreleme Algoritmalarında Anahtar
Değişim Sistemleri”, Sayfa:1-6.
13
ASEAD CİLT 5 SAYI 7 Yıl 2018, S 151-162
Doç. Dr. Alper AYTEKİN 156
Öğr. Gör. Dr. Fatma SÖNMEZ ÇAKIR
Yakup Bahadır YÜCEL
İlknur KULAÖZÜ
Başka bir ifadeyle şifrelenmiş ileti arasındaki geçişler kripto algoritmasına bağlı
olabileceği kadar kullanılmakta olan anahtar bilgisine de bağlı olmaktadır14.
1.2.5. Genetik Algoritma
Genetik algoritma, rassal arama teknikleri kullanılarak çözüm bulunmaya çalışılan,
parametre kodlamaya dayanan bir arama algoritma tekniğidir. Genetik algoritmalar optimuma
yakın çözümleri mümkün kılmaktadır. Bu algoritmalar parametre setlerinin kodları ile
uğraşarak parametrelerle doğrudan ilgilenmemektedirler. Çözüm kümesinin daraltılmış
bölgelerinde arama yapmamaktadır. Genetik algoritmaların arama alanları yığının ve
popülasyonun tamamıdır. Genetik algoritmanın bir diğer özelliği ise bu algoritmada amaç
fonksiyonunun kullanılıyor olmasıdır.15
1.2.6. Sıkıştırma Algoritması
Günümüzde sayısal haberleşme tekniklerinin önemi oldukça artış göstermektedir. Bu
nedenle sayısal verilerin iletimi ve depolanması önemli ölçüde değer kazanmaktadır.
Sıkıştırma algoritması, bir veri kümesinde daha çok rastlanan öğeyi daha düşük kodla, daha az
rastlanan öğeleri ise daha yüksek uzunluktaki kodlarla temsil etme düşüncesi üzerinde kurulan
bir algoritmadır. Sayısal veriler çeşitli depolarda saklanırken amaç daima minimum alanda
maksimum veriyi saklamak olmuştur. Veriler çeşitli yöntemlerle sıkıştırılarak alandan ve
iletim zamanından tasarruf edilmesi sağlanmaktadır.16
1.2.7. Kök Bulma Algoritması
Türemiş veya değişmiş bir kelimenin köküne indirgenmesine kök bulma denilmektedir.
Kök bulma işleminin sonunda bulunan kelimenin, dilin yapısıyla aynı olma zorunluluğu
yoktur. Genelde benzer kökle eşleştirilen, alakalı kelimeler yeterli olmaktadır. Kök bulma
algoritmasının aramalarda sağlamış olduğu en önemli fayda, aranan kelime ile sınırlı
kalmayarak benzer sonuçlarında bulunmasını sağlamasıdır. Örneğin “geldi” kelimesini arayan
kullanıcıya ek olarak “gel” ile alakalı sonuçların da sunuluyor olmasıdır. Kök bulma
algoritması ile kullanıcı tarafından yapılan hataları da en aza indirmesi amaçlanmaktadır. Kök
bulma algoritmalarının yanı sıra aranılan kelimelerin anlamlarını ve içeriğini inceleyen kök
bulma işlemini gerçekleştiren algoritmalarda bulunmaktadır.17
YERLİKAYA, Tarık. BULUŞ, Ercan. BULUŞ, Nusret. “Kripto Algoritmalarının Gelişimi Ve Önemi”,
Sayfa:1-5.
14
ENGİN, Orhan. Akış Tipi Çizelgeleme Problemlerinin Genetik Algoritma İle Çözüm Performansının
Artırılmasında Parametre Optimizasyonu, Doktora Tezi, 2001.
15
“Veri Sıkıştırma Algoritması ve Uygulaması”, Csharp Nedir, 8 Ağustos 2004, Web, http://www.csharp
nedir.com /articles/read/?id=189 [Erişim Tarihi:9 Haziran 2018].
16
YÜKSEL, M.Erkan. TURNA, Özgür Can. ERTÜRK, M.Ali. ”Bilgiye Erişim Sistemlerinde Veri Arama ve
Eşleştirme”, Sayfa:1-7.
17
ASEAD CİLT 5 SAYI 7 Yıl 2018, S 151-162
Doç. Dr. Alper AYTEKİN 157
Öğr. Gör. Dr. Fatma SÖNMEZ ÇAKIR
Yakup Bahadır YÜCEL
İlknur KULAÖZÜ
2. ALGORİTMALARIN ÖNEMİ
İnsan hayatı mekan ve zaman sınırlamaları ile kısıtlanmıştır. İnsanların bir gün veya
yaşantısı boyunca neyi yapıp neyi yapmayacağı konusunda karışıklığa düştüğü kabul
edilmektedir. Bu açıdan bakıldığında bu sınırlamalar içinden çıkılmaz bir duruma
gelmektedir. Sadece insanlar değil bilgisayarında aynı kısıtlamalar altında olduğu
düşünülmektedir. Fakat birçok uzman, algoritma bilen insanlar için bu durumun öyle
olmadığını savunmaktadır. Bilgisayar bilimciler yıllarca bu tür sorunların farklı versiyonları
ile uğraşmışlardır. Bilgisayarlarda kullanılan algoritmaların insanlığın birçok problemini
çözebileceği savunulmaktadır. Algoritma mantığına sahip olmanın insan sezgilerini
geliştirdiği, mevcut veya olası işlerin ne zaman başlayıp bitirileceği sorusuna daha rahat cevap
verilmesini sağladığı ve problemli seçimlerle nasıl başa çıkılacağı konularında kolaylık
sağladığı savunulmuştur.18
Çağımızda hemen her alanda birçok teknolojik araç kullanılmaktadır. Bu teknolojik
araçların etkili bir şekilde kullanılabilmesinin sebebi sahip oldukları algoritmalardır. Günlük
yaşamın karmaşık yapısından dolayı karşılaşılan problemleri çözüme ulaştırmak için
yapılması gerekenleri adım adım belirleme ihtiyacı algoritmaların önemini artırmaktadır. Bir
matematik problemi çözerken, internette alışveriş yaparken, tatile çıkarken bile farkında
olarak ya da olmayarak kullanmış olduğumuz algoritmalar hayatımızı şekillendirmektedir.
Geliştirilmiş iyi bir algoritma ile çözüme veya amaca en kısa yoldan ulaşılması sayesinde
karmaşık birçok süreç basit bir şekilde sonuca ulaşmaktadır. Herhangi bir tarayıcıda herhangi
bir arama motoruyla web’de aradığımızı bulabilme, yüz tanıma algoritması ile daha net
fotoğraf çekimi, herhangi bir yol bulma uygulamasında en kısa yolu bulabilme iyi bir
algoritma geliştirilmesi sayesinde gerçekleşmektedir. Organ nakli için veri tabanı
oluşturularak uygun kişilerin eşleştirilmesinde, üniversite tercihinde öğrencilerin puan
sıralamasına ve tercihlerine göre üniversitelere yerleştirilmesinde, bir havaalanında veya
otobüs terminallerinde sefer saatlerinin çakışmayacak şekilde ayarlanması gibi birçok konuda
algoritmalar önemini artırmaktadır. Algoritmalar sadece kullanmış olduğumuz teknolojik
araçlar ya da aldığımız hizmet alanlarında değil kişisel yaşamlarımızda da önemlidir. Örneğin
günümüzde dijitalleşmenin artması ile gerek sosyal medyada gerek dijital bankacılık gibi
alanlarda birçok kişinin hesabı bulunmaktadır. Bu hesapların çokluğu nedeniyle şifreleri
unutmamak veya karıştırmamak adına tüm hesaplarda aynı şifre veya doğum günü gibi özel
tarihlerin kullanılması hesapların bir başkası tarafından ele geçilmesi açısından risk
taşımaktadır. Hesap sahipleri bu riski azaltmak için kişisel kriptografik yani şifreleme
algoritması geliştirerek birçok dijital hesap şifresinin tahmin edilmesini daha zor hale
getirebilir. Bu sayede kişisel hesabının güvenlik seviyesini artırabilir. Bu ve buna benzer
örneklerde görüldüğü gibi algoritmalar oldukça önemlidir.
“Hayatımızdaki algoritmalar”, Kitap Yurdu, Web, https://www.pdfekitapyurdu.com/hayatimizdakialgoritmalar-gunluk-kararlarin-bilgisayar-bilimi-pdf-indir/ [Erişim Tarihi:9 Haziran 2018].
18
ASEAD CİLT 5 SAYI 7 Yıl 2018, S 151-162
Doç. Dr. Alper AYTEKİN 158
Öğr. Gör. Dr. Fatma SÖNMEZ ÇAKIR
Yakup Bahadır YÜCEL
İlknur KULAÖZÜ
İlk başlarda matematik veya geometri alanlarındaki problemlerin çözümünde formül
şeklinde geliştirilen algoritmalar günümüzde bilgisayarların ve benzeri teknolojik araçların
hızlarından yararlanabilmek için geliştirilmektedir. Dijitalleşmenin artışı ile algoritmaların
önemi de gün geçtikçe artmaktadır. Ayrıca öğrenerek kendi kısıtlarını oluşturan yani
insanların davranışlarını takip ederek kendi algoritmasını yazan daha gelişmiş yeni
algoritmaların hayatımızı daha da çok şekillendireceği düşünülmektedir.
3. HAYATIMIZDAKİ ALGORİTMALARDAN ÖRNEKLER
Algoritmalar, hayatın tüm işleyişinde vardır. Örneğin, çay demlerken izlenilen süreç
aslında algoritma ile yapılan adımlardır. Bu nedenle algoritmanın önemini hayatımızın birçok
alanında görmek kaçınılmaz bir durumdur. Algoritmalar, evlilik için en doğru kişiyi
bulmaktan park yeri seçimine, kişilerin e-posta gelen kutusunu düzenlemesinden belleğin
işleyişine kadar tüm alanlarda kullanılmaktadır.
3.1. Yüz Tanıma Algoritması
Biyometrik sistemler kişilerin fiziksel özelliklerini kullanarak o kişileri elektronik
ortamda tanınması sağlayan sistemlerdir. Bu sistemler kişilerden alınan örnekler ve
uygulanacak algoritmalarla bir depolanma aygıtına saklanmaktadır. Daha sonra verilen
eşleştirme prensibiyle çalışmaktadır. Yüz tarama sistemi insan yaşamının birçok alanında
kullanılmaya başlanmıştır. Özellikle yeni çıkan cep telefonları üzerindeki kamera sistemi
kullanılarak cep telefonuna giriş yapabilmek için yüz tarama sistemi kullanılmaktadır. Yüz
tarama sisteminde yüzün belirli referans noktaları alınarak veriler saklanır ve daha sonra
kullanılmak istendiğinde karşılaştırılması mantığına dayanmaktadır. Yüz tarama daha önceki
yıllarda hem maliyetli olup hem de depolama ve kontrol işlemleri uzun sürdüğü için bir
dezavantaj olarak görülürken teknolojinin gelişmesiyle eskiye oranla çok daha iyi sonuçlar
alınmaya başlanmıştır. Yüz tanıma sistemi yüzün tamamını kaydetmeyerek sadece küçük bir
algoritma sistemi yazımı ile yüzün belirli özelliklerinin depolanması ile oluşur. Yüz tanıma
algoritmaları özellikle hava alanları, polis merkezleri, kasalar gibi yüksek güvenlik gereken
yerlerde kullanılmaya başlanılmıştır19.
3.2. PageRank Algoritması
Google’ın arama algoritmasının çekirdeğini oluşturan PageRank algoritmasıdır. Bu
algoritma ile Google’ın amacı internette aranılanı en hızlı ve etkili şekilde bulunmasını
sağlamaktır. 90’lı yıllarda Larry Page ve Sergey Brin tarafından geliştirilen bu algoritma bir
sayfanın işaret ettiği bağlantıları sayıp değerlendirerek önemini belirlemektedir. Ardından 0
ile 10 arasında göreli bir puan vererek çalışmaya devam etmektedir. Bir sayfadan ne kadar
çok bahsedilip referans olunursa o sayfanın değeri o kadar artmış olmaktadır20.
VAROL, Asaf. CEBE, Betül. “Yüz Tanıma Algoritmaları”, 5th International Computer & Instructional
Technologies Symposium, Sayfa:1-7.
19
“Google PageRank”, Semseo, Web, https://www.semseo.com.tr/rehber/seo-sozlugu /google-page-rank-pandaalgoritmasi-nedir [Erişim Tarihi:9 Haziran 2018].
20
ASEAD CİLT 5 SAYI 7 Yıl 2018, S 151-162
Doç. Dr. Alper AYTEKİN 159
Öğr. Gör. Dr. Fatma SÖNMEZ ÇAKIR
Yakup Bahadır YÜCEL
İlknur KULAÖZÜ
Bu nedenle puanı yüksek olan yani en fazla aranan sayfalar az puanlı sayfalardan daha üstte
yer alarak kullanım kolaylığı sağlayacaktır.
3.3. YouTube Algoritması
Günümüzde YouTube popüler bir mecra olma konumunu elinde tutmaya devam
etmektedir. Bu platforma her dakika yüzlerce video yüklenmektedir. YouTube her bir
izleyiciyi izleme ve beğenme olasılığı yüksek olan videolarla eşleştirmek üzere geliştirilmiş
bir algoritma kullanılmaktadır. Her videonun başlık, küçük resim ve açıklama gibi öğeleri
incelenerek diğer izleyicilerin beğeni durumları gözlemlenmektedir. Ayrıca videonun ne
kadarının izlendiği ve beğeni sayısı da bir ölçüt olmaktadır. Bir diğer ölçüt ise yüklenilen
videolara yapılan yorum sayılarıdır. Tüm bunların ötesinde YouTube algoritmasının iki basit
amacı bulunmaktadır. Bunlardan birincisi tüm izleyicilere izlemek istedikleri videoları
sunabilmek ikincisi ise beğendikleri videoları izlemeye devam etmelerini sağlamaktır.
3.4. Baloncuk Sıralaması Algoritması
Baloncuk sıralaması algoritması, verilerin sıralanabilmesi için geliştirilen sıralama
algoritmalarından bir tanesidir 21 . Baloncuk sıralaması denmesinin en önemli nedeni bu
algoritmada en büyük sayının en sona atılmasıdır22. Baloncuk sıralamasında ilk olarak verilen
dizinin ilk elemanı ikinci öğe ile karşılaştırılır. Büyük olan eleman solda kalırsa eleman
kendinden sonraki küçük elemanla yer değiştirilir. Sonra büyük olan eleman üçüncü eleman
ile kıyaslanır. Büyük olan eleman sağa geçirilir. Bu işlem verilen dizinin son elemanına
gelene kadar devam etmektedir. Bu değişikliklerin sonunda verilen dizinin en büyük elemanı
en sağa yerleşmiş olmaktadır. İlk geçişte en sağa yerleştirilen en büyük eleman çıkarıldığında
geriye kalan alt dizine ilk geçiş değişiminin aynısı uygulanır. Bu işlemde de alt dizinin en
büyük öğesi seçilerek sağ uca yerleştirilir. Bütün diziye bakıldığında verilen dizinin en büyük
iki elemanı sağ uca kendi aralarında sıralanmış biçimde yerleşmiş olurlar. Dizinin n elemanı
var ise daha önce tekrarlandığı gibi geçişler uygulanarak devam edilmektedir. Son olarak n
geçişinden sonra dizinin elemanları sağdan sola doğru büyükten küçüğe sıralanmış olacaktır.23
3.5. Öklid Algoritması
Öklid tarafından bulunan algoritma kullanışlı bir ‘bölüm’ işlevi olarak görülmektedir. Öklid
algoritması algoritmaların aslında ne kadar eski olduğunu göstermektedir. Bilinen en eski
algoritma olan Öklid algoritması bir matematik problemini çözmek için yazılmıştır.
Matematik alanında En Büyük Ortak Bölen (EBOB) bulma işlemlerinde kullanılır. Genellikle
EBOB bulma işleminde asal çarpanlarına ayırma yönteminde yararlanılır. Ancak bazı
durumlarda asal çarpanlara ayırma işlemi zor olabilir. Özellikle büyük sayılar kullanıldığında
“Kabarcık sıralaması” BubbleSort, Web, http://bilgisayarkavramlari.sadievrenseker.com/2008/08/09
/kabarcik-siralamasi-baloncuk-siralamasi-bubble-sort/ [Erişim Tarihi: 9 Haziran 2018].
21
“Bubble Sort”, Algoritma Uzmanı, Web, http://www.algoritmauzmani.com/algoritmalar/bubble-sort-kabarciksiralama-ornekli-anlatim-c-kodu/ [Erişim Tarihi:9 Haziran 2018].
22
“Kabarcık Sıralaması”, Bilgisayar Kavramları, 9 Ağustos 2008, Web, http://bilgisayarkavramlari
.sadievrenseker .com/2008/08/09/kabarcik-siralamasi-baloncuk-siralamasi-bubble-sort/ [Erişim Tarihi:9 Haziran
2018].
23
ASEAD CİLT 5 SAYI 7 Yıl 2018, S 151-162
Doç. Dr. Alper AYTEKİN 160
Öğr. Gör. Dr. Fatma SÖNMEZ ÇAKIR
Yakup Bahadır YÜCEL
İlknur KULAÖZÜ
bu işlem daha zor hale gelebilmektedir. Öklid algoritması iki tam sayının en büyük ortak
bölenini bulmak için yapılan ardışık bölme işlemine denir. Öklid algoritmasında temel
mantık, ardışık olarak büyük sayıyı küçük sayıya bölerek kalanın 0 olması durumuna kadar
devam edilmesidir24.
SONUÇ VE ÖNERİLER
Algoritmalar hayatımızın her alanında var olmakta ve teknolojinin gelişmesi ile
birlikte teknolojik araçların kullanımının yaygınlaşmasına bağlı olarak daha fazla
kullanılmaktadır. Hayatımızı birçok alanda ve birçok açıdan şekillendiren algoritmalar
özellikle sosyal medya ve dijital pazarlamada kişileri yönlendirebilmektedir.
Algoritmaları benimseyerek günlük hayatımızda kullanmak karşılaştığımız
problemlerin çözümünde kolaylık sağlayacaktır. Evde, okulda veya iş yerinde bir işlem
yaparken algoritmaları bilerek uygulamak şüphesiz daha kısa zamanda çözüme ulaşılmasını
sağlayacaktır. Algoritmaların gündelik hayattaki yerinin farkında olmak, onları daha etkili
kullanabilmemizi sağlayabilir. Algoritmaları ve nerede kullanılabileceklerini bilmek kişisel
olarak karşılaştığımız problemlerin çözümünde onları etkili bir şekilde temsil edecek
algoritmalar geliştirmeyi sağlayabilecektir. Dijital hesaplarda güvenliğin artırılması, kişisel
hesapların düzenlenmesi, bilgisayar depolama alanlarındaki dosyaların düzenli şekilde
tutulabilmesi gibi işlemlerin düzenliliği iyi geliştirilmiş algoritmalara bağlıdır.
Geçmişten günümüze birçok algoritma geliştirilmiş ve halen daha yeni algoritmalar
geliştirilmeye devam etmektedir. Örneğin web üzerinden film izleme hizmeti veren bir şirket
veya alışveriş siteleri müşterilerinin geçmiş hareketlerini dikkate alarak onlara en uygun ürün
veya hizmetin reklamını yapabilmektedir. Bir web sayfasında araştırılmış olan ürünlerin veya
ziyaret edilen web sitelerinin sosyal medya platformlarında reklamları ile karşılaşılmasının
altında da bir algoritma yatmaktadır. Deneyimleri ile kendi kendini geliştiren yeni
algoritmaların daha hızlı gelişimi ile gelecekte hayata daha çok etki edeceği ve
yönlendirmelerde bulunacağı düşünülmektedir.
“Öklid algoritması”, Net Fikir, Web, http://muallims.blogspot.com/2016/10/oklid-algoritmas.html?m=0
[Erişim Tarihi:9 Haziran 2018].
24
ASEAD CİLT 5 SAYI 7 Yıl 2018, S 151-162
Doç. Dr. Alper AYTEKİN 161
Öğr. Gör. Dr. Fatma SÖNMEZ ÇAKIR
Yakup Bahadır YÜCEL
İlknur KULAÖZÜ
KAYNAKLAR
ARABACIOĞLU, Taner. BÜLBÜL, Halil İbrahim. FİLİZ, Ali. (2007). “Bilgisayar
Programlama Öğretiminde Yeni Bir Yaklaşım” IX. Akademik Bilişim Konferansı,
Sayfa:193-197.
ENGİN, Orhan. “Akış Tipi Çizelgeleme Problemlerinin Genetik Algoritma İle Çözüm
Performansının Artırılmasında Parametre Optimizasyonu”, Doktora Tezi, 2001.
GÖKOĞLU, Seyfullah. (2017). “Programlama Eğitiminde Algoritma Algısı: Bir Metafor
Analizi” Cumhuriyet International Journal of Education, Cilt:6, Sayı:1, Sayfa:1-14.
KÖSE, Utku. TÜFEKÇİ, Aslıhan. (2015). “Algoritma ve akış şeması kavramlarının
öğretiminde akıllı bir yazılım sistemi kullanımı”, Pegem Eğitim ve Öğretim Dergisi,
Cilt:5, Sayı:5, Sayfa:569-586.
VAROL, Asaf. CEBE, Betül. (2011). “Yüz Tanıma Algoritmaları”, 5th International
Computer & Instructional Technologies Symposium, Sayfa:1-7.
YERLİKAYA, Tarık. BULUŞ, Ercan. BULUŞ, Nusret. (2006). “Asimetrik Şifreleme
Algoritmalarında Anahtar Değişim Sistemleri”, Sayfa:1-6.
YERLİKAYA, Tarık. BULUŞ, Ercan. BULUŞ, Nusret. (2018). “Kripto Algoritmalarının
Gelişimi Ve Önemi”, Sayfa:1-5.
YÜKSEL, M.Erkan. TURNA, Özgür Can. ERTÜRK, M.Ali. (2016). ”Bilgiye Erişim
Sistemlerinde Veri Arama ve Eşleştirme”, Sayfa:1-7.
İNTERNET KAYNAKLARI
“Algoritma nedir? Algoritma çeşitleri”, Kodlama merkezi, 7 Ekim 2014, Web,
https://www.kodlama
merkezi.com/algoritma/algoritma-nedir-algoritma-cesitleri/
[Erişim Tarihi: 9 Haziran 2018].
“Algoritma
Nedir?”,
Enes
Kamış,
https://www.eneskamis.com/%EF%BB%BF
[Erişim Tarihi: 9 Haziran 2018].
8
Şubat
2017,
Web,
algoritma-nedir-algoritma-ne-ise-yarar/
“Algoritma
Nedir?”,
Robotistan,
26
Aralık
2017,
https://maker.robotistan.com/algoritma/ [Erişim Tarihi: 9 Haziran 2018].
Web,
“Algoritma
nedir?”,
Teknokoliker,
21
Ocak
2014,
http://teknokoliker.com/2014/01/algoritma-nedir-ve-algoritma-cesitleri.html
Tarihi: 9 Haziran 2018].
Web,
[Erişim
“Algoritma
Nedir”,
Robotik
Sistem,
http://www.robotiksistem.com/algoritma_nedir_algoritma _hazirlama.html
Tarihi: 9 Haziran 2018].
Web,
[Erişim
“Bubble
Sort”,
Algoritma
Uzmanı,
Web,
http://www.algoritmauzmani.com/algoritmalar/bubble-sort-kabarcik-siralama-orneklianlatim-c-kodu/ [Erişim Tarihi:9 Haziran 2018].
ASEAD CİLT 5 SAYI 7 Yıl 2018, S 151-162
Doç. Dr. Alper AYTEKİN 162
Öğr. Gör. Dr. Fatma SÖNMEZ ÇAKIR
Yakup Bahadır YÜCEL
İlknur KULAÖZÜ
“Google PageRank”, Semseo, Web, https://www.semseo.com.tr/rehber/seo-sozlugu /googlepage-rank-panda-algoritmasi-nedir [Erişim Tarihi:9 Haziran 2018].
“Hayatımızdaki
algoritmalar”,
Kitap
Yurdu,
https://www.pdfekitapyurdu.com/hayatimizdaki-algoritmalar-gunluk-kararlarinbilgisayar-bilimi-pdf-indir/ [Erişim Tarihi:9 Haziran 2018].
Web,
“Kabarcık
sıralaması”
BubbleSort,
Web,
http://bilgisayarkavramlari.sadievrenseker.com/2008/08/09
/kabarcik-siralamasibaloncuk-siralamasi-bubble-sort/ [Erişim Tarihi: 9 Haziran 2018].
“Kabarcık
Sıralaması”,
Bilgisayar
Kavramları,
9
Ağustos
2008,
Web,
http://bilgisayarkavramlari
.sadievrenseker
.com/2008/08/09/kabarcik-siralamasibaloncuk-siralamasi-bubble-sort/ [Erişim Tarihi:9 Haziran 2018].
“Öklid algoritması”, Net Fikir, Web, http://muallims.blogspot.com/2016/10/oklidalgoritmas.html?m=0 [Erişim Tarihi:9 Haziran 2018].
“Veri Sıkıştırma Algoritması ve Uygulaması”, Csharp Nedir, 8 Ağustos 2004, Web,
http://www.csharp nedir.com /articles/read/?id=189 [Erişim Tarihi:9 Haziran 2018].
ASEAD CİLT 5 SAYI 7 Yıl 2018, S 151-162