{"id":781,"date":"2019-11-26T23:57:39","date_gmt":"2019-11-26T21:57:39","guid":{"rendered":"http:\/\/www.joanillo.org\/?p=781"},"modified":"2020-10-05T23:58:18","modified_gmt":"2020-10-05T21:58:18","slug":"ruta-por-los-arboles-singulares-de-barcelona-minimizando-la-distancia","status":"publish","type":"post","link":"https:\/\/www.joanillo.org\/?p=781&lang=es","title":{"rendered":"Ruta por los \u00e1rboles singulares de Barcelona (minimizando la distancia)"},"content":{"rendered":"<p><a href=\"http:\/\/www.joanillo.org\/wp-content\/uploads\/2019\/11\/Ruta_colleccio_arbres2.png\"><img loading=\"lazy\" src=\"http:\/\/www.joanillo.org\/wp-content\/uploads\/2019\/11\/Ruta_colleccio_arbres2-300x180.png\" alt=\"\" title=\"Ruta_colleccio_arbres2\" width=\"300\" height=\"180\" class=\"alignright size-medium wp-image-2100\"><\/a>El problema del viajante de comercio (traveling salesman problem) es un problema cl\u00e1sico de la algor\u00edtmica: se trata de pasar por una serie de puntos, sin repetir ninguno, y minimizando la distancia recorrida. Hace unas pocas semanas que import\u00e9 los \u00e1rboles singulares de Barcelona a OpenStreetMaps, y creo que es una buena actividad did\u00e1ctica para conocer los \u00e1rboles de la ciudad hacer una ruta por unos cuantos de estos \u00e1rboles.<\/p>\n<p>Para hacerlo m\u00e1s interesante, podemos plantearnos el problema de hacer un recorrido que minimice la distancia, pasando por todos los \u00e1rboles, y que vuelva al punto de partida. Estuve buscando diferentes implementaciones con Python que resolvieran el problema, hasta que encontr\u00e9 una que satisfac\u00eda mi restricci\u00f3n de volver al punto de partida.<\/p>\n<p>Sobre esta soluci\u00f3n he hecho alguna modificaci\u00f3n para que me genere un fichero JSON con la soluci\u00f3n. Finalmente, hemos de pintar sobre un mapa OSM nuestros punts (nodos); trazar una l\u00ednea recta entre los puntos; y a\u00f1adir un label-texto informativo sobre estos puntos. El resultado se puede ver en la imagen.<\/p>\n<p>Evidentmente hemos hecho unas simplificaciones: la distancia m\u00ednima entre dos puntos es la l\u00ednea recta, pero por la ciudad no podemos ir en l\u00ednea recta, y adem\u00e1s pueden haber subidas y bajadas. Pero como ejercicio did\u00e1ctico creo que es interesante.<\/p>\n<p>Aqu\u00ed en Catalunya son populares las Carreras de Orientaci\u00f3n. Creo que se podr\u00eda aprovechar estas actividades en el tiempo de ocio y a\u00f1adir una capa de conocimiento, como puede ser conocer los \u00e1rboles, conocer monumentos, etc. Creo que para los ni\u00f1os y j\u00f3venes puede ser una actividad divertida.<\/p>\n<p>Referencias:<\/p>\n<ul>\n<li><a href=\"http:\/\/wiki.joanillo.org\/index.php\/Traveling_Salesman_problem_i_arbres_singulars_de_Barcelona\" title=\"Entrada en la wiki\" target=\"_blank\" rel=\"noopener noreferrer\">Entrada en la wiki<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/Forceflow\/Ambiance_TSP\" title=\"Soluci\u00f3n TSP Python\" target=\"_blank\" rel=\"noopener noreferrer\">Soluci\u00f3n TSP Python<\/a><\/li>\n<li><a href=\"https:\/\/openlayers.org\/en\/latest\/apidoc\/module-ol_source_OSM-OSM.html\" title=\"Openlayers\" target=\"_blank\" rel=\"noopener noreferrer\">Openlayers<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Travelling_salesman_problem\" title=\"Traveling Salesman Problem\" target=\"_blank\" rel=\"noopener noreferrer\">Traveling Salesman Problem<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>El problema del viajante de comercio (traveling salesman problem) es un problema cl\u00e1sico de la algor\u00edtmica: se trata de pasar por una serie de puntos, sin repetir ninguno, y minimizando la distancia recorrida. Hace unas pocas semanas que import\u00e9 los \u00e1rboles singulares de Barcelona a OpenStreetMaps, y creo que es una buena actividad did\u00e1ctica para [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[324,340,192,346],"tags":[],"_links":{"self":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts\/781"}],"collection":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=781"}],"version-history":[{"count":1,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts\/781\/revisions"}],"predecessor-version":[{"id":782,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts\/781\/revisions\/782"}],"wp:attachment":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=781"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=781"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=781"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}