İçeriğe atla

Treap

Treap ya da tree heap (ağaç öbeği), arama, ekleme, silme gibi temel işlemler için log(n) zamanı garanti eden dinamik bir ikili arama ağacıdır. İkili arama ağacına sıralı şekilde ekleme yapılırsa binary arama ağacı bağlantılı listeye dönüşür ve arama ancak O(n) zamanda yapılabilir. Bu durumu ortadan kaldırmak için treap her düğümde binary arama ağacında kullanılan asıl değere ek olarak bir de rastgele olusturulmus bir anahtar tutar. Treap veri yapısı hem asıl değere göre veri ağacının kurallarına uyularak hem de rastgele anahtar ata düğümden küçük olacak şekilde kurulur.

Treap ilk defa Cecilia R. Aragon ve Raimund Seidel tarafından 1989 yılında önerilmistir.[1][2] Treap adı İngilizce ağaç anlamına gelen "tree" ve öbek anlamına gelen "heap" sözcüklerinin birleştirilmesinden oluşmuştur. Treap oluşturulurken ağaç yapısını bozmayacak şekilde işlemler icra edilir ardından treap'in heap yapısını bozmamak adına gerekli düzeltmeler sağa veya sola döndürme (right or left rotate) işlemleri ile yapılır.

Treap değerlerin rastgele anahtarlara göre sıralı olarak eklenmesi şeklinde de düzeltme işlemleri yapılmadan oluşturulabilir.

Bütün değerleri rastgele bir sirayla eklenmis bir ağaçta rastgele secilen bir elemana uzaklik O(log n)'dir. Kok dugumden secilen herhangi bir baska elemana gidilirken su an bulundugumuz elemanin altinda n elaman oldugunu varsayalim. Su anki elamanin bizim aradigimiz elaman olma olasiligi n elaman rastgele bicimde dagildigindan 1/n'dir.Sol alt agac p-1 eleman barindirdigindan ayni mantikla gitmek istegimiz elemanin orada olma olasiligi p-1/n'dir. Ayni sekilde sag alt agac n-p dugum barindirdigindan olasilik n-p/n'dir. Bir adimda gelinecek alt agac buyuklugunun beklenen degeri (p-1)·(p-1)/n + (n-p)·(n-p)/n + (1·1/n) olarak ortaya cikar. P'nin butun degerleri 1 ile n arasinda esit olasılıkla dagildigindan her adımda ziyaret edilecek agac buyuklugude ayni sekilde dagilir. Yukaridaki ifadenin 1'den n'e kadar degerlerinin n ile bolumu: (1/n)∑ (p-1)2/n + (n-p)2/n + 1 = (1/n)((2/3)n2 - n + 4/3) = (2/3)n + O(1/n) seklinde ortaya cikar.[3] Bu ifadeninde gosterdigi gibi, O(log 3/2n) adimda istenilen noktaya ulasilmasi beklenir. Bu sebepten ekleme, silme ya da arama islemlerinin O(log n) zamanda yapilabilir.

Operasyonlar ve işlemler

Arama

Arama islemi ikili arama agacindaki gibi anahtar degerleri goz ardi edilerek yapılır.

Ekleme

Bir x degerini agaca eklemek icin rastgele olacak sekilde bir p anahtar degeri uretilir. Agaca ikili arama yapildiktan sonra uygun dugumde yeni bir yaprak dugum olusturulur.Bu noktadan sonra p degeri dugumun atasindan kucuk olana kadar saga ya da sola dondurme islemi dugum uzerinde uygulanir. Boylece hem agac yapisi hem de heap ozelligi korunmus olur.

Silme

Bir x degerini agactan silmek icin once ikili arama yapilarak dugumun yeri tespit edilir. Eger dugum bir yaprak dugumse silinir. Eger degilse tek cocugu varsa aralarinda dondurme islemi uygulanarak dugum yaprak dugum haline getirilir. Eger birden fazla çocuk varsa p degerine gore uygun olan çocuk secilerek dondurme islemi uygulanir. Bu islemler dugum yaprak dugum oluncaya kadar devam eder.

Treap'in bölünmesi

Bir Treap istenilen bir noktadan iki ayri treap'e bolunmek istendiginde iki farkli durum ortaya cikar. Bolunmenin istendigi deger treapte mevcut degilse o deger en yuksek anahtar degeriyle treap'e eklenerek degerin kok dugum olmasi saglanir. Ardindan dugumun sol cocugu ve sag cocugu iki ayri treap olarak kok dugumden baglantilari koparilir. Deger Treapin icinde ise degerin bulunmasina mutakip deger uygun dondurme islemleriyle kok dugum yapılır. Kok dugumun sol ya da sag cocugunun kok ile baglantisi koparilarak ayri bir treap olarak kullanilabilir. Bu islem basitce bir ekleme islemi yapmakla ayni zamanda yani O(log n) zamanda tamamlanir.

Bölünen Treaplerin birleşmesi

Iki treap birlestirilirken on sart olarak bir treap'teki en buyuk degerin obur treapteki en kucuk degerden kucuk oldugu kabul edilir. Ilk treapteki en buyuk elemandan buyuk diger treapteki en kucuk elemandan kucuk olacak sekilde bir x degeri agaca en kucuk anahtar degeriyle eklenir (sol çocuk ve sag çocuk treap kok dugumleri olacak sekilde). Ekleme isleminden sonra bu dugum yaprak dugum olacagindan kolayca silinir ve elimizde birlesmis bir treap kalir. Bu islemde bolunme islemi gibi ekleme islemi kadar yani O(log n) zamanda tamamlanir.

Eleman sayısı

Ikili arama agaclarinda kullanilan lokal bir degiskeni ekleme basarili oldugunda arttirmak ve silme islemi basarili oldugunda azaltmak bolunme ve birlesme islemleri sonrasi treap icin hatali sonuc verir. Bu yaklasimin yerine her dugumde sag ve sol çocuk sayilari tutulmali ve bu sayilar dondurme islemleri sonunda guncellenmelidir. Bu yontemle hatasiz bir bicimde treapin eleman sayisi bolunme ve birlesme islemleri sonucu O(1) zamanda ogrenilebilir.

Kaynakça

  1. ^ [1] 7 Ekim 2012 tarihinde Wayback Machine sitesinde arşivlendi. Aragon, Cecilia R.; Seidel, Raimund (1989), "Randomized Search Trees", Proc. 30th Symp. Foundations of Computer Science (FOCS 1989), Washington, D.C.: IEEE Computer Society Press, pp. 540–545, doi:10.1109/SFCS.1989.63531, ISBN 0-8186-1982-1
  2. ^ [2] 29 Ağustos 2012 tarihinde Wayback Machine sitesinde arşivlendi. Seidel, Raimund; Aragon, Cecilia R. (1996), "Randomized Search Trees", Algorithmica 16 (4/5): 464–497, doi:10.1007/s004539900061
  3. ^ [ http://www.cs.cornell.edu/Courses/cs312/2003sp/lectures/lec26.html 26 Ağustos 2012 tarihinde Wayback Machine sitesinde arşivlendi.] treap lecture

Yararlı kaynaklar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">JavaScript</span> programlama dili

JavaScript, HTML ve CSS ile birlikte World Wide Web'in temel teknolojilerinden biri olan programlama dilidir. Web sitelerinin %97'sinden fazlası, web sayfası hareketleri için istemci tarafında JavaScript kullanırlar ve kullanılan kodlar genellikle üçüncü taraf kitaplıkları içerir. Tüm büyük web tarayıcılarında, kaynak kodunu kullanıcıların cihazlarında yürütebilmek için özel bir JavaScript motoru bulunur.

<span class="mw-page-title-main">Asal sayı</span> sadece iki pozitif tam sayı böleni olan doğal sayılardır

Bir asal sayı, yalnızca 1'den büyük olup kendisinden küçük iki doğal sayının çarpımı olarak ifade edilemeyen bir doğal sayıdır. 1'den büyük ve asal olmayan doğal sayılara bileşik sayı adı verilir. Örneğin, 5 bir asal sayıdır çünkü onu bir çarpım olarak ifade etmenin mümkün olan yolları, 1 × 5 veya 5 × 1, yalnızca 5 sayısını içermektedir. Ancak, 4 bir bileşik sayıdır çünkü bu, her iki sayının da 4'ten küçük olduğu bir çarpım şeklindedir. Asal sayılar, aritmetiğin temel teoreminden ötürü sayı teorisi alanında merkezi öneme sahiptir: 1'den büyük her doğal sayı, ya bir asal sayıdır ya da asal sayıların çarpımı olarak, sıralamalarından bağımsız bir şekilde, benzersiz olarak çarpanlarına ayrılabilir.

<span class="mw-page-title-main">Totient</span>

Totient sayılar teorisinde, bir tam sayının o sayıdan daha küçük ve o sayı ile aralarında asal olan sayma sayı sayısını belirten fonksiyondur. Genellikle Euler Totient ya da Euler'in Totienti olarak adlandırılan Totient, İsviçreli matematikçi Leonhard Euler tarafından yaratılmıştır. Totient fonksiyonu, Yunan harflerinden ile simgelendiği için Fi fonksiyonu olarak da anılabilir.

<span class="mw-page-title-main">Transport Layer Security</span> Internet Şifreleme Protokolü

Taşıma Katmanı Güvenliği (TLS) ve onun öncülü/selefi olan Güvenli Soket Katmanı (SSL), bilgisayar ağı üzerinden güvenli haberleşmeyi sağlamak için tasarlanmış kriptolama protokolleridir. X.509 sertifikalarını kullanırlar ve bundan dolayı karşı tarafla iletişime geçeceklerin kimlik doğrulaması asimetrik şifreleme ile yapılır ve bir simetrik anahtar üzerinde anlaşılır. Bu oturum anahtarı daha sonra taraflar arasındaki veri akışını şifrelemek için kullanılır. Bu, mesaj/veri gizliliğine ve mesaj kimlik doğrulama kodları için mesaj bütünlüğüne izin verir. Protokollerin birçok versiyonu ağ tarama, elektronik mail, İnternet üzerinden faks, anlık mesajlaşma ve İnternet üzerinden sesli iletişim gibi uygulamalarda yaygın olarak kullanılmaktadır. Bu durumda/içerikte/bağlamda en önemli özellik iletme gizliliğidir. Bundan dolayı kısa süreli oturum anahtarı, uzun süreli gizli simetrik anahtardan türetilememelidir.

Örnekleme istatistikte belirli bir yığından alınan kümeyi ifade eder. Örneğin; Türkiye'deki tüm üniversite sayıları bir yığın iken Ankara'daki üniversite sayısı bu yığından alınmış bir örnektir.

Varyans Analizi istatistik bilim dalında, grup ortalamaları ve bunlara bağlı olan işlemleri analiz etmek için kullanılan bir istatistiksel modeller koleksiyonudur. Varyans Analizi kullanılmaktayken belirlenmiş bir değişkenin gözlemlenen varyansı farklı değişim kaynaklarına dayandırılabilen varyans bileşenine ayrılır. En basit şekliyle varyans analizi birkaç grubun ortalamalarının birbirine eşit mi eşit değil mi olduğunu sınamak için bir çıkarımsal istatistik sınaması olur ve bu sınama iki-grup için yapılan t-test sınamasını çoklu-gruplar için genelleştirir. Eğer, çoklu değişkenli analiz için birbiri arkasından çoklu iki-örneklemli-t-sınaması yapmak istenirse bunun I. tip hata yapma olasılığını artırma sonucu doğurduğu aşikardır. Bu nedenle, üç veya daha fazla sayıda ortalamaların ististiksel anlamlığının sınama ile karşılaştırılması için Varyans Analizleri daha faydalı olacağı gerçeği ortaya çıkmaktadır.

<span class="mw-page-title-main">Geyik</span> geyikgiller familyasındaki gevişgetiren memeliler

Geyik, geyikgiller familyasında geviş getiren otobur memeli hayvanların ortak adıdır. Çift toynaklılar takımında bulunan akraba familyalardaki benzer hayvanlar da genel olarak geyik diye adlandırılmaktadır.

<span class="mw-page-title-main">Birleştirmeli sıralama</span>

Birleşmeli Sıralama, bilgisayar bilimlerinde derecesinde karmaşıklığa sahip bir sıralama algoritmasıdır. Girdi olarak aldığı diziyi en küçük hale gelene kadar ikili gruplara böler ve karşılaştırma yöntemi kullanarak diziyi sıralar.

<span class="mw-page-title-main">Toplama</span> aritmetik işlem

Toplama işlemi dört ana aritmetik işlemden biridir. Diğer aritmetik işlemler çıkarma, çarpma ve bölmedir. İki doğal sayının toplaması sayı değerlerinin toplamını üretir. Yandaki resimdeki örnek, toplamda beş elma oluşturan üç elma ve iki elmanın toplamasını göstermektedir. Bu gözlem, matematik ifadesi ile "3 + 2 = 5" olarak ifade edilir

DrCrypt şifreleme algoritması, temel XOR(Özel Veya) işlemine dayanır. DrCrypt, hızlı ve güvenilir olmak üzere geliştirilmiştir. 1 adet 2048 elemandan oluşan "Bilgi Gölgeleyici" sabitler dizisine sahiptir. İçeriği tahmin edilmesi yüksek bilgilerin açıklarını kapatmak ve bu sisteme fazladan güvenlik getirmek için eklenmiştir.
DrCrypt, kullanıcının belirttiği şifreden 32 adet sabit şifreleme anahtarı ve her bilgiye sırasına özel ve benzersiz(teoride) bir "Uzunluk Damgası" atar. Sabit dizi elemanları("Bilgi Gölgeleyiciler") bu damganın oluşturulmasında kullanılır.
DrCrypt algoritmasında şifreleme ve çözme işlemleri aynı yolla yapılır. Şifreleme işlemi için önce bilgi "Uzunluk Damgası" ile XOR(Özel Veya) işlemine sokulur. Daha sonra sırası gelen şifreleme anahtarı("32'li ") ile XOR(Özel Veya) işlemine sokulur.

Değerleyici güvenebilirliği, değerleyiciler arasında uyuşma veya konkordans değerleyiciler arasında bulunan uyuşma derecesini ölçmek amacı ile kullanılan istatistiksel yöntemleri kapsar.

<span class="mw-page-title-main">Geometrik medyan</span>

Geometrik medyan bir Öklid uzayında bulunan aralıklı set halindeki örneklem noktaları, bu noktalar arasındaki uzaklıkların toplamını en küçük (minimum) yapan bir nokta olarak tanımlanır. Tek boyutlu veri serisi içinde veri noktaları arasında uzaklıkları minimum yapma özelligi olan medyanın, çok boyutlu veri uzayında karşıtı olup, bir çokdeğişirli merkezsel konum ölçüsü olur. Geometrik medyan için kullanılan diğer adlar Fermat-Weber noktası veya 1-medyan olur.

Genetik bağlantı, belli genetik konumların (lokusların) veya gen alellerin beraberce kalıt olmaları durumdur. Aynı kromozom üzerindeki genetik lokuslar birbirine fiziksel olarak bağlıdırlar, bu yüzden mayoz bölünmede alellerin ayrışması sırasında, bunlar beraber kalma eğiliminde oldukları için bağlantılı oldukları söylenir. Farklı kromozomlardaki gen alelleri bağlantılı değillerdir, mayoz sırasında kromozomların bağımsız tertiplenmelerinden dolayı.

<span class="mw-page-title-main">Doğrusal denklem dizgesi</span>

Doğrusal denklem dizgesi, birkaç tane aynı tip değişkenleri içeren birkaç tane doğrusal denklemlerin oluşturduğu topluluktur. Örneğin:

Sayı teorisinde, asal çarpanlara ayırma bir bileşik sayının, çarpıldıklarında yine aynı sayıyı verecek şekilde, bir ve kendisi dışındaki bölenlerine ayrılmasıdır.

İlişkisel veritabanı, 1970 yılında Edgar Frank Codd tarafından önerildiği gibi, organizasyonu ilişkisel veri modeline dayanan bir dijital veritabanıdır. İlişkisel veritabanlarını korumak için kullanılan çeşitli yazılım sistemleri bir ilişkisel veritabanı yönetim sistemi (RDBMS) olarak bilinir. Neredeyse tüm ilişkisel veritabanı sistemleri, sorgulama ve veritabanının bakımı için dil olarak SQL(Structured Query Language) kullanmaktadırlar.

Kriptografi 'de bir 'Lamport imzası' veya 'Lamport bir defalık imza şeması' dijital imza oluşturmak için kullanılan bir yöntemdir. Lamport imzaları, kriptografik olarak güvenli herhangi bir tek yönlü fonksiyon ile oluşturulabilir; genellikle bir Kriptografik özet fonksiyonu kullanılır.

Kriptografide, biçim korumalı şifreleme, çıktı ve giriş aynı formatta olacak şekilde şifreleme anlamına gelir. "Biçim" in anlamı değişir. Biçimin anlamı için tipik olarak sadece sonlu alanlar tartışılır, örneğin:

Benaloh kriptosistemi 1994 yılında Josh (Cohen) Benaloh tarafından oluşturulan Goldwasser-Micali şifreleme sisteminin bir genişletilmesidir. Goldwasser-Micali'de bitler tek tek şifrelenirken, Benaloh Kriptosisteminde veri blokları grup olarak şifrelenmektedir. Orijinal makaledeki küçük bir hata Laurent Fousse et al. 'da düzeltilmiştir.

Hick kanunu veya Hick-Hyman yasası, İngiliz ve Amerikalı psikologlar William Edmund Hick ve Ray Hyman'ın adını taşıyan; bir kişinin olası seçimler sonucunda bir karar vermesi için geçen süreyi açıklayan kanundur. Buna göre seçimlerin sayısını artırmak karar süresini logaritmik olarak artırmaktadır. Hick-Hyman yasası, seçim tepkisi deneylerinde bilişsel bilgi kapasitesini değerlendirir. Hick-Hyman yasasında belirli bir miktarda biti işlemek için harcanan zaman miktarı, bilgi edinme oranı olarak bilinir.