J'interagis souvent avec des gens qui veulent demander un algorithme pour un problème de calcul (ou sa complexité), mais ils ne l'expriment pas de manière rigoureuse pour nous (les informaticiens) à comprendre.
Les renvoyer à des livres comme CLRS n'est pas utile parce que les exemples là-bas ont généralement une manière assez simple de les énoncer rigoureusement, par exemple, étant donné la liste d'adjacence d'un graphique et deux sommets qui y sont calculent le chemin le plus court entre ces sommets.
Existe-t-il un bon livre (ou une autre ressource) où une personne ayant une connaissance minimale de la CS peut apprendre comment formuler et énoncer des problèmes de calcul d'une manière rigoureuse et compréhensible pour les informaticiens?
De préférence, le livre devrait avoir de nombreux exemples sur la façon de formuler rigoureusement des problèmes de calcul à partir de divers domaines et d'exemples réels.
Clarification
Pour rendre la question plus spécifique, supposons qu'ils connaissent la terminologie mathématique / CS de base comme les ensembles, les fonctions, les graphiques, les listes, etc. au niveau des étudiants CS de 1ère / 2ème année (ce qui est le cas avec les personnes que j'ai en esprit). Par exemple, ils ont lu des manuels d'introduction comme Aho et Ullman (bien qu'ils ne l'aient peut-être pas complètement compris).
- Al Aho et Jeff Ullman, Foundations of Computer Science , 1992.
Réponses:
une bonne ressource sur / pour cela, assez bien connue des universitaires mais pas si largement connue en dehors des spécialistes, est l'écriture mathématique par Donald E. Knuth, Tracy L. Larrabee et Paul M. Roberts. il y a un livre publié, des vidéos de conférences et un ensemble de notes. il est plus écrit du point de vue des personnes qui tentent de maîtriser l'écriture mathématique, par exemple pour créer des articles, mais tous les conseils sont hautement applicables au cas des profanes qui tentent de formuler des problèmes avec précision. L'écriture mathématique, tout en étant formidable à apprendre, est l'approche scientifique pour définir / formuler rigoureusement - et comme les détails du livre, résoudre , par exemple via des algorithmes ou des preuves - des problèmes computationnels / algorithmiques.
Informations sur le livre d' écriture mathématique
Index des vidéos de cours d'écriture mathématique
Écriture mathématique CS1193 notes de classe
aussi, le texte classique de Garey & Johnson, Computers & Intractability ne décrit pas exactement comment formuler les problèmes avec précision, mais il donne de nombreux exemples, et divers "modèles" théoriques / conceptuels / techniques, organisés en sections de problèmes similaires, qui peuvent être utilisé comme "blocs de construction" pour décrire les problèmes de calcul / algorithmique.
la source
vient de croiser cette référence agréable / soignée, inhabituelle, relativement nouvelle / inconnue sur sa page d'accueil par Emmanuele Viola , prof (T) CS à Northeastern University) apparemment inédit ailleurs. 41pp. il commence par des concepts mathématiques très basiques, par exemple l'implication, puis s'étend jusqu'à des sujets avancés comme le théorème d'Erdős-Szekeres et la théorie de Ramsey .
la source
Achetez le livre Algorithms and Data Structures de Robert Lafore.
Sur ce livre, chaque algorithme est expliqué comme une histoire, un peu comme une poésie. Ensuite, donnez à la personne la version Lafore d'un algorithme, puis la version CLRS.
Peut-être que comme ça, la personne aura une idée de la façon de traduire d'une description intuitive à une description rigoureuse.
la source