{"id":7599,"date":"2020-03-03T16:08:03","date_gmt":"2020-03-03T15:08:03","guid":{"rendered":"https:\/\/complex-systems-ai.com\/?page_id=7599"},"modified":"2022-12-03T23:03:44","modified_gmt":"2022-12-03T22:03:44","slug":"programmation-genetique","status":"publish","type":"page","link":"https:\/\/complex-systems-ai.com\/en\/algorithms-devolution-2\/genetic-programming\/","title":{"rendered":"Genetic programming"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"7599\" class=\"elementor elementor-7599\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6d4a2d1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6d4a2d1\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-c3a7368\" data-id=\"c3a7368\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1a0c343 elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"1a0c343\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/complex-systems-ai.com\/en\/algorithms-devolution-2\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Evolution algorithms<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-a042af8\" data-id=\"a042af8\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-419a97f elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"419a97f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/complex-systems-ai.com\/en\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Home page<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-a0b5581\" data-id=\"a0b5581\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4b0b082 elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"4b0b082\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Algorithme_g%C3%A9n%C3%A9tique\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Wiki<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-737208e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"737208e\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-288c8bf8\" data-id=\"288c8bf8\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2ad36f5d elementor-widget elementor-widget-text-editor\" data-id=\"2ad36f5d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/complex-systems-ai.com\/en\/algorithms-devolution-2\/genetic-programming\/#Programmation-genetique\" >Genetic programming<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Programmation-genetique\"><\/span>Genetic programming<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The genetic programming algorithm draws on population genetics (including inheritance and gene frequencies) and evolution at the population level, as well as Mendelian understanding of structure (such as chromosomes , genes, alleles) and mechanisms (such as recombination and mutation). This is the so-called new or modern synthesis of evolutionary biology.<\/p>\n<p><\/p>\n<p>Individuals in a population contribute their genetic material (called the genotype) proportional to the relevance of their expressed genome (called their phenotype) to their environment. The next generation is created by a mating process that involves genetic operators such as recombining the genomes of two individuals in the population and introducing random copy errors (called mutations). This iterative process can lead to improved adaptation between the phenotypes of individuals in a population and the environment.<\/p>\n<p><\/p>\n<p>Genetic programming can be developed and used in a secondary adaptive process, where an assessment of candidates at the end of this secondary adaptive process is used for differential reproductive success in the first evolutionary process. This system can be understood as the interdependencies experienced in evolutionary development where evolution operates on an embryo which in turn develops into an individual in an environment that can eventually reproduce.<\/p>\n<p><\/p>\n<p>The goal of the genetic programming algorithm is to use induction to design a computer program. This is achieved by using scalable operators on candidate programs with a tree structure to improve the fit between the population of candidate programs and an objective function. The evaluation of a candidate solution involves its execution.<\/p>\n<p><\/p>\n<p>The genetic program uses symbolic LISP-like expressions called S-expressions which represent the graph of a program with function nodes and terminal nodes. While the algorithm is running, the programs are treated as data and when they are evaluated, they are executed. The crossing of a <a href=\"https:\/\/complex-systems-ai.com\/en\/graph-theory-2\/\">graph<\/a> program is always depth first, and functions should always return a value.<\/p>\n<p><\/p>\n<p>The genetic programming algorithm was designed for inductive automatic programming and is well suited to the <a href=\"https:\/\/complex-systems-ai.com\/en\/correlation-and-regressions\/\">regression<\/a> symbolic, controller design, and machine learning tasks under the broader name of function approximation.<\/p>\n<p><\/p>\n<p>The evaluation (allocation of fitness) of a candidate solution usually takes into account the structure of the program, rewarding parsimony.<\/p>\n<p><\/p>\n<p>The selection process must be balanced between random selection and greedy selection to bias the research towards finer candidate solutions (exploitation), while promoting useful diversity in the population (exploration).<\/p>\n<p><\/p>\n<p>A program can respond to zero or more input values and can produce one or more outputs.<\/p>\n<p><\/p>\n<p>All functions used in the function node set should return a usable result. For example, the division function should return a sensitive value (such as zero or one) when a division by zero occurs.<\/p>\n<p><\/p>\n<figure><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2020\/03\/geneprog.png\" alt=\"genetic programming\" width=\"453\" height=\"740\" title=\"\"><\/figure>\n<p><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Algorithms of evolution Wiki home page Genetic programming The genetic programming algorithm is inspired by the genetics of populations (including heredity and frequencies of genes) ... <\/p>","protected":false},"author":1,"featured_media":0,"parent":7110,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-7599","page","type-page","status-publish","hentry"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/pages\/7599","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/comments?post=7599"}],"version-history":[{"count":3,"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/pages\/7599\/revisions"}],"predecessor-version":[{"id":18869,"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/pages\/7599\/revisions\/18869"}],"up":[{"embeddable":true,"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/pages\/7110"}],"wp:attachment":[{"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/media?parent=7599"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}