BMB204. Veri Yapıları Ders 11. Çizgeler (Graph) Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "BMB204. Veri Yapıları Ders 11. Çizgeler (Graph) Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü"

Transkript

1 BMB204. Veri Yapıları Ders 11. Çizgeler (Graph) Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

2 Dersin Planı Çizgeler Çizge Tanım Çeşitleri Çizge Üzerinde Arama Önce derinliğine arama (depth first search) Önce genişliğine arama (breadth first search) En Kısa Yol Problemi (Shortest Path) Dijkstra Algoritması Bellman Ford Algoritması Floyd-Warshall Algoritması En Küçük Yol Ağacı (Minimum Spanning Tree) Kruskal ın Algoritması Prim in Algoritması

3 Çizgeler Graphs Çizge kuramının başlangıcı Königsberg in 7 köprüsü (Kaliningrad / Rusya) problemine dayanır da Leonhard Euler ın söz konusu probleme ilişkin kullandığı sembol ve çizimler çizge kuramına ilişkin başlangıç olarak kabul edilir.

4 Çizgeler Problem Pregel nehri üzerinde iki ada birbirine bir köprü ile, adalardan biri her iki kıyıya ikişer köprü, diğeri de her iki kıyıya birer köprü ile bağlıdır. Her hangi bir kara parçasında başlayan ve her köprüden bir kez geçerek başlangıç noktasına dönülen bir yürüyüş (walking) var mıdır?

5 Çizgeler Problem Euler kara parçalarını düğüm, köprüleri de kenar kabul eden bir çizge elde etti (Notasyon/çizim farklılığı). Söz konusu yürüyüşün ancak her düğümün derecesinin çift olması durumunda yapılabileceğini gösterdi.

6 Çizge Tanım G çizgesi boş olmayan iki sonlu (finite) kümeden meydana gelir. G = (V,E) biçiminde sembolize edilir. V, düğümler (vertex-node); E, kenarlar (edge-arc) kümesidir. Yönsüz çizgede kenarları temsil eden düğüm ikilileri sınırsızdır. Alışageldiğimiz parantez kullanılarak (v0, v1) (v1,v0) aynı kenarı gösterir. Yönlü çizgede ise (directed graph - digraph) ise <v0, v1> ve <v1,v0> iki ayrı kenarı gösterir (<tail,head>: tail, okun başladığı; head ise sivri ucunun bulunduğu taraftır). 6 düğüm ve 7 kenardan oluşan bir graph

7 Çizge Örnekler

8 Nerelerde kulllanılır. Çizgelerin çok geniş bir alanda kullanımı söz konusudur. Elektrik devrelerinin analizi, proje planlama, kimyasal bileşenleri tanıma Bilgisayar bilimlerinde; shortest path (en kısa yol), connected graph (birleşik çizge), minimum spanning tree, activity network, trees (ağaçlar), sorting (sıralama), finite automoto (sonlu özdevinirler), networks (ağla ilgili birçok problem), flows in transport network (akış, taşıma), max flow ( kaynaktan hedefe en fazla petrol/su taşıma problemi).

9 Terminoloji Komşu düğümler: (v0,v1) kenarı yönsüz çizgede bir kenar ise v0 ve v1 düğümlerine komşu düğümler (adjacent) adı verilir. Alt çizge: G çizgesi, G çizgesinin alt çizgesi ise V(G ) V(G) ve E(G ) E(G) olur.

10 Terminoloji Yol: Yönsüz bir çizgede vp den vq ya olan bir yol (path) (vp, vi1), (vi1, vi2),, (vin, vq) nun kenar olduğu vp, vi1, vi2,, vin, vq düğümler dizisidir. Eğer yönsüz bir G çizgesinde v0 dan v1 e bir yol var ise v0 ve v1 düğümleri bitişik (connected) olarak isimlendirilir. G çizgesinde tüm farklı düğüm ikilileri (vi, vj) (i j) arasında bir yol var ise G çizgesinin bitişik olduğu söylenebilir. Bir düğümü uç kabul eden düğümlerin sayısı söz konusu düğümün derecesini meydana getirir. G2 çizgesinde 0 düğümünün derecesi 2 dir. G1 de d(v1)=3, G2 de d(v4)=1 dir. Yönlü çizgede ise düğümün derecesi giriş (in-degree) ve çıkış (out-degree) değerlerinin toplamıdır. G3 çizgesinde d=1+1=2 bulunur.

11 Teorem Teorem: Eğer bir G çizgesinde n adet düğüm, e adet kenar var ise düğümlerin derecesi toplamı, kenarların sayısının iki katına eşittir: İspatı: Her kenarın, kendi uçlarında bulunan düğümlerin toplam derecelerine yaptığı katkı 2 dir. Hem basit olan, hem de basit olmayan çizgelerde bu geçerlidir. Basit çizge: İki düğümü birleştiren en fazla bir kenar olabilen ve düğümleri kendine döngü (self-loop) içermeyen çizgedir.

12 Çizge Tanımı Çizge iki farklı şekilde bilgisayarda gösterim işlemi tanımlanabilir. Komşuluk Matrisi (Adjacency Matrix) * Komşuluk Listesi (Adjacency List) * Dizi ile Sıralı (Sequential) Gösterim Yönlü Çizgelerin Komşuluk Listesi (Orthogonal) Gösterimi Komşuluğun Çok Bağlaçlı Listeler ile Gösterimi (Adjacency Multilist)

13 Komşuluk Matrisi Adjacency Matrix G(V, E), n düğümlü bir çizge olsun. n x n boyutunda bir matris ile bir G çizgesi bellek ortamında gerçekleştirilebilir. Yönsüz bir çizgede matris simetrik olacağından dolayı bellek tasarrufu amacıyla alt yarı üçgen ya da üst yarı üçgen kullanmak yerinde olur. Her iki durumda da gerçekleştirimin bellek karmaşıklığı O(n2) olur.

14 Komşuluk Matrisi Adjacency Matrix

15 Komşuluk Matrisi Adjacency Matrix

16 Komşuluk Matrisi Adjacency Matrix Derece bulma: Matrisler gerçekleştirimde bir düğümün derecesini bulmak için ilgili satır ya da sütundaki1 ler sayılmalıdır (O(n)). Eğer çizge yönlüyse satırdaki 1 ler out-degree, sütundakiler ise indegree değerini verir. Bu ikisinin toplamı düğümün derecesidir (O(2n)). Kenar sayısı bulma: Kenar sayısını bulmak için tüm matristeki 1 leri sayıp 2 ye böleriz (O(n2)). Yönsüz çizgede matris simetrik olacağı için yarısına bakmamız yeterli olur, yine de karmaşıklık n2 düzeyindedir (O(n2/2) = O(n2)).

17 Komşuluk Matrisi Adjacency Matrix Ağırlık Çizge Ağırlıklı Çizge Her bir kenarın sisteme bir ağırlığın olduğu çizge şekline nedir. Mesela yol uzunlukları, ağ genişliği A B D 15 C 50 E F A B C D E F A 10 5 B 20 C D 15 E F

18 Komşuluk Listesi Adjacency List Çizgeyi matris olarak gerçekleştirmek yerine matristeki her satır için liste veri yapısı tercih edilir. Bu yapının dezavantajı her kenar için 2 tane öğe kullanıyor olmamızdır.

19 Komşuluk Listesi Adjacency List

20 Komşuluk Listesi Adjacency List Kenar sayısı bulma: Bu yapıda (n düğüm, e kenar varsa) toplam kenarların sayısı bulmanın karmaşığı O(n+e) olacaktır. (Çizge kuramında karmaşıklık genellikle e ye bağlı verilir.) Listedeki tüm kenarları sayıp 2 ye bölünce toplam kenar sayısını bulacağımızı Teorem 1 garanti eder.

21 Komşuluk Listesi Adjacency List Kenar sayısı bulma Yönsüz bir çizgede (Ör. G1) kenar sayısını daha hızlı bulmak için yapının sıralı olması avantajını kullanabiliriz. Listelerin başlarından itibaren kuyruk değeri baş değerinden küçük olan ((0, 1), (1, 2) gibi) kenarlara kadar sayıp, bu kenarları saymadan bir sonraki düğüme geçebiliriz. Böylece düğümlerin yarısını dolaşarak kenar sayısını bulabiliriz. Ama karmaşıklık yine de O(n+e) düzeyinde kalacaktır.

22 Komşuluk Listesi Adjacency List Kenar sayısı bulma Yönlü çizgelerde ise (Ör. G3) Anlatılan sıralı olma avantajı kullanılamaz. Çünkü <0,1> ve <1,0> kenarları birbirinden farklıdır. Bu yüzden tüm kenarlar sayılmalıdır.

23 Komşuluk Listesi Adjacency List Derece bulma: Yönsüz çizgede (Ör. G4) bir düğümün derecesini bulmak için ilgili başlıktaki (i. başlık) öğeleri saymak yeterli olacaktır. Yönlü çizgede ise (Ör. G3) düğümün derecesi, gelen ve çıkan kenarların toplamıdır. Bu yapı, söz gelimi, 1 düğümünden kaç düğüme gidildiğini (outdegree) saymamıza olanak sağlar. Fakat 1 düğümüne kaç düğümden gelinebildiğini (in-degree) bulabilmek için listelerin tamamını dolaşmamız gerekecektir.öyleyse yönlü çizge için bu yapıyla beraber bu listenin tersini de tutmalıyız ki, hem gelen hem de çıkan dereceleri hızlıca bulabilelim. Eğer tutmazsak, dereceleri bulmak için listelerin hepsini dolaşmamız gerekecektir.

24 Komşuluk Listesi Adjacency List

25 Dizi ile Sıralı (Sequential) Gösterim Her düğümün komşuları bir liste gibi düşünülebilir. Dügüm[i], 0<=i<n değerleri i düğümüne komşu olan listelerin başlangıç adresini tutmak için kullanılır. Her kenarın düğüm dereceleri toplamına yaptığı katkının 2 olduğu hatırlanırsa toplam listeler için 2e adet düğümün yer alması gerekir. Düğüm[n] <- n+2e+1 olacaktır. i. düğüme komşu olan düğümler listesi düğüm[i],, düğüm[i+1], 0<=i<n indisli düğüm elemanlarıdır.

26 Dizi ile Sıralı (Sequential) Gösterim G4 çizgesinin örnek bir gerçekleştirimi şu şekildedir: tanımlanacak dizi: int dugum[n + 2*e +1] Ör 1: 0 nolu düğümün komşuları [0] da bulunan 9 dan (9 dâhil) [1] de bulunan 11 e (11 hariç) kadar, yani [9] ve [10] indislerinde bulunan düğümlerdir: 1, 2. Ör 2: 1 in komşuları [1]=11 ve [2]=[13] olduğu için [11]-[12] indislerinde yer alan 0 ve 3 tür. Ör 3: 7 nin tek komşusu ise [7] = 22 ve [8] = 23 olduğundan [22]-[22] indislerinde bulunan 6 nolu düğümdür.

27 Dizi ile Sıralı (Sequential) Gösterim Elbette bu dizinin içeriği, gerek verilerin geliş sırasına gerekse de programcının diziyi oluşturan yordamı yazış biçimine bağlı olarak farklı şekillerde oluşabilir. Listelerde bulunan 2e adet öğe alma dezavantajı bu yapıda yoktur. Fakat bu yapı da, komşuluk listesinin sağladığı avantajı, esnekliği sağlamaz.

28 Hangi gösterim şeklini kullanmalıyım!!! Depolamak ayrı konudur, o veri üzerinde çalışacak algoritmaların etkinliği ayrı konudur. Bu yapı için konuşacak olursak; aramada sorun yok, ama ekleme ve silme işlemlerinde esneklik sağlıyor mu? Hayır! Çok sayıda ekleme-silme işlemi için bu yapı verimli değildir. Arka plandaki problemi bilemediğimiz için Bu yapılar arasından şunu tercih ederiz. diyemiyoruz. Bu şekilde de gerçekleştirebiliriz. Örneğin bir ağdaki bilgisayarlar sabittir. Problem, onları tutmaksa bu yapı uygun olabilir.

29 Yönlü Çizgelerin Komşuluk Listesi (Orthogonal) Gösterimi Yönlü çizgeler için alternatif düğüm yapısı şu şekilde de olabilir.

30 Yönlü Çizgelerin Komşuluk Listesi (Orthogonal) Gösterimi Satır başlıkları ile sütun başlıkları aynı öğelerdir. Çizimi basitleştirmek için başlıklar ikişer kez çizildi. Baş için kolon bağı diye isimlendirdiğimiz gösterge, bir düğüme nereden geliş olduğunu gösteriyor. Kuyruk için satır bağı diye isimlendirdiğimiz gösterge ise bir düğümden nereye çıkış bulunduğunu gösteriyor. Görüldüğü gibi her bir kenar öğesi, iki ayrı listede yer alıyor. Aynı kenar için iki öğe almamız gerekmiyor, tek öğe almak yeterli oluyor.

31 Komşuluğun Çok Bağlaçlı Listeler ile Gösterimi (Adjacency Multilist) Bu gerçekleştirim türünde kenarları temel öğe olarak ele alıyoruz. Yani; (vi, vj) kenarı temel öğedir, bir kenar için yalnızca bir öğemiz olacaktır. Fakat bu öğe, kendisini meydana getiren ve uçları olan her iki düğümün (hem vi nin ve hem de vj nin) komşuluk listesinde yer almalıdır. Bir de herhangi bir kenar işlenmişse, üzerinden geçilmişse bu kenarın tekrar ele alınmasını önleyecek bir işarete gereksinim vardır. Dolayısıyla komşuluğun çok bağlaçlı liste ile gösteriminde kullanılacak veri yapısı işaret adı verilen ek bir veri alanını içermelidir.

32 Kenar Ekleme / Silme Komşu Matris ile Tanımlı Çizgeye Ağırlık 1 ise ekleme 0 ise silme geçerli.

33 Kenar Ekleme Komşu Liste ile tanımlı bir çizgeye Listeye Ekle ve Listeden sil için bağlı liste konusuna bakınız.

34 Çizge Üzerinde Temel İşlemler Ağaçlar üzerinde ağaç dolaşımları (kök önde, kök sonda, kök ortada, düzey düzey) sıkça kullanılan işlemler olduğu gibi çizgelerde de benzer bir durum vardır. Yönsüz bir çizge G=(V,E) verildiğinde bir V düğümünden olası tüm düğümlere [V(G)] uğramak (ziyaret etmek) isteyebiliriz. Bu işlemi iki farklı biçimde yapabiliriz. Önce derinliğine arama (depth first search) Önce genişliğine arama (breadth first search) Önce derinliğine arama kök önde dolaşıma, önce genişliğine arama ise ağaçta düzey düzey dolaşıma benzer. Her iki arama için çizgenin komşuluk listesi ile gerçekleştirildiğini kabul edeceğiz.

35 Önce Derinliğine Arama Depth First Search Başlangıç düğümü v ziyaret edilerek arama başlar. Ziyaret etme, ilgili düğümün veri alanının yazdırılması anlamındadır. Daha sonra v düğümünün komşuluk listesinden ziyaret edilmemiş bir w düğümü seçilir. Önce derinliğine arama, w düğümü üzerinde devam eder.

36 Önce Derinliğine Arama Depth First Search Dolaşma sırası: 0, 1, 3, 7, 4, 5, 2, 6. Dikkat edin! Dolaşım sonucunda bir ağaç oluştu. Bu ağaca bir kenar daha eklersek döngü oluşur ve ağaç, ağaç olmaktan çıkar.

37 Önce Derinliğine Arama Depth First Search Başlangıç düğümü: Bu çizgede eğer 0 düğümünden başlayarak önce derinliğine arama yaparsak sırasıyla 0, 1, 3, 7, 4, 5, 2, 6 düğümleri ziyaret edilecektir. Başlangıç düğümü 0 olmak zorunda değildir, elbette. Her hangi başka bir düğüm, 6, 4 vs. de olabilirdi. Biz olayı daha iyi görebilmek için 0 düğümünden başladık. Başka bir düğümden başlasaydık aynı öğeler farklı bir dizilişte karşımıza çıkacaktı.

38 Önce Derinliğine Arama Depth First Search Listenin sıraya etkisi: Çizgeyi bu şekilde komşuluk listesiyle gerçekleştirdiğimizi kabul ettik. Verilerin kullanılacak kuyruğun önüne mi, yoksa sonuna mı ekleneceği; listenin sıralı olup olmayacağı size kalmış Fakat bu listenin kurulma biçimi, dolaşma biçimini etkileyeceği için önemlidir. Farklı biçimde kurarsak farklı sırada dolaşırız. Örneğin 0 ın komşuluk listesi {1, 2} sırasında değil de {2, 1} sırasında olsaydı dolaşım sırası da değişecekti. Analiz: Önce derinliğine arama yordamı her düğüm için en fazla 1 kez işletilir. Eğer çizgede n tane düğüm, e tane kenar var ise algoritma karmaşıklığı O(e+n) olur. Kenar sayısının en fazla n*(n 1) / 2 olabileceğini belirtelim. Eğer G çizgesi komşuluk listesiyle değil de komşuluk matrisiyle gösterilseydi, v düğümüne komşu olan tüm düğümleri belirlemenin karmaşıklığı O(n) olacağından, arama yordamı n adet düğüm için O(n2) lik bir zamana gereksinim duyacaktı. Bu şekilde ise lineer zamanda dolaşabiliyoruz.

39 Önce Genişliğine Arama Breadth First Search Önce genişliğine arama v düğümünden başlar, bu düğüm ziyaret edilmiş olarak işaretlenir. Daha sonra v düğümünün komşuluk listesinde yer alan düğümlerin hepsi ziyaret edilir. Söz konusu listedekiler ziyaret edildikten sonra v nin komşuluk listesinde yer alan ilk düğüme komşu olan düğümlerden ziyaret edilmemiş olanların hepsi ziyaret edilir. Bu mantığı gerçekleştirmek için her bir düğümü ziyaret ettiğimizde düğümü kuyruğa, ilk atılanın ilk alınması gerektiğini söyleyen kuyruk yapısına, atarız. Bir düğüme ilişkin komşuluk listesinin sonuna gelindiğinde kuyruktan bir düğüm alır ve bu düğümün komşuluk listesinde ilerleriz. Bu şekilde devam edilerek ziyaret edilmemiş düğümler ziyaret edilir ve kuyruğa eklenir. Kuyruk boşaldığında aramaya son verilir. Nasıl ki, önce derinliğine aramada problemin doğası gereği yığıt kullanma zorunluluğu vardı; bunda da kuyruk kullanma zorunluluğu vardır. Anlatım tarzından kuyruk veri yapısı kullanılması gerektiği çıkıyor.

40 Önce Genişliğine Arama Breadth First Search

41 Önce Genişliğine Arama Breadth First Search Analiz: Her düğüm kuyruğa 1 kez ekleneceğinden dolayı while döngüsü n (düğüm sayısı) kez işletilir. Komşuluk listesi gösteriminde 2e adet kenar bilgisi olduğundan ötürü algoritma karmaşıklığı d0 + d1 + d2 + dn = 2e = O(e) olur. O(n+e) olur. Komşuluk matrisi kullanılsaydı O(n2) olacaktı. İlerisi: Önce derinliğine/genişliğine arama kavramları uzayı ağaca benzetip dolaşma terminolojisinde; Kesikli Matematik te min-max, b* search algorithm, branch and bound konularında geçer. Oyun problemlerinde de eğer Hamlelerin şunlar olabilir. diyorsan, genişliğine açıyorsun demektir.

42 En Kısa Yol Problemi (Shortest Path) En kısa yol problemi, elimizdeki bir çizgede belirtilen bir noktadan varılması gereken noktaya en kısa yolun bulunması problemi olarak özetlenebilir.

43 En Kısa Yol Problemi (Shortest Path) Şekildeki çizgede kenarlar bir ağ ortamında iki düğüm arasındaki trafik sıkışıklığını ifade etsin. Yapılan istatistikler sonucunda her hangi iki bilgisayar arası paket gönderiminin ne kadar geciktiği ayrı ayrı tespit edilmiştir. Bu verilere göre bir router nasıl yazılmalıdır?

44 En Kısa Yol Problemi (Shortest Path) Yol Uzunluğu: Yoldaki kenar sayısı Yol Maliyeti: Her kenardaki ağırlıkların/maliyetin toplamı. Not: ağırlıksız çizgelerde yol uzunluğu yol maliyetine eşittir. 2 A D B 6 E C y = {B, A, E, C, D} Uzunluk(y) = 4 Maliyet(y) = =11

45 En Kısa Yol Problemi (Shortest Path) Problem: G = (D, K) ağırlıksız grafında s başlangıç düğümü veriliyor ve s den diğer düğümlere giden en kısa yol nasıl bulunur. B A C D F Başlangıç H G E C den diğer düğümlere giden en kısa yolu bulun?

46 En Kısa Yol Problemi (Shortest Path) Önce Genişliğine Arama Tabanlı Çözüm C B A F H A C D Source E G B D E G F 46H

47 En Kısa Yol Problemi (Shortest Path) Ağırlıklı Çizgelerde En Kısa Yol Problemi Önce Genişliğine Arama algoritması bu çizge içinde çalışır mı? Hayır!!! 2 A 3 1 C->A (uzunluk: 1, maliyet: 9) Önce Genişliğine Arama ile hesaplandı 1 9 C 8 D C den A ya en kısa yol: B 3 2 E C den A ya en az maliyetli yol: C->E->D->A (uzunluk: 3, maliyet: 8) Peki nasıl hesaplayacağız?

48 En Kısa Yol Problemi (Shortest Path) İki düğüm arasında en az maliyetle gidilebilen bir yolun belirlenmesi için birçok algoritma geliştirilmiştir. Bunlardan en ünlüleri Dijkstra Bellman ve Ford Ağırlıklı ve yönlü graflar için geliştirilmiştir. Graf üzerindeki kenarların ağırlıkları 0 veya sıfırdan büyük sayılar olmalıdır. Negatif ağırlıklar için çalışmaz. Negatif ağırlıklı graflar için geliştirilmiştir. Floyd-Warshall Tüm olasılıkları hesaplamak için matrisli çözüm

49 Dijkstra nın Algoritması A C 0 8 D 8 3 B O anki en iyi düğümü seç C 2. Bilinen düğümler kümesine ekle 3. Seçilen düğümün tüm komşularının maliyetini güncelle. 2 E 1. Komşu A: < maliyet(a) = 9 2. Komşu D: < maliyet(d) = 8 3. Komşu E: < maliyet(e) = 2

50 Dijkstra nın Algoritması A C 0 8 D B E 1. O anki en iyi düğümü seç E 2. Bilinen düğümler kümesine ekle 3. Seçilen düğümün tüm komşularının maliyetini güncelle. 1. Komşu D: = 5 < 8 maliyet(d) = 5

51 Dijkstra nın Algoritması A C 0 8 D 5 3 B O anki en iyi düğümü seç D 2. Bilinen düğümler kümesine ekle 3. Seçilen düğümün tüm komşularının maliyetini güncelle. E 1. Komşu A: = 8 < 9 maliyet(a) = 8

52 Dijkstra nın Algoritması A C 0 8 D B O anki en iyi düğümü seç A 2. Bilinen düğümler kümesine ekle 3. Seçilen düğümün tüm komşularının maliyetini güncelle. E 1. Komşu B: = 10 < maliyet(b) = 10

53 Dijkstra nın Algoritması A C 0 8 D B E 1. O anki en iyi düğümü seç B 2. Bilinen düğümler kümesine ekle 3. Seçilen düğümün tüm komşularının maliyetini güncelle.

54 Dijkstra nın Algoritması Negatif Ağırlıklı Eğer kenarların ağırlıkları negatif ise Dijkstra algoritması en az maliyetli yolu bulmada başarısız oluyor. A 3 2 B -2 C A dan C ye en az maliyetli yol Dijkstra : A->C, maliyet: 2 Gerçek yol A->B->C, maliyet: 1 Her kenara pozitif sabit eklersek ne olur?

55 Dijkstra nın Algoritması Negatif Ağırlıklı Her kenara pozitif sabit eklersek ne olur? A 3 2 B -2 C Her kenara 2 ekle A 5 4 B 0 C A dan C ye en az maliyetli yol Dijkstra: A->C Gerçek Yol: A->B->C

56 Dijkstra nın Algoritması Negatif Maliyetli Çember Eğer graf negatif maliyetli çember içeriyorsa, en az maliyetli yol tanımlanamaz. A 1 B 2-8 C 4 D A dan D ye en az maliyetli yol nedir? Veya B den C ye?

57 Bellman-Ford Algoritması Ana mantık: Her düğüm için bir uzaklık tahmini oluşturulur. Başlangıç olarak maliyet(s)=0 diğer düğümler için maliyet(u)= olarak atanır. En az maliyetli yol hesaplanana kadar tüm kenarlar üzerinden güncelleme yapılır. Algoritma ayrıca grafın negatif maliyetli kenarının olup olmadığını da bulur. Dijkstra nın algoritmasına göre daha yavaş çalışır.

58 Bellman-Ford Algoritması Ana mantık: Her düğüm için bir uzaklık tahmini oluşturulur. Başlangıç olarak maliyet(s)=0 diğer düğümler için maliyet(u)= olarak atanır. En az maliyetli yol hesaplanana kadar tüm kenarlar üzerinden güncelleme yapılır. Algoritma ayrıca grafın negatif maliyetli kenarının olup olmadığını da bulur. Dijkstra nın algoritmasına göre daha yavaş çalışır.

59 Bellman-Ford Algoritması A C (C, D) 4 B Pred A 0 - B 4 A - C 3 2 A B - D 6 B E 1 B - 1 E 6 D (A, B) Ma Düğüm -1 (A, C) (B, C) (B, D) İlk Yineleme (B, E) (D, E)

60 Bellman-Ford Algoritması A C 4 2 (C, D) 4 B D (A, B) Ma Pred A 0 - B 4 A C 2 B D 3 6 C B E 1 B Düğüm E -1 (A, C) (B, C) (B, D) İkinci Yineleme (B, E) (D, E)

61 Bellman-Ford Algoritması A C 4 2 (C, D) B 3 (A, B) Ma Pred A 0 - B 4 A C 2 B D 3 C E 1 B Düğüm D E -1 (A, C) (B, C) (B, D) (B, E) (D, E) Üçüncü & Dördüncü Yineleme

62 Bellman-Ford Algoritması A C 4 3 A B D -1 4 E B C Düğüm Ma Pred A 0 - B 4 A C 2 B D 3 C E 1 B 1 D E

63 Floyd Warshall Bellmann-Ford ve Dijkstra algoritmaları belirli bir noktadan tüm noktalara çalışabilir. Bazı problemler sadece bir noktadan değil her noktadan her noktaya asgari uzaklık bulmamız gerekebilir. Aslında Bellmann-Ford ve Dijkstra algoritmaları her nokta için ayrı ayrı çalıştırılabileceğimiz gibi Floyd Warshall algoritmasını da kullanabiliriz.

64 Floyd Warshall İlk Dört Aşaması

65 Floyd Warshall 5 noktalı bir çizge ve Floyd Warshall algoritmasının ilk matrisi.

66 Floyd Warshall Birinci Aşama

67 Floyd Warshall İkinci Aşama

68 Floyd Warshall Üçüncü Aşama

69 Floyd Warshall Dördüncü Aşama

70 Floyd Warshall İlk Dört Aşaması

71 En Küçük Yol Ağacı (Minimum Spanning Tree) Yol ağacı, bir graf üzerinde tüm düğümleri kapsayan ağaç şeklinde bir yoldur. Ağaç özelliği olduğu için kapalı çevrim(çember) içermez. Bir graf üzerinde birden çok yol ağacı olabilir. En az maliyetli olan en küçük yol ağacı (minimum spanning tree) olarak adlandırılır.

72 En Küçük Yol Ağacı (Minimum Spanning Tree) 3 B 2 C 3 3 A 7 9 D 3 B 2 14 D 6 3 A E D 15 C 3 A C 3 A E 6 B 2 B 7 E 2 C 9 20 D 6 E

73 En Küçük Yol Ağacı (Minimum Spanning Tree - MST) Graf ağırlıksızsa veya tüm kenarların ağırlıkları eşit ise MST nasıl bulunur? Önce Genişliğine Arama (ÖGA) veya Önce Derinliğine Arama (ÖDA) çalıştırın oluşan ağaç MST dir A A B D ÖGA(A) E C B C D A E ÖDA(A) B D E C

74 En Küçük Yol Ağacı (Minimum Spanning Tree) En küçük yol ağacını belirlemek için birçok algoritma geliştirilmiştir. Kruskal ın Algoritması: Daha az maliyetli kenarları tek tek değerlendirerek yol ağacını bulmaya çalışır. Ara işlemler birden çok ağaç oluşturabilir. Prim in Algoritması: En az maliyetli kenardan başlayıp onun uçlarından en az maliyetle genişleyecek kenarın seçilmesine dayanır. Bir tane ağaç oluşur.

75 En Küçük Yol Ağacı Greedy Yaklaşımı/Yöntemi Dolaşma yapılırken bir sonraki düğümü belirlemek için kullanılan bir karar verme/seçme yöntemidir. O andaki seçenekler içerisinden en iyi olarak gözükeni seçer. Bölgesel/yerel değerlendirmeler yapar. Yerel optimum daima global optimum anlamına gelmez dolayısıyla en iyi sonuca götürmeyebilir. Fakat bazı durumlarda en iyi sonuca götürür. (MST, en kısa yol alg., Huffman coding)

76 En Küçük Yol Ağacı Kruskal ın Algoritması Çizge üzerindeki düğümler, aralarında bağlantı olmayan N tane bağımsız küme gibi düşünülür. Daha sonra bu kümeler tek tek maliyeti en az olan kenarlarla birleştirilir (çevrim oluşturmayacak şekilde ). Düğümler arasında bağlantı olan tek bir küme oluşturulmaya çalışılır. Küme birleştirme işleminde en az maliyetli olan kenardan başlanılır; daha sonra kalan kenarlar arasından en az maliyetli olanlar seçilir.

77 En Küçük Yol Ağacı Kruskal ın Algoritması Kaba Kodu

78 En Küçük Yol Ağacı Kruskal ın Algoritması

79 En Küçük Yol Ağacı Kruskal ın Algoritması

80 En Küçük Yol Ağacı Prim in Algoritması En küçük yol ağacını belirlemede kullanılan diğer bir algoritmadır. Greedy algoritmalarından biridir. Kruskal ın algoritmasından tek farkı bir sonraki kenarı nasıl seçtiğidir.

81 En Küçük Yol Ağacı Prim in Algoritması Adım-1: Adım-2: Oluşturulan ağaca eklemek için, şu ana kadar oluşturulmuş ağaç üzerinden erişilebilen ve daha önceden ağaca katılmamış olan en küçük ağırlıklı kenarı seç. Adım-3: Başlangıçta, herhangi bir noktayı ağacı oluşturmaya başlamak için seç. Eğer bu kenarın ağaca katılması, bir çember oluşmasına sebep olmuyorsa, ağaca ekle. Adım-4: Ağaçtaki kenar sayısı (N-1)'e ulaşana kadar ikinci adıma geri dön.

82 En Küçük Yol Ağacı Prim in Algoritması

83 En Küçük Yol Ağacı Prim in Algoritması

84 Kaynaklar C && Java ile Veri Yapılarına Giriş, Olcay Taner Yıldız, Boğaziçi Üniversitesi Yayınevi Animasyonlu gösterim

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

10.Hafta Minimum kapsayan ağaçlar Minimum spanning trees (MST) 1 10.Hafta Minimum kapsayan ağaçlar Minimum spanning trees (MST) Kapsayan ağaç Spanning Tree (ST) Bir Kapsayan Ağaç (ST); G, grafındaki bir alt graftır ve aşağıdaki özelliklere sahiptir. G grafındaki tüm

Detaylı

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

Çizgeler (Graphs) Doç. Dr. Aybars UĞUR Çizgeler (Graphs) ve Uygulamaları Doç. Dr. Aybars UĞUR Giriş Şekil 12.1 : Çizge (Graph) Çizge (Graph) : Köşe (vertex) adı verilen düğümlerden ve kenar (edge) adı verilip köşeleri birbirine bağlayan bağlantılardan

Detaylı

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

VERİ YAPILARI. GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi ÖĞR.GÖR.GÜNAY TEMÜR 1 VERİ YAPILARI GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi ÖĞR.GÖR.GÜNAY TEMÜR 1 GRAPH (ÇİZGE - GRAF) Terminoloji Çizge Kullanım Alanları Çizge Gösterimi Komşuluk Matrisi Komşuluk Listesi Çizge Üzerinde

Detaylı

GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi VERİ YAPILARI. Bilgisayar Mühendisliği ÖĞ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 VERİ YAPILARI GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği ÖĞR.GÖR.GÜNAY TEMÜR 1 GRAPH (ÇİZGE - GRAF) Terminoloji Çizge Kullanım Alanları Çizge Gösterimi Komşuluk Matrisi Komşuluk

Detaylı

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

Algoritma Geliştirme ve Veri Yapıları 10 Graf Veri Modeli. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 10 Graf Veri Modeli Graf, matematiksel anlamda, düğümler ve bu düğümler arasındaki ilişkiyi gösteren kenarlardan oluşan bir kümedir; mantıksal ilişki düğüm ile düğüm

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BÖLÜM - 11 Bu bölümde, Graph (Çizge - Graf) Terminoloji Çizge Kullanım

Detaylı

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

BMT 206 Ayrık Matematik. Yük. Müh. Köksal GÜNDOĞDU 1 BMT 206 Ayrık Matematik Yük. Müh. Köksal GÜNDOĞDU 1 Graph (Çizge) Yük. Müh. Köksal GÜNDOĞDU 2 Graph (Çizge) Köşe (vertex) adı verilen düğümlerden ve kenar (edge) adı verilip köşeleri birbirine bağlayan

Detaylı

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

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ YZM 3207- ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ Azalt ve Fethet Algoritmaları Problemi daha küçük bir örneğine çevir: Küçük örneği çöz Çözümü asıl probleme genişlet 3 tipi vardır:

Detaylı

BÖLÜM III: Şebeke Modelleri. Şebeke Kavramları. Şebeke Kavramları. Şebeke Kavramları. Yönlü Şebeke (Directed Network) Dal / ok

BÖLÜM III: Şebeke Modelleri. Şebeke Kavramları. Şebeke Kavramları. Şebeke Kavramları. Yönlü Şebeke (Directed Network) Dal / ok 8.0.0 Şebeke Kavramları BÖLÜM III: Şebeke Modelleri Şebeke (Network) Sonlu sayıdaki düğümler kümesiyle, bunlarla bağlantılı oklar (veya dallar) kümesinin oluşturduğu yapı şeklinde tanımlanabilir ve (N,A)

Detaylı

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

11.Hafta En kısa yollar I-II-III Devam. Negatif Ağırlıklı En Kısa Yollar Doğruluk Çözümleme 11.Hafta En kısa yollar I-II-III Devam Negatif Ağırlıklı En Kısa Yollar Doğruluk Çözümleme 1 En Kısa Yollar II Bellman-Ford algoritması 2 3 Negatif Maliyetli Çember Eğer graf negatif maliyetli çember içeriyorsa,

Detaylı

Graflar bilgi parçaları arasındaki ilişkileri gösterirler.

Graflar bilgi parçaları arasındaki ilişkileri gösterirler. Graflar (Graphs) Graf gösterimi Uygulama alanları Graf terminolojisi Depth first dolaşma Breadth first dolaşma Topolojik sıralama Yrd.Doç.Dr. M. Ali Akcayol Graflar Graflar bilgi parçaları arasındaki ilişkileri

Detaylı

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

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#9: AÇGÖZLÜ ALGORİTMALAR YZM 3207- ALGORİTMA ANALİZİ VE TASARIM DERS#9: AÇGÖZLÜ ALGORİTMALAR Aç Gözlü (Hırslı) Algoritmalar (Greedy ) Bozuk para verme problemi Bir kasiyer 48 kuruş para üstünü nasıl verir? 25 kuruş, 10 kuruş,

Detaylı

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

Graf Veri Modeli. Düğümler kümesi. Kenarlar kümesi Graf Veri Modeli Graf, bir olay veya ifadenin düğüm ve çizgiler kullanılarak gösterilme şeklidir. Fizik, Kimya gibi temel bilimlerde ve mühendislik uygulamalarında ve tıp biliminde pek çok problemin çözümü

Detaylı

köşe (vertex) kenar (edg d e)

köşe (vertex) kenar (edg d e) BÖLÜM 7 köşe (vertex) kenar (edge) Esk den Ank ya bir yol (path) Tanım 7.1.1: Bir G çizgesi (ya da yönsüz çizgesi) köşelerden oluşan bir V kümesinden ve kenarlardan oluşan bir E kümesinden oluşur. Herbir

Detaylı

Azalt ve Fethet Algoritmaları

Azalt ve Fethet Algoritmaları Azalt ve Fethet Algoritmaları Problemi daha küçük bir örneğine çevir: Küçük örneği çöz Çözümü asıl probleme genişlet 3 tipi vardır: Bir sabitle azalt (Genellikle 1) Eklemeli Sıralama (Insertion Sort) Topolojik

Detaylı

Ağaç (Tree) Veri Modeli

Ağaç (Tree) Veri Modeli Ağaç (Tree) Veri Modeli 1 2 Ağaç Veri Modeli Temel Kavramları Ağaç, bir kök işaretçisi, sonlu sayıda düğümleri ve onları birbirine bağlayan dalları olan bir veri modelidir; aynı aile soyağacında olduğu

Detaylı

ÇİZGE KURAMI KESİKLİ MATEMATİKSEL YAPILAR GÜZ

ÇİZGE KURAMI KESİKLİ MATEMATİKSEL YAPILAR GÜZ ÇİZGE KURAMI KESİKLİ MATEMATİKSEL YAPILAR 2012-2013 GÜZ Çizgeler Yollar ve Çevrimler Çizge Olarak Modelleme Çizge Olarak Modelleme Yönlü Çizge Kenar - Köşe 2 / 90 Çizgeler Yollar ve Çevrimler Çizge Olarak

Detaylı

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

Algoritmalar. Çizge Algoritmaları. Bahar 2017 Doç. Dr. Suat Özdemir 1 Algoritmalar Çizge Algoritmaları Bahar 201 Doç. Dr. Suat Özdemir 1 En Kısa Yol Problemi Çizgelerdeki bir diğer önemli problem de bir düğümden diğer bir düğüme olan en kısa yolun bulunmasıdır. Bu problem

Detaylı

MAT223 AYRIK MATEMATİK

MAT223 AYRIK MATEMATİK MAT223 AYRIK MATEMATİK Çizgeler 7. Bölüm Emrah Akyar Anadolu Üniversitesi Fen Fakültesi Matematik Bölümü, ESKİŞEHİR 2014 2015 Öğretim Yılı Çift ve Tek Dereceler Çizgeler Çift ve Tek Dereceler Soru 51 kişinin

Detaylı

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

Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM Veri Yapıları Dersi. Proje#2 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

Detaylı

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ü

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ü 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ü Dersin Planı B+ Tree Temel bir veritabanı çalışma kodu Hash (Karma) Heap Ağaçlar

Detaylı

Graflar - Çizgeler. Ders 9. Graflar ve Tanımlar

Graflar - Çizgeler. Ders 9. Graflar ve Tanımlar Graflar - Çizgeler Ders 9 9-1 Graflar ve Tanımlar Bir grafın ne olduğunu açıklamadan önce belki de ne olmadığını söylemek daha iyi olabilir. Bu bölümde kullanılan graf bir fonksiyonun grafiği değildir.

Detaylı

BLM-431 YAPAY ZEKA. Ders-4 Bilgisiz Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA

BLM-431 YAPAY ZEKA. Ders-4 Bilgisiz Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA BLM-431 YAPAY ZEKA Ders-4 Bilgisiz Arama Yöntemleri Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Dersin Hedefleri Aşağıda verilen arama stratejilerini anlamak

Detaylı

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

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ Öğrenci Adı Soyadı: Öğrenci Numarası: S1 S2 S3 S4 S5 S6 S7 Toplam HACETTEPE ÜNİVERSİTESİ 2012-2013 BAHAR DÖNEMİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BBM202 Algoritmalar 1. Ara Sınav 25.04.2013 Sınav Süresi:

Detaylı

Genel Graf Üzerinde Mutlak 1-merkez

Genel Graf Üzerinde Mutlak 1-merkez Genel Graf Üzerinde Mutlak 1-merkez Çözüm yöntemine geçmeden önce bazı tanımlara ihtiyaç vardır. Dikkate alınan G grafındaki düğümleri 1 den n e kadar numaralandırın. Uzunluğu a(i, j)>0 olarak verilen

Detaylı

YZM YAPAY ZEKA DERS#4: BİLGİSİZ ARAMA YÖNTEMLERİ

YZM YAPAY ZEKA DERS#4: BİLGİSİZ ARAMA YÖNTEMLERİ YZM 327 - YAPAY ZEKA DERS#4: BİLGİSİZ ARAMA YÖNTEMLERİ Bilgisiz Arama Stratejisi Sadece problem formülasyonundaki mevcut bilgiyi kullanır Durum bilgisinden yararlanmazlar Çözüme ulaşmak için hiçbir bilgi

Detaylı

İçerik: Graflar. Tanım. Gösterim. Dolaşma Algoritmaları. Yönlü ve yönsüz graflar Ağırlıklı graflar. Komşuluk Matrisi Komşuluk Listesi

İçerik: Graflar. Tanım. Gösterim. Dolaşma Algoritmaları. Yönlü ve yönsüz graflar Ağırlıklı graflar. Komşuluk Matrisi Komşuluk Listesi Tanım Yönlü ve yönsüz graflar ğırlıklı graflar İçerik: Graflar Gösterim Komşuluk Matrisi Komşuluk Listesi olaşma lgoritmaları BS (Breath irst Search) S (epth-irst Search) 1 Graflar Graf, matematiksel anlamda,

Detaylı

9.Hafta Veri sıkıştırma ve Aç gözlü algoritmalar

9.Hafta Veri sıkıştırma ve Aç gözlü algoritmalar 1 9.Hafta Veri sıkıştırma ve Aç gözlü algoritmalar 2 Veri Sıkıştırma (Compression) Kayıplı-Kayıpsız Veri Sıkıştırma Sabit ve Değişken Genişlikli Kodlama Huffman Algortiması (Greedy Algoithms) Veri Sıkıştırma

Detaylı

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

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ Öğrenci Adı Soyadı: Öğrenci Numarası: S1 S2 S3 S4 S5 Toplam HACETTEPE ÜNİVERSİTESİ 2014-2015 BAHAR DÖNEMİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BBM202 Algoritmalar 2. Ara Sınav 09.04.2015 Sınav Süresi: 90 dakika

Detaylı

BIP116-H14-1 BTP104-H014-1

BIP116-H14-1 BTP104-H014-1 VERİ YAPILARI VE PROGRAMLAMA (BIP116) Yazar: Doç.Dr.İ.Hakkı.Cedimoğlu SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.

Detaylı

Çizge teorisi. 1736, Euler, Königsberg Köprüleri problemini çözdü

Çizge teorisi. 1736, Euler, Königsberg Köprüleri problemini çözdü Çizge Algoritmaları Çizge teorisi 1736, Euler, Königsberg Köprüleri problemini çözdü Königsberg Köprüleri Problemi C A D B Çizge örneği 4 öğrenci: A, B, C, D 4 iş: FF, SC, W, BS FF SC W BS A B C D Soru:Tüm

Detaylı

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

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları Max - Min Heap Öncelikli kuyruk konusunu hatırlayın. Kuyruğa sonradan eklenmesine rağmen öncelik

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 7 Ağaç (Tree) Veri Yapısı Giriş Ağaç VY Temel

Detaylı

BLM-431 YAPAY ZEKA. Ders-5 Bilgili Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA

BLM-431 YAPAY ZEKA. Ders-5 Bilgili Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA BLM-431 YAPAY ZEKA Ders-5 Bilgili Arama Yöntemleri Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Arama Grafları Eğer arama uzayı ağaç yapısından değil de graf

Detaylı

BLM-431 YAPAY ZEKA. Ders-3 Durum Uzayında Arama. Yrd. Doç. Dr. Ümit ATİLA

BLM-431 YAPAY ZEKA. Ders-3 Durum Uzayında Arama. Yrd. Doç. Dr. Ümit ATİLA BLM-431 YAPAY ZEKA Ders-3 Durum Uzayında Arama Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Dersin Hedefleri Durum uzayı temsilini öğrenmek ve durum uzayında

Detaylı

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

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip

Detaylı

MAT223 AYRIK MATEMATİK

MAT223 AYRIK MATEMATİK MAT223 AYRIK MATEMATİK Gezgin Satıcı Problemi 9. Bölüm Emrah Akyar Anadolu Üniversitesi Fen Fakültesi Matematik Bölümü, ESKİŞEHİR 2014 2015 Öğretim Yılı Gezgin Satıcı Problemi Soru n tane şehri olan bir

Detaylı

Kümeler arası. Küme içi. uzaklıklar. maksimize edilir. minimize edilir

Kümeler arası. Küme içi. uzaklıklar. maksimize edilir. minimize edilir Kümeleme Analizi: Temel Kavramlar ve Algoritmalar Kümeleme Analizi Nedir? Her biri bir dizi öznitelik ile, veri noktalarının bir kümesi ve noktalar arasındaki benzerliği ölçen bir benzerlik ölçümü verilmiş

Detaylı

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

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 A GRUBU.. Numarası :............................................. Adı Soyadı :............................................. SINAV YÖNERGESİ İşaretlemelerinizde kurşun kalem kullanınız. Soru ve cevap kağıtlarına

Detaylı

Algoritmalar. Ders 14 En Kısa Yollar II Bellman-Ford algoritması Floyd-Warshall algoritması

Algoritmalar. Ders 14 En Kısa Yollar II Bellman-Ford algoritması Floyd-Warshall algoritması Algoritmalar ers En Kısa Yollar II Bellman-Ford algoritması Floyd-Warshall algoritması November, 00 opyright 00- by Erik. emaine and harles E. Leiserson Negatif-ağırlıklı çevrimler Hatırlatma: Eğer graf

Detaylı

VERİ YAPILARI VE PROGRAMLAMA

VERİ YAPILARI VE PROGRAMLAMA VERİ YAPILARI VE PROGRAMLAMA (BIP116) Yazar: Doç.Dr.İ.Hakkı.Cedimoğlu SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.

Detaylı

MAT223 AYRIK MATEMATİK

MAT223 AYRIK MATEMATİK MAT223 AYRIK MATEMATİK Gezgin Satıcı Problemi 9. Bölüm Emrah Akyar Anadolu Üniversitesi Fen Fakültesi Matematik Bölümü, ESKİŞEHİR 2014 2015 Öğretim Yılı Gezgin Satıcı Problemi Soru n tane şehri olan bir

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN BAĞLI LİSTELER Bağlı listeler konusuna çalışmanın bazı faydaları var. Bağlı listeler gerçek programlarda kullanılabilecek bir veri yapısıdır. Bağlı listelerin güçlü ve zayıf yönlerini

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 8 Problem Tanımı Arama Ağaçları İkili Arama

Detaylı

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri Veri modelleri, veriler arasında ilişkisel ve sırasal düzeni gösteren kavramsal tanımlardır. Her program en azından bir veri modeline dayanır. Uygun

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 9 Hatırlatmalar Tam İkili Ağaç Eksiksiz İkili

Detaylı

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

VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ Yard. Doç. Dr. Deniz KILINÇ CELAL BAYAR ÜNİVERSİTESİ, YAZILIM MÜHENDİSLİĞİ 2015-2016 1. DERS İÇERİĞİ VE KAYNAKLAR Veri Yapıları (VY) dersinde görülmesi muhtemel

Detaylı

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

AĞAÇLAR. Doç. Dr. Aybars UĞUR AĞAÇLAR TREES Doç. Dr. Aybars UĞUR Giriş Bağlı listeler, yığıtlar ve kuyruklar doğrusal (linear) veri yapılarıdır. Ağaçlar ise doğrusal olmayan belirli niteliklere sahip iki boyutlu veri yapılarıdır (Şekil

Detaylı

Lisans. Ayrık Matematik Çizgeler. Konular. Tanım çizge: G = (V, E) Tanım. c T. Uyar, A. Yayımlı, E. Harmancı

Lisans. Ayrık Matematik Çizgeler. Konular. Tanım çizge: G = (V, E) Tanım. c T. Uyar, A. Yayımlı, E. Harmancı Lisans Ayrık Matematik Çizgeler H. Turgut Uyar Ayşegül Gençata Yayımlı Emre Harmancı 2001-2013 You are free: to Share to copy, distribute and transmit the work to Remix to adapt the work c 2001-2013 T.

Detaylı

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

Temel Kavramlar. (r) Sıfırdan farklı kompleks sayılar kümesi: C. (i) Rasyonel sayılar kümesi: Q = { a b Bölüm 1 Temel Kavramlar Bu bölümde bağıntı ve fonksiyon gibi bazı temel kavramlar üzerinde durulacak, tamsayıların bazı özellikleri ele alınacaktır. Bu çalışma boyunca kullanılacak bazı kümelerin gösterimleri

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Diziler Dizi Tanımlama ve İlk Değer Atama Dizi Elemanlarının Kullanılması Dizi İşlemleri Java da Diziler JAVA DA DİZİLER 4 Dizi; tek bir veri tipinde,

Detaylı

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Gerçek-Zamanlı Veri Dağıtımı Dokümanı v 1.0.1 01.08.2011

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Gerçek-Zamanlı Veri Dağıtımı Dokümanı v 1.0.1 01.08.2011 DGridSim Gerçek Zamanlı Veri Grid Simülatörü Gerçek-Zamanlı Veri Dağıtımı Dokümanı v 1.0.1 01.08.2011 Mustafa Atanak Sefai Tandoğan Doç. Dr. Atakan Doğan 1. Tek Rotadan Veri Dağıtımı 1.1 Gerçek-Zamanlı

Detaylı

Algoritmalara Giriş 6.046J/18.401J

Algoritmalara Giriş 6.046J/18.401J Algoritmalara Giriş 6.046J/18.401J DERS 12 Atlama Listeleri Veri Yapısı Rastgele Araya Yerleştirme Yüksek olasılıkla" sınırı Analiz (Çözümleme) Yazı Tura Atma Prof. Erik D. Demaine Atlama Listeleri Basit

Detaylı

Algoritmalara Giriş. Prof. Erik Demaine. November 16, 2005 Copyright by Erik D. Demaine and Charles E. Leiserson L18.1

Algoritmalara Giriş. Prof. Erik Demaine. November 16, 2005 Copyright by Erik D. Demaine and Charles E. Leiserson L18.1 Algoritmalara Giriş 6.06J/8.0J Ders 8 En Kısa Yollar II Bellman-Ford algoritması Doğrusal Programlama ve fark kısıtları VLSI yerleşimi küçültülmesi Prof. Erik Demaine November 6, 00 Copyright 00- by Erik

Detaylı

SORULAR. 2. Noktaları adlandırılmamış 6 noktalı kaç ağaç vardır? Çizerek cevaplayınız.

SORULAR. 2. Noktaları adlandırılmamış 6 noktalı kaç ağaç vardır? Çizerek cevaplayınız. MAT3 AYRIK MATEMATİK DERSİ DÖNEM SONU SINAVI 4.0.0 Numarası :..................................... Adı Soyadı :..................................... SORULAR. Prüfer kodu ( 3 3 ) olan ağacı çiziniz.. Noktaları

Detaylı

MAT223 AYRIK MATEMATİK

MAT223 AYRIK MATEMATİK MAT223 AYRIK MATEMATİK Ağaçlar 8. Bölüm Emrah Akyar Anadolu Üniversitesi Fen Fakültesi Matematik Bölümü, ESKİŞEHİR 2014 2015 Öğretim Yılı Ağacın Tanımı Ağaçlar Ağacın Tanımı Tanım Döngüsü olmayan tekparça

Detaylı

Yapay Zekada Problem Çözme

Yapay Zekada Problem Çözme Yapay Zekada Problem Çözme Yapay Zekada Problem Çözme Yapay zeka teknolojileri her şeyden önce problem çözme işlemini arama ve değerlendirmeye dayalı olarak gerçekleştirir. Probleme Çözüm Arama ve Değerlendirme:

Detaylı

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) =?

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) =? Ayrık Hesaplama Yapıları A GRUBU 0.0.01 Numarası Adı Soyadı : CEVAP : ANAHTARI SINAV YÖNERGESİ İşaretlemelerinizde kurşun kalem kullanınız. Soru ve cevap kağıtlarına numaranızı ve isminizi mürekkepli kalem

Detaylı

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

VERİ MADENCİLİĞİ (Karar Ağaçları ile Sınıflandırma) Yrd.Doç.Dr. Kadriye ERGÜN VERİ MADENCİLİĞİ (Karar Ağaçları ile Sınıflandırma) Yrd.Doç.Dr. Kadriye ERGÜN kergun@balikesir.edu.tr İçerik Sınıflandırma yöntemleri Karar ağaçları ile sınıflandırma Entropi Kavramı ID3 Algoritması C4.5

Detaylı

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

ENDÜSTRİ MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ ENDÜSTRİ MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf/Y.Y. Ders Saati Kredi AKTS (T+U+L) YÖNEYLEM ARAŞTIRMA İÇİN ALGORİTMALAR EN-312 3/I 3+0+0 3 5 Dersin Dili : Türkçe Dersin

Detaylı

DOSYA ORGANİZASYONU. Ağaç Yapıları ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ 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Ü DOSYA ORGANİZASYONU ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Ağaç Yapıları Sunum planı Genel kavramlar İkili ağaç İkili arama ağacı AVL Tree B-Tree Genel Kavramlar Bir ağaç yapısı

Detaylı

Arama Algoritmaları ile Gerçek Dünya Örnekleri

Arama Algoritmaları ile Gerçek Dünya Örnekleri Arama Algoritmaları Arama Algoritmaları ile Gerçek Dünya Örnekleri Rota Bulma bilgisayar ağları, otomatik seyahat tavsiye sistemleri, havayolu seyahat planlama sistemleri gibi değişik alanlarda kullanılmaktadır

Detaylı

YZM YAPAY ZEKA DERS#6: REKABET ORTAMINDA ARAMA

YZM YAPAY ZEKA DERS#6: REKABET ORTAMINDA ARAMA YZM 3217- YAPAY ZEKA DERS#6: REKABET ORTAMINDA ARAMA Oyun Oynama Çoklu vekil ortamı-her bir vekil karar verirken diğer vekillerin de hareketlerini dikkate almalı ve bu vekillerin onun durumunu nasıl etkileyeceğini

Detaylı

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

YZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI YZM 2116- VERİ YAPILARI DERS#9: HASH FONKSİYONLARI İÇERİK Bu bölümde, Giriş Hash Tabloları Hash Fonksiyonu Çakışma (Collision) Ayrık Zincirleme Çözümü Linear Probing Çözümü Quadratic Probing Çözümü konusuna

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 3 Motivasyon: Neden Listeye İhtiyaç Var? Bağlı

Detaylı

BBM Discrete Structures: Final Exam Date: , Time: 15:00-17:00

BBM Discrete Structures: Final Exam Date: , Time: 15:00-17:00 BBM 205 - Discrete Structures: Final Exam Date: 12.1.2017, Time: 15:00-17:00 Ad Soyad / Name: Ögrenci No /Student ID: Question: 1 2 3 4 5 6 7 8 9 10 11 Total Points: 6 16 8 8 10 9 6 8 14 5 10 100 Score:

Detaylı

Veri Yapıları Laboratuvarı

Veri Yapıları Laboratuvarı 2013 2014 Veri Yapıları Laboratuvarı Ders Sorumlusu: Yrd. Doç. Dr. Hakan KUTUCU Lab. Sorumlusu: Arş. Gör. Caner ÖZCAN İÇİNDEKİLER Uygulama 1: Diziler ve İşaretçiler, Dinamik Bellek Ayırma... 4 1.1. Amaç

Detaylı

Mühendislik Mekaniği Statik. Yrd.Doç.Dr. Akın Ataş

Mühendislik Mekaniği Statik. Yrd.Doç.Dr. Akın Ataş Mühendislik Mekaniği Statik Yrd.Doç.Dr. Akın Ataş Bölüm 10 Eylemsizlik Momentleri Kaynak: Mühendislik Mekaniği: Statik, R. C.Hibbeler, S. C. Fan, Çevirenler: A. Soyuçok, Ö. Soyuçok. 10. Eylemsizlik Momentleri

Detaylı

Şimdi de [ ] vektörünün ile gösterilen boyu veya büyüklüğü Pisagor. teoreminini iki kere kullanarak

Şimdi de [ ] vektörünün ile gösterilen boyu veya büyüklüğü Pisagor. teoreminini iki kere kullanarak 10.Konu İç çarpım uzayları ve özellikleri 10.1. ve üzerinde uzunluk de [ ] vektörünün ile gösterilen boyu veya büyüklüğü Pisagor teoreminden dir. 1.Ö.: [ ] ise ( ) ( ) ve ( ) noktaları gözönüne alalım.

Detaylı

Bölüm 7: Kilitlenme (Deadlocks)

Bölüm 7: Kilitlenme (Deadlocks) Bölüm 7: Kilitlenme (Deadlocks) Mehmet Demirci tarafından çevrilmiştir. Silberschatz, Galvin and Gagne 2013 Bölüm 7: Kilitlenme (Deadlocks) Sistem modeli Kilitlenme Belirleme Kilitlenme Yönetim Yöntemleri

Detaylı

Veri Yapıları. Ağaçlar

Veri Yapıları. Ağaçlar Veri Yapıları Ağaçlar 1 Ağaç Veri Modeli Temel Kavramları 2 Ağaç, bir kök işaretçisi, sonlu sayıda düğümleri ve onları birbirine bağlayan dalları olan bir veri modelidir. Aile soyağacında olduğu gibi hiyerarşik

Detaylı

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

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1 Algoritmalar Arama Problemi ve Analizi Bahar 2016 Doç. Dr. Suat Özdemir 1 Arama Problemi Sıralama algoritmaları gibi arama algoritmaları da gerçek hayat bilgisayar mühendisliği problemlerinin çözümünde

Detaylı

ÇİZGİ KÜMELERİ (GRAPHS)

ÇİZGİ KÜMELERİ (GRAPHS) ÇİZGİ KÜMELERİ (GRAPHS) 1 2 GRAFLAR Tanım Yönlendirilmiş ve yönlendirilmemiş graflar Ağırlıklı graflar Gösterim Komşuluk Matrisi Komşuluk Listesi Dolaşma Algoritmaları BFS (Breath First Search) DFS (Depth-First

Detaylı

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler: Veri Yapıları Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz İçindekiler: Giriş Temel Veri Yapıları Tanımlamalı Veri Yapıları Veri Modeli ve Türleri

Detaylı

Algoritma Geliştirme ve Veri Yapıları 1 Temel Algoritma Kavramları. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 1 Temel Algoritma Kavramları. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 1 Temel Algoritma Kavramları Giriş 1) Algoritma geliştirme üzerine temel kavramlar 2) Veri modelleri 3) Veri yapıları 4) Algoritma veya yazılım şekilsel gösterimi

Detaylı

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8 ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8 YZM 1105 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi 6. BÖLÜM 2 Çok Boyutlu Diziler Çok Boyutlu Dizi 3 Bir dizi aşağıdaki gibi bildirildiğinde

Detaylı

ARAÇ ROTALARININ EN KISA YOL ALGORİTMALARI KULLANILARAK BELİRLENMESİ VE.NET ORTAMINDA SİMÜLASYONU

ARAÇ ROTALARININ EN KISA YOL ALGORİTMALARI KULLANILARAK BELİRLENMESİ VE.NET ORTAMINDA SİMÜLASYONU T.C. PAMUKKALE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ ARAÇ ROTALARININ EN KISA YOL ALGORİTMALARI KULLANILARAK BELİRLENMESİ VE.NET ORTAMINDA SİMÜLASYONU Şahin BAYZAN Yüksek Lisans Tezi DENİZLİ 005 ARAÇ ROTALARININ

Detaylı

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

AĞAÇLAR TREES. Doç. Dr. Aybars UĞUR AĞAÇLAR TREES Doç. Dr. Aybars UĞUR Giriş Bağlı listeler, yığıtlar ve kuyruklar doğrusal (linear) veri yapılarıdır. Ağaçlar ise doğrusal olmayan belirli niteliklere sahip iki boyutlu veri yapılarıdır (Şekil

Detaylı

BIL222 Veri Yapıları ve Algoritmalar

BIL222 Veri Yapıları ve Algoritmalar BIL222 Veri Yapıları ve Algoritmalar 1. ĠKĠLĠ AĞAÇLAR (BIARY TREES) Bütün düğümlerinin derecesi en fazla iki olan ağaca ikili ağaç denir. Yani bir düğüme en fazla iki tane düğüm bağlanabilir ( çocuk sayısı

Detaylı

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Ders 4: Diziler (Arrays( Arrays) barisgokce.com Ders 4: Diziler (Arrays( Arrays) Hazırlayan : Öğr. Grv.. Barış GÖKÇE Đletişim im : www.barisgokce barisgokce.com Diziler Aynı tipteki bir veri gurubunun bir değişken içinde saklanmasıdır. Veriler Hafızada

Detaylı

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

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ VERİ YAPILARI LİSTELER Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ Bağlı Listeler Aynı kümeye ait veri parçalarının birbirlerine bellek üzerinde, sanal olarak bağlanmasıyla

Detaylı

Olimpiyat Soruları. sonuçları tekrar fonksiyonda yerine koyup çıkan tüm sonuçları toplayan program (iterasyon sayısı girilecek)

Olimpiyat Soruları. sonuçları tekrar fonksiyonda yerine koyup çıkan tüm sonuçları toplayan program (iterasyon sayısı girilecek) HAZIRLAYAN MUSA DEMIRELLI BISHKEK KYRGYZ TURKISH BOYS HIGH SCHOOL education.online.tr.tc compsources0.tripod.com Olimpiyat Soruları 1- Bir diziyi ters çeviren algoritma ve program 2- Bir diziyi sıralayan

Detaylı

Sevdiğim Birkaç Soru

Sevdiğim Birkaç Soru Sevdiğim Birkaç Soru Matematikte öyle sorular vardır ki, yanıtı bulmak önce çok zor gibi gelebilir, sonradan saatler, günler, aylar, hatta kimi zaman yıllar sonra yanıtın çok basit olduğu anlaşılır. Bir

Detaylı

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları BİLGİSAYAR PROGRAMLAMA Algoritma ve Akış Şemaları Algoritma tanımı Algoritma özellikleri Algoritma tasarımı Akış şemaları Dallanma simgeleri Döngü simgeleri Akış şeması tasarımı Akış şeması örnekleri Konu

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi Dizilere Başlangıç Değeri Verme Dizilerde Arama

Detaylı

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

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 Numarası : Adı Soyadı : SINAV YÖNERGESİ 2. K 5 tam çizgesinin bir kenarı çıkarılarak elde edilen çizgenin köşe noktaları en az kaç renk ile boyanabilir? A) 3 B) 4 C) 2 D) 5 E) 6 İşaretlemelerinizde kurşun

Detaylı

ÜNİTE 1: TEMEL KAVRAMLAR

ÜNİTE 1: TEMEL KAVRAMLAR MATEMATİK ÜNİTE : TEMEL KAVRAMLAR Temel Kavramlar ADF 0 RAKAM Sayı oluşturmak için kullanılan sembollere... denir. 0 luk sayma düzenindeki rakamlar 0,,,... 8 ve 9 olup 0 tanedir. örnek a, b, c sıfırdan

Detaylı

Anadolu Üniversitesi Endüstri Mühendisliği Bölümü İST328 Yöneylem Araştırması 2 Dersi Bahar Dönemi. Hazırlayan: Doç. Dr.

Anadolu Üniversitesi Endüstri Mühendisliği Bölümü İST328 Yöneylem Araştırması 2 Dersi Bahar Dönemi. Hazırlayan: Doç. Dr. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü İST8 Yöneylem Araştırması Dersi 00-0 Bahar Dönemi Hazırlayan: Doç. Dr. Nil ARAS AÇIKLAMA Bu sunu izleyen kaynaklardaki örnek ve bilgilerden faydalanarak

Detaylı

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği Yrd. Doç. Dr. A. Burak İER Bilgisayar Mühendisliği Algoritma Analizi İçerik: Temel Kavramlar Yinelemeli ve Yinelemesiz Algoritma Analizi Asimptotik otasyonlar Temel Kavramlar Algoritma: Bir problemin çözümüne

Detaylı

EŞİTLİK KISITLI TÜREVLİ YÖNTEMLER

EŞİTLİK KISITLI TÜREVLİ YÖNTEMLER EŞİTLİK KISITLI TÜREVLİ YÖNTEMLER LAGRANGE YÖNTEMİ Bu metodu incelemek için Amaç fonksiyonu Min.z= f(x) Kısıtı g(x)=0 olan problemde değişkenler ve kısıtlar genel olarak şeklinde gösterilir. fonksiyonlarının

Detaylı

KARAKTER DİZGİLERİ, BAĞINTILAR, FONKSİYONLAR KESİKLİ MATEMATİKSEL YAPILAR

KARAKTER DİZGİLERİ, BAĞINTILAR, FONKSİYONLAR KESİKLİ MATEMATİKSEL YAPILAR KARAKTER DİZGİLERİ, BAĞINTILAR, FONKSİYONLAR KESİKLİ MATEMATİKSEL YAPILAR 2012-2013 Karakter Dizgisi Karakter Dizgisi Üzerine İşlemler Altdizgi Tanım 3.1.1: Bir X kümesi üzerinde bir karakter dizgisi (string)

Detaylı

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ELN1002 BİLGİSAYAR PROGRAMLAMA 2 ELN1002 BİLGİSAYAR PROGRAMLAMA 2 VERİ YAPILARI Sunu Planı Kendini-gösteren Yapılar Dinamik Bellek Tahsisi Bağlı Listeler Yığınlar Kuyruklar Ağaçlar 1 Veri Yapıları Şu ana kadar, diziler, matrisler ve yapılar

Detaylı

Algoritmalar ve Karmaşıklık

Algoritmalar ve Karmaşıklık Algoritmalar ve Karmaşıklık Ders 11 Algoritma Ayrık matematikte karşılaşılan bir çok problem sınıfı mevcuttur. Örneğin, verilen tamsayı grubu içindeki en büyük olanının bulunması, verilen bir kümenin bütün

Detaylı

BULANIK MANTIK VE SİSTEMLERİ 2014 2015 BAHAR DÖNEMİ ÖDEV 1. Müslüm ÖZTÜRK 148164001004 Bilişim Teknolojileri Mühendisliği ABD Doktora Programı

BULANIK MANTIK VE SİSTEMLERİ 2014 2015 BAHAR DÖNEMİ ÖDEV 1. Müslüm ÖZTÜRK 148164001004 Bilişim Teknolojileri Mühendisliği ABD Doktora Programı BULANIK MANTIK VE SİSTEMLERİ 2014 2015 BAHAR DÖNEMİ ÖDEV 1 Müslüm ÖZTÜRK 148164001004 Bilişim Teknolojileri Mühendisliği ABD Doktora Programı Mart 2015 0 SORU 1) Bulanık Küme nedir? Bulanık Kümenin (fuzzy

Detaylı

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 > =

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 > = Week 9: Trees 1. TREE KAVRAMI 2. İKİLİ AĞAÇ VE SUNUMU 3. İKİLİ AĞAÇ DİZİLİMİ 4. İKİLİ ARAMA AĞACI < 6 2 > = 1 4 8 9 1. TREES KAVRAMI Bir ağaç bir veya daha fazla düğümün (T) bir kümesidir : Spesifik olarak

Detaylı

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

Algoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1 Algoritmalar Heap Sort Bahar 2017 Doç. Dr. Suat Özdemir 1 Heap Sort Heap Sort algoritması Merge Sort ve Insertion Sort algoritmalarının iyi özelliklerini bir arada toplar. Algoritma Insertion Sort gibi

Detaylı

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

Çanakkale Onsekiz Mart Üniversitesi. Bilgisayar Mühendisliği Bölümü Çanakkale Onsekiz Mart Üniversitesi Bilgisayar Mühendisliği Bölümü Skip List(Atlamalı Liste) Veri Yapısı Seminer-30.03.2007/SkipList 1 Temel İhtiyaçlar Nelerdir? 1. Bilgisayarda verileri belirli yapıda

Detaylı

Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları Algoritma ve Akış Diyagramları Bir problemin çözümüne ulaşabilmek için izlenecek ardışık mantık ve işlem dizisine ALGORİTMA, algoritmanın çizimsel gösterimine ise AKIŞ DİYAGRAMI adı verilir. 1 Akış diyagramları

Detaylı

Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları Algoritma ve Akış Diyagramları Bir problemin çözümüne ulaşabilmek için izlenecek ardışık mantık ve işlem dizisine ALGORİTMA, algoritmanın çizimsel gösterimine ise AKIŞ DİYAGRAMI adı verilir 1 Akış diyagramları

Detaylı

EM302 Yöneylem Araştırması 2. Dr. Özgür Kabak

EM302 Yöneylem Araştırması 2. Dr. Özgür Kabak EM302 Yöneylem Araştırması 2 Dr. Özgür Kabak TP Çözümü TP problemlerinin çözümü için başlıca iki yaklaşım vardır kesme düzlemleri (cutting planes) dal sınır (branch and bound) tüm yaklaşımlar tekrarlı

Detaylı