IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Comment savoir qu’un problème est NP-Complet


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif
    Inscrit en
    Juin 2008
    Messages
    304
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 304
    Par défaut Comment savoir qu’un problème est NP-Complet
    Bonjour,

    Dans le problème des K plus courts chemins dans un graphe avec un(1) début « D » et une(1) fin « F » ? (bien que dans mon cas je cherche les K plus longs chemins)

    je ne pense pas que le seul fait que cette algo soit connu type «Dijkstra, Ford-Bellman, Floyd-Warshall » qu’il soit directement casait comme un problème NP-Complet ?

    Cordialement
    bilred

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Le problème d'optimisation "plus courts chemins" peut se transformer en une suite de problèmes de décision "chemins de longueur X". Chaque problème de décision peut être réduit a un problème SAT (Boolean satisfiability). Les problèmes SAT ont été démontrés comme étant NP-complet (theoreme de Cook–Levin).
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Inactif
    Inscrit en
    Juin 2008
    Messages
    304
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 304
    Par défaut
    Merci pour ta raiponce.
    j'ai aussi trouvais cette raiponce sur un poste

    Comment savoir que le problème est (ou non) NP-complet ?
    il faut prouver qu'il est complet dans la classe NP, c'est à dire qu'il permet (si on sait le résoudre) de résoudre tous les autres problèmes avec au plus un surcoût polynomial.
    La classe NP est constituée de tous les problèmes résolubles avec un algorithme polynomial non-déterministe. Elle veut dire Non-deterministic Polynomial Time et pas, comme on le croit trop souvent, Non Polynomial Time. On ne sait pas si les problèmes de NP sont résolubles en temps polynomial (c'est la fameuse question "P = NP").


    La méthode la plus simple pour prouver qu'un problème donné est NP-complet est souvent de montrer qu'on peut en déduire (polynomialement) la solution d'un autre problème NP-complet (on "réduit" le problème NP-complet connu vers notre problème). On utilise en général SAT ou 3-SAT qui sont des problèmes NP-complets "typiques" et souvent adaptés au problème donné. Il faut aussi montrer que le problème est dans NP, c'est-à-dire exhiber un algorithme non-déterministe polynomial (c'est là que les connaissances positives, comme les algorithmes que le PO cite, sont utiles).
    tu pourrai pas simplifier un peut !
    (je vais comment voire sa de plus prés avec les indice que ta données)

    cordialement
    bilred

  4. #4
    Membre expérimenté
    Inscrit en
    Mars 2008
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 209
    Par défaut
    un problème est NP-complet s'il se réduit polynomialement à un problème NP complet déjà connu ...c'est la caractérisation la plus importante des problème NP Complet...
    Réduire un problème A polynomialement à B c'est de prouver que toute instance de A peut se résoudre de façon polynomiale ( rapide ) s'il existait un algorithme qui résout B de façon polynomial ... d'où l'intérêt de cette classe ie si on résout un seul problème de façon polynomiale on résout tout les autres.

Discussions similaires

  1. [CR10] Comment savoir si c'est une nouvelle page ?
    Par speed034 dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 23/09/2005, 18h18
  2. [Process] comment savoir si exec est termine
    Par v1nc3kr0 dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 29/06/2005, 16h54
  3. Réponses: 2
    Dernier message: 24/03/2005, 15h48
  4. comment savoir quel menu est en surbrillance?
    Par LRobi dans le forum MFC
    Réponses: 2
    Dernier message: 27/01/2005, 09h04
  5. [C#] Comment savoir si on est logué ou pas?
    Par pc152 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 22/05/2004, 09h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo