Схема на раздела

  •    


    • Dynamic Programming


    • Skills


      L’objectif est de savoir mettre en œuvre un algorithmes de programmation dynamique pour des problèmes de Recherche Opérationnelle en particulier le sac-à-dos et ses extensions.

      • Be able to write a recurrence formula and the basis cases in dynamic programming
      • Know the algorithm for the knapsack and its extensions (larger subset of coins, integer knapsack)

    • Course ressources


    • From the book Algorithms by Dasgupta, Papadimitriou and Vazirani

      Si vous n’avez jamais vu les principes de la Programmation Dynamique (DP),  lisez ce document.


    • Pour programmer sur caseine, il est recommandé d'installer le plugin caseine pour Eclipse pour travailler depuis l’IDE Eclipse ou d'installer l'extension VPL de VSCode ou Codium. Il vous permettront de travailler dans votre IDE : récupérer le code et la description de l'exercice de programmation, lancer des évaluations depuis votre IDE ou pousser votre code sur caseine.


    • Self training, le forgeron


    • Ce premier exercice d’application est présenté avec un corrigé détaillé (vidéo, présentation ou description textuelle).

    • Implementation in Java of a slightly different version of the preceeding exercice. Videos help you if needed.

    • Similar to giving change.

    • Extension du problème de sac-à-dos. Si vous avez bien compris l’exercice de rendu de monnaie, celui-ci ne devrait pas poser de problème

    • The lab Knapsack is a complete example so students can get familiar with the framework for implementing dynamic programs. It matches the notations and example of the Dasgupta, Papadimitriou, Vazirani book.  A simple object model is introduced for the representation of the data (usually two classes) as well as a class PdynSolver.java representing the dynamic program by its states (i.e the DP tables are stored as attributes). The purpose is to get the students familiar with object models that are required for more complex subjects where a model for the data becomes necessary. This framework is also used in the labs Kukulkan and Load Balancing.

    • Exercice simple pour mettre en oeuvre le modèle proposé dans le lab Knapsack

    • Variation sur le sac-à-dos avec implémentation du backtrack