6.Hafta Kıyım Fonksiyonu (Hashing), BST. Doğrudan erişim tabloları Çarpışmaları ilmekleme ile çözmek Kıyım fonksiyonu seçimi Açık adresleme

Benzer belgeler
6.046J/18.401J DERS 7 Kıyım Fonksiyonu (Hashing I) Prof. Charles E. Leiserson

Arama metodlarında temel işlem anahtarları karşılaştırmaktır.

VERİ YAPILARI. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ HASH TABLOLARI.

YZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

DOSYA ORGANİZASYONU. Çarpışma çözümleme yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

Veri Yapıları. Öğr.Gör.Günay TEMÜR Düzce Üniversitesi Teknolojis Fakültesi

BMB204. Veri Yapıları Ders 9. B+ Ağacı, Hash, Heap. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

7.Hafta Dengeli Arama Ağaçları (Red - Black Tree)

YZM 2116 Veri Yapıları

Bu materyallerden alıntı yapmak veya kullanım şartları hakkında bilgi almak için:

F(A, N, K) // A dizi; N, K integer if N<0 then return K; if A[N]>K then K = A[N]; return F(A, N-1, K);

DOSYA ORGANİZASYONU. Ağaç Yapıları ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

Dosya Yapıları. (Başlangıçtan itibaren izlenen yaklaşımlar)

MATEMATİK. Doç Dr Murat ODUNCUOĞLU

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Algoritmalara Giriş Ekim 10, 2005 Massachusetts Institute of Technology Professors Erik D. Demaine ve Charles E. Leiserson. Problem Seti 3 Çözümler

Ara Sınav 1. Algoritmalara Giriş 14 Ekim 2005 Massachusetts Institute of Technology Profesörler Erik D. Demaine ve Charles E. Leiserson Kitapçık 14

IE 303T Sistem Benzetimi L E C T U R E 6 : R A S S A L R A K A M Ü R E T I M I

Yrd. Doç. Dr. Ümit ATİLA

HASH(KARMA) TABLOSU VERİ YAPISI

Final Sınavı Soruları Bahar 2018

YZM 2116 Veri Yapıları

C++ Dilinde Bazı Temel Algoritmalar

BIP116-H14-1 BTP104-H014-1

ÖSYM M TEMEL MATEMATİK TESTİ YGS / MAT. Diğer sayfaya geçiniz. 1. Bu testte 40 soru vardır.

Veri Yapıları Laboratuvarı

Olasılık, bir deneme sonrasında ilgilenilen olayın tüm olaylar içinde ortaya çıkma ya da gözlenme oranı olarak tanımlanabilir.

Bu kısımda işlem adı verilen özel bir fonksiyon çeşidini ve işlemlerin önemli özelliklerini inceleyeceğiz.

Algoritmalara Giriş 6.046J/18.401J

Gerçekten Asal Var mı? Ali Nesin

Hash Tablosu. Barış Şimşek simsek ~ enderunix. org

10. DİREKT ÇARPIMLAR

#$% &'#(# Konular. Direct File Organization. Computed Chaining Comparison of Collision Resolution Methods Perfect Hashing Cichelli s Algorithm

Final Sınavı Örnek Soruları Bahar 2018

Algoritmalar. DERS 7 Dengeli Arama Ağaçları Kırmızı-siyah ağaçlar Kırmızı-siyah ağacın yüksekliği Rotation / Dönme Insertion / araya yerleştirme

Algoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1

b) Algoritmanızın en kötü durumda işlem zamanını asimptotik olarak bulunuz

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-7 Sıralama Algoritmaları

YENİ ORTAÖĞRETİM MATEMATİK PROGRAMINA UYGUNDUR. YGS MATEMATİK 3. KİTAP MERVE ÇELENK FİKRET ÇELENK

ÖĞRENCİNİN ADI SOYADI: NUMARASI: SINIFI: KONU: Olasılık

SINAV YÖNERGESİ. Numarası : CEVAP. Adı Soyadı : ANAHTARI A) 512 B) 513 C) 256 D) 1024 E) 1025 A) 252 B) 256 C) 3024 D) 126 E) =?

A GRUBU Her bir yüzü düzgün beşgen olan düzgün 12-yüzlünün kaç ayrıtı vardır? A) 30 B) 24 C) 12 D) 36 E) 48

13.Konu Reel sayılar

Hesaplanabilen Zincirler (Computed Chaining) Kütük Organizasyonu 1

Önermeler mantığındaki biçimsel kanıtlar

Rasgele Sayıların Özellikleri

Algoritmalara Giriş Ekim 17, 2005 Massachusetts Institute of Technology Profesörler Erik D. Demaine ve Charles E. Leiserson Dağıtım 15.

Temel Kavramlar. (r) Sıfırdan farklı kompleks sayılar kümesi: C. (i) Rasyonel sayılar kümesi: Q = { a b

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1

DOSYA ORGANİZASYONU. Doğrudan erişimli dosya organizasyonu ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

A) 1 B) 10 C) 100 D) 1000 E) Sonsuz. öğrencinin sinemaya tam bir kez birlikte gidecek şekilde ayarlanabilmesi aşağıdaki n

Akademik Personel ve Lisansüstü Eğitimi Giriş Sınavı. ALES / Đlkbahar / Sayısal II / 13 Mayıs Matematik Sorularının Çözümleri

KESİN PROJE RAPORU PROJENİN ADI PROJEYİ HAZIRLAYANLAR BABÜR NEDİM ÇAĞATAY OKUL ADI VE ADRESİ DANIŞMAN ÖĞRETMEN

A GRUBU Noktaları adlandırılmış K 6 tam çizgesinin tam olarak 3 noktalı kaç tane alt çizgesi vardır? A) 9 B) 20 C) 24 D) 60 E) 160

2. REGRESYON ANALİZİNİN TEMEL KAVRAMLARI Tanım

Çakışmalar ve Çakışmaların Statik Yaklaşımlarla Çözülmesi. Kütük Organizasyonu 1

Algoritmalar. Sıralama Problemi ve Analizi. Bahar 2017 Doç. Dr. Suat Özdemir 1

Sayılar ve Altın Oranı. Mahmut Kuzucuoğlu. 16 Ağustos 2015

Pratik Ara Sınav 1 Çözümleri

EME 3117 SİSTEM SİMÜLASYONU. Rassal Sayı ve Rassal Değer. Üretimi. Rassal Sayı Üretimi

VERİ YAPILARI VE PROGRAMLAMA

Bir işaretli büyüklük sayısında en soldaki basamak bir işaret içerir. Diğer basamaklarda ise sayısal değerin büyüklüğü (mutlak değeri) gösterilir.

Yrd. Doç. Dr. Caner ÖZCAN

Tablo (2): Atıştırma Sayısı ve Günlük Sınav Sayısı Atıştırma Sınav Sayısı (X)

ÜNİTE 11 ÜNİTE 9 MATEMATİK. Kümeler. 1. Bölüm: Kümelerde Temel Kavramlar 2. Bölüm: Kümelerde İşlemler. 9. Sınıf Matematik

Çanakkale Onsekiz Mart Üniversitesi. Bilgisayar Mühendisliği Bölümü

2012 LYS MATEMATİK SORU VE ÇÖZÜMLERİ Niyazi Kurtoğlu

İÇİNDEKİLER. Mantık Kurallarının Elektrik Devrelerine Uygulanması... 14

6. Ders. Mahir Bilen Can. Mayıs 16, 2016

Veri Yapıları. Yrd. Doç. Dr. Şadi Evren ŞEKER

PERMÜTASYON, KOMBİNASYON. Örnek: Örnek: Örnek:

YAPI STATİĞİ II (Hiperstatik Sistemler) Yrd. Doç. Dr. Selçuk KAÇIN

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#2: ALGORİTMA ANALİZİ

HOMOGEN OLMAYAN DENKLEMLER

Dikkat: Bir eleman, her iki kümede de olsa bile sadece bir kez yazılır.

METASEZGİSEL YÖNTEMLER. Genetik Algoritmalar

Sayı sistemleri-hesaplamalar. Sakarya Üniversitesi

MAT 302 SOYUT CEBİR II SORULAR. (b) = ise =

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları

Ağaç (Tree) Veri Modeli

1. BÖLÜM. Sayılarda Temel Kavramlar. Bölme - Bölünebilme - Faktöriyel EBOB - EKOK. Kontrol Noktası 1

Atatürk Anadolu. Temel Kavramlar Üzerine Kısa Çalışmalar

Rasgele Sayı Üretme. Rasgele Sayıların Özellikleri. İki önemli istaiksel özelliği var :

A { x 3 x 9, x } kümesinin eleman sayısı A { x : x 1 3,x } kümesinin eleman sayısı KÜMELER

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

{ x,y x y + 19 = 0, x, y R} = 3 tir. = sonlu kümesinin 32 tane alt kümesinde

NİSAN 2010 DENEMESİ A)75 B)80 C)85 D)90 E)95 A)0 B)1 C)2 D)3 E)4

TAM SAYILARLA TOPLAMA İŞLEMİ

Ders 2: Küme Teorisi, Örnek Uzay, Permütasyonlar ve Kombinasyonlar

#$% &'#(# Konular. Binary Tree Structures. Binary Search Trees AVL Trees Internal Path Reduction Trees Deerlendirme

2011 YGS MATEMATİK Soruları

TEMEL KAVRAMLAR. a Q a ve b b. a b c 4. a b c 40. 7a 4b 3c. a b c olmak üzere a,b ve pozitif. 2x 3y 5z 84

Yrd. Doç. Dr. Caner ÖZCAN

8. HOMOMORFİZMALAR VE İZOMORFİZMALAR

C++ Dilinde Bazı Temel Algoritmalar

Web Madenciliği (Web Mining)

8. HOMOMORFİZMALAR VE İZOMORFİZMALAR

Transkript:

1 6.Hafta Kıyım Fonksiyonu (Hashing), BST Doğrudan erişim tabloları Çarpışmaları ilmekleme ile çözmek Kıyım fonksiyonu seçimi Açık adresleme

Sembol-tablosu problemi 2

Doğrudan erişim tablosu 3

4 Çözüm HASHING Hashing, elimizdeki veriyi kullanarak o veriden elden geldiği kadar benzersiz bir tamsayı elde etme işlemidir. Bu elde edilen tamsayı, dizi şeklinde tutulan verilerin indisi gibi kullanılarak verilere tek seferde erişmemizi sağlar.

5 HASHING (KIYIM FONKSİYONU)

6 Çarpışmaları ilmeklemeyle (Chaining) çözme

7 İlmeklemede Ortalama Durum Çözümlemesi

Arama maliyeti 8

9 Bir kıyım fonksiyonu seçmek Basit tek biçimli kıyımlamanın varsayımını garanti etmek zordur, ama eksikliklerinden kaçınılabildiği sürece pratikte iyi çalışan bazı ortak teknikler vardır. İstenilenler: İyi bir kıyım fonksiyonu, anahtarları tablonun yuvalarına tek biçimli dağıtabilmelidir. Anahtar dağılımındaki düzenlilik bu tek biçimliliği etkilememelidir.

10 Bölme metodu m=2 6

11 Bölme metodu Not: m çift ve değerlerde çift sayı ise anahtarların hepsi aynı yuvayı işaret eder. Tek sayılı yuvalara hiçbir zaman kıyım olmaz. Yuvaların yarısı boş olur. m yi asal seçmek daha uygundur ama her zaman değil, asal sayı 2 ve 10 nun kuvvetlerine yakın olmazsa iyidir.

Çarpma metodu 12

Çarpma metodu örneği 13 9523 89 107 Burada A kesirli sayı düşünüldü (A=11/2) mod 2 w alınırsa bu kısım ihmal edilir. Düşük değerli bitler kalır. Eğer A, örneğin tek sayı ise ve ikinin kuvvetlerinden birine çok yakın değilse, atamayı başka bir yerdeki farklı yuvaya yapar. Böylece etrafta dolaşırken k çok büyük bir değerse, k çarpı A çevrede k kere döner.

Çarpma metodu örneği 14

Açık adresleme ile çarpışmaları çözmek 15 Tablo dolabilir olduğundan n<=m olmalıdır. Tablo dolarsa her yerde arama yapmak zorunda kalırız ve aradığımız elemanı bulamayabiliriz.

Açık adresleme için örnek 16

Açık adresleme için örnek 17

Açık adresleme için örnek 18

Açık adresleme için örnek 19

20 Sondalama (Probing) Stratejileri Doğrusal Sondalama (Linear Probing) h(k,i) = (h (k) + i) mod m h(k,0) İkinci Dereceden Sondalama(Quadratic probing) h(k,i) = (h (k) + c 1 i + c 2 i 2 ) mod m Çift Kıyım (Double hashing) h(k,i) = (h1(k) + i*h2(k)) mod m

Sonda stratejileri 21

22 Hash fonksiyonları Çakışmanın giderilmesi (Linear Probing) Aynı pozisyona gelen ikinci kayıt ilgili pozisyondan sonraki ilk boş pozisyona yerleştirilir. Ekleme: Boş bir alan bulunarak yapılır. Silme/Erişim: İlk boş alan bulunana kadar devam edebilir.

Sonda stratejileri 23

24 Hash fonksiyonları Çakışmanın giderilmesi (Linear Probing) Linear Probing metodunun avantajları / dezavantajları Bağlı listeler gibi ayrı bir veri yapısına ihtiyaç duyulmaz. Kayıtların yığın şeklinde toplanmasına sebep olur. Silme ve arama işlemleri için gereken zaman aynı hash değeri sayısı arttıkça artar.

25 Hash fonksiyonları Çakışmanın giderilmesi (Quadratic Probing) Aynı pozisyona gelen ikinci kayıt Quadratic Fonksiyonla yerleştirilir. En çok kullanılan hash fonksiyonu h(k,i) = (h (k) + c 1 i + c 2 i 2 ) mod m Burada h, yardımcı hash fonksiyonu, c 1 ve c 2 0 ve i = 0, 1,..., M-1. Sondalamanın başlangıç posizyonu: t = [h (k)] h(k,i) = (t + c 1 i + c 2 i 2 ) mod m

Hash fonksiyonları Çakışmanın giderilmesi (Quadratic Probing) 26

27 Hash fonksiyonları Çakışmanın giderilmesi (Quadratic Probing) Quadratic Probing metodunun avantajları / dezavantajları Anahtar değerlerini linear probing metoduna göre daha düzgün dağıtır. Yeni eleman eklemede tablo boyutuna dikkat edilmezse sonsuza kadar çalışma riski vardır.

Sonda stratejileri 28

29 Teoremin açılımları Ya da M=2 d ve h 2 çift sayı üretecek şekilde tasarlanabilir M asaldır ve h 2, M den daha küçük pozitif tam sayı üretecek şekilde tasarlanır.

Çifte Kıyımlama Teoremin kanıtlanması 30

31 Teoremin kanıtlanması Başlangıçta 1 sondalama olacaktır. n/m çarpışma olacaktır. 2.sondada çarpışma olasılığı (n-1)/(m-1) olacaktır. Böyle devam eder.

32 Teoremin açılımları

33 Hash fonksiyonları Çakışmanın giderilmesi (Double Hashing) Double Hashing metodunun avantajları / dezavantajları Çok iyi bir kıyım fonksiyonudur Anahtar değerlerini linear probing metoduna göre daha düzgün dağıtır ve gruplar oluşmaz. Quadratic probing metoduna göre daha yavaştır çünkü ikinci bir hash fonksiyonu hesaplanır. K (H ç

34 K (H ç

35 K (H ç

36 Evrensel Kıyım Double Hashing metodunun avantajları / dezavantajları Çok iyi bir kıyım fonksiyonudur Anahtar değerlerini linear probing metoduna göre daha düzgün dağıtır ve gruplar oluşmaz. Quadratic probing metoduna göre daha yavaştır çünkü ikinci bir hash fonksiyonu hesaplanır. K (H ç

K (H ç 37 Evrensel Kıyım Dezavantajı: k i değeri tablo boyutundan büyük olabilir. Bu yüzden tablo boyutunu k i değerinden büyük seçilmeli

38 Mükemmel Kıyım Şu ana kadar yaptıklarımız beklenen zamanda başarımla ilgiliydi. Kıyım, beklenen süre bağlamında iyi bir uygulama. Mükemmel kıyım ise şu sorulara ilgilenir: Farz edin ki size bir anahtar kümesi verildi ve bana statik bir tablo oluşturmanız istendi. Böylece en kötü zamanda tabloda anahtarı arayabileyim. K (H ç Bir iyi birde en kötü zamanda. Dolayısıyla elimde sabit bir anahtar kümesi var. Aynı İngilizcedeki en sık kullanılan 100 veya 1000 sözcük gibi bir şey.

39 Mükemmel Kıyım Bir sözcük ele alındığında, sözcüğün İngilizcede sık kullanılıp kullanılmadığına tabloya bakarak hızlı bir şekilde anlamalıyız. Bu işi beklenen başarımla değil de garantilenmiş en kötü durum zamanında yapabilmeliyiz. Problem şu; verilen n adet anahtar için statik bir kıyım tablosu yaratmak. Diğer bir deyişle, yeni girdi veya silme yapılmayacak. Sadece elemanları oraya koyacağız. Büyüklüğü ise, m = O(n). m = O(n) boyutunda bir tablo ve en kötü durumda arama O(1) zamanı alacak. Ortalama durumu biliyor olacağız, bu çok zor değil, ama en kötü durumda değerlerin yığılıp, fazla zaman kaybına neden olacağı bir nokta olmayacağından emin olmalıyız. Herhangi bir noktada bu olmamalı; her bir arama O(1) zamanında olmalı. K (H ç

40 Mükemmel Kıyım Buradaki fikir iki aşamalı bir veri tanımlaması yapmaktır. Fikir, kıyım yapmak; bir kıyım tablomuz olacak, yuvalara kıyım yapacağız, ancak zincirleme işlemini kullanmak yerine ikinci bir kıyım tablosu daha olacak. İkinci tabloya ikinci bir kıyım daha yapacağız. Ve buradaki fikir ikinci düzeyde hiç çarpışma olmadan kıyım yapmak. Dolayısıyla birinci düzeyde çarpışma olabilir. Birinci tabloda çarpışan her şeyi ikinci düzeydeki tabloya koyacağız, ama bu tabloda çarpışma olmayacak. Dolayısıyla evrensel bir kıyım fonksiyonu bulalım. Rastgele bir fonksiyon seçiyoruz. Yapacağımız bu düzeye yani ilk düzeye kıyım yapmak. K (H ç

41 Mükemmel Kıyım Bundan sonra iki şeyi takip edeceğiz. Birincisi, diğer düzeydeki kıyım tablomuzun büyüklüğü. Bu durumda, kıyım tablomuzun büyüklüğünü yuva sayısıyla adlandıracağız. Örneğin 1. düzeyde kıyım fonksiyonu 1. yuvaya sondalansın ve değeri 4 olsun. İkinci düzey içinse farklı bir kıyım anahtarı kullanacağız. Dolayısıyla, ikinci düzeyde her yuvanın farklı bir kıyım fonksiyonu olacak. Mesela, bir yuva rastgele seçilmiş 31 değerini taşıyabilir. Sonra, kıyım tablosuna bir işaretçi koyayım; buna büyük S1 diyeyim. Bu 4 yuvaya sahip olacak ve 14 ile 27 yi saklayacak. Bu h(14) =h(27) o da 1 e eşit. Çünkü birinci yuvadayız. Şimdi bu ikisi birinci düzeyde kıyım tablosunda aynı yuvaya kıyılıyor. Bu birinci düzeyde.. K (H ç

K (H ç 42 Hash fonksiyonları Çakışmanın giderilmesi (Double Hashing) m i a i

43 Mükemmel Kıyım Buradaki de ikinci düzey. Yani 14 ve 27 birinci seviyede çarpıştılar ve aynı yuvaya gittiler. Ancak ikinci seviyede farklı yuvalara kıyıldılar. Seçtiğim kıyım fonksiyonu seçtiğim rastgele sayılara göre anahtar listesi oluşturarak bu yapıyı yarattı. İkinci düzeyde, h 31 (14) sayısı için, 1 e eşit ve h 31 (27) sayısı için 2 değerlerini aldı. Eğer kıyım tablosunun i. yuvasına kıyılan n i tane elaman varsa, ikinci düzeydeki tabloda m i sayıda yuva kullanırız ve burada m i, n i nin karesi kadar yuvaya eşit olarak seçilir. Örnek olarak, 2 elemanım varsa 4 büyüklüğünde bir kıyım tablom olur. 3 elemanım varsa 9 yuvalı bir kıyım tablosuna ihtiyacım olur. K (H ç

44 Mükemmel Kıyım Örnek : K={10,22,37,40,52,60,70,72,75} 9 elamanlı bir anahtar kümesi mod yani m=n=9 olur. Hash fonksiyonumuz: h(k)=((a*k+b) mod p) mod m a=3, b=42, p =101, m=9 (a ve b değerleri 0-101 arasında rastgele üretilen sayılar) Öncelikle ilk kıyım tablomuzda çakışmaların sayısını bulalım h(10)=0 h(60)=2 h(72)=2 h(75)=2 h(70)=5 h(22)=7 h(37)=7 h(40)=7 h(52)=7 0. ve 5. indiste 1 çakışma 2. indiste 3 çakışma 7. indiste 4 çakışma n i 0 1 1 2 3 3 4 5 1 6 7 4 8 K (H ç

45 Mükemmel Kıyım Çakışmaları bulduktan sonra tek çakışmaya sahip değerler için a i ve b i değerlerini 0, diğerleri için ise 0-p arasında random seçelim, 2.kıyım (S i )tablosunun büyüklüğü ise m i =n i2 olacak 2.kıyım fonksiyonunda çakışma olmayacak şekilde yapılandıralım h i (k)=((a i *k+b i ) mod p) mod m i n i m i a i b i 0 1 1 0 0 1 2 3 9 10 18 3 4 5 1 1 0 0 10 0 S 0 60 72 75 0 1 2 3 4 5 6 7 8 70 0 S 5 S 2 6 7 4 16 23 88 8 40 52 22 37 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 S 7

İkili Arama Ağaçları (BST) Rastgele yapılanmış ikili arama ağaçları Beklenen düğüm derinliği Yüksekliği çözümlemek 46

İkili-arama-ağacı sıralaması 47

BST sıralaması çözümlemesi 48

Düğüm derinliği 49

Ağacın beklenen yüksekliği 50

Dengeli arama ağaçları

7.Hafta Dengeli Arama Ağaçları (Red - Black Tree) Kırmızı-siyah ağaçlar Kırmızı-siyah ağacın yüksekliği Rotation / Dönme Insertion / araya yerleştirme