{"id":1062,"date":"2016-08-22T14:36:19","date_gmt":"2016-08-22T13:36:19","guid":{"rendered":"http:\/\/smart--grid.net\/?page_id=1062"},"modified":"2024-02-11T19:46:45","modified_gmt":"2024-02-11T18:46:45","slug":"algorithmique","status":"publish","type":"page","link":"https:\/\/complex-systems-ai.com\/es\/algoritmico\/","title":{"rendered":"Algor\u00edtmica 101"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"1062\" class=\"elementor elementor-1062\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2ac4cbe elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2ac4cbe\" 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-1baa7f4\" data-id=\"1baa7f4\" 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-dbcd0f1 elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"dbcd0f1\" 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\/es\/2020\/04\/03\/teorias-y-algoritmos-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\">Teor\u00edas<\/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-33518ee\" data-id=\"33518ee\" 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-79d06a5 elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"79d06a5\" 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\/es\/\">\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\">Pagina de inicio<\/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-04853fc\" data-id=\"04853fc\" 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-21786ef elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"21786ef\" 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\" 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-7427644 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7427644\" 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-fed0e3c\" data-id=\"fed0e3c\" 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-66a1e94 elementor-widget elementor-widget-toggle\" data-id=\"66a1e94\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"toggle.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1071\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"button\" aria-controls=\"elementor-tab-content-1071\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">I. Escribir y modelar un algoritmo<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1071\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"region\" aria-labelledby=\"elementor-tab-title-1071\"><ul>\n<li><a href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/pseudo-lenguaje-y-diagrama-de-flujo\/\">Pseudolenguaje y diagrama de flujo<\/a><\/li>\n<li><a href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/terminacion-y-correccion-2\/\">Terminaci\u00f3n y correcci\u00f3n<\/a><\/li>\n<li><a href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/complejidad-en-el-tiempo\/\">Complejidad del tiempo<\/a><\/li>\n<li><a title=\"Aproximaci\u00f3n de algoritmos\" href=\"https:\/\/en.wikipedia.org\/wiki\/Approximation_algorithm\" target=\"_blank\" rel=\"noopener\">Aproximaci\u00f3n de algoritmos<\/a><\/li>\n<\/ul>\n<p>An\u00e1lisis:<\/p>\n<ul>\n<li><a title=\"\" href=\"https:\/\/en.wikipedia.org\/wiki\/Adversary_model\" target=\"_blank\" rel=\"noopener\">Modelo adversario<\/a><\/li>\n<li><a title=\"Eficiencia algor\u00edtmica\" href=\"https:\/\/en.wikipedia.org\/wiki\/Algorithmic_efficiency\" target=\"_blank\" rel=\"noopener\">Eficiencia algor\u00edtmica<\/a><\/li>\n<li><a title=\"An\u00e1lisis amortizado\" href=\"https:\/\/en.wikipedia.org\/wiki\/Amortized_analysis\" target=\"_blank\" rel=\"noopener\">An\u00e1lisis amortizado<\/a><\/li>\n<li><a title=\"Declaraci\u00f3n de longitud de ruta\" href=\"https:\/\/en.wikipedia.org\/wiki\/Instruction_path_length\" target=\"_blank\" rel=\"noopener\">Declaraci\u00f3n de longitud de ruta<\/a><\/li>\n<li><a title=\"Problema de actualizaci\u00f3n de lista\" href=\"https:\/\/en.wikipedia.org\/wiki\/Master_theorem_(analysis_of_algorithms)\" target=\"_blank\" rel=\"noopener\">Teorema maestro<\/a><\/li>\n<li><a title=\"Funci\u00f3n polilogar\u00edtmica\" href=\"https:\/\/en.wikipedia.org\/wiki\/Output-sensitive_algorithm\" target=\"_blank\" rel=\"noopener\">Algoritmo sensible a la salida<\/a><\/li>\n<li><a title=\"\" href=\"https:\/\/en.wikipedia.org\/wiki\/Polynomial_delay\" target=\"_blank\" rel=\"noopener\">Retraso polinomial<\/a><\/li>\n<li><a title=\"\" href=\"https:\/\/en.wikipedia.org\/wiki\/Potential_method\" target=\"_blank\" rel=\"noopener\">M\u00e9todo potencial<\/a><\/li>\n<li><a title=\"Mejor, peor y promedio caso\" href=\"https:\/\/en.wikipedia.org\/wiki\/Probabilistic_analysis_of_algorithms\" target=\"_blank\" rel=\"noopener\">An\u00e1lisis probabil\u00edstico de algoritmos<\/a><\/li>\n<\/ul><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1072\" class=\"elementor-tab-title\" data-tab=\"2\" role=\"button\" aria-controls=\"elementor-tab-content-1072\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">II. Paradigmas y estrategias de programaci\u00f3n<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1072\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"2\" role=\"region\" aria-labelledby=\"elementor-tab-title-1072\"><ul>\n<li><a title=\"\" href=\"https:\/\/en.wikipedia.org\/wiki\/Imperative_programming\" target=\"_blank\" rel=\"noopener\">Imperativo<\/a>\n<ul>\n<li><a title=\"Programaci\u00f3n orientada a objetos\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Programmation_orient%C3%A9e_objet\" target=\"_blank\" rel=\"noopener\">Programaci\u00f3n orientada a objetos<\/a><\/li>\n<li><a title=\"\" href=\"https:\/\/en.wikipedia.org\/wiki\/Procedural_programming\" target=\"_blank\" rel=\"noopener\">Programaci\u00f3n procedimental<\/a>\u00a0<\/li>\n<\/ul>\n<\/li>\n<li><a title=\"\" href=\"https:\/\/en.wikipedia.org\/wiki\/Declarative_programming\" target=\"_blank\" rel=\"noopener\">Declarativo<\/a>\n<ul>\n<li><a title=\"Programacion funcional\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Programmation_fonctionnelle\" target=\"_blank\" rel=\"noopener\">Programacion funcional<\/a><\/li>\n<li><a href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/programacion-logica-2\/\">Programaci\u00f3n l\u00f3gica<\/a><\/li>\n<li><a class=\"mw-redirect\" title=\"Programaci\u00f3n matem\u00e1tica\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mathematical_programming\" target=\"_blank\" rel=\"noopener\">Programaci\u00f3n matem\u00e1tica<\/a><\/li>\n<li><a title=\"\" href=\"https:\/\/en.wikipedia.org\/wiki\/Reactive_programming\" target=\"_blank\" rel=\"noopener\">Programaci\u00f3n reactiva<\/a>\u00a0<\/li>\n<\/ul>\n<\/li>\n<li><a title=\"Programaci\u00f3n estructurada\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Programmation_structur%C3%A9e\" target=\"_blank\" rel=\"noopener\">Programaci\u00f3n estructurada<\/a><\/li>\n<li><a title=\"Programaci\u00f3n declarativa\" href=\"https:\/\/en.wikipedia.org\/wiki\/Symbolic_programming\" target=\"_blank\" rel=\"noopener\">Programaci\u00f3n simb\u00f3lica<\/a><\/li>\n<\/ul><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1073\" class=\"elementor-tab-title\" data-tab=\"3\" role=\"button\" aria-controls=\"elementor-tab-content-1073\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">III. Paradigmas algor\u00edtmicos<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1073\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"3\" role=\"region\" aria-labelledby=\"elementor-tab-title-1073\"><ul>\n<li><a href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/programacion-recursiva\/\">Programaci\u00f3n recursiva<\/a><\/li>\n<li><a href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/programacion-dinamica-2\/\">Programaci\u00f3n din\u00e1mica<\/a><\/li>\n<li><a href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/divide-y-venceras\/\">Dividir y conquistar y dicotom\u00eda<\/a><\/li>\n<li><a href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/algoritmo-naif-codicia-enumeracion\/\">M\u00e9todo ingenuo - algoritmo codicioso - fuerza bruta<\/a><\/li>\n<li><a title=\"Retroceso\" href=\"https:\/\/en.wikipedia.org\/wiki\/Backtracking\" target=\"_blank\" rel=\"noopener\">Retroceso<\/a><\/li>\n<li><a href=\"https:\/\/complex-systems-ai.com\/es\/optimizacion-combinatoria\/ramificar-y-enlazar\/\">Ramificar y enlazar<\/a><\/li>\n<li><a title=\"Ciruela y b\u00fasqueda\" href=\"https:\/\/en.wikipedia.org\/wiki\/Prune_and_search\" target=\"_blank\" rel=\"noopener\">Ciruela y b\u00fasqueda<\/a><\/li>\n<li><a title=\"\" href=\"https:\/\/en.wikipedia.org\/wiki\/Kernelization\" target=\"_blank\" rel=\"noopener\">Kernelizaci\u00f3n<\/a><\/li>\n<li><a title=\"Programaci\u00f3n din\u00e1mica\" href=\"https:\/\/en.wikipedia.org\/wiki\/Iterative_compression\" target=\"_blank\" rel=\"noopener\">Compresi\u00f3n iterativa<\/a><\/li>\n<li><a title=\"Algoritmo de l\u00ednea de barrido\" href=\"https:\/\/en.wikipedia.org\/wiki\/Sweep_line_algorithm\" target=\"_blank\" rel=\"noopener\">Algoritmos de l\u00ednea de barrido<\/a><\/li>\n<li><a title=\"\" href=\"https:\/\/en.wikipedia.org\/wiki\/Rotating_calipers\" target=\"_blank\" rel=\"noopener\">Calibradores giratorios<\/a><\/li>\n<li><a title=\"Kernelizaci\u00f3n\" href=\"https:\/\/en.wikipedia.org\/wiki\/Randomized_algorithm#Randomized_incremental_constructions_in_geometry\" target=\"_blank\" rel=\"noopener\">Construcci\u00f3n incremental aleatoria<\/a><\/li>\n<\/ul><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1074\" class=\"elementor-tab-title\" data-tab=\"4\" role=\"button\" aria-controls=\"elementor-tab-content-1074\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">IV. Programaci\u00f3n multiagente<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1074\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"4\" role=\"region\" aria-labelledby=\"elementor-tab-title-1074\">Alternar contenido<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\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-4e7226ea elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4e7226ea\" 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-6f399206\" data-id=\"6f399206\" 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-1de956bb elementor-widget elementor-widget-text-editor\" data-id=\"1de956bb\" 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<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 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\">Contenido<\/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=\"Tabla de contenido alternativo\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Palanca<\/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\/es\/algoritmico\/#Algorithmique\" >Algor\u00edtmico<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/#Transcrire-un-algorithme\" >Transcribir un algoritmo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/#Structure-de-controle-et-structure-de-donnees\" >Estructura de control y estructura de datos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/#Notions-de-terminaison-de-correction-de-completude\" >Nociones de terminaci\u00f3n, correcci\u00f3n, integridad<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/#Complexite-algorithmique\" >Complejidad algor\u00edtmica<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"has-text-align-left\"><span class=\"ez-toc-section\" id=\"Algorithmique\"><\/span>Algor\u00edtmico<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph {\"align\":\"left\"} --><\/p>\n<p class=\"has-text-align-left\">Los algoritmos han existido desde siempre, es un proceso de pensamiento que se describe de manera l\u00f3gica. Si bien este sistema nos parece hoy fundamental para muchas ciencias, la sistematizaci\u00f3n de la escritura algor\u00edtmica ha ido evolucionando a lo largo del tiempo y a trav\u00e9s de la tecnolog\u00eda. Comenz\u00f3 en la \u00e9poca de los babilonios, hasta que fue concretamente establecido por Ren\u00e9 Descartes en el m\u00e9todo general propuesto por el <em>Discurso sobre el m\u00e9todo<\/em> en 1637.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-11096 size-full\" src=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2020\/09\/cropped-Capture.png\" alt=\"algor\u00edtmico\" width=\"97\" height=\"97\" title=\"\"><\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph {\"align\":\"left\"} --><\/p>\n<p class=\"has-text-align-left\">Los algoritmos modernos, incluido el llamado lenguaje de &quot;programa&quot;, hicieron su debut poco despu\u00e9s en 1677. El t\u00e9rmino que usamos hoy, &quot;algoritmo&quot;, aparece dos siglos despu\u00e9s.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph {\"align\":\"left\"} --><\/p>\n<p class=\"has-text-align-left\">El algoritmo de <abbr class=\"abbr\" title=\"Vig\u00e9simo\">XX<sup>mi<\/sup><\/abbr> y <abbr class=\"abbr\" title=\"Vig\u00e9simo primero\">XXI<sup>mi<\/sup><\/abbr> century se basa a menudo en formalismos como el de las m\u00e1quinas de Turing, que proporciona un marco cient\u00edfico para estudiar las propiedades de los algoritmos.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph {\"align\":\"left\"} --><\/p>\n<p class=\"has-text-align-left\">Con la inform\u00e1tica, los algoritmos se desarrollaron mucho en la segunda mitad del <abbr class=\"abbr\" title=\"Vig\u00e9simo\">XX<sup>mi<\/sup><\/abbr> Century y Knuth (1969), autor de The Art of Computer Programming definen 5 propiedades que constituyen los requisitos previos de un algoritmo.<\/p>\n<p class=\"has-text-align-left\">1. Finitud: un algoritmo debe terminar despu\u00e9s de un n\u00famero finito de pasos.<\/p>\n<p class=\"has-text-align-left\">2. Definici\u00f3n precisa: cada paso de un algoritmo debe definirse con precisi\u00f3n y sin ambig\u00fcedades.<\/p>\n<p class=\"has-text-align-left\">3. Entradas: cantidades que se definen antes de que comience el algoritmo.<\/p>\n<p class=\"has-text-align-left\">4. Productos: cantidades que tienen una relaci\u00f3n espec\u00edfica con los insumos.<\/p>\n<p class=\"has-text-align-left\">5. Rendimiento: todas las operaciones que debe realizar el algoritmo deben ser lo suficientemente b\u00e1sicas como para poder en principio ser realizadas en un periodo de tiempo finito por un hombre utilizando papel y l\u00e1piz.<\/p>\n<p>Markov (1967) define un algoritmo como \u201cuna prescripci\u00f3n exacta que define un proceso de procesamiento que conduce desde los datos iniciales hasta el resultado final\u201d.<\/p>\n<p>Lo que implica las siguientes caracter\u00edsticas:<br \/>\u2022 Precisi\u00f3n de la prescripci\u00f3n que no deja lugar a la arbitrariedad y la comprensi\u00f3n universal \u2022 Posibilidad de partir de datos iniciales que pueden variar dentro de l\u00edmites dados \u2022 La orientaci\u00f3n del algoritmo en la b\u00fasqueda de un resultado deseado que debe obtenerse al final de la ejecuci\u00f3n de los datos iniciales: esta es la propiedad de conclusi\u00f3n del algoritmo.<\/p>\n<p>Para Minsky (1967) la definici\u00f3n es a\u00fan m\u00e1s directa:<br \/>\u201cUn conjunto de reglas que nos dicen, de momento en momento, exactamente c\u00f3mo comportarnos\u201d<\/p>\n<p>Y finalmente para Stone (1972)<br \/>\u201cUn algoritmo es un conjunto de reglas que define con precisi\u00f3n una secuencia de operaciones de modo que cada regla sea efectiva y est\u00e9 definida y la secuencia se complete en un tiempo finito. \u00bb<\/p>\n<p>Adem\u00e1s especifica que:<br \/>\u201cpara quienes siguen las reglas del algoritmo, deben formularse de manera que se sigan mec\u00e1nicamente sin tener que pensar\u201d<\/p>\n<p>Por ejemplo :<br \/>Si las instrucciones requieren extraer una ra\u00edz cuadrada y las realiza alguien que sabe hacer aritm\u00e9tica pero no sabe c\u00f3mo extraer una ra\u00edz cuadrada, entonces se debe proporcionar un conjunto de reglas para extraer una ra\u00edz cuadrada, de modo que se cumpla la definici\u00f3n de el algoritmo<\/p>\n<p>Se han desarrollado muchas herramientas formales o te\u00f3ricas para describir algoritmos, estudiarlos, expresar sus cualidades y poder compararlos:<\/p>\n<ul>\n<li>estructuras algor\u00edtmicas: estructuras de control y estructuras de datos.<\/li>\n<li>las nociones de correcci\u00f3n, completitud y <a href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/terminacion-y-correccion-2\/\">terminaci\u00f3n<\/a>.<\/li>\n<li>la teoria de <a href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/complejidad-en-el-tiempo\/\">complejidad<\/a>.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Transcrire-un-algorithme\"><\/span>Transcribir un algoritmo<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>LOS<b>lenguaje natural <\/b>: detallado y ambiguo, rara vez se usa para algoritmos complejos pero no est\u00e1 prohibido.<br \/><a href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/pseudo-lenguaje-y-diagrama-de-flujo\/\">Pseudoc\u00f3digo<\/a> : un lenguaje estructurado, pero sin reglas estrictas definidas; Independiente de cualquier implementaci\u00f3n<br \/><b>Organigrama<\/b> : sin ambig\u00fcedad, buena legibilidad, escritura en forma de s\u00edmbolos estandarizados<br \/>LOS<b>lenguajes de programaci\u00f3n<\/b> : normalmente destinado a transcribir diagramas de flujo en una forma comprensible para las computadoras; Tambi\u00e9n se puede utilizar para describir algoritmos.<br \/>LOS<b>lenguajes algor\u00edtmicos<\/b> : lenguaje que utiliza pseudoc\u00f3digo compuesto de reglas fijas, comprensibles por una computadora, que permite la descripci\u00f3n y ejecuci\u00f3n de algoritmos.<\/p>\n<h2 class=\"has-text-align-left\"><span class=\"ez-toc-section\" id=\"Structure-de-controle-et-structure-de-donnees\"><\/span>Estructura de control y estructura de datos<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Una estructura de control es un comando que controla el orden en que se ejecutan las diversas instrucciones de un algoritmo o un programa de computadora. El procesador se encarga de memorizar la direcci\u00f3n de la siguiente instrucci\u00f3n a ejecutar, los bloques (bucles, if, etc.) o las subrutinas.<\/p>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:html --><\/p>\n<p><!-- \/wp:html --><\/p>\n<p><!-- wp:paragraph {\"align\":\"left\"} --><\/p>\n<p class=\"has-text-align-left\">Esta secuencia de instrucciones tambi\u00e9n se denomina flujo de ejecuci\u00f3n de un programa y se puede representar mediante un <a href=\"https:\/\/complex-systems-ai.com\/es\/teoria-de-grafos\/\">grafico<\/a> de flujo de control o un <a href=\"https:\/\/complex-systems-ai.com\/es\/teoria-del-lenguaje\/\">aut\u00f3mata<\/a>. Cierto paradigma de programaci\u00f3n que llama a varios procesadores se expone entonces al problema de la asignaci\u00f3n de tareas en los procesadores.<\/p>\n<p>Una estructura de datos es una estructura l\u00f3gica destinada a contener datos, con el fin de darles una organizaci\u00f3n que permita simplificar su procesamiento. Existen muchos tipos de estructura de datos en funci\u00f3n de las acciones a realizar sobre ellos, no nos demoraremos m\u00e1s en este tema.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:html --><\/p>\n<p><!-- \/wp:html --><\/p>\n<p><!-- wp:paragraph {\"align\":\"left\"} --><\/p>\n<p class=\"has-text-align-left\">Cada lenguaje de computadora tiene un tipo de estructura de control y estructura de datos. La escritura de un algoritmo se basa muy a menudo en lenguajes ampliamente utilizados como C, java, etc.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:heading {\"align\":\"left\"} --><\/p>\n<h2 class=\"has-text-align-left\"><span class=\"ez-toc-section\" id=\"Notions-de-terminaison-de-correction-de-completude\"><\/span>Nociones de terminaci\u00f3n, correcci\u00f3n, integridad<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph {\"align\":\"left\"} --><\/p>\n<p class=\"has-text-align-left\">La terminaci\u00f3n es la garant\u00eda de que el algoritmo terminar\u00e1 en un tiempo finito. Las pruebas de terminaci\u00f3n generalmente involucran una funci\u00f3n entera positiva estrictamente decreciente en cada paso \/ iteraci\u00f3n del algoritmo.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph {\"align\":\"left\"} --><\/p>\n<p class=\"has-text-align-left\">Dada la garant\u00eda de que un algoritmo terminar\u00e1, la prueba de correcci\u00f3n debe proporcionar la seguridad de que si el algoritmo termina dando una soluci\u00f3n propuesta, entonces esta soluci\u00f3n es correcta (en el sentido de que responde al problema planteado).<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph {\"align\":\"left\"} --><\/p>\n<p class=\"has-text-align-left\">La prueba de integridad garantiza que, para un espacio de problema dado, el algoritmo, si termina, dar\u00e1 una soluci\u00f3n para cada una de las entradas del algoritmo.<\/p>\n<p style=\"text-align: justify;\"><strong>Terminaci\u00f3n<\/strong> : el algoritmo tiene complejidad de tiempo.<\/p>\n<p style=\"text-align: justify;\"><strong>Correcci\u00f3n<\/strong> : cualquier respuesta calculada del algoritmo es la soluci\u00f3n del problema.<\/p>\n<p style=\"text-align: justify;\"><strong>Lo completo<\/strong> : el algoritmo puede calcular una respuesta para cualquier instancia del problema.<\/p>\n<p><!-- \/wp:html --><\/p>\n<p><!-- wp:heading {\"align\":\"left\"} --><\/p>\n<h2 class=\"has-text-align-left\"><span class=\"ez-toc-section\" id=\"Complexite-algorithmique\"><\/span>Complejidad algor\u00edtmica<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:html --><\/p>\n<p style=\"text-align: left;\">La complejidad de los algoritmos es una evaluaci\u00f3n del costo de ejecutar un algoritmo en t\u00e9rminos de tiempo (complejidad temporal) o espacio de memoria (complejidad espacial). Por tanto, la eficacia de un algoritmo depende de estos dos criterios, que intentaremos minimizar.<\/p>\n<p><!-- \/wp:html --><\/p>\n<p><!-- wp:html --><\/p>\n<p><!-- \/wp:html --><\/p>\n<p><!-- wp:html --><\/p>\n<p style=\"text-align: left;\">La complejidad algor\u00edtmica permite conocer la eficiencia intr\u00ednseca de un<br \/>algoritmo: el rendimiento &quot;natural&quot; de un algoritmo fuera del entorno en el que se implementar\u00e1 este \u00faltimo.<\/p>\n<p>Existen varios tipos de an\u00e1lisis del rendimiento de un algoritmo:<\/p>\n<div style=\"text-align: justify;\">\n<ul>\n<li>An\u00e1lisis optimista (an\u00e1lisis del mejor de los casos o an\u00e1lisis del mejor de los casos).<\/li>\n<li>El an\u00e1lisis promedio es a menudo un factor en el paradigma de programaci\u00f3n utilizado.<\/li>\n<li>An\u00e1lisis pesimista (an\u00e1lisis del peor de los casos o an\u00e1lisis del peor de los casos).<\/li>\n<\/ul>\n<\/div>\n<p style=\"text-align: left;\">Las clases de complejidad son conjuntos de problemas que tienen la misma complejidad seg\u00fan un determinado criterio. Las clases m\u00e1s conocidas son las clases definidas en m\u00e1quinas de Turing (deterministas o no deterministas; consulte el curso sobre aut\u00f3matas) con restricciones de tiempo y espacio. Existe una relaci\u00f3n entre la complejidad algor\u00edtmica y su costo energ\u00e9tico de operaci\u00f3n, llamado principio de Landauer.<\/p>\n<p><!-- \/wp:html --><\/p>\n<p><!-- wp:paragraph {\"align\":\"left\"} --><\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph {\"align\":\"left\"} --><\/p>\n<p class=\"has-text-align-left\">A continuaci\u00f3n, se muestra una lista de las complejidades m\u00e1s comunes:<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:table {\"className\":\"wikitable alignleft\"} --><\/p>\n<figure class=\"wp-block-table wikitable alignleft\">\n<table>\n<tbody>\n<tr>\n<th>Clasificaci\u00f3n<\/th>\n<th>Tipo de complejidad<\/th>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" class=\"mwe-math-fallback-image-inline tex\" src=\"https:\/\/upload.wikimedia.org\/math\/5\/e\/0\/5e079a28737d5dd019a3b8f6133ee55e.png\" alt=\"O (1)\" title=\"\"><\/td>\n<td>Complejidad constante: una tarea, un c\u00e1lculo elemental, etc.<\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" class=\"mwe-math-fallback-image-inline tex\" src=\"https:\/\/upload.wikimedia.org\/math\/3\/8\/3\/383a25a930115d3db44612f10b08f52a.png\" alt=\"O (\\ log (n))\" title=\"\"><\/td>\n<td>complejidad logar\u00edtmica: dicotom\u00eda, <a href=\"https:\/\/complex-systems-ai.com\/es\/teoria-de-grafos\/arboles-y-arboles\/\">\u00e1rbol<\/a><\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" class=\"mwe-math-fallback-image-inline tex\" src=\"https:\/\/upload.wikimedia.org\/math\/7\/b\/a\/7ba55e7c64a9405a0b39a1107e90ca94.png\" alt=\"Nosotros)\" title=\"\"><\/td>\n<td>complejidad lineal: un bucle<\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" class=\"mwe-math-fallback-image-inline tex\" src=\"https:\/\/upload.wikimedia.org\/math\/8\/f\/1\/8f1bbb5f5c8a76d0d83f0cdab5eb3bf8.png\" alt=\"O (n \\ log (n))\" title=\"\"><\/td>\n<td>complejidad casi lineal: <a href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/divide-y-venceras\/\">divide y vencer\u00e1s<\/a>, \u00e1rbol<\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" class=\"mwe-math-fallback-image-inline tex\" src=\"https:\/\/upload.wikimedia.org\/math\/c\/d\/6\/cd641c6cabc83e0f7ff510bf812feca1.png\" alt=\"O (n ^ {2})\" title=\"\"><\/td>\n<td>Complejidad cuadr\u00e1tica: anidando dos bucles<\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" class=\"mwe-math-fallback-image-inline tex\" src=\"https:\/\/upload.wikimedia.org\/math\/c\/c\/6\/cc61dd95a6c89f84f5e3fa9e918e7d02.png\" alt=\"O (n ^ {3})\" title=\"\"><\/td>\n<td>complejidad c\u00fabica: anidamiento de tres bucles<\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" class=\"mwe-math-fallback-image-inline tex\" src=\"https:\/\/upload.wikimedia.org\/math\/3\/e\/1\/3e1d906f81519ad85be3e8a8e7e9e0ca.png\" alt=\"O (n ^ p)\" title=\"\"><\/td>\n<td>Complejidad polinomial: anidamiento de bucles sin conocimiento de estados.<\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" class=\"mwe-math-fallback-image-inline tex\" src=\"https:\/\/upload.wikimedia.org\/math\/2\/6\/9\/269075e9060240e928791b74b3a3c2e7.png\" alt=\"O (n ^ {\\ log (n)})\" title=\"\"><\/td>\n<td>Complejidad cuasi-polinomial: divide y vencer\u00e1s<\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" class=\"mwe-math-fallback-image-inline tex\" src=\"https:\/\/upload.wikimedia.org\/math\/a\/5\/b\/a5bab29729331b95aeebc96eda2906ad.png\" alt=\"O (2 ^ {n})\" title=\"\"><\/td>\n<td>complejidad exponencial: \u00e1rbol, fuerza bruta<\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" class=\"mwe-math-fallback-image-inline tex\" src=\"https:\/\/upload.wikimedia.org\/math\/1\/d\/f\/1dfc0dc62ab0b72188128f273546f6b4.png\" alt=\"\u00a1Nosotros!)\" title=\"\"><\/td>\n<td>Complejidad factorial: enfoque ingenuo de la enumeraci\u00f3n combinatoria<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p><!-- \/wp:table --><\/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>Teor\u00edas P\u00e1gina de inicio Wiki I. Redacci\u00f3n y modelado de un algoritmo Pseudolenguaje y diagrama de flujo Terminaci\u00f3n y correcci\u00f3n Complejidad temporal Algoritmo de aproximaci\u00f3n An\u00e1lisis: Modelo adversario Algor\u00edtmico\u2026 <\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1062","page","type-page","status-publish","hentry"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/pages\/1062","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/comments?post=1062"}],"version-history":[{"count":70,"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/pages\/1062\/revisions"}],"predecessor-version":[{"id":20394,"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/pages\/1062\/revisions\/20394"}],"wp:attachment":[{"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/media?parent=1062"}],"curies":[{"name":"gracias","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}