Kostenplanning voor matrixketens
Bepaal de kleinste kosten in scalaire vermenigvuldigingen voor hoogstens 12 matrices.
def chain_cost(dimensions):
if type(dimensions) not in (list, tuple) or not 2 <= len(dimensions) <= 13:
raise ValueError("one through twelve matrices")
if any(type(d) is not int or not 1 <= d <= 1000 for d in dimensions):
raise ValueError("dimensions 1 through 1000")
n = len(dimensions)-1
cost = [[0]*n for _ in range(n)]
for width in range(2, n+1):
for left in range(n-width+1):
right = left+width-1
cost[left][right] = min(
cost[left][k]+cost[k+1][right]+
dimensions[left]*dimensions[k+1]*dimensions[right+1]
for k in range(left,right))
return cost[0][n-1]| Project | Test één matrix en verschillende haakjesplaatsingen en weiger dimensies buiten 1 tot 1000 zonder matrixelementen te vermenigvuldigen. |
|---|---|
| Controleer vóór het toepassen | Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen. |
| 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. |
def chain_cost(dimensions):
if type(dimensions) not in (list, tuple) or not 2 <= len(dimensions) <= 13:
raise ValueError("one through twelve matrices")
if any(type(d) is not int or not 1 <= d <= 1000 for d in dimensions):
raise ValueError("dimensions 1 through 1000")
n = len(dimensions)-1
cost = [[0]*n for _ in range(n)]
for width in range(2, n+1):
for left in range(n-width+1):
right = left+width-1
cost[left][right] = min(
cost[left][k]+cost[k+1][right]+
dimensions[left]*dimensions[k+1]*dimensions[right+1]
for k in range(left,right))
return cost[0][n-1]Onderscheid een berekend plan van het werk dat het voorstelt
ChainArbor biedt een Windows-programmeerwerkruimte voor rekenkundige planning, waar u aannames met een verbonden model kunt bespreken. Bepaal eerst wat een planningsfunctie werkelijk retourneert en wie dat gebruikt. Een kostenraming, een uitvoeringsvolgorde en een uitgevoerde bewerking zijn verschillende soorten uitvoer; een bruikbaar wijzigingsverzoek maakt dat onderscheid expliciet.
Het meegeleverde taakvoorbeeld betreft kostenplanning voor matrixketens. U kunt de assistent vragen om de dimensievalidatie en gerapporteerde rekenkosten te beoordelen voordat u de omliggende toepassing uitbreidt. Betrek de aanroepende code en haar verwachtingen erbij, zodat een wijzigingsvoorstel minimale kosten niet per ongeluk presenteert als een vermenigvuldigingsschema of een berekend matrixresultaat.
Gebruik het gesprek om die interfacebeslissingen zichtbaar te maken en inspecteer vervolgens de broncodewijzigingen. Controleer korte dimensiereeksen met onafhankelijk vastgestelde kosten, inclusief het geval met één matrix, en voer de eigen projecttests uit. Als u later om een uitvoeringsplan vraagt, behandel de representatie en verificatie daarvan dan als aanvullende vereisten, in plaats van aan te nemen dat ze uit een kostenberekening volgen.
Voor de keuze uit ongefilterde AI-modellen verbindt u een ondersteunde OpenAI-compatibele of Anthropic-dienst die het gewenste model aanbiedt. Inloggegevens, ondersteuning voor hulpmiddelen en contextlimieten hangen van die configuratie af. De werkruimte heft beperkingen van de aanbieder niet op; zij helpt voorgestelde planningswijzigingen te verbinden met broncode en acceptatiecriteria die u kunt beoordelen.
Vragen die de reikwijdte van planningscode verduidelijken
Wat moet ik vragen als ik een uitvoeringsvolgorde nodig heb?
Vraag om een expliciete representatie van de volgorde en beschrijf hoe de aanroepende code die gaat gebruiken. Een functie die minimale rekenkosten rapporteert, levert die representatie mogelijk niet. Geef verificatievoorbeelden voor zowel het plan als de gerapporteerde kosten.
Waarom een keten met slechts één matrix testen?
Dat legt het basisgedrag vast wanneer geen vermenigvuldiging nodig is. Neem dat geval samen met een klein voorbeeld met meerdere matrices op, zodat het voorstel van de assistent wordt getoetst aan zowel de grenssituatie als de planningslogica voor langere ketens.
Kan de werkruimte daadwerkelijke numerieke matrixresultaten verifiëren?
Gebruik daarvoor de numerieke hulpmiddelen en tests van uw project. De programmeerwerkruimte ondersteunt bespreking en beoordeling van wijzigingsvoorstellen; een correct kostentestgeval bewijst niet dat een afzonderlijke vermenigvuldigingsimplementatie correcte waarden oplevert.
Hoe voorkom ik dat een herstructurering van kostencode de interface uitbreidt?
Vermeld het huidige retourtype en het vereiste gedrag van de aanroepende code in uw verzoek. Controleer de verschillen op nieuwe uitvoer of gewijzigde eenheden. Als een uitgebreider plan gewenst is, definieer dat dan als een bewuste vervolgstap, niet als een bijkomstige herstructurering.
ChainArbor · Bijgewerkt 2026-10-25