Los algoritmos gráficos más utilizados, comenzando por lo que considero más fácil y fundamental y pasando a algoritmos más avanzados, son:
- Búsqueda gráfica: BFS / DFS.
- El camino más corto de una sola fuente: Dijkstra (para pesos no negativos), Bellman-Ford. (tenga en cuenta que BFS resolvería el caso de pesos iguales no negativos).
- El camino más corto de todos los pares: Floyd – Warshall, múltiples carreras de Dijkstra / Bellman-Ford.
- Árbol de expansión mínimo: Prim’s, Kruskal’s.
- Componentes fuertemente conectados y clasificación topológica: Kosaraju’s, Tarjan’s.
- Flujo máximo: Ford – Fulkerson, Edmonds – Karp, Dinic’s y cómo usar esto para resolver el problema de coincidencia bipartita máxima.
- Costo mínimo flujo máximo.
Por supuesto, hay muchos más algoritmos que son útiles y necesarios para resolver ciertos problemas. Pero en mi opinión, podrá resolver la mayoría de los problemas con el conocimiento de los algoritmos anteriores.
- ¿Podría un algoritmo informático convertirse en el presidente de los Estados Unidos?
- Te dan n pilas con p monedas, y cada jugador elimina al menos 1 moneda. El número de monedas eliminadas por un jugador no puede ser eliminado por el otro. ¿Quién ganará?
- ¿Cómo se programan y hacen los bots del juego (creados por jugadores) para conectarse con el juego y controlarlo?
- Matrices de sufijos: Dadas dos cadenas s1 y s2. ¿Cuál es el mejor algoritmo para encontrar el número de subcadenas comunes entre s1 y s2 de longitud 1, 2,… hasta min (| s1 |, | s2 |)?
- ¿Hay algún algoritmo de dirección de camino legible para humanos?