Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM Veri Yapıları Dersi. Proje#2

Benzer belgeler
Final Sınavı Soruları Bahar 2018

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

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

Arasınav Örnek Soruları Bahar 2018

YZM Algoritma ve Programlama I Manisa Celal Bayar Üniversitesi, Yazılım Mühendisliği. Proje#1

Final Sınavı Örnek Soruları Bahar 2018

Çizgeler (Graphs) Doç. Dr. Aybars UĞUR

YZM 2116 Veri Yapıları

Örnek Arasınav Soruları Güz 2017

VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ

YZM 2116 Veri Yapıları

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

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

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

VERİ YAPILARI. GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi ÖĞR.GÖR.GÜNAY TEMÜR 1

GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi VERİ YAPILARI. Bilgisayar Mühendisliği ÖĞR.GÖR.GÜNAY TEMÜR 1

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

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#9: AÇGÖZLÜ ALGORİTMALAR

YZM 2116 Veri Yapıları

ATATÜRK ÜNİVERSİTESİ BİLGISAYAR MÜHENDİSLİĞİ BÖLÜMÜ BM 104- NESNEYE YÖNELİK PROGRAMLAMA DERSİ BAHAR DÖNEMİ ÖDEV-3

Azalt ve Fethet Algoritmaları

BLM 210 PROGRAMLAMA LABORATUVARI II PROJELERİ

ENDÜSTRİ MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

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

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

Ağaç (Tree) Veri Modeli

10.Hafta Minimum kapsayan ağaçlar Minimum spanning trees (MST)

Veri Yapıları Laboratuvarı

Algoritmalar. Çizge Algoritmaları. Bahar 2017 Doç. Dr. Suat Özdemir 1

Bilin tarafından verilen Kullanıcı Adı ve Şifresini bu alanlara giriniz. Bilin Yazılım ve Bilişim Danışmanlığı Ltd. Şti.

Dersin Konusu ve Amaçları: Ders P lanı: Bölüm 1: Bilgi Teknolojilerinde Temel Kavramlar

ge.sanalmagaza.com KULLANIM KILAVUZU

AĞAÇLAR. Doç. Dr. Aybars UĞUR

BMT207 VERİ YAPILARI DATA STRUCTURE

Graf Veri Modeli. Düğümler kümesi. Kenarlar kümesi

Balon & Banka Teslim tarihi: 17 Kasım 2008

DERS SOSYASI HAZIRLAMA KLAVUZU

TAPU VE KADASTRO BİLGİ SİSTEMİ

Algoritma Geliştirme ve Veri Yapıları 10 Graf Veri Modeli. Mustafa Kemal Üniversitesi

BMT 206 Ayrık Matematik. Yük. Müh. Köksal GÜNDOĞDU 1

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Bilgilerin Uzun Vadeli Saklanması

ALGORİTMA VE PROGRAMLAMA II

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ü

BLG 312 Bilgisayar İşletim Sistemleri 2006 BLG 312. Bilgilerin Uzun Vadeli Saklanması. Dosya Sistemi Görevleri. Dosya Sistemi Özellikleri

MOODLE UZAKTAN ÖĞRETİM SİSTEMİ

4. KARAYOLU TRAFĠK GÜVENLĠĞĠ SEMPOZYUM VE SERGĠSĠ Konu Başlıkları

ENDÜSTRİ MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

EPİAŞ ABONE BİLGİLERİ KAYDI KILAVUZ DOKÜMANI V.2. Kullanıcı. Kapsam. Yasal Dayanak. Veri Kayıt Sorumlusu. Veri kayıt süresi. Ekran Adı.

Final Sınavı Örnek Soruları Güz 2018 Süre: 90 Dakika

ALGORİTMA VE PROGRAMLAMA I

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

KATEGORİ MİZANI BAŞLARKEN KATEGORİ NEDİR? NEDEN N İHTİYAÇ DUYULUR?

AĞAÇLAR TREES. Doç. Dr. Aybars UĞUR

6.SINIF MATEMATİK DERSİ PROJE GÖREVİ

MODÜL BİLGİ SAYFASI KODU :

qwertyuiopasdfghjklzxcvbnmqw ertyuiopasdfghjklzxcvbnmqwert yuiopasdfghjklzxcvbnmqwertyui opasdfghjklzxcvbnmqwertyuiopa sdfghjklzxcvbnmqwertyuiopasdf

Dosyaların Özellikleri (Attribute) Dosya İşlemleri. İki Seviyeli Katalog Sistemleri. Tek Seviyeli Katalog Sistemleri. Hiyerarşik Katalog Sistemleri

TAPU VE KADASTRO BİLGİ SİSTEMİ

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

ÖĞRENME PORTALI KULLANIM KILAVUZU. Uzaktan Eğitim Uygulama ve Araştırma Merkezi (MAUZEM)

EKLER EK 12UY0106-5/A4-1:

: tarih ve B.05.1.EGM (64028)-1439 sayılı Bakanlık Oluru.

BT Arıza Uygulaması KULLANIM KLAVUZU

VERİ MADENCİLİĞİ (Karar Ağaçları ile Sınıflandırma) Yrd.Doç.Dr. Kadriye ERGÜN

Ağaçlar (Trees) Ağaçlar (Trees)

11.Hafta En kısa yollar I-II-III Devam. Negatif Ağırlıklı En Kısa Yollar Doğruluk Çözümleme

Prof. Dr. Kamil DİLEK Rektör

Google Play Zararlısı İnceleme Raporu

Bakım Yönetimi Logo Nisan 2016

Gidilen sayfadan bir önceki sayfaya geçilir. Şekil Git İşlemi diyalog kutusu

SÜLEYMAN DEMİREL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ ELEKTRONİK VE HABERLEŞME MÜHENDİSLİĞİ BÖLÜMÜ MİKRODALGA TEKNİĞİ I DERSİ DÖNEM PROJESİ

Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

YZM 2116 Veri Yapıları

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

Araçlar Menü Haritası

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

T.C. OSMANİYE KORKUT ATA ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ GIDA MÜHENDİSLİĞİ BÖLÜMÜ OSMANİYE STAJ RAPORU

Arasınav Sınavı Soruları Güz 2017 Süre: 90 Dakika

VET ON KULLANIM KLAVUZU

Week 9: Trees 1. TREE KAVRAMI 3. İKİLİ AĞAÇ DİZİLİMİ 4. İKİLİ ARAMA AĞACI 2. İKİLİ AĞAÇ VE SUNUMU > =

Luca NET Kobi Ticari Yazılımında ilk yapılacaklar

TNB KAYITLI ELEKTRONİK POSTA HİZMET SAĞLAYICILIĞI VE TİCARET A.Ş.

Şekil 1. Sitiller ve biçimlendirme

BIP116-H14-1 BTP104-H014-1

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

BIL222 Veri Yapıları ve Algoritmalar

Tezde yer alacak bölümlerin sunuş sırası aşağıdaki düzende olmalıdır;

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

İÇİŞLERİ BAKANLIĞI KAYITÇI KULLANIM TALİMATI

Kullanım Kılavuzu Milli Eğitim Bakanlığı 2010

Satış Fırsatlarım Ekranı Kullanım Kılavuzu

SYS Version Satış Yönetim Sistemi

İNFOSET İNFOSET Ses Kayıt Sistemi v2.0. Sistem Kataloğu

İçindekiler Tablosu E-Ticaret Programı.....3

Veri Yapıları. Ağaçlar

Dizaynda Word Desteği

Transkript:

Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 2116- Veri Yapıları Dersi Proje#2 İkili Arama Ağacı, Heap, Hash Tabloları ve Çizgeler Veriliş Tarihi: 24.04.2018 Son Teslim Tarihi: 25.05.2018 Proje Teslimi: cbuyzm2116@gmail.com Projeyle İlgili Genel Kurallar: Bahar 2018 1. Projeden tam puan alınabilmesi için, proje metninde yer alan, Ödev#1 ve Ödev#2 nin yapılması gerekmektedir. 2. Proje, iki veya üç kişilik gruplar halinde yapılabilir. Zorunlu haller dışında, birinci projedeki ekip üyeleri ile devam edilmesi beklenmektedir. 3. Proje, dersi veren öğretim üyesine e-posta yolu ile (cbuyzm2116@gmail.com adresine) teslim edilecektir. 4. Son teslim tarihinden sonra teslim edilen projeler değerlendirmeye alınmayacaktır. 5. Farklı grupların teslim ettikleri projeler arasında kopya kontrolü yapılacak olup kopya tespit edilen tüm grupların, dönem sonu proje notları sıfır olarak değerlendirilecektir. 6. Rapor içermeyen ödev teslimleri değerlendirmeye alınmayacaktır. 7. Proje metninde yer alan, her iki ödev için ayrı birer rapor hazırlanmalıdır. Proje raporları, her iki programın, açıklama satırları içeren kaynak kodları ile birlikte, belirtilen son teslim tarihinde gönderilmelidir. Proje için, yazıcı çıktısı istenmemektedir. Rapor aşağıda belirtilen ilkeler doğrultusunda hazırlanmalıdır: Kapak: Ödev numarası ve adı, Proje grubundaki öğrenci numaraları ve ad-soyadları ile proje teslim tarihi bilgilerini içermelidir. Rapor İçeriği: i. Bölüm#1: Gerçekleştirilen Platform ve Dil (Java, C#, Eclipse, vs.) ve Sürüm Adı ii. Bölüm#2: Gerçekleştirimi Yapılan Problemin Kısa Tanımı (Ödev metninden özetlenebilir.) iii. Bölüm#3: Veri Yapısı Kataloğu (Kullanılan veri yapılarının, sınıfların ve metotların kısa açıklamaları) iv. Bölüm#4: Yazılım Geliştirme İçin Harcanan Süreler (Grup üyeleri için kişi ve saat bazında) v. Bölüm#5: Elde Edilen Örnek Sonuçlar (Bu bölüm ekran görüntüleri ve farklı durumlarda kodun çalıştığına ilişkin destekleyici kanıtlar içermelidir.) vi. Bölüm#6: Proje Gerçekleştirimde Yararlanılan Kaynaklar (Kod parçalarının alındığı ya da gerçekleştirimde yararlanılan başlıca kaynakların listelenmesi beklenmektedir.) Sayfa#1

Ödev#1 Sanal Market Benzetimi Ödev Metni: Geliştirilecek bir sanal market yazılımı kapsamında, ürünlere ilişkin bilgiler kategori ağacında tutulacaktır. Her bir elemanı, Bilgisayar, Beyaz Eşya gibi kategorilerden biri olan ArrayList içerisinde ilgili kategorideki ürünleri tutan ağaçlar yer alacaktır. Ürünler, ürün adına göre, ilgili kategorideki ikili arama ağacı (binary search tree) veri yapısı üzerinde tutulacaktır: Bilgisayar Beyaz Eşya Giyim Kırtasiye Ofis ArrayList Dizüstü Bilgisayar Ürün Bilgileri 1 Ürün Bilgileri 2 ArrayList Ağacın her düğümünde, Ürünün adı (örnek olarak Dizüstü Bilgisayar) ve ilgili ürün adındaki tüm marka ve modellerin listesi (ArrayList veya daha ileri bir veri yapısında) tutulmalıdır. Listenin her bir elemanında ürüne ilişkin bilgileri (Marka, Model, Miktarı, Maliyeti, Satış Fiyatı, Ürün Açıklaması) içerecektir. Bu gerçekleştirim, ikili arama ağacı tabanlı yapılacaktır. Ürün açıklamalarında geçen kelimelere ilişkin listenin (sözcüğün) de, Hash Tablosu üzerinde oluşturulması gerekmektedir. Hash tablosunda her bir kelime için, bir dinamik dizi (ArrayList) tutulmalıdır. Örnek olarak, Ürün Açıklaması sahasında USB kelimesi geçen Ürünlerin referans (adres) listesi, Hash Tablosu nun ilgili sahasında ArrayList olarak tutulmalıdır. Bu şekilde bir kullanıcı (müşteri), herhangi bir kelimenin geçtiği ürünlere daha hızlı erişebilecektir. İkili arama ağacını dolaşmadan doğrudan kelime ile ilgili ürünlerin bilgilerine ulaşabilecektir. Verilen bir kategorideki, örnek olarak Bilgisayar kategorisindeki ürünler Satış Fiyatına göre ayrı bir Heap te (Yığın) yani ağaç şeklindeki öncelik kuyruğunda küçükten büyüğe sıralı tutulacaktır. Yapılacak İşlemler: 1) Verilerin hazırlanması: Market.dat adlı dosyayı kendiniz hazırlayabilirsiniz. İlk bilgiler dosya yerine bellekten veya klavyeden de alınabilir (dosya kullanımı seçimlik). Kategoriler, Bilgisayar, Beyaz Eşya, Giyim, Kırtasiye_Ofis, YapıMarket, Bahçe, Tekstil, Yiyecek olarak düzenlenebilir. Diğer bilgileri de İnternet üzerinden Sanal marketlerden toplayabilirsiniz. Sayfa#2

2) Verileri kullanarak Veri Yapılarının (Kategori tabanlı Binary Search Tree listesi, Hash Table ve Heap) belirtildiği şekilde oluşturulması. Bu bilgilere göre 3. ve 4. adımlardaki işlemleri yapan programın yazılması 3) Market Personelinin Kullanacağı Modülün Geliştirilmesi: Markete yeni isimde ve/veya kategoride ürün girişi Markete, yeni bir marka/modelde ürün girişi Adından Ürün arama ve silme Ürün bilgilerinde değişiklik (Kategori, Marka, Model, Miktar, Fiyat) Ayrıca şirketin toplam gelir, gider ve kârının hesaplanması istenmektedir (Kar = o ana kadar satışı yapılan ürünlerin tümü için [Satış Fiyatı Maliyet] toplamı) 4) Müşterilerin Kullanacağı Modülün Geliştirilmesi: Adından Ürün bilgisi arama (tüm markalardaki modellerinin fiyatlarını listeleme) Belirli fiyatlar arasındaki tüm ürünlerin bulunup listelenmesi Belirtilen bir kategorideki tüm Ürünleri, ikili arama ağacındaki düzeyleri ile birlikte listeleme (Inorder, preorder, postorder). Ağacın derinliğini ve eleman sayısını yazdırma. Ürün Siparişi ve Alımı Verilen bir kelimenin geçtiği ürünlere Hash Tablosu üzerinden erişilerek listelenmesi Heap oluşturularak, kullanıcının vereceği kategorideki en ucuz N adet ürünün satın alınması. İkili arama ağacı ve Hash Tablosu üzerinde de gerekli güncellemelerin yapılması. Kategori ağaçlarını dengeleme. Müşterilerin üye olabilmesi (Sistem, birden çok müşteri için düzgün biçimde çalışabilmeli). Alışveriş listesi eklenmesi (Belirli bir müşterinin almış olduğu ürünlere ilişkin listenin tutulması). Müşterilerin ürünler hakkında yorum yazabilmesi. Sayfa#3

Ödev#2 Çizge Algoritmaları ve Sosyal Ağlar Ödev Metni: Aşağıdaki yöntemlerin kodlarını ağırlıklı (weighted) yönsüz çizgeler için yazınız ve bir çizge (graph) aduzayı paketi oluşturnuz, arayüzü form kullanarak sağlayınız: 1. Dijkstra nın En kısa yol problemi (SP): Kullanıcıdan alınan bir köşe çifti arasındaki en kısa yolun bulunması. 2. Genişlik Öncelikli Dolaşma problemi (BFS): Kullanıcıdan alınan bir köşe numarasından başlanılarak, çizgenin genişlik öncelikli olarak dolaşılması. 3. Prim Algoritması Tabanlı En Küçük Kapsayan Ağaç problemi (Prim-MST): Çizgenin en küçük kapsayan ağacının (MST) ve maliyetinin Prim algoritmasına dayalı olarak bulunması. 4. Kruskal Algoritması Tabanlı En Küçük Kapsayan Ağaç problemi (Prim-MST): Çizgenin en küçük kapsayan ağacının (MST) ve maliyetinin Kruskal algoritmasına dayalı olarak bulunması. 5. Edmonds Karp Algoritması Tabanlı Maksimum Akış problemi (EK-MAX): Belirli bir çizge üzerinde, maksimum akış problemin, Edmons-Karp algoritmasına dayalı olarak çözülmesi. 6. Ford Fulkerson Algoritması Tabanlı Maksimum Akış problemi (EK-MAX): Belirli bir çizge üzerinde, maksimum akış problemin, Ford Fulkerson algoritmasına dayalı olarak çözülmesi. 7. Sosyal Ağ: Aşağıdaki şekilde bir sosyal ağ verilmiştir. Belirtilen sosyal ağı, çizge yapısı şeklinde oluşturunuz ve uygun görselleştirme araçlarını kullanarak çizdiriniz: Çizgenin kenarlarındaki ağırlıklar, kişilerin birbirlerinin çağrılarına ne kadar süre sonra yanıt verdiklerini temsil etmektedir. Bağlantı olmayan kişilerin, birbirlerini doğrudan tanımadıklarını varsayabilirsiniz. Seçeneklerdeki işlemler belirtilen sosyal ağ için yapılmalıdır: i) Yukarıdaki sosyal ağ üzerinde, en kısa yol problemi, genişlik öncelikli arama ve en küçük kapsayan ağaç problemlerinin hangi amaçlar için kullanılabileceğini raporunuzda kısaca yanıtlayınız. Sayfa#4

ii) Verilen çizgede, verilen bir kişinin en kısa sürede doktor olan kişiye ulaşması için etkin bir algoritma gerçekleştirimi yapınız. Yapılan gerçekleştirimde kaç arama gerektiğini belirleyiniz. Raporunuzda algoritmanızın etkinlik sınıfını belirtiniz. Sayfa#5