SEQUENCE ALGORİTMASI Bilgisayar programlamanın üç temel mantık yapısından biridir. Diğer ikisi ise Seçilim(Selection) ve Döngü(Loop, Iteration)dür. Bir dizi yapısı içinde, bir eylem ya da bir olay, geçmiş bir komut içinde sonraki komuta yol açar. Dizi, herhangi bir sayıda eylem içerebilir ama hiçbir eylem dizi içinde atlanamaz. Program çalıştığı zaman komuttaki her eylemin, bir eylem kaçırma veya başka bir eyleme dallanma olasılığı olmadan gerçekleşmesi gerekir. Hesaplama ihtiyacı ne kadar karışıksa yapıların kombinasyonu da o kadar karışıktır. SEQUENCING(SIRALAMA) Örneğin, basit bir diş fırçalama algoritması şu adımlardan oluşur; Diş macununu diş fırçası üstüne koymak, Diş fırçalamak için diş fırçasını kullanmak, Diş fırçasını temizlemek, Ağzı temizlemek. i. Her adım yerine getirilmiş bir komut. ii. Sequencing(Sıralama) tüm adımların gerçekleştiği bir komut düzenidir. SIRALAMA(SEQUENCING) NEDEN ÖNEMLİ? Algoritmadaki adımların doğru düzende uygulanması çok önemli. Öteki türlü algoritma düzgün çalışmayacaktır. Diş fırçalama algoritmasındaki adımların aşağıdaki gibi olduğunu varsayalım; i. Diş fırçalamak için diş fırçasını kullanmak, ii. Diş macununu diş fırçası üstüne koymak, iii. Ağzı temizlemek, iv. Diş fırçasını temizlemek. SEQUENCE(DİZİ) ALGORİTMASI Dizi Algoritması (Sequence Algorithm) Karşılaştırma Merkezli (Comparison Based) Kanıt Merkezli (Index Based) Teyit Merkezli (Predicate Based) Dizi algoritması, bir ya da birden çok doğrusal dizi isteyen bir algoritmadır.
Index Based Sequence Algorithm (Kayıt Merkezli Dizi Algoritması) Sequence Algorithm (Dizi Algoritması) Index Based (Kanıt Merkezli) Sequence Rotation (Dönüşüm Dizisi) Sequence Reversal (Dönüştürme Dizisi) Sadece dizi içindeki pozisyonları işleten dizi algoritmasıdır. Predicate Based Sequence Algorithm (Teyit Merkezli Dizi Algoritması) Dizi içindeki değerlere verilen teyit uygulama sonuçlarına bağlı hesaplanan bir dizi algoritmasıdır.
Comparison Based Sequence Algorithm (Karşılaştırma Merkezli Dizi Algoritması) Karşılaştırma merkezli dizi algoritması, dizi içindeki çift değerler arasında karşılaştırmaya bağlı olan dizi algoritmasıdır. Karşılaştırma işlemcisine bağlı olan bir algoritma, ya önceden tanımlanmış ya da algoritmaya geçmiş olandır. Bir diğer durumda karşılaştırma işlemcisi, dizinin değer türleri içinde kesin sıralamayı hesaplamalı. Sequence Sorting Algorithm (Dizi Sıralama Algoritması) Heap Sort(Yığınlama Sıralaması) Özel ağaç yapısı ile eleman kümesindeki değerlerin kümeleme işlemi yapılmasıyla ortaya çıkan sıralama algoritmasıdır. Türkçeleştirildiğinde 'yığınlama sıralaması', 'kümeleme sıralama', 'öbek sıralama' gibi isimlerle karşımıza çıkmaktadır.
Merge Sort (Birleştirme Sıralaması) Diziyi ardışık olarak en küçük alt dizilerine kadar yarılayan sonra da onları sıraya koyarak bireştiren özyinemeli bir algoritmadır. Yarılama işlemi en büyük alt dizi en çok iki öğeli olana kadar sürer. Quick Sort (Hızlı Sıralama) Quick sort algoritması, sıralanacak bir diziyi daha küçük iki parçaya ayırıp oluşan bu küçük parçaların kendi içinde sıralanması mantığıyla çalışır. Algoritma adımları şu şekilde özetlenebilir: Diziden herhangi bir elemanı pivot(kilit) eleman olarak seçer.
Sequence Selection Algorithm (Dizi Genetik Algoritması) Gelecek nesilleri üretmek için kullanılacak genomların seçildiği genetik algoritma aşamasıdır. Seçilim süreci genel olarak aşağıdaki gibi gerçekleşebilir: Genetik algoritması, oluşturulacak bir sonraki nesil için çaprazlanacak bireylerin belirlenmesinde kullanılır. Seçilecek bireyler ve uygunlukları aşağıdaki tabloda gösterilmiştir:
RULET TEKERİ SEÇİM YÖNTEMİ Bu seçim yönteminde bireylerin seçilme olasılıkları uygunluk fonksiyonlarıyla orantılıdır. Örnek olarak verilen bireylerin seçilme olasılıkları bu seçilim yöntemi uyarınca aşağıdaki gibi olacaktır: RÜTBE SEÇİM YÖNTEMİ Bu seçilim yönteminde bireylerin seçilme olasılıkları uygunluk derecelerinin sıralamasıyla orantılıdır. Örnek olarak verilen bireylerin bu seçilim yöntemine göre seçilme olasılıkları aşağıdaki gibi olacaktır: