• Home
  • Chimie
  • Astronomie
  • Énergie
  • La nature
  • Biologie
  • Physique
  • Électronique
  • Le calcul évolutionnaire promet des machines d'auto-programmation depuis 60 ans – alors où sont-elles ?

    Crédit :Shutterstock

    Et si les ordinateurs pouvaient se programmer eux-mêmes ? Au lieu du travail laborieux consistant à déterminer comment un ordinateur pourrait résoudre un problème, puis à écrire des instructions codées précises, tout ce que vous auriez à faire serait de lui dire ce que vous voulez et l'ordinateur générerait un algorithme qui résoudrait votre problème.

    Entrez dans le calcul évolutif, qui peut être considérée comme un type d'intelligence artificielle et une branche de l'apprentissage automatique. D'abord suggéré dans les années 1950, le calcul évolutif est l'idée qu'un ordinateur peut faire évoluer ses propres solutions aux problèmes, plutôt que les humains devant passer par une série d'étapes éventuellement complexes pour écrire le programme informatique nous-mêmes. En théorie, cela signifierait que les programmes informatiques qui pourraient prendre des semaines à programmer manuellement pourraient être prêts en quelques minutes.

    Cette idée a permis aux ordinateurs de résoudre des problèmes complexes qui peuvent ne pas être bien compris et sont difficiles à résoudre pour les humains. Les informaticiens ont utilisé le calcul évolutif sur de nombreux problèmes, y compris la formulation du meilleur mélange d'ingrédients pour l'alimentation des crevettes, optimisation du portefeuille, télécommunications, jouer à des jeux et emballage automatisé.

    Et les chercheurs qui étudient le calcul évolutif depuis plus de 60 ans ont fait d'énormes progrès. Il fait même l'objet de plusieurs revues scientifiques. Encore, comme je l'ai noté dans un article récent, l'idée n'est toujours pas largement utilisée en dehors de la communauté des chercheurs. Alors pourquoi l'informatique évolutive n'évolue-t-elle pas plus rapidement ?

    Comment fonctionne le calcul évolutif ?

    Le calcul évolutif s'appuie sur les principes de l'évolution naturelle de Charles Darwin, communément appelée survie du plus fort. C'est-à-dire, les membres les plus faibles (moins bien adaptés) d'une espèce meurent et les plus forts survivent. Sur plusieurs générations, l'espèce évoluera pour mieux s'adapter à son environnement.

    Arbre de programmation génétique. Crédit :Wikimédia

    Dans le calcul évolutionnaire, l'ordinateur crée une population de solutions potentielles à un problème. Ce sont souvent des solutions aléatoires, il est donc peu probable qu'ils résolvent le problème abordé ou même qu'ils s'en rapprochent. Mais certains seront légèrement meilleurs que d'autres. L'ordinateur peut rejeter les pires solutions, retenir les meilleurs et les utiliser pour « générer » plus de solutions potentielles. Des parties de différentes solutions seront combinées (cela est souvent appelé « croisement ») pour créer une nouvelle génération de solutions qui peuvent ensuite être testées et le processus recommence.

    Un autre élément important du calcul évolutif, comme pour la sélection naturelle, est la mutation. De temps en temps un petit, une modification aléatoire est apportée à l'une des solutions testées. Cela signifie que de nouvelles solutions potentielles peuvent être créées qui ne seraient pas possibles en utilisant simplement le crossover.

    Espérons qu'une combinaison de croisement et de mutation produira de nouvelles solutions potentielles meilleures que leurs "parents". Cela peut ne pas arriver à chaque fois, mais comme plus de générations sont produites, de meilleures solutions sont plus susceptibles d'émerger. Il n'est pas rare que le calcul évolutif implique plusieurs millions de générations, tout comme la sélection naturelle peut prendre plusieurs millions d'années pour modifier sensiblement une espèce vivante.

    L'un des types les plus populaires de calcul évolutif est la programmation génétique. Cela implique qu'un programme informatique développe un autre programme de travail pour s'attaquer à un problème spécifique. L'utilisateur fournit une certaine mesure de ce qui constitue un bon programme, puis le processus évolutif prend le relais, en espérant retourner un programme qui résout le problème.

    Nous pouvons retracer la programmation génétique jusqu'à la fin des années 1980, l'un des principaux promoteurs étant John Koza. Mais même s'il a depuis fait d'importants progrès en matière de recherche, la programmation génétique n'est pas utilisée quotidiennement par les organisations commerciales ou les utilisateurs d'ordinateurs à domicile. Étant donné à quel point il peut être difficile de développer des systèmes logiciels qui fonctionnent de manière efficace et efficiente, il semblerait raisonnable d'obtenir des ordinateurs pour aider de la même manière qu'ils changent de nombreuses autres industries.

    Sélection, Mutation et croisement.

    Pourquoi le calcul évolutionnaire n'a-t-il pas été adopté ?

    Le secteur commercial n'a pas adopté le calcul évolutif car il dispose d'autres technologies développées par les chercheurs. Par exemple, L'impression 3D a été inventée dans les années 1980 et, après une longue période de développement, elle est maintenant utilisée dans la fabrication industrielle et même par les personnes à domicile. De la même manière, réalité augmentée, la réalité virtuelle et l'intelligence artificielle ont émergé de la communauté des chercheurs et sont devenues des produits majeurs pour les grandes entreprises technologiques.

    L'un des principaux problèmes qui freinent le calcul évolutionnaire est l'incapacité des chercheurs à se concentrer sur des problèmes que le secteur commercial reconnaîtrait. Par exemple, les informaticiens ont étudié de manière intensive comment le calcul évolutif pourrait être utilisé pour planifier les horaires d'examen ou établir des itinéraires pour les véhicules.

    Mais les chercheurs n'étudient souvent que des versions simplifiées de problèmes qui sont peu utiles dans le monde réel. Par exemple, de nombreuses simulations de tournées de véhicules impliquent de calculer la distance entre deux points à l'aide d'une ligne droite. Les itinéraires des véhicules dans le monde réel suivent rarement des lignes droites, et doivent faire face à des systèmes à sens unique, pannes, questions juridiques (comme combien de temps avant qu'un conducteur doive se reposer), contraintes de temps et bien plus encore. Cependant, this complexity is actually where evolutionary computation could help. If you can adequately define the problem as it occurs in the real world, then the evolutionary algorithm should be able to deal with its complexity.

    Another problem is that the solutions evolutionary computation generates are often hard to explain. Par exemple, even though a genetic programming system might create a solution with a perfect outcome, how it actually works might be a mystery to a human programmer as the system may have produced complex code that is difficult to interpret and understand.

    An evolutionary computation system is also complex to implement and support and this may put off some commercial organisations. It would help if there was an easy-to-use framework that hid much of the underlying complexity. While these frameworks exist in the scientific community, they are not easily accessible by the commercial sector, never mind home users.

    IBM's famous computer architect Frederick Brooks said that you cannot tackle increasingly large software development projects simply by throwing more people at them. It would be an immense help to the software development industry if, instead of having to manually develop every piece of a system, developers could specify the requirements of its key parts and let an evolutionary process deliver the solutions.

    Cet article a été initialement publié sur The Conversation. Lire l'article original.




    © Science https://fr.scienceaq.com