{"id":23701176,"url":"https://github.com/gitfrandu4/graphsearchalgorithms","last_synced_at":"2026-01-29T10:30:15.983Z","repository":{"id":211625162,"uuid":"246433477","full_name":"gitfrandu4/GraphSearchAlgorithms","owner":"gitfrandu4","description":"Práctica 1 de FSI - Implementación de algorimos de búsqueda en grafos (Python)","archived":false,"fork":false,"pushed_at":"2020-03-27T03:04:17.000Z","size":161,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-30T09:32:47.088Z","etag":null,"topics":["grafos","ia","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gitfrandu4.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-03-10T23:53:35.000Z","updated_at":"2021-08-02T04:29:45.000Z","dependencies_parsed_at":"2023-12-09T19:52:44.425Z","dependency_job_id":null,"html_url":"https://github.com/gitfrandu4/GraphSearchAlgorithms","commit_stats":null,"previous_names":["gitfrandu4/graphsearchalgorithms"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitfrandu4%2FGraphSearchAlgorithms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitfrandu4%2FGraphSearchAlgorithms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitfrandu4%2FGraphSearchAlgorithms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitfrandu4%2FGraphSearchAlgorithms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gitfrandu4","download_url":"https://codeload.github.com/gitfrandu4/GraphSearchAlgorithms/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239776639,"owners_count":19695146,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["grafos","ia","python"],"created_at":"2024-12-30T09:32:29.697Z","updated_at":"2026-01-29T10:30:15.900Z","avatar_url":"https://github.com/gitfrandu4.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GraphSearchAlgorithms\n\n\nPráctica 1 de Fundamentos de los Sistemas Inteligentes\n\n\n\n\u003cimg src=\"https://github.com/gitfrandu4/GraphSearchAlgorithms/blob/master/img/romania.jpeg\" alt=\"Romania\" style=\"zoom: 67%;\" /\u003e\n\n\n\n## Práctica 1 - Primera parte\n\n#### Tareas\n\n* A partir del código base se implementa el método de búsqueda **Ramificación y Acotación** (_Branch-and-Bound Search_). Utilizando como problema el grafo de las ciudades de Rumanía presente en el código. \n\n* Comparación de nodos expandidos por este método en comparación a los métodos de búsqueda **Primero en Anchura** (_Breadth-first Search_) y **Primero en profundidad** (_Depth-first Search_):\n\n  ```\n  --------------------Primera parte--------------------\n  \n  Nodos expandidos: 21\n  Breadth-first Search: [\u003cNode B\u003e, \u003cNode F\u003e, \u003cNode S\u003e, \u003cNode A\u003e] : 211 + 99 + 140 = 450\n  \n  Nodos expandidos: 18\n  Depth-first Search: [\u003cNode B\u003e, \u003cNode P\u003e, \u003cNode C\u003e, \u003cNode D\u003e, \u003cNode M\u003e, \u003cNode L\u003e, \u003cNode T\u003e, \u003cNode A\u003e] : 101+138+120+75+70+111+118=733\n  \n  Nodos expandidos: 31\n  Branch-and-Bound Search: [\u003cNode B\u003e, \u003cNode P\u003e, \u003cNode R\u003e, \u003cNode S\u003e, \u003cNode A\u003e] : 101 + 97 + 80 + 140 = 418\n  ```\n\n\n\n## Práctica 1 - Segunda parte\n\n### Ramificación y Acotación con Subestimación\n\nLa estrategia de búsqueda **Ramificación y Acotación con Subestimación** pertenece a las estrategias de **búsqueda informada**. En este caso, además de utilizar el coste acumulado de un camino desde el estado inicial hasta un cierto estado del grafo, se utiliza una **estimación heurística** hasta el estado final para ordenar la lista abierta. De esta forma, dado un determinado nodo _n_ del árbol del búsqueda, la expresión de coste estimado _f(n)_ será:\n\n![Eqn1](https://github.com/gitfrandu4/GraphSearchAlgorithms/blob/master/img/Eqn2.png)\n\nDonde _g(n)_ representa el coste acumulado y _h(n)_ la heurística utilizada. Para que el camino encontrado sea **óptimo**, la heurística debe ser **consistente**. Es decir, ha de cumplir que para cada nodo _n_ y cada nodo hijo _n’_ alcanzado mediante la acción _a_, el valor heurístico _h(n)_ debe ser siempre menor o igual al valor heurístico _h(n’)_ más el coste del nodo _n_ al _n’_ mediante la acción _a_.\n\n![Eqn1](https://github.com/gitfrandu4/GraphSearchAlgorithms/blob/master/img/Eqn1.png)\n\n#### Tareas\n\n* A partir del código base se implementa el método de búsqueda **Ramificación y Acotación con Subestimación**.\n\n  Como heurística se utilizará la distancia en línea recta entre cada estado y el estado final. \n\n* Comparación de la cantidad de nodos expandidos por este método con relación al método ramificación y acotación:\n\n  ```\n  --------------------Segunda parte--------------------\n\n  Ejemplo 1: Desde Oradea hasta Bucharest\n\n  Nodos expandidos: 27\n  Branch-and-Bound Search: [\u003cNode B\u003e, \u003cNode P\u003e, \u003cNode R\u003e, \u003cNode S\u003e, \u003cNode O\u003e]\n\n  Nodos expandidos: 17\n  B\u0026Bound-with-Und Search: [\u003cNode B\u003e, \u003cNode P\u003e, \u003cNode R\u003e, \u003cNode S\u003e, \u003cNode O\u003e]\n\n  -----------------------------------------------------\n  Ejemplo 2: Desde Timisoara hasta Neamt\n\n  Nodos expandidos: 46\n  Branch-and-Bound Search: [\u003cNode N\u003e, \u003cNode I\u003e, \u003cNode V\u003e, \u003cNode U\u003e, \u003cNode B\u003e, \u003cNode P\u003e, \u003cNode R\u003e, \u003cNode S\u003e, \u003cNode A\u003e, \u003cNode T\u003e]\n\n  Nodos expandidos: 43\n  B\u0026Bound-with-Und Search: [\u003cNode N\u003e, \u003cNode I\u003e, \u003cNode V\u003e, \u003cNode U\u003e, \u003cNode B\u003e, \u003cNode P\u003e, \u003cNode R\u003e, \u003cNode S\u003e, \u003cNode A\u003e, \u003cNode T\u003e]\n\n  -----------------------------------------------------\n  Ejemplo 3: Desde Urziceni hasta Eforie\n\n  Nodos expandidos: 13\n  Branch-and-Bound Search: [\u003cNode E\u003e, \u003cNode H\u003e, \u003cNode U\u003e]\n\n  Nodos expandidos: 6\n  B\u0026Bound-with-Und Search: [\u003cNode E\u003e, \u003cNode H\u003e, \u003cNode U\u003e]\n  ```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgitfrandu4%2Fgraphsearchalgorithms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgitfrandu4%2Fgraphsearchalgorithms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgitfrandu4%2Fgraphsearchalgorithms/lists"}