HHopwise
AI-werkruimte voor code

Kortste gerichte padafstanden

Bereken de kortste gerichte padafstanden vanaf één knoop in een graaf met 1 tot 1000 knopen.

● ● ●Hopwise●
Werkprocessen · Kortste gerichte padafstanden ×
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
✳Kortste gerichte padafstanden
✓ WijzigingenControleer vóór het toepassen ↗
Illustratie van de werkruimte
01

Modellen

Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.

02

Project

Test cycli, herhaalde kanten en onbereikbare knopen en weiger een lege graaf of ongeldige eindpunten vóór het doorlopen.

03

Controleer vóór het toepassen

Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.

Werkprocessen

Kortste gerichte padafstanden

Werkprocessen ↗
Werkprocessen
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
AI-werkruimte voor code

Houd graafresultaten betekenisvol voor de toepassing

Een graafresultaat is alleen bruikbaar als de aanroeper weet wat elke waarde betekent. Hopwise biedt een AI-programmeeromgeving voor Windows voor graafgerelateerde code en verbindt de broncode met een gesprek over de bijbehorende afspraken. Begin bij de invoerweergave en de manier waarop de toepassing het resultaat toont of gebruikt, in plaats van een geïsoleerde algoritmevervanging te vragen.

Toon voor een taak rond het kleinste aantal stappen een kleine gerichte graaf met bereikbare en onbereikbare knopen. Vraag het verbonden model te onderzoeken hoe de implementatie de startknoop onderscheidt van een knoop zonder pad. Voeg een cyclus toe, zodat de beoordeling ook herhaalde ontdekking omvat en niet alleen de eenvoudigste voorwaartse keten.

Onderzoek vervolgens de grens waar graafgegevens de functie binnenkomen. Ongeldige knoopverwijzingen moeten volgens bewust beleid worden behandeld, en de richting moet overeenkomen met de betekenis van een verbinding in de toepassing. Beoordeel voorgestelde wijzigingen samen met de afnemende code en voer testgevallen uit die exacte resultaten voor elke knoop controleren. Houd de verwerking van onbereikbaarheid zichtbaar in de interface na de berekening.

Hopwise ondersteunt compatibele OpenAI-compatibele of Anthropic-endpoints, waaronder een beschikbaar AI-model zonder censuur. Werkelijk antwoordgedrag, contextlimieten en tools hangen van die configuratie af. De omgeving ondersteunt het onderzoek; bewijs uit je graaftestgevallen en integratietests bepaalt of de wijziging kan worden behouden.

Betekenisvolle graafresultaten — vragen vóór het aanpassen

Welke graaf moet ik gebruiken om het probleem uit te leggen?

Kies een klein gericht voorbeeld met een cyclus, een onbereikbare knoop en een duidelijk aangewezen startpunt. Beschrijf het verwachte resultaat voor elke knoop. Dat maakt richting en de betekenis van ontbrekende paden gemakkelijker te onderzoeken dan een grote productiegraaf.

Waarom nul stappen onderscheiden van onbereikbaar?

Nul beschrijft de afstand van de startknoop tot zichzelf; onbereikbaar betekent dat volgens de graafafspraken geen pad is gevonden. Als aanroepers ze verwarren, kan de interface een niet-bestaande verbinding tonen. Beoordeel de resultaatweergave en haar afnemers samen.

Kan ik aantallen stappen voor gewogen paden gebruiken?

Alleen als elke verbinding voor deze taak dezelfde kosten vertegenwoordigt. Als gewichten belangrijk zijn, leg die eis dan uit voordat je om wijzigingen vraagt. Een implementatie voor het kleinste aantal stappen mag niet worden voorgesteld als oplossing voor een ander optimalisatiedoel.

Waar moeten ongeldige knoopverwijzingen worden verwerkt?

Stel het beleid vast aan de invoergrens en onderzoek bestaande aanroepers. Vraag het model een duidelijk afwijzings- of validatiepad te behouden. Neem ongeldige verwijzingen op in tests, zodat toevallig indexeringsgedrag niet de toepassingsafspraak wordt.

Download voor Windows ↗

Hopwise · Bijgewerkt 2026-10-25