Interagisco spesso con persone che vogliono chiedere un algoritmo per un problema computazionale (o la sua complessità), ma non lo esprimono in modo rigoroso per noi (informatici) per capire.
Riferirli a libri come CLRS non è utile perché gli esempi di solito hanno un modo abbastanza semplice di affermare rigorosamente, ad esempio dato l'elenco di adiacenza di un grafico e due vertici in esso calcolano il percorso più breve tra quei vertici.
Esiste un buon libro (o qualche altra risorsa) in cui una persona con una minima conoscenza della CS può imparare come formulare e dichiarare i problemi computazionali in modo rigoroso e comprensibile agli scienziati informatici?
Preferibilmente il libro dovrebbe avere molti esempi di come formulare rigorosamente problemi computazionali da vari domini e esempi del mondo reale.
Una precisazione
Per rendere la domanda più specifica, supponiamo che conoscano la terminologia matematica / CS di base come insiemi, funzioni, grafici, elenchi, ecc. A livello di studente universitario di 1 ° / 2 ° anno (che è il caso delle persone che ho in mente). Ad esempio, hanno letto alcuni libri di testo introduttivi come Aho e Ullman (anche se potrebbero non averlo compreso del tutto).
- Al Aho e Jeff Ullman, Foundations of Computer Science , 1992.