00
Parçala ve fethet ile dinamik programlama arasındaki fark nedir?

Dinamik programlama, örtüşen alt problemlerin saklanmasına ve tekrar kullanılmasına; parçala ve fethet, birbirinden bağımsız alt problem çözümlerinin birleştirilmesine dayanır.

Benzerlikler
Dinamik programlama ile parçala ve fethet yöntemi problemleri özyineleme kullanarak küçük alt problemlere bölme açısından ile benzeşirler.

Dinamik programlama
Dinamik programlama (dynamic programming), örtüşen alt problemleri (overlapping subproblems) çözmek için kullanılan bir tekniktir. Her çözüm sonradan kullanılmak üzere saklanır (memoization). Her alt problem yalnızca bir kez çözülür ve daha sonra başka alt problemlerin çözümünde kullanılır.
 
  • hatırlama (memoization)

Parçala ve fethet
Parçala ve fethet (divide and conquer), problemi daha küçük alt problemlere (sub-problems) ayırıp (parçalama), her alt problemin çözülmesine ve daha sonra bütün çözümlerin birleştirilmesine dayanır.
 
  • alt problemlere bölme
  • alt problemleri çözme
  • çözümleri birleştirme
 
Farklılıklar
Parçala ve fethet yönteminde alt problemlerin çözümü birbirinden bağımsızdır. Alt problemler ve bunların çözümü arasında etkileşim yoktur. Dinamik programlamada ise bir alt problemin çözümü başka alt problemlerin çözümünde de kullanılır. Yani alt problemlerin çözümü birbiri ile etkileşim halindedir.
 

dinamik programlama

parçala ve fethet
 
Yukarıdaki şekiller ana problem en üstte olmak üzere alt problemlerin nasıl kullanıldığını göstermektedir.

İki yönten arasındaki farkı bir örnek üzerinde incelemek tıklayınız.
Bu alana not ekleyebilirsiniz.
Başka bir sorunuz mu var?
Yorumlar (0)

Henüz yorum yapılmamış.

İlgili Konu
Algoritma Türleri
İlgili Kayıtlar
İlginizi Çekebilir