Byggahus.se

Räkna ut hur mycket virke för minsta spill....

  1. T
    Medlem Nivå 1
    Hej
    Jag skulle göra om mitt staket hemma i somras och smålänning som jag är tänkte jag att man borde kunna räkna ut minsta spill....
    Så jag knappade ihop en web-app som ni finner här

    http://spill.tsoft.se

    Kanske kan den vara någon till hjälp !
    -Tobias

    ******

    Minsta Spill
    I version 1 så räknar app;n ut minsta spill per enskild bräda. Det betyder att den kommer hitta en optimal fördelning av bitar per bräda förutsatt att det är endast en enda brädlängd.

    När man lägger till olika brädlängder, tex så har företaget där man köper brådor, längderna 3,60 och 4,20, ja då kommer algorithmen som den ser ut i version 1 att helt enkelt se till utvärdera optimal antal bitar för minsta spill för längden 3,60 och sedan för 4,20. OCH ge det alternativ som ger minst spill för respektive längd.

    Det skulle man kunna tro att det är också den optimala lösningen för ALLA brädor man plockar ut, men så behöver det inte vara, och det är här som problemet blir en utmaning, och inom matematiken benämns det som en NP komplett problem, och just detta problemet har fått ett eget namn Cutting Stock Problem (CSP) som man kan läsa om på denna WIKI sidan.

    Jag har labbat med lite olika algorithmer men inte kommit fram till någon bra, oftast handlar det om att man får så många olika kombinationer att tiden för att räkna ut "optimalt" blir så lång att man helt enkelt tröttnar. Och gör man som jag har gjort här, dvs använder Javascript för att låta datorn räkna ut det inom websidan man befinner sig på, ja då så kommer Javascript motorn i tex Safari, eller Firefox eller Chrome att säga ifrån att ett script kör för länge och vilja stänga ner det.

    Den algorithm som jag jobbar på räknar fram ALLA möjliga kombinationer av bitar per bräda och sedan när den likt en tädtraversering kommer ner till ett löv (när inga mer bitar behöver läggas ut) så ska den välja den kombination av noder och löv som resulterar i det minsta spillet. Men det var här som Javascript motorn sa stopp, och ville stanna uträkningen långt innan den var klar.

    Så därför använder Minst Spill nu en algorithm som tar fram minsta spill PER bräda, inte totalt för alla brädor. Skulle jag kommer fram till hur det ska lösas, ja då blir det en version 2.

    Hoppas att verktyget / app;n kommer till nytta och att du inte får så mycket spill virke.


    -Tobias
     
    • Laddar…
  2. P
    Medlem Nivå 5
    Kul idé! Det tar ju dock bort lite av tillfredsställelsen när man manuellt lyckats få till en nästan perfekt kombination. :)

    Du borde dock lägga in en parameter för klingans bredd för att få det att bli mer verklighetsförankrat. Jag tror att det skulle gå bra att använda samma klingbredd för samtliga kapningar.
     
  3. T
    Medlem Nivå 1
    ja det har du rätt i, man får helt enkelt minska längden med ett par cm,
    jag får lägga till det vid tillfälle
    tack för tipset
    -T
     
  4. B
    Medlem · Nivå 8
    Du får nog tänka länge för att hitta den ultimata lösningen. Jag var inne på liknande tankar själv ett tag och googlade lite på hur man skulle kunna lösa det, men det är tydligen ett olösbart matematiskt problem. (Självklart går det att prova sig fram om det är ett fåtal brädor, men har du ett helt lass så kommer även den värsta dator att gå bet.)
     
  5. T
    Renoverare Nivå 14
    Tack för ett väldigt användbart litet program. Enda jag har att påpeka på nu är att jag skulle vilja skriva in antalet plank av de olika dimensionerna jag har. Om jag t.ex. har två lite kortare plankor som jag vill använda mig av ska den inte tro att jag har/kan skaffa ett gäng av den dimensionen.
     
  6. A
    Medlem · Nivå 19
    Glöm inte att trä kan ha defekter som man vill kapa bort, såvida du inte köper kvistfri fur ;)
    Jag köper 20% mera än vad jag behöver för att kunna ta bort och inte behöva köra en extra resa för att komplettera.
    Glömde lägga till, är smålänning och har lärt mig den hårda vägen att köpa för lite blir merarbete och merkostnad. ;)