Algoritma Analizi dersi notları

Ege Üniversitesi Bilgisayar Mühendisliğini bitirmeye yakın tanıştığımız Hasan Bulut hocamızın verdiği Algoritma Analizi ile ilgili birkaç şey yazmak ve paylaşmak istiyorum. Elimde yaklaşık 100-150 tane link var, çalışırken internette aramalar sonucunda bulduğum gerek kısa gerek uzun makaleler. Bunların her birini tek tek paylaşamam. Zaten çalışma tarzınıza bağlı olarak da gerekli görmeyebilirsiniz.

Dersin kitabı Anany Levitin’in Introduction to the Design & Analysis of Algorithms. Zaten buna benzer bilgileri Hasan Hoca dersin web sayfasında bulunduruyor.

Tavsiyelerim:

  • 100-150 tane link dedim, internette araştırmalar sonucu buldum dedim, ve siz de ne yapmanız gerektiğini anladınız: araştırın.
  • Derste gürültü oluyor, arka sıralardan dersi takip edemezsiniz. En azından vizeye kadar dersi iyi dinlemelisiniz, ödevleri yapmalısınız. Vize öncesindeki konular finalde bile önemli bir yere sahip. Eğer dersi takip etme imkanınız yok ise yanınıza dersi kapmış birini almalısınız. Ben ikisini de yapamadım ve biraz zorlandım, özellikle finale çalışırken.
  • Bilmiyorum siz bu satırları yazıyorken Hasan Hoca yine ödev veriyor mudur ama bizim dönemde kopya çekmeler olduğu için ödevleri iptal edip quiz’lere dönmüştü. Size tavsiyem ödevlere önem verin, kopya çekmeden yapın ki konuyu son güne bırakmadan öğrenmiş olabilin. Kopya çekerseniz zaten ödeviniz geçersiz sayılıyor.
  • Hasan Hoca diğer hocalara pek benzemez, anlamadınız mı, gidin odasına, anlatsın tekrar tekrar. Ben gidemedim ama gidip öğrenen arkadaşlarım var.
  • Kitap gerçekten kaliteli bir kitap. Ben e-book versiyonunu internetten sipariş ettim. Ama yine de basılı bir versiyon iyi gelecektir. Kitabı okuyun, üşenmeyin, gerçekten çok faydalı.
  • Bir de kitaptaki alıştırmaları mutlaka çözün. Aşağıda verdim çözümlerini de, çözemediklerinizde de ters mühendislik yaparak nasıl çözüldüğünü anlamaya çalışın.
  • Ders kesinlikle ama kesinlikle ezber bir ders değil. Biraz matematiksel işlem yaptığınız doğru ama genel olarak algoritma yazacaksınız ya da o algoritmayı analiz edeceksiniz.
  • Son güne bırakmayın. Son güne kaldıysa, bırakın; çalışmayın.

Sınavlarda ne çıkar, ne çıkmaz?

İki senenin hem vize soruları hem de final soruları aklımda. Ama bu soruları buraya yazmaktansa nerelere çalışmalısınız neler yapmalısınız biraz değineyim. Zira eski soruların aynısı gelmeyeceği için eski sorulara takılıp kalan bünye sınavda çuvallayabiliyor.

  • Çeşitli algoritmaları ezberlemek (mergesort, quicksort, vesaire vesaire) işinize yaramaz. Ama bu algoritmaları öğrenmek işinize yarar. Aslında öğrenmeniz gereken algoritma tasarlama teknikleri.
  • Backward substitution’ı öğrenmek zorundasınız.
  • Verilen bir algoritmanın ne yaptığını anlayabilmelisiniz. Anlayabilecek seviyede pseudocode bilmelisiniz. Time-Efficiency‘sini hesaplayabilmelisiniz ve daha etkin hale nasıl getirebileceğinizi düşünebilmelisiniz.
  • İster divide olsun ister decrease, bir problemi brute force tekniği yerine daha küçük parçalara bölerek çözebilen algoritmalar tasarlayabilmelisiniz.
  • Recursion candır.
  • Finalde vize öncesi gelmez demeyin. Şöyle bir göz atarsanız hayat kurtarır.
  • Dynamic Programming ve Greedy Technique‘ye kadar zaman kaldıysa ve bu konular işlendiyse çok şanslısınız. Evet anlayana kadar belki çok zorlanıyorsunuz ama anladıktan sonra ufkunuz fena halde genişliyor.
  • Dediğim gibi kitaptaki bir algoritmanın nasıl yazıldığını ezberlemeyin. Nasıl işlediğini öğrenin. Greedy tekniği ve dinamik programlama konularındaki meşhur algoritmaların nasıl işlediğini bilin. Örnek datasetlerinde (mesela graph) bu algoritmaları işleterek nasıl çalıştığını görün(kağıt ve kalem lütfen). Örnek datasetler kitapta bol bol var zaten.
  • Hasan Hoca bu dönem zamanımız olduğu için Backtracking ve Branch-and-Bound konularını da anlattı. Bu konularda anlatılan problemler için ağaçların nasıl çizildiğini bilin ve kendiniz de çizin. Lower bound ve Upper bound nedir ve nasıl hesaplanır bunu da bilin ve hesaplayın.

Önemli Adresler:

Slaytlari koyma gereği duymadım. Zaten dersin sitesinde gerekli zamanlarda yer alıyor.

Eklemek istediğiniz ya da sormak istediğiniz şeyleri yorum olarak yazmaktan çekinmeyin.

İyi çalışmalar.

Advertisements

5 thoughts on “Algoritma Analizi dersi notları

  1. First of all I want to thank you because your blog is useful for me, I used solution of Chapter 12 of the Anany Levitin book. Unfortunately I couldn’t find chapter 11 solution of “Introduction to the Design & Analysis of Algorithms”. May I ask you to send me chapter 11 exercise solution?

  2. bana algoritma analizi ile ilgili not lazım slayt pdff kitap vs.. atdımcı olursanız sevinirim

Comment On

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s