Konular. Sequential File Organization. Direct File Organization #$% &'#(# Binary Search Interpolation Search Self-Organizing Sequential Search



Benzer belgeler
#$% &'#(# Konular. Direct File Organization. Progressive Overflow Buckets Linear Quotient Brent s Method Binary Tree

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

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

Sıralı Erişimli Dosyalar. Kütük Organizasyonu 1

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

#$% &'#(# Konular. Hashing Techniques and Expandable Files. Background Extendible Hashing Dynamic Hashing Linear Hashing Deerlendirme

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

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

#$% &'#(# Konular. Bits of Information. Binary Özellikler Superimposed Coding Signature Formation Deerlendirme

#$% &'#(# Konular. B-Tree and Derivatives. B-Trees B#-Trees B+-Trees Deerlendirme

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

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

DOSYA ORGANİZASYONU. Sıralı erişimli dosya organizasyonu yöntemleri Ö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)

VERİ YAPILARI VE PROGRAMLAMA

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

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

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

,$( -./(,$( 0$0$ (,$(

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

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

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

#$% &'#(# Konular. Giri Amaç Metrics Computational Complexity Veritabanı Yönetim Sistemleri Veri Depolama Aygıtları Primary ve Auxilary Memory

Fiziksel Tasarım Konuları. Dosya Organizasyon Teknikleri Kayıt Erişim Yöntemleri Veri Yapıları

BM-311 Bilgisayar Mimarisi

! " # $ % & '( ) *' ' +, -. / $ 2 (.- 3( 3 4. (

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ü

Alıştırma 1: Yineleme

YZM 2116 Veri Yapıları

Ağaç Yapıları (Tree Structures) Kütük Organizasyonu 1

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

BMB204. Veri Yapıları Ders 12. Dizgi Eşleme (String Matching) Algoritmaları İleri Veri Yapıları

Algoritmalar. Doğrusal Zamanda Sıralama. Bahar 2017 Doç. Dr. Suat Özdemir 1

BIL222 Veri Yapıları ve Algoritmalar

Sanal Bellek (Virtual Memory)

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

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

Dosyalarda Farklı Yaklaşımlar. Kütük Organizasyonu 1

Algoritmaların Karşılaştırılması. Doç. Dr. Aybars UĞUR

! " # $ % & '( ) *' ' +, -. /.,

Final Sınavı Örnek Soruları Bahar 2018

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

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

BIP116-H14-1 BTP104-H014-1

KONTROL SSTEMLER LABORATUARI

ASP.NET Web Uygulamalarında Güvenlik

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

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

1. Satı ve Daıtım lemleri " # $ "!!

Web Madenciliği (Web Mining)

FONKSYONLARI FONKSYONLARA GÖTÜREN FONKSYONLAR ÜZERNDE ANT-MONOTONLUK VE DEMPOTENTLK

BM-311 Bilgisayar Mimarisi

! " # $ % & '( ) *' ' +, $ $ - $ (. $- $ ( / $ % / $ 0 -( 1( $ (2- -(

YZM 2116 Veri Yapıları

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

BİL-142 Bilgisayar Programlama II

Resim 7.20: Yeni bir ileti oluşturma

Mantıksal çıkarım yapmak. 9 ve üzeri

Indeksli Sıralı Erişimli Dosya Yapıları (Indexed Sequential File Organization) ve. Bit Seviyesinde İşlemler (Bit Level and Related Structures)

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

Algoritma Analizi. Özelliklerinin analizi Algoritmanın çalışma zamanı Hafızada kapladığı alan

! " # $ % & '( ) *' ' +, -. /) /) 0 # /) %, %, 1 2

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü

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

İLİŞKİSEL VERİTABANLARI

Zeki Optimizasyon Teknikleri

Algoritma Analizi ve Büyük O Notasyonu. Şadi Evren ŞEKER YouTube: Bilgisayar Kavramları

Büyük Veri Analitiği (Big Data Analytics)

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

YZM 2116 Veri Yapıları

MOODLE İLE SINAV ve ÖDEV HAZIRLAMA (Eğitmenler için)

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

Final Sınavı Soruları Bahar 2018

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

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

Programlama Dilleri 1. Ders 3: Rastgele sayı üretimi ve uygulamaları

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

Büyük Veri Analitiği (Big Data Analytics)

Femsoft, kolay kullanımı ve genileyebilen esnek yapısı ile ilerinizi çok kolaylatıracak!

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ

VB de Veri Türleri 1

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

William Stallings Computer Organization and Architecture 9 th Edition

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Kullanıcı Rehberi Dokümanı v Safai Tandoğan Mustafa Atanak Doç. Dr.

BM-311 Bilgisayar Mimarisi

Yöneylem Araştırması II

İşletim Sistemlerine Giriş

VERİ YAPILARI DERS NOTLARI BÖLÜM 2 ALGORİTMA ANALİZİ. Yard. Doç. Dr. Deniz KILINÇ

YZM 3217 YAPAY ZEKA DERS#10: KÜMELEME

Burada dikkat edilmesi gereken nokta, bilinmeyen veya değişkeninizi yazarken diğer bilinmeyenler ile arasına boşluk koymanız gerektiğidir.

4.3. Enstrümantasyon kuvvetlendiricisi = R R G

Spatial locality nin getirdigi avantaji kullanmak

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

S. N ala l n n T OP OP A B Ğ Fatih i h A BL B AK K

BM-311 Bilgisayar Mimarisi

Background (Arka Plan)

Aşağıdaki programı inceleyip ekrana ne yazacağını söyleyebilir misiniz?

Çok Yollu Ağaçlar: B*-Trees B*-Trees

Transkript:

!" #$% &'#(# Konular Sequential File Organization Binary Search Interpolation Search Self-Organizing Sequential Search Locating Information Hashing Functions Collision Resolution

Sequential File Organization Background Fields Records (Fixed-length, Variable-length) Files Primary Key Secondary Keys Sequential File Organization Sequential Search Ortalama n/2 probe gerektirir Kayıt sırasında sıralama arama için gereken probe sayısını azaltır Computational complexity O(n) Binary Search Aranan alanın ortasından aramaya balanır Her defasında kayıtların yarısı elenir Computational complexity O(log 2 n)

Sequential File Organization Binary Search (Algoritma) Sequential File Organization Interpolation Search Approximate relative position Telefon rehberinde bir kiinin aranması Aranan kaydın pozisyonun tahmin edilmesiyle bir sonraki pozisyon belirlenir key[aranan] key (LOWER) NEXT := LOWER + (UPPER-LOWER) key[upper] key (LOWER) Worst case computational complexity O(n) Average case computational complexity O(log 2 log 2 n) Anahtarların düzgün daılımında performans artar Data primary memory deyse binary search tercih edilmelidir, auxilary memory deyse interpolation search tercih edilmelidir

Sequential File Organization Self-Organizing Sequential Search Kayıtların yerlerini deitirir Sık kullanılan kayıtlar dosyanın baına kaydırılır En yaygın aaıdaki 3 algoritma kullanılır Move_to_front Transpose Count Sequential File Organization Move_to_front Bir kayda ulaıldıında dosyanın baına alınır Bir kayıt ulaıldıktan sonra çok az kullanılırsa dier kayıtların arama süresini artırır Balı yapılarla oluturulur Yer kısıtı olamadıı ve hızlı eriimin önemli olduu durumlarda kullanılmalıdır letim sistemlerinde kullanılan LRU (least recently used) algoritmasıyla aynıdır Kayıtlara fileorganization sırasında eriime örnek

Sequential File Organization Transpose Bir kayda ulaıldıında önündeki kayıtla yer deitirilir Move_to_front algoritmasına göre daha kararlıdır Bir kayıt dosyanın baına gelene kadar bir çok kez ulaılmalıdır Kolay oluturulabilir fazladan yer gereksinimi yoktur Yer kısıtlı olduunda kullanılmalıdır Count Kayıtlar eriilme sayısında göre büyükten küçüe doru sıralanırlar Ekstra kayıt alanı gerektirir Eer eriim sayıları baka bir amaç için kullanılacaksa bu yapı kullanılabilir deal olarak aranan anahtarla ilikili kayda dorudan bir probe ile ulamak istenir Anahtar tek bir adres (unique) olabilir Eer anahtar adres olursa bir seferde ulaılabilir 0 0 Key space 1 1 liki Address space 999-99-9999 999-99-9999 Kullanılan alandan çok daha fazlası ayrılır

Anahtar tek bir adrese (unique) dönütürülebilir Bir algoritmayla primary key bir adrese dönütürülür Örnek : Havayolları için rezervasyon sistemi Hergün 1-999 arası uçu olsun Yıl boyunca günler 1-366 ile numaralandırılır Uçu numarası ve gün ardarda eklenerek uçua ait adres bilgisi elde edilebilir Location = uçu numarası gun numarası, adres aralıı 001001-999366 olur (Son adres hariç dier adreslerde???367 -???999 arası hiç kullanılmaz) Location = gun numarası uçu numarası, adres aralıı 001001-366999 olur Anahtar muhtemel bir adrese (probable) dönütürülebilir Adres alanında kullanılmayan alanlar silindiinde 1-1 iliki kaybolur ve anahtar alanından daha küçük adres alanı elde edilir Daha geni aralıktaki anahtarları daha küçük alandaki adreslere dönütürmek için hashing functions kullanılır Hash (key) probable address Balangıçta elde edilen adres home address olarak adlandırılır Hashing fonksiyonunun adres aralıında anahtarları düzgün daıtması istenir hızlı çalıması istenir

ki farklı anahtar aynı adrese eletirildiinde collision (çakıma) olur 0 0 Key space 1200 Address space 999-99-9999 Hash fonksiyonu aaıdaki iki kısımdan oluur; eletirme fonksiyonu collision çözme metodu Hashing Functions Key mod N f(key) = key mod N Örnek 27 mod 8 = 3 Key mod P f(key) = key mod P P N olmak üzere en küçük asal sayı Truncation Anahtar içerisindeki en sadaki veya en soldaki bir parçası alınır Alınan kısım uygulamaya göre seçilir Folding Folding by boundary Folding by shifting 1 2 3 4 5 6 7 8 9 3 2 1 1 2 3 4 5 6 4 5 6 + 9 8 7 + 7 8 9

Hashing Functions Squaring Bir anahtarın önce karesi alınır daha sonra truncation yapılabilir Radix conversion 10 tabanından farklı bir tabandaymı gibi sayı 10 tabanına çevrilir 1234 = 1 * 11 3 + 2 * 11 2 + 3 * 11 1 + 4 * 11 0 = 1331 + 242 + 33 + 4 = 1610 Ardından truncation kullanılabilir Polinomial hashing f(information area) Alphabetic keys cyclic check bytes Alfanümerik anahtarların nümerik deerleri elde edilir Karakter bazında veya tamamı birden sayısal deere dönütürülür Pascal daki variant records yapısı bir deikeni birden fazla farklı tür ve isimle kullanabilir Collisions Bir data kümesi için bazı hashing fonksiyonları dierlerine göre daha düzgün daıtım yapabilir Bir hashing fonksiyonu aynı adrese çok sayıda kaydı atıyorsa (çok sayıda collision oluyorsa) primary clustering oluur Axuliary memory de eriim maliyeti çok fazla olduundan daha karmaık bir hashing fonksiyonuyla çakımaları azaltmak gerekir Çakımaları önlemek için dier bir yöntem ise packing factor deerini azaltmaktır Packing factor = number of records stored total number of storage locations collisions storage

Collision Resolution Collision resolution with links Collision resolution without links Static positioning of records Dynamic positioning of records Collision resolution with pseudolinks Collision resolution with links Aynı adrese sahip olan kayıtlar (synonym chain) arasında link oluturulur Dezavantajı link için yer gerektirir Implied link kullanılabilir. Bir sonraki adres hesaplanabilir veya belirli bir kurala balı olabilir Aynı adrese sahip olan olan kayıtlar ait oldukları adresten sonraki ilk bo adrese yazılırlar Avantajı ayrıca yer gerektirmez

Synonym chain elemanları arasında balantı için link kullanır Bir kayda ait home adresi baka bir synonym chain de bir elemana ayrılmı olabilir Yeni eleman kendi home adresinden balayarak zinciri takip eder ve zincirin sonuna yazılır ki farklı home adresine sahip iki farklı zincir birlikte büyür veya küçülür (Örnek) Hash (key) = key mod 11 27, 18, 29, 28, 39, 13, 16 42 ve 17 eklendi

Deerlendirme Örnekteki son tabloda packing factor = 9/11 (82%) Packing factor azaltılırsa coalescing azalır Coalescing azalırsa arama ve ekleme süresi azalır Erken eklenen kayıt listenin baında yer alır. Çok kullanılan kayıtlar önce eklenirse ortalama eriim süresi azalır Silme ilemi karmaıktır Listenin sonundaki eleman silinen elemanın yerine getirilir Taınan elemanın silinenle aynı home adrese sahip olması gerekir Coalescing olmadıı bilinirse bir kayıt balı listedeki gibi basit bir ekilde silinebilir Yandaki ekilde 39 silinirse elde edilen son durum görülmektedir Variants Table organization (overflow area kullanımı) Çakıma olan kaydın zincire balanma ekli Çakıma olan kayıt için kullanılacak olan bo yerin seçimi Table Organization Tablo primary area ve overflow area olarak iki kısımdan oluur Adres factor = (primary area ) / (total table size) Çalımalar adres faktörünün 0.86 olmasının en iyi performansı verdiini göstermitir

Variants Late Insertion Standart Colesced Hashing (LISCH) overflow olmadan kullanılan algoritmadır ve zincirin sonuna ekleme yapar Bu algoritmanın dier bir türü Late Insertion (LICH) overflow area kullanır 27, 18, 29, 28, 39, 13, 16, 42, 17 deerleri key mod 7 hashing fonksiyonuyla yandaki gibi yerletirilir Bir kayıt için ortalama probe sayısı 1.3 tür. LISCH ile bu oran 1.8 dir. Genel olarak 90% packing factor ile 0.86 overflow area kullanımı probe sayısını LISCH ye göre 6% azaltmaktadır Variants Early Insertion Standart Colesced Hashing (EISCH) overflow olmadan kullanılan algoritmadır ve zincirin baındaki elemandan hemen sonra ekleme yapar X,D,Y eklendi EISCH LISCH algoritmasında tüm kayıtların alınması için 19 probe gerekir, EISCH algoritmasında ise 17 probe gerekir

Variants EISCH algoritmasıyla 17 sayısı aaıdaki ekildeki gibi eklenir Hash (key) = key mod 11 Variants Random Early Insertion Standart Colesced Hashing (REISCH) overflow olmadan kullanılan algoritmadır ve zincirin baındaki elemandan hemen sonra ekleme yapar. Eklenecek bo alanı rastgele seçer. REISCH algoritması EISCH algoritmasına göre 1% iyiletirme salar Random Late Insertion Standart Colesced Hashing (RLISCH) overflow olmadan kullanılan algoritmadır ve zincirin sonuna ekleme yapar. Eklenecek bo alanı rastgele seçer. Bidirectional Late Insertion Standart Colesced Hashing (BLISCH) bo alanı tablonun bir altından birde üstünden seçer. Bo alana alınan bilgi listenin sonuna eklenir. Bidirectional Early Insertion Standart Colesced Hashing (BEISCH) bo alanı tablonun bir altından birde üstünden seçer. Bo alana alınan bilgi listenin baındaki elemandan sonra eklenir.

Karılatırma Haftalık Ödev 1000 tane rastgele deere sahip anahtar için LISCH, EISCH, LICH, EICH, RLISCH, REISCH, BLISCH, BEISCH coalesced hashing algoritmalarını C#.NET ile gerçekletiriniz. Performanslarını karılatıran bir arayüz programı hazırlayınız.