HHopwise
Espacio de programación con IA

Distancias mínimas en grafos dirigidos

Calcula las distancias mínimas en arcos dirigidos desde un vértice en un grafo de 1 a 1000 vértices.

● ● ●Hopwise●
Flujos de trabajo · Distancias mínimas en grafos dirigidos ×
from collections import deque

def hop_distances(graph, start):
    if type(graph) is not list or not 1 <= len(graph) <= 1000:
        raise ValueError("graph.size")
    n = len(graph)
    if type(start) is not int or not 0 <= start < n:
        raise ValueError("graph.start")
    if any(type(row) is not list or any(type(v) is not int or
           not 0 <= v < n for v in row) for row in graph):
        raise ValueError("graph.edges")
    distances = [None]*n
    distances[start] = 0
    queue = deque([start])
    while queue:
        u = queue.popleft()
        for v in graph[u]:
            if distances[v] is None:
                distances[v] = distances[u]+1
                queue.append(v)
    return distances
✳Distancias mínimas en grafos dirigidos
✓ CambiosRevisa antes de aplicar ↗
Vista ilustrativa
01

Modelos

Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.

02

Proyecto

Comprueba ciclos, aristas repetidas y vértices inaccesibles, rechazando grafos vacíos o extremos inválidos antes del recorrido.

03

Revisa antes de aplicar

Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.

Flujos de trabajo

Distancias mínimas en grafos dirigidos

Flujos de trabajo ↗
Flujos de trabajo
from collections import deque

def hop_distances(graph, start):
    if type(graph) is not list or not 1 <= len(graph) <= 1000:
        raise ValueError("graph.size")
    n = len(graph)
    if type(start) is not int or not 0 <= start < n:
        raise ValueError("graph.start")
    if any(type(row) is not list or any(type(v) is not int or
           not 0 <= v < n for v in row) for row in graph):
        raise ValueError("graph.edges")
    distances = [None]*n
    distances[start] = 0
    queue = deque([start])
    while queue:
        u = queue.popleft()
        for v in graph[u]:
            if distances[v] is None:
                distances[v] = distances[u]+1
                queue.append(v)
    return distances
Espacio de programación con IA

Mantén el significado de los resultados de grafos para la aplicación

Un resultado de grafo solo es útil si el código llamador entiende qué significa cada valor. Hopwise ofrece al código de grafos un entorno de programación con IA para Windows que conecta el código fuente con una conversación sobre su contrato. Empieza por la representación de entrada y la forma en que la aplicación muestra o utiliza el resultado, en lugar de pedir una sustitución aislada del algoritmo.

Para una tarea de mínimo número de saltos, muestra un grafo dirigido pequeño con vértices alcanzables e inalcanzables. Pide al modelo conectado que examine cómo distingue la implementación entre el vértice inicial y un vértice al que no llega ninguna ruta. Incluye un ciclo para que la revisión considere el descubrimiento repetido además de la cadena hacia delante más sencilla.

Después, examina el límite donde los datos del grafo entran en la función. Las referencias de vértice no válidas deben seguir una política deliberada, y la dirección debe coincidir con el significado que la aplicación da a una arista. Revisa los cambios propuestos con el código consumidor y ejecuta casos que comprueben resultados exactos para cada vértice. Mantén visible en la interfaz el tratamiento de estados inalcanzables después del cálculo.

Hopwise admite endpoints compatibles con OpenAI o de Anthropic, incluido un modelo de IA sin censura que esté disponible. El comportamiento real de respuesta, los límites de contexto y las herramientas dependen de esa configuración. El entorno apoya la investigación; las evidencias de tus casos de grafos y pruebas de integración determinan si el cambio está listo para conservarse.

Resultados de grafos con significado para la aplicación: preguntas antes de editar

¿Qué grafo debo usar para explicar el problema?

Elige un ejemplo dirigido pequeño con un ciclo, un vértice inalcanzable y un inicio claramente identificado. Escribe el resultado esperado para cada vértice. Esto facilita examinar la dirección y el significado de la ausencia de ruta más que un gran grafo de producción.

¿Por qué distinguir cero saltos de inalcanzable?

Cero describe la distancia del vértice inicial a sí mismo, mientras que inalcanzable significa que no se encontró una ruta conforme al contrato del grafo. Si el código llamador los confunde, una interfaz puede mostrar una conexión inexistente. Revisa juntos la representación devuelta y sus consumidores.

¿Puedo usar recuentos de saltos para rutas ponderadas?

Solo si todas las aristas representan el mismo coste para la tarea. Si los pesos importan, explica ese requisito antes de solicitar cambios. Una implementación de mínimo número de saltos no debe presentarse como solución a un objetivo de optimización diferente.

¿Dónde deben tratarse las referencias de vértice no válidas?

Establece la política en el límite de entrada y examina el código llamador existente. Pide al modelo que conserve una ruta clara de rechazo o validación. Las pruebas deben incluir referencias malformadas para que el comportamiento accidental de indexación no se convierta en el contrato de la aplicación.

Descargar para Windows ↗

Hopwise · Actualizado 2026-10-25