{"id":185,"date":"2018-09-11T18:11:00","date_gmt":"2018-09-12T00:11:00","guid":{"rendered":"http:\/\/virtual.cuautitlan.unam.mx\/intar\/?page_id=185"},"modified":"2021-07-08T21:57:22","modified_gmt":"2021-07-09T02:57:22","slug":"185-2","status":"publish","type":"page","link":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/?page_id=185","title":{"rendered":"Recursividad"},"content":{"rendered":"<h1><strong>Recursividad<\/strong><\/h1>\n<p>Un aspecto por dem\u00e1s interesante que representa el comportamiento de diferentes y variados fen\u00f3menos es la recursividad. La recursividad puede definirse como el proceso por el cual una funci\u00f3n se llama a s\u00ed misma para resolver un problema, este concepto puede verse como un proceso que puede repetirse hasta el infinito si no es detenido en un nivel recursivo definido. Ciertos problemas grandes, tienen la caracter\u00edstica de que pueden ser representados como la descomposici\u00f3n de problemas m\u00e1s peque\u00f1as, siendo estos problemas peque\u00f1os una r\u00e9plica del problema principal. Algunos problemas matem\u00e1ticos que pueden ser resueltos por este tipo de m\u00e9todos son los factoriales, la serie de Fibonacci, las torres de Hanoi, y los fractales, entre otros. En la figura 1, podemos ver la representaci\u00f3n del fractal llamado \u201cEl copo de nieve de Koch\u201d, como podemos visualizar, la generaci\u00f3n del copo parte de un tri\u00e1ngulo, al que se le superpone otro triangulo invertido, a cada nuevo triangulo se le superpone nuevamente un tri\u00e1ngulo de su mismo tama\u00f1o, generando una superposici\u00f3n infinita en un proceso netamente recursivo.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-186\" src=\"http:\/\/virtual.cuautitlan.unam.mx\/intar\/wp-content\/uploads\/2018\/09\/Fractales-300x257.jpg\" alt=\"\" width=\"300\" height=\"257\" srcset=\"https:\/\/virtual.cuautitlan.unam.mx\/intar\/wp-content\/uploads\/2018\/09\/Fractales-300x257.jpg 300w, https:\/\/virtual.cuautitlan.unam.mx\/intar\/wp-content\/uploads\/2018\/09\/Fractales.jpg 306w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><br \/>\nFig. 1. El copo de nieve de Koch, fractal de generaci\u00f3n recursiva.<\/p>\n<h1><strong>\u00c1rboles binarios<\/strong><\/h1>\n<p>Los \u00e1rboles binarios (AB) son estructuras de datos abstractas y no lineales. Los AB est\u00e1n compuestos de un conjunto finito de elementos (Nodos), cada uno de estos nodos almacena un dato y a su vez puede apuntar hacia dos nodos m\u00e1s, el sub \u00e1rbol izquierdo y el sub \u00e1rbol derecho. En la figura 1, podemos observar la representaci\u00f3n de un \u00e1rbol binario.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-188\" src=\"http:\/\/virtual.cuautitlan.unam.mx\/intar\/wp-content\/uploads\/2018\/09\/Arbol-binario.jpg\" alt=\"\" width=\"288\" height=\"232\" \/><br \/>\nFig 2.- Representaci\u00f3n de un \u00e1rbol binario.<\/p>\n<p>Como se puede apreciar en la figura 2, los AB son estructuras inherentemente recursivas, ya que cada sub nodo presenta el mismo comportamiento que el nodo anterior.<br \/>\nLos AB pueden ser recorridos de diferentes formas (Preorden, Inorden, Postorden) para poder localizar alg\u00fan dato definido que se encuentre almacenado en \u00e9l.<\/p>\n<p>Una caracter\u00edstica importante de estas estructuras, es que los datos que est\u00e1n almacenados en ellas, pueden ser eliminados, modificados, o incluso, se pueden agregar nuevos datos. Por los motivos descritos, estas estructuras pueden ser utilizadas en una gran cantidad de aplicaciones computacionales, entre las que se encuentra la gesti\u00f3n de grandes cantidades de datos (Power &amp; Zanna, 1995) y el desarrollo de juegos (Adel et al., 1975).<\/p>\n<p>Como ya se mencion\u00f3, este tipo de esquemas tiene tres maneras b\u00e1sicas en las cuales se pueden recorrer sus nodos: Preorden, Inorden y posorden. Cada de una de estas formas de recorrer el \u00e1rbol se define en base a su secuencia de recorrido. En el caso del preorden, se recorre primero la Ra\u00edz, despu\u00e9s el lado derecho del nodo para concluir por el recorrido de su lado izquierdo; en el caso del Inorden, tenemos que primero se recorre la rama derecha del nodo, sigue la ra\u00edz y concluye con su rama izquierda; y por \u00faltimo tenemos el posorden, en d\u00f3nde primero se recorre la rama derecha del nodo, luego la rama izquierda, y concluye con la ra\u00edz.<\/p>\n<h1><strong>Fractales para descargar<\/strong><\/h1>\n<p>Existe una gran cantidad de fractales que pueden ser programados de forma sencilla y que se ven atractivos en su funcionamiento, entre ellos se encuentra el \u00e1rbol de Pit\u00e1goras, que se puede ver en la siguiente figura:<\/p>\n<p><a href=\"http:\/\/virtual.cuautitlan.unam.mx\/intar\/wp-content\/uploads\/2021\/06\/ArbolPitagoras.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-897\" src=\"http:\/\/virtual.cuautitlan.unam.mx\/intar\/wp-content\/uploads\/2021\/06\/ArbolPitagoras.jpg\" alt=\"\" width=\"727\" height=\"489\" \/><\/a><\/p>\n<p>Fig. 3.- Fractal llamado \u00c1rbol de Pit\u00e1goras, que presenta una recursividad de nivel 12.<\/p>\n<p>Para poder dibujar este \u00e1rbol, se puede descargar el siguiente script de Python, este puede ser ejecutado en l\u00ednea a trav\u00e9s de la p\u00e1gina\u00a0 <a href=\"http:\/\/www.pythonsandbox.com\/turtle\">http:\/\/www.pythonsandbox.com\/turtle<\/a><\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/virtual.cuautitlan.unam.mx\/intar\/wp-content\/uploads\/2021\/06\/ArbolDePitagoras.txt\"><strong>Script \u00c1rbol de Pit\u00e1goras\u00a0<\/strong><\/a><\/p>\n<p>En el siguiente v\u00eddeo, se muestra la ejecuci\u00f3n del script anterior, cuando se selecciona un nivel 12 de recursividad:<\/p>\n<p><iframe loading=\"lazy\" title=\"arbol de pitagoras en python\" width=\"525\" height=\"295\" src=\"https:\/\/www.youtube.com\/embed\/gkqj7Ssoca0?start=831&#038;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p>Otro fractal de gran belleza, es la flor que se muestra en la siguiente figura:<\/p>\n<p><a href=\"http:\/\/virtual.cuautitlan.unam.mx\/intar\/wp-content\/uploads\/2021\/06\/FlorFractal.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-903\" src=\"http:\/\/virtual.cuautitlan.unam.mx\/intar\/wp-content\/uploads\/2021\/06\/FlorFractal.jpg\" alt=\"\" width=\"342\" height=\"344\" \/><\/a><\/p>\n<p>Fig. 4.- Fractal que representa a un aflor.<\/p>\n<p>El script para dibujar tal fractal, se puede obtener del siguiente enlace, y puede ejecutarse en la p\u00e1gina <a href=\"https:\/\/trinket.io\/turtle\">https:\/\/trinket.io\/turtle<\/a>:<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/virtual.cuautitlan.unam.mx\/intar\/wp-content\/uploads\/2021\/06\/fractal_flor.txt\"><strong>Script Fractal Flor<\/strong><\/a><\/p>\n<p>La ejecuci\u00f3n de este script, puede verse en el siguiente v\u00eddeo:<\/p>\n<p><iframe loading=\"lazy\" title=\"FLOR 1\" width=\"525\" height=\"295\" src=\"https:\/\/www.youtube.com\/embed\/CGrHboGTKLQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p>Para la realizaci\u00f3n de \u00e1rboles fractales m\u00e1s complejos que los mencionados en esta p\u00e1gina, se puede consultar el archivo siguiente, el cual utiliza Turtle de Python.<\/p>\n<p><a href=\"https:\/\/www.academia.edu\/4266396\/Creando_arboles_fractales_con_Turtle_en_Python?auto=download&amp;email_work_card=download-paper\">https:\/\/www.academia.edu\/4266396\/Creando_arboles_fractales_con_Turtle_en_Python?auto=download&amp;email_work_card=download-paper<\/a><\/p>\n<h2><strong>Referencias<\/strong><\/h2>\n<p>Powers, F. A., &amp; Zanarotti, S. R. (1995). U.S. Patent No. 5,442,784. Washington, DC: U.S. Patent and Trademark Office.<br \/>\nAdelson-Velskiy, G. M., Arlazarov, V. L., &amp; Donskoy, M. V. (1975). Some methods of controlling the tree search in chess programs. Artificial Intelligence, 6(4), 361-371.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recursividad Un aspecto por dem\u00e1s interesante que representa el comportamiento de diferentes y variados fen\u00f3menos es la recursividad. La recursividad puede definirse como el proceso por el cual una funci\u00f3n se llama a s\u00ed misma para resolver un problema, este concepto puede verse como un proceso que puede repetirse hasta el infinito si no es &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/virtual.cuautitlan.unam.mx\/intar\/?page_id=185\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> &#8220;Recursividad&#8221;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-185","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/pages\/185"}],"collection":[{"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=185"}],"version-history":[{"count":12,"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/pages\/185\/revisions"}],"predecessor-version":[{"id":1198,"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/pages\/185\/revisions\/1198"}],"wp:attachment":[{"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}