HHopwise
KI-Arbeitsumgebung für Code

Kürzeste gerichtete Kantendistanzen

Berechne kürzeste gerichtete Kantendistanzen von einem Knoten in einem Graphen mit 1 bis 1000 Knoten.

● ● ●Hopwise●
Arbeitsabläufe · Kürzeste gerichtete Kantendistanzen ×
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
✳Kürzeste gerichtete Kantendistanzen
✓ ÄnderungenVor dem Anwenden prüfen ↗
Illustration der Arbeitsumgebung
01

Modelle

Richten Sie einen OpenAI-kompatiblen oder Anthropic-Endpunkt mit Basis-URL und gegebenenfalls API-Schlüssel ein. Testen Sie die Verbindung. Ein lokaler Modellserver muss laufen; entfernte Werkzeuge können Daten separat übertragen.

02

Projekt

Teste Zyklen, wiederholte Kanten und unerreichbare Knoten und lehne leere Graphen oder ungültige Endpunkte vor dem Durchlauf ab.

03

Vor dem Anwenden prüfen

Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen.

Arbeitsabläufe

Kürzeste gerichtete Kantendistanzen

Arbeitsabläufe ↗
Arbeitsabläufe
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
KI-Arbeitsumgebung für Code

Graphergebnisse für die Anwendung aussagekräftig halten

Ein Graphergebnis ist nur nützlich, wenn der aufrufende Code die Bedeutung jedes Werts versteht. Hopwise bietet für graphbezogenen Code eine KI-Programmierumgebung unter Windows und verbindet Quellcode mit einem Gespräch über seine zugesicherten Eigenschaften. Beginnen Sie mit der Eingabedarstellung und der Anzeige oder Nutzung des Ergebnisses durch die Anwendung, statt einen isolierten Algorithmusaustausch zu verlangen.

Zeigen Sie für eine Aufgabe zu kürzesten Pfaden nach Kantenzahl einen kleinen gerichteten Graphen mit erreichbaren und unerreichbaren Knoten. Lassen Sie das verbundene Modell untersuchen, wie die Implementierung den Startknoten von einem Knoten ohne Pfad unterscheidet. Fügen Sie einen Zyklus hinzu, damit die Prüfung wiederholte Entdeckung und nicht nur die einfachste Vorwärtskette berücksichtigt.

Prüfen Sie anschließend die Grenze, an der Graphdaten in die Funktion gelangen. Ungültige Knotenverweise sollten einer bewussten Regel folgen, und die Richtung muss zur Bedeutung einer Kante in der Anwendung passen. Prüfen Sie vorgeschlagene Änderungen zusammen mit dem nutzenden Code und führen Sie dann Tests mit exakten Erwartungen für jeden Knoten aus. Die Behandlung unerreichbarer Zustände sollte auch nach der Berechnung in der Oberfläche erkennbar bleiben.

Hopwise unterstützt passende OpenAI-kompatible oder Anthropic-Endpunkte, einschließlich eines verfügbaren unzensierten KI-Modells. Tatsächliches Antwortverhalten, Kontextgrenzen und Werkzeuge hängen von dieser Konfiguration ab. Die Umgebung unterstützt die Untersuchung; Belege aus Ihren Graphtests und Integrationstests bestimmen, ob die Änderung übernommen werden kann.

Aussagekräftige Graphergebnisse – Fragen vor Änderungen

Welchen Graphen sollte ich zur Erklärung des Problems verwenden?

Wählen Sie ein kleines gerichtetes Beispiel mit einem Zyklus, einem unerreichbaren Knoten und klar gekennzeichnetem Start. Schreiben Sie das erwartete Ergebnis für jeden Knoten auf. So lassen sich Richtung und Bedeutung fehlender Pfade leichter prüfen als bei einem großen Produktionsgraphen.

Warum null Kanten von Unerreichbarkeit unterscheiden?

Null beschreibt die Entfernung des Startknotens zu sich selbst; unerreichbar bedeutet, dass unter den Graphregeln kein Pfad gefunden wurde. Vermischt der aufrufende Code beides, kann die Oberfläche eine nicht vorhandene Verbindung anzeigen. Prüfen Sie Rückgabedarstellung und deren Nutzer gemeinsam.

Kann ich Kantenzahlen für gewichtete Pfade verwenden?

Nur wenn jede Kante für die Aufgabe dieselben Kosten repräsentiert. Sind Gewichte relevant, erklären Sie diese Anforderung vor Änderungsaufträgen. Eine Implementierung für minimale Kantenzahlen sollte nicht als Lösung eines anderen Optimierungsziels dargestellt werden.

Wo sollten ungültige Knotenverweise behandelt werden?

Legen Sie die Regel an der Eingabegrenze fest und untersuchen Sie vorhandene Aufrufer. Lassen Sie das Modell einen klaren Ablehnungs- oder Validierungspfad erhalten. Tests sollten fehlerhafte Verweise enthalten, damit zufälliges Indexierungsverhalten nicht zur Anwendungsvereinbarung wird.

Für Windows herunterladen ↗

Hopwise · Aktualisiert 2026-10-25