Dinamik Programlama

Dinamik Programlama veya DP

Bu, Dinamik Programlama (DP) hakkında Teoriden Problemlere kadar zorluk derecesine göre sıralanmış eksiksiz bir eğitimdir.

  • DP, karmaşık problemleri daha küçük, örtüşen alt problemlere bölerek çözmek için bilgisayar bilimi ve matematikte kullanılan bir algoritmik tekniktir.
  • DP’nin temel fikri, alt problemlerin çözümlerini, her birinin yalnızca bir kez çözüleceği şekilde depolamaktır.
  • DP problemlerini çözmek için, öncelikle yineleme ağacında örtüşen alt problemler olacak şekilde yinelemeli bir çözüm yazmalıyız (yinelemeli fonksiyon aynı parametrelerle birden çok kez çağrılır)
  • Yinelemeli bir değerin yalnızca bir kez hesaplandığından emin olmak için (algoritmanın harcadığı zamanı iyileştirmek için), yinelemeli çağrıların sonuçlarını saklarız.
  • Sonuçları saklamanın iki yolu vardır, biri yukarıdan aşağıya (veya hafızaya alma) ve diğeri aşağıdan yukarıya (veya tablolama).
  • DP kullanılarak çözülen bazı popüler problemler şunlardır: Fibonacci Sayıları, Diff Utility ( En Uzun Ortak Alt Dizi ), Bellman-Ford En Kısa Yol , Floyd Warshall , Edit Distance ve Matris Zincir Çarpımı .

Ayrıntılar için lütfen aşağıdaki giriş makalesine bakın.

DP’nin Temelleri

Konuya Göre Sıralanmış DP Problemleri / Boyutlar / Standart Problemler

DP Sorunları Zorluk Açısından

DP’de Temel Sorunlar

DP’de Kolay Problemler

DP’de Orta Düzey Sorunlar

DP’de Zor Problemler

Dinamik Programlamada İleri Kavramlar (DP)