Problemi NP-hard e come affrontarli
Molti problemi di interesse pratico rientrano nella famosa classe dei problemi NP-completi: si tratta di problemi difficili da risolvere, per i quali si conoscono solo algoritmi lenti, con un costo in tempo esponenziale.
Cosa possiamo fare, allora, quando ci troviamo di fronte a problemi di questo tipo?
Partendo dal caso specifico della sintesi logica delle funzioni booleane, mirata alla progettazione di circuiti integrati ottimizzati secondo criteri quali l'area occupata, il tempo di risposta, o la potenza assorbita, questo intervento si propone di descrivere due approcci per affrontare in pratica i problemi difficili: la ricerca di "strutture regolari" all'interno dei dati da elaborare e la possibilità di sfruttare la tolleranza agli errori di alcune applicazioni.