Ecco un problema interessante che ho incontrato in un concorso di programmazione:rilevare quando moltiplicazione matriciale è possibile
dichiarazione Problema: date le dimensioni del n
matrici, determinare se esiste un ordine tale che le matrici possono essere moltiplicata. Se ne esiste uno, stampare le dimensioni (prodotto delle dimensioni) della matrice risultante.
mie osservazioni: Ciò riduce al problema NP-completo percorso hamiltoniano se si considera ciascuna matrice come un vertice e disegnare un bordo diretto tra matrici che possono essere moltiplicati. Ho risolto questo problema semplicemente forzando il problema, ma questo è chiaramente molto lento. Mi stavo chiedendo se ci sono ottimizzazioni intelligenti per questa particolare istanza del problema.
Tutti i problemi risolvibili (e verificabili) in modo efficiente riducono a problemi NP-completi. È la riduzione da un problema NP-completo al tuo problema che dovrebbe infastidire. – aelguindy
Come ha detto @ElKamina, è un problema di Eulerian Trail, vedi anche la mia risposta [qui] (http://stackoverflow.com/a/9046177/1011995). –