Auto-assemblageL’auto-assemblage, parfois rapproché de l'auto-organisation, désigne les procédés par lesquels un système désorganisé de composants élémentaires s'assemble et s'organise de façon spontanée et autonome, à la suite d'interactions spécifiques et locales entre ces composants. On parle d'auto-assemblage moléculaire lorsque les composants en question sont des molécules, mais l'auto-assemblage s'observe à différentes échelles, des molécules à la formation du système solaire et des galaxies en passant par l'échelle nanométrique.
Self-reconfiguring modular robotModular self-reconfiguring robotic systems or self-reconfigurable modular robots are autonomous kinematic machines with variable morphology. Beyond conventional actuation, sensing and control typically found in fixed-morphology robots, self-reconfiguring robots are also able to deliberately change their own shape by rearranging the connectivity of their parts, in order to adapt to new circumstances, perform new tasks, or recover from damage.
Auto-assemblage moléculairedroite|400px|thumb|Un exemple de molécules se liant par liaisons d'hydrogène. L'auto-assemblage moléculaire est le processus par lequel des molécules soi-montant adoptent un agencement sans la direction d'une source extérieure. En général, le terme fait référence à l'auto-assemblage intermoléculaire alors que l'auto-assemblage intramoléculaire prend plus communément le nom de pliage ou de repliement dans le cas de protéines.
Self-assembly of nanoparticlesNanoparticles are classified as having at least one of three dimensions be in the range of 1-100 nm. The small size of nanoparticles allows them to have unique characteristics which may not be possible on the macro-scale. Self-assembly is the spontaneous organization of smaller subunits to form larger, well-organized patterns. For nanoparticles, this spontaneous assembly is a consequence of interactions between the particles aimed at achieving a thermodynamic equilibrium and reducing the system’s free energy.
Machine autoréplicative300px|vignette|Une forme simple de machine autoréplicative. Une machine autoréplicative est une construction qui est théoriquement capable de fabriquer de manière autonome une copie d'elle-même en utilisant des matières premières prises dans son environnement. Le concept de machines autoréplicatives a été proposé et examiné par , Edward F. Moore, Freeman Dyson, John von Neumann et dans des temps plus récents par Kim Eric Drexler dans son livre sur la nanotechnologie, les Moteurs de Création et par Robert Freitas et Ralph Merkle dans leur examen Kinematic des Machines autoréplicatives qui a fourni la première analyse complète du duplicateur.
Self-replicationSelf-replication is any behavior of a dynamical system that yields construction of an identical or similar copy of itself. Biological cells, given suitable environments, reproduce by cell division. During cell division, DNA is replicated and can be transmitted to offspring during reproduction. Biological viruses can replicate, but only by commandeering the reproductive machinery of cells through a process of infection. Harmful prion proteins can replicate by converting normal proteins into rogue forms.
MétaheuristiqueUne métaheuristique est un algorithme d’optimisation visant à résoudre des problèmes d’optimisation difficile (souvent issus des domaines de la recherche opérationnelle, de l'ingénierie ou de l'intelligence artificielle) pour lesquels on ne connaît pas de méthode classique plus efficace. Les métaheuristiques sont généralement des algorithmes stochastiques itératifs, qui progressent vers un optimum global (c'est-à-dire l'extremum global d'une fonction), par échantillonnage d’une fonction objectif.
Programmation concurrenteLa programmation concurrente est un paradigme de programmation tenant compte, dans un programme, de l'existence de plusieurs piles sémantiques qui peuvent être appelées threads, processus ou tâches. Elles sont matérialisées en machine par une pile d'exécution et un ensemble de données privées. La concurrence est indispensable lorsque l'on souhaite écrire des programmes interagissant avec le monde réel (qui est concurrent) ou tirant parti de multiples unités centrales (couplées, comme dans un système multiprocesseurs, ou distribuées, éventuellement en grille ou en grappe).
Robotvignette|Atlas (2013), robot androïde de Boston Dynamics vignette|Bras manipulateurs dans un laboratoire (2009) vignette|NAO (2006), robot humanoïde éducatif d'Aldebaran Robotics vignette|DER1 (2005), un actroïde d'accueil vignette|Roomba (2002), un robot ménager Un robot est un dispositif mécatronique (alliant mécanique, électronique et informatique) conçu pour accomplir automatiquement des tâches imitant ou reproduisant, dans un domaine précis, des actions humaines.
Robot aspirateuralt=|vignette|Un aspirateur robot équipé d'un télémètre laser (à l'intérieur du disque au-dessus de l'aspirateur) sur sa base de rechargement.Un robot aspirateur est un aspirateur robotisé, c'est-à-dire capable de réaliser le travail d'un aspirateur de manière autonome, sans intervention d'un être humain. vignette|Un Electrolux Trilobite 2.0. En 1996, Electrolux commercialise le premier robot aspirateur, le Trilobite. En 1997, l'une des premières versions du Trilobite fut présentée par la BBC.
Code automodifiableUn code automodifiable est, en programmation informatique, un programme qui peut se modifier lui-même, c’est-à-dire appeler des routines, fonctions ou méthodes qui seront créées par le programme lui-même. En dehors de l'idée, qui relève pour le moment de la fiction, d'un robot qui modifierait lui-même sa finalité, l'utilisation la plus courante du code automodifiable est l'optimisation de la vitesse d'exécution d'un programme : par exemple un interpréteur peut analyser le code source qu'il est en train d'exécuter, se rendre compte qu'une fonction est appelée fréquemment, et en réaliser à la volée une version compilée, qui sera exécutée plus rapidement.
Concurrency controlIn information technology and computer science, especially in the fields of computer programming, operating systems, multiprocessors, and databases, concurrency control ensures that correct results for concurrent operations are generated, while getting those results as quickly as possible. Computer systems, both software and hardware, consist of modules, or components. Each component is designed to operate correctly, i.e., to obey or to meet certain consistency rules.
Auto-organisationL'auto-organisation ou autoorganisation est un phénomène par lequel un système s'organise lui-même. Les systèmes physiques, biologiques ou écologiques, sociaux, ont tendance à s'organiser d'eux-mêmes. Il s'agit soit de l'organisation initiale du système lors de son émergence spontanée, soit lorsque le système existe déjà de l'apparition d'une organisation plus ou complexe. L'auto-organisation agit ainsi à l'encontre de l'entropie (on parle alors de néguentropie), qui est une mesure de désordre.
Robot domestiquethumb|Robot domestique nettoyant une vitre.|alt=le film montre un robot nettoyeur allant et venant sur une vitre de fenêtre en position verticale Un robot domestique est un robot de service personnel utilisé pour des tâches ménagères. On estime à le nombre de robots domestiques en 2006, avec une estimation de robots industriels. Les robots domestiques sont utilisés par exemple en vaisselle, en repassage, en nettoyage et en cuisine. Ils peuvent également être utilisés dans le domaine de la restauration et dans la construction.
Distributed concurrency controlDistributed concurrency control is the concurrency control of a system distributed over a computer network (Bernstein et al. 1987, Weikum and Vossen 2001). In database systems and transaction processing (transaction management) distributed concurrency control refers primarily to the concurrency control of a distributed database. It also refers to the concurrency control in a multidatabase (and other multi-transactional object) environment (e.g., federated database, grid computing, and cloud computing environments.
Simulation de phénomènesLa simulation de phénomènes est un outil utilisé dans le domaine de la recherche et du développement. Elle permet d'étudier les réactions d'un système à différentes contraintes pour en déduire les résultats recherchés en se passant d'expérimentation. Les systèmes technologiques (infrastructures, véhicules, réseaux de communication, de transport ou d'énergie) sont soumis à différentes contraintes et actions. Le moyen le plus simple d'étudier leurs réactions serait d'expérimenter, c'est-à-dire d'exercer l'action souhaitée sur l'élément en cause pour observer ou mesurer le résultat.
Synthèse de programmesEn informatique, la synthèse de programmes consiste à construire automatiquement un programme à partir d'une spécification. La spécification est décrite dans un langage logique, par exemple en logique temporelle linéaire. La synthèse de programmes s'appuie sur des techniques de vérification formelle de programmes. Le problème de synthèse de programmes remonte aux travaux d'Alonzo Church. Manna et Waldinger ont proposé une méthode déductive pour synthétiser un programme à partir d'une spécification en logique du premier ordre.
Intelligence distribuéeL'intelligence distribuée, appelée aussi intelligence en essaim, désigne l'apparition de phénomènes cohérents à l'échelle d'une population dont les individus agissent selon des règles simples. L'interaction ou la synergie entre actions individuelles simples peut de façons variées permettre l'émergence de formes, organisations, ou comportements collectifs, complexes ou cohérents, tandis que les individus eux se comportent à leur échelle indépendamment de toute règle globale.
Multiversion Concurrency ControlMultiversion concurrency control (abrégé en MCC ou MVCC) est une méthode informatique de contrôle des accès concurrents fréquemment utilisée dans les systèmes de gestion de base de données et les langages de programmation concernant la gestion des caches en mémoire. Le principe de MVCC repose sur un verrouillage dit optimiste contrairement au verrouillage pessimiste qui consiste à bloquer préalablement les objets à des garanties de bonne fin. L'inconvénient logique est qu'une mise à jour peut être annulée du fait d'un "blocage" en fin de traitement.
Algorithmethumb|Algorithme de découpe d'un polygone quelconque en triangles (triangulation). Un algorithme est une suite finie et non ambiguë d'instructions et d’opérations permettant de résoudre une classe de problèmes. Le domaine qui étudie les algorithmes est appelé l'algorithmique. On retrouve aujourd'hui des algorithmes dans de nombreuses applications telles que le fonctionnement des ordinateurs, la cryptographie, le routage d'informations, la planification et l'utilisation optimale des ressources, le , le traitement de textes, la bio-informatique L' algorithme peut être mis en forme de façon graphique dans un algorigramme ou organigramme de programmation.