Algoritma: Bir problem sınıfının nasıl çözüleceğine dair kesin bir tarif

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 (herustic) 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.

Algoritma: Tarihi, Uygulama, Hukuki Konular
Algoritmaları daha kolay anlatabilmek için akış şemaları kullanılır.

İ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.

Tarihi

Algoritma: Tarihi, Uygulama, Hukuki Konular 
Algoritma sözcüğü Ebu Abdullah Muhammed bin Musa el Harezmi'nin Latince isminden kaynaklanır.

Algoritma sözcüğü, Özbekistan'ın Harezm, bugünkü Türkmenistan'ın Hive kentinde doğmuş olan Ebu Abdullah Muhammed İbn Musa el Harezmi'den gelir. Bu alim 9. yüzyılda cebir alanındaki algoritmik çalışmalarını kitaba dökerek matematiğe çok büyük bir katkı sağlamıştı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.

Uygulama

Çoğu algoritmalar bilgisayar olarak uygulanmak üzere tasarlanmıştır. Bununla birlikte, başka yöntemlerle de uygulanmaktadır, biyolojik sinir ağı (örneğin insan beyninin hesap yapması veya bir böceğin yemek araması), elektrik devresi veya mekanik cihazlar gibi.

Bilgisayar algoritmasına örnek verelim. Kullanıcının girdiği dört sayının ortalamasını görüntüleyen algoritmayı yazalım:

 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: Tarihi, Uygulama, Hukuki Konular 
Quicksort sıralama algoritması animasyonu. Animasyonun başında kırmızı çubukların pivot elemanı olarak işaretlendiği görülmektedir. Örneğin başında sağ tarafın en uzak elemanı pivot olarak seçilmiştir. Bu seçilen pivot değerleri parçalara ayrılmış değerler kümesinin elemanlarıyla karşılaştırılıp sıralama sağlanmaktadır. Özetle, sıralanacak bir sayı dizisini daha küçük parçalara ayırıp oluşan bu küçük parçaların kendi içinde sıralanması ve birleştirilmesi mantığıyla çalışır.

İkinci dereceden ax² + bx + c = 0 biçiminde bir denklemin tüm köklerini bulmak için algoritma yazalım:

Adım 1: Başla. Adım 2: a, b, c, D, x1, x2, rp ve ip değişkenlerini tanımla. Adım 3: Diskriminant değerini hesapla. D ← b2-4ac Adım 4: Eğer D≥0 x1 ← (-b+√D) / 2a x2 ← (-b-√D) / 2a değerlerini hesapla ve x1,x2 değişkenleri göster. Eğer D≥0 değilse, Gerçek kısım(rp) ve sanal kısmını(ip) hesapla. rp ← b / 2a ip ← √ (D) / 2a Adım 5: "rp + j(ip)" ve "rp - j(ip)" değerlerini göster. Adım 6: Dur. 

Kullanıcı tarafından girilen bir sayının faktöriyel değerini bulmak için bir algoritma yazalım:

Adım 1: Başla. Adım 2: factorial,i ve n değişkenlerini tanımla. Adım 3: Değişkenlerin başlangıç değerlerini tanımla. factorial ← 1 i ← 1 Adım 4: Ekrandan girilen n değerini oku. Adım 5: (i=n) eşitliği sağlanana kadar tekrarla. 5.1: factorial←factorial*i 5.2: i←i+1 Adım 6: factorial değişkeninin değerini göster. Adım 7: Dur. 

Hukuki Konular

Algoritmalar, tek başlarına, genellikle patent verilebilir değildirler. Amerika Birleşik Devletleri'nde soyut kavramların, sayıların ve işaretlerin yalnızca basit yönlendirmelerinden oluşan bir iddia "süreç" oluşturmaz (USPTO 2006) ve bundan dolayı algoritmalar patent verilebilir değildir (Gottschalk v.Benson'da olduğu gibi). Bununla birlikte, algoritmanın pratik uygulamaları zaman zaman patent verilebilirdir. Örneğin, Diamond v.Diehr'da, sentetik kauçuğun muhafaza edilmesine yardımcı olmak için kullanılan basit geri bildirim algoritmasının uygulaması patent verilebilir sayılmıştır. Yazılım patenti son derece tartışmalıdır ve algoritmaları içeren birçok eleştirilmiş patent vardır, özellikle veri sıkıştırma algoritmaları, Unisys' LZW patentinde olduğu gibi.

Ek olarak, bazı kriptografik algoritmaların ihracat kısıtlamaları vardır.

1950'den Sonraki Tarihi

Faaliyetlerin birçoğu algoritmanın tanımının geliştirilmesine yönlendirilmiştir ve aktifliği çevredeki sorunlar nedeniyle, özellikle matematiğin temelleri (özellikle Church-Turing tezi) ve akıl felsefesi (özellikle yapay zeka konusundaki tartışmalar) sebebiyle devam etmiştir.

Algoritmalara eleştirel yaklaşımlar

Algoritmaların kullanımı hayatın her alanında giderek yaygınlaşmaktadır. İş yerlerindeki performans değerlendirmelerinden bankaların kime kredi vereceğine, güvenlik sistemlerinden sosyal medya platformlarındaki önerilere kadar hayatın her alanında etkili olan algoritmalara özellikle de sosyal bilimci akademisyenler çeşitli eleştiriler yöneltmektedir. Algoritmaların teknolojik etkilerinin yanı sıra toplumsal bir güce de sahip oldukları, toplumsal gruplar arasındaki eşitsizlikleri derinleştirdikleri, yeni güç dengeleri oluşturdukları ve farklı otoriteler tarafından toplumun belli kesimlerini baskılamak için kullanıldıklarının altı çizilmektedir.

Önemli algoritma türleri

Ayrıca bakınız

Kaynakça

Algoritma: Tarihi, Uygulama, Hukuki Konular  Vikisözlük'te tanımlar Algoritma: Tarihi, Uygulama, Hukuki Konular  Commons'ta dosyalar Algoritma: Tarihi, Uygulama, Hukuki Konular  Vikikitap'ta kitaplar

Tags:

Algoritma TarihiAlgoritma UygulamaAlgoritma Hukuki KonularAlgoritma 1950den Sonraki TarihiAlgoritma lara eleştirel yaklaşımlarAlgoritma Önemli algoritma türleriAlgoritma Ayrıca bakınızAlgoritma KaynakçaAlgoritmaBilgisayarBilgisayar bilimiMatematikProgramlamaProgramlama diliSezgisel algoritma

🔥 Trending searches on Wiki Türkçe:

II. SelimMimar SinanAbbâsîlerİnsan penisiLa Liga şampiyonları listesiElon MuskUEFA Şampiyonlar LigiTaş Kağıt Makas100'ler kulübü27 NisanSabiha GökçenNecati ArabacıEurovision Şarkı Yarışması'nda TürkiyeİETTSakarya Meydan Muharebesi2024 Cumhurbaşkanlığı Türkiye Bisiklet TuruEvrim AlasyaPamukova tren kazasıYunan mitolojisiDersim İsyanıRıza SoyluParasetamolGüney KoreNominal GSYİH değerlerine göre ülkeler listesiHaçlı SeferleriYılmaz GüneyEvrenos BeyGalatasaray yabancı futbolcuları listesiTürkiye'nin ilçeleriNapolyon BonapartArka Sokaklar karakterleri listesiMahsun JHristiyanlıkKenevirTopkapı SarayıPatiswissGülşah HatunFransız DevrimiMalta eriğiSıla TürkoğluEn-Nasr (Suudi Arabistan)Âşık VeyselAli Sami Yen Spor KompleksiFacebookTürkan Şorayİlker İnanoğluGaranti BBVAİntegralBeşiktaş (futbol takımı) teknik direktörleri listesiKoç ailesiMuğla'nın ilçeleriEmniyet Genel MüdürlüğüEvrenosoğlu Ali BeyÖmer (dizi)AntalyaBilal EkşiII. OsmanNihat KahveciSerie AV. MuradI. SelimKadir MısıroğluÇernobil FaciasıMontrö Boğazlar SözleşmesiOktay KaynarcaKurtlar Vadisi karakterleri listesiEkşi SözlükUEFA Avrupa LigiUğur YıldıranNecmettin ErbakanArnavutlukKanal DSerbest Cumhuriyet FırkasıTürkiye'deki radyo istasyonları listesiAnkara MuharebesiTürk Devletleri TeşkilatıIII. Ahmed🡆 More