From 603bbf6bf15db1cbf56138ff3671d5adfde8f1ed Mon Sep 17 00:00:00 2001 From: gwen Date: Thu, 23 Mar 2017 11:23:49 +0100 Subject: [PATCH] =?UTF-8?q?r=C3=A9flexions=20sur=20l'abstraction=20algorit?= =?UTF-8?q?hmique?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- algorithmique/cours/algo.txt | 138 ++++++++++++++++++++++++++++------- 1 file changed, 112 insertions(+), 26 deletions(-) diff --git a/algorithmique/cours/algo.txt b/algorithmique/cours/algo.txt index bad8bf5..d3ebe9d 100644 --- a/algorithmique/cours/algo.txt +++ b/algorithmique/cours/algo.txt @@ -2,7 +2,8 @@ Algorithmique ============= Al-Kharezmi, auteur du traité "Kitab al jabr w'al-muqabala", est l'inventeur -des manipulations algébriques (algèbre = al jabr). +des manipulations algébriques (algèbre = al jabr), mais l'algèbre existe +depuis bien plus longtemps (Babylone, puis l'Egypte ancienne). C'est Léonard de Pise, dit Fibonacci, qui emprunta le nom du célèbre mathématicien arabe du 9ème siècle. @@ -25,8 +26,10 @@ qui sont impliquées dans la définition d'algorithmes. Implémentation d'un algorithme ------------------------------ -Adaptation de la méthodologie de calculabilité au calcul effectif -sur une machine abstraite ou via un langage formel. +implémentation + + Adaptation de la méthodologie de calculabilité au calcul effectif + sur une machine abstraite ou via un langage formel. Il n’y a pas de parcours à sens unique de l’algorithme vers l’implantation. La quête d’une implantation efficace nous amène souvent à effectuer @@ -34,36 +37,82 @@ un retour vers les algorithmes eux-mêmes, et à en modifier des points essentiels. L’aspect théorique de réflexion sur les algorithmes, et l’aspect pratique de l'implémentation sont donc en symbiose. +Un existant émerge de la décomposition structurale d'un +domaine de base. Le fait essentiel, c'est la genèse des genres de l'existant les +uns à partir des autres. + +L'essence d'une forme (un algorithme) se réalise au sein d'une matière qu'elle créée +(un langage). L'origine d'une matière fait naître les formes (concepts) +que sa structure dessine. + +- Notion structurale de non-contradiction +- Notion extensive de "réalisation dans un champ donné" + +Deux aspects réciproques : l'essence d'une forme se réalise au sein d'une +matière qu'elle crée, l'essence d'une matière faisant naître les formes que sa +structure dessine. + +Abandonner l'idée trop simpliste de domaines concrets et d'opérations abstraites +qui posséderaient en eux-mêmes comme une nature de matière et une nature de +forme ; cette conception tendrait, en effet, à stabiliser les existants +mathématiques dans certains rôles immuables et ignorerait le fait que les +existants abstraits qui naissent de la structure d'un domaine plus concret +peuvent à leur tour servir de domaine de base pour la genèse d'autres existants. + + Types d'algorithmes ------------------- +La boucle +~~~~~~~~~~ + +Différents types de boucles (suites récurrentes, goto, boucle for...) + + .. raw:: latex - \begin{algorithm} - \caption{My algorithm}\label{euclid} - \begin{algorithmic}[1] - \Procedure{MyProcedure}{} - \State $\textit{stringlen} \gets \text{length of }\textit{string}$ - \State $i \gets \textit{patlen}$ - \BState \emph{top}: - \If {$i > \textit{stringlen}$} \Return false - \EndIf - \State $j \gets \textit{patlen}$ - \BState \emph{loop}: - \If {$\textit{string}(i) = \textit{path}(j)$} - \State $j \gets j-1$. - \State $i \gets i-1$. - \State \textbf{goto} \emph{loop}. - \State \textbf{close}; - \EndIf - \State $i \gets - i+\max(\textit{delta}_1(\textit{string}(i)),\textit{delta}_2(j))$. - \State \textbf{goto} \emph{top}. - \EndProcedure - \end{algorithmic} - \end{algorithm} + \begin{algorithm} + \caption{My algorithm}\label{euclid} + \begin{algorithmic}[1] + \Procedure{MyProcedure}{} + \State $\textit{stringlen} \gets \text{length of }\textit{string}$ + \State $i \gets \textit{patlen}$ + \BState \emph{top}: + \If {$i > \textit{stringlen}$} \Return false + \EndIf + \State $j \gets \textit{patlen}$ + \BState \emph{loop}: + \If {$\textit{string}(i) = \textit{path}(j)$} + \State $j \gets j-1$. + \State $i \gets i-1$. + \State \textbf{goto} \emph{loop}. + \State \textbf{close}; + \EndIf + \State $i \gets + i+\max(\textit{delta}_1(\textit{string}(i)),\textit{delta}_2(j))$. + \State \textbf{goto} \emph{top}. + \EndProcedure + \end{algorithmic} + \end{algorithm} +.. raw:: latex + + \begin{algorithm} + \caption{Euclid's algorithm}\label{euclid} + \begin{algorithmic}[1] + \Procedure{Euclid}{$a,b$}\Comment{The g.c.d. of a and b} + \State $r\gets a\bmod b$ + \While{$r\not=0$}\Comment{We have the answer if r is 0} + \State $a\gets b$ + \State $b\gets r$ + \State $r\gets a\bmod b$ + \EndWhile\label{euclidendwhile} + \State \textbf{return} $b$\Comment{The gcd is b} + \EndProcedure + \end{algorithmic} + \end{algorithm} + L'algorithme comme généralisation de la calculabilité ------------------------------------------------------ @@ -139,6 +188,43 @@ Démonstration vérification d’une proposition par une séquence de déductions logiques à partir d’un ensemble d’axiomes. +Lorsque le champ donné (le domaine) ne contient qu'un nombre fini d'individus, +on peut définir un choix de valeur des variables permettant de vérifier la +proposition obtenue par la *conjonction* de tous les axiomes du système proposé. +On dit alors que ce choix *réalise* un système d'axiomes. + + +Il ne s'agit plus de savoir si la définition entraîne l'existence, mais de +chercher si la structure d'un système d'axiomes (*règles*) peut donner naissance +à un champ d'individus qui soutiennent entre eux les relations définies pas les +axiomes. + +Concret et abstrait +-------------------- + +Il est possible qu'un même genre d'existant joue dans un schéma de genèse le +rôle d'abstrait par rapport à un concret de base, et soit au contraire dans une +autre genèse le concret de base d'un nouvel abstrait. + +Une pareille présentation des choses implique un tel renversement par rapport +aux habitudes de pensée classiques, qu'il faut encore insister sur le sens +nouveau que reçoivent ici les expressions de "concret" et "d'abstrait". + +Les systèmes d'axiomes sont souvent conçus comme des structures purement +formelles, abstraites. Ces structures sont si profondément engagées dans la +genèse de leurs réalisations, qu'il valait mieux désigner par ces termes les +structures de base. + +Un système d'axiome *peut* devenir le concret de base. + +Ceci permet d'exprimer non seulement l'engagement du concret dans la genèse de +l'abstrait, mais encore les relations d'imitation qui peuvent exister entre la +structure de cet abstrait et celle du concret de base. + +Dans certains cas, la genèse de l'abstrait à partir d'un concret de base +s'affirme jusqu'à réaliser une imitation de structure entre ces genres +d'existants qui naissent l'un de l'autre. + Comment rendre un algorithme lisible ------------------------------------