Anda di halaman 1dari 64

Optimerad Rvarustyrning fr Sgverksindustrin

Erik Johansson Juni 2010

Abstract
Optimized raw material control at sawmills
A key process step in sawmills is the sawing of logs into wood, using various sawing patterns. A certain amount of waste always results when sawing, but by using the right sawing pattern for each individual log this waste can be minimized. One way to address this is to presort the incoming logs into a number of sawing classes, where all of these collect logs with similar properties. Raw material control at sawmills involves choosing the patterns to be used on each class, the share of each class to be sawn with the various patterns and also deciding the way logs are assigned to the sawing classes. In this work an optimization tool is constructed that addresses the problem of optimizing the raw material control with respect to the sales value of the manufactured products. The problem is divided into two sub-problems where linear programming can be used for one of these sub-problems with purpose to optimize the choices of sawing patterns given a set of classes. Linear programming can be used because the unit price of sawn goods is assumed to be constant with respect to the volume produced. The second sub-problem is to optimize the sorting of logs and in order to do this four different local search algorithms are implemented and evaluated. Through an user and database interface the sawmill can access sawlog data, simulated product outcomes and constraints for product volumes. In addition to optimization of the raw material control the optimization tool can help the user to create well-founded quotations whenever new orders arrive or the anticipated raw material distribution changes. The optimization tool always manages to nd the optimal choice of sawing patterns and shares for a set of sawing classes given the existence of at least one choice that fullls the constraints for manufactured product volumes. Tests show however, that this computational step requires too much time, but it can probably be streamlined enough to be used in practice. The best local search algorithm serves satisfactory in tests, but needs more development in order to be labeled as nished. Foremost by enabling the algorithm to nd a solution even if the sawmills default sawing classes can not fulll the product volume constraints. The test data used when evaluating the algorithms come from a real sawmill, but due to shortcomings in the data no conclusions about increased prot for the sawmill can be drawn.

Sammanfattning
Ett centralt processteg fr sgverk r att snderdela stockar med olika sgmnster. Vid snderdelning uppstr ett visst rvaruspill, men genom att anvnda rtt sgmnster till varje enskild stock kan detta spill minimeras. Som ett steg i att gra detta frsorteras drfr timmer i ett antal timmerklasser som samlar stockar med liknande egenskaper. Rvarustyrning innebr att vlja vilka mnster varje klass ska sgas med, hur stor andel av varje klass som ska sgas med dessa mnster samt att bestmma hur stockar sorteras till klasserna. I detta arbete utvecklas ett optimeringsverktyg som angriper problemet att optimera rvarustyrningen med avseende p de framstllda produkternas frsljningsvrde. Problemet delas upp i tv niver dr linjrprogrammering kan anvndas i den ena nivn med syfte att, givet en uppsttning klasser, optimera valen av sgmnster. Linjrprogrammering anvnds eftersom kubikmeterpriset p de sgade trvarorna antas vara konstant med avseende p producerad volym. Den andra problemnivn innebr att optimera timmersorteringen och fr detta ndaml implementeras och utvrderas fyra lokalskningsalgoritmer. Genom ett grnssnitt mot anvndare och databaser kan sgverk ladda in timmerdata, simulerade produktutfall nr timmer sgas med olika sgmnster, samt lgsta och hgsta tilltna produktvolymer. Utver optimering av rvarustyrning kan optimeringsverktyget anvndas som std fr att skapa vl underbyggda kundofferter vid nya orderingngar eller vntade frndringar av rvarufrdelning. Optimeringsverktyget klarar alltid av att hitta det optimala valet av postningar och postningsandelar givet en uppsttning klasser om det existerar minst ett val som uppfyller bivillkoren p framstllda produktvolymer. Emellertid visar tester att denna berkningsrutin gr ansprk p fr mycket tid, men sannolikt kan den effektiviseras tillrckligt mycket fr att anvndas skarpt i praktiken. Den bsta lokalskningsalgoritmen fungerar tillfredsstllande i tester, men det krvs mer utvecklingsarbete fr att den ska rubriceras som helt klar. Frmst i form av att mjliggra fr algoritmen att nna en lsning om sgverkets grundinstllda klasser inte kan uppfylla bivillkoren p produktvolymer. Testdatat som anvnds kommer frn ett verkligt sgverk, men p grund av brister i detta data kan inga slutsatser dras angende kad lnsamhet fr sgverket genom anvndning av optimeringsverktyget.

Frord
Efter 17 raka r bakom skolbnken har jag kommit fram till de kanske sista raderna text som ska produceras innan examen. De senaste fem ren har jag spenderat vid Ume universitet p civilingenjrsprogrammet fr teknisk fysik och det r med en nstan overklig knsla som jag ska bege mig ut i arbetslivet. Detta examensarbete r utfrt vid SP Trtek i Skellefte och min frsta hlsning gr till Johan, Tommy och de andra i personalstyrkan som tack fr intressanta diskussioner och trevliga pratstunder. Ett speciellt tack gr till min handledare Johan Skog vid SP Trtek som lyft kvaliteten p detta arbete ett stort steg genom skarpsinniga kommentarer under arbetets gng samt genom noggrann granskning av rapporten. Vidare riktas ett stort tack till Per Berg vid SP Trtek som varit till stor hjlp nr mina programmeringskunskaper trutit. Tack ocks till min examinator Martin Berggren vid institutionen fr datavetenskap vid Ume universitet fr granskning av rapporten och hjlp med LaTeX. Slutligen riktas ett tack till Klas Markstrm vid institutionen fr matematik som bidragit med sin expertis kring optimeringslra. Rapporten som lsaren hller i sin hand har krvt mnga timmars hrt arbete och en hel del sena kvllar. Jag hoppas att innehllet r intressant. Det har i alla fall min resa mot resultatet varit.

7 juni 2010

Erik Johansson

Innehll
1 Inledning 1.1 Bakgrund . . . 1.2 Syfte . . . . . . 1.3 Ml . . . . . . 1.4 Avgrnsningar 1 1 2 2 2 4 4 4 5 6 7 14 17 18 18 19 20 22 23 23 25 25 25 26 27

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

2 Teori 2.1 Sgverksteknik . . . . . . . . . . . . 2.1.1 Postning . . . . . . . . . . . 2.1.2 Timmerklasslggning . . . 2.2 Optimeringsteori . . . . . . . . . . 2.2.1 Linjrprogrammering . . . 2.2.2 Kombinatorisk optimering 2.3 Tidigare optimeringsarbeten . . . 3 Metod och material 3.1 Problemformulering . 3.2 Angreppsstt . . . . . . 3.3 Postningsoptimering . 3.4 Klassgrnsoptimering 3.5 Material . . . . . . . . 3.6 Metodik fr testning .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

4 Algoritmbeskrivning 4.1 Postningsoptimering . . . . . . . . . . . 4.1.1 Programpaket fr LP-lsning . . 4.1.2 Modellkonstruktion . . . . . . . 4.1.3 Detaljerad algoritmbeskrivning .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

4.2 Klassgrnsoptimering . . . . . . . . . . . 4.2.1 Startlsning . . . . . . . . . . . . . 4.2.2 Lokalskningsalgoritmer . . . . . 4.2.3 Detaljerade algoritmbeskrivningar 5 Resultat 5.1 TimberNav . . . . . 5.2 Databas . . . . . . . 5.3 Fallstudie . . . . . . 5.3.1 Testdata . . 5.3.2 Optimering

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

27 28 29 30 34 34 35 36 36 36 39 39 40 41 43 46

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

6 Diskussion och slutsatser 6.1 Funktionalitet . . . . 6.2 Felkllor . . . . . . . 6.3 Framtida utveckling 6.4 Slutsatser . . . . . . . A Optimeringsresultat

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

ii

Kapitel 1 Inledning
1.1 Bakgrund
Sgverksindustrin har djupa rtter i den svenska historien. I mnga hundra r har tr processats fr att bli virke. I takt med att industrialiseringen kat och tillverkningsmetoderna blivit effektivare har de producerade volymerna kat fr varje decennium. Skogsavverkning innebr ett visst ingrepp i naturen och med tanke p rdande miljdebatt r det viktigt att skogens rvaror tas till vara p ett effektivt stt. Fr att mta behovet av virke och konkurrensen p marknaden mste sgverk stndigt ka rvaruutbytet fr att vara s lnsamma som mjligt. Eftersom rvarukostnaden r den strsta utgiftsposten fr sgverk s ger ett par procents kning i rvaruutbyte ett stort ekonomiskt utslag. Till exempel utgr rvarukostnaderna omkring 50% av utgifterna fr Setra group AB, som r Sveriges strsta trindustrifretag [1]. Ett vanligt svenskt sgverk sorterar timmer i s kallade timmerklasser efter i frsta hand diameter. Timmer frn respektive klass sgas drefter med samma uppsttning sgmnster, postningar, vilka r anpassade till timmerklassen s att vrdet p de producerade produkterna maximeras. Det nns omkring 25 klasser p ett typiskt sgverk och vanligtvis anvnds 13 postningsalternativ per klass. Att stlla in klassgrnser samt hur stor andel av timret i varje klass som sgas med de olika postningarna r komplicerat. Effekten av att frndra en klassgrns r svr att verblicka, vilket fr till fljd att klassgrnser samt postningsandelar hlls statiska. Operatrerna vljer parametrar som fungerar p ett bra, men mjligen lngt ifrn optimalt stt. Tidigare studier har visat p potentialen att utka rvaruutbytet med ett par procent genom att optimera klassgrnser och postningsandelar.

KAPITEL 1. INLEDNING

Detta kan betyda sjusiffriga belopp rligen i kad vinst [9]. Det rder ven ett tryck p sgverk att producera kundanpassat virke, vilket stller stora krav p processtyrningen. Det r inte ovanligt att kunderna bestller produkter med speciella krav p inte bara bredd och tjocklek, utan ocks p exempelvis lngd, fuktkvot och kvalitet. Med tanke p att tr r ett biologiskt material med stor variation s r detta en utmaning. Fr att tillfredsstlla kunderna samt maximera rvarunyttjandet nns det i dagslget behov av ett system som underlttar rvarustyrningen. Med detta system ska sgverket f en god verblick ver sitt rvarunyttjande samt f std fr att automatiskt optimera rvarustyrningen.

1.2 Syfte
Examensarbetes syfte r att skapa ett std fr automatisk optimering av rvarustyrningen i sgverksindustrin. Detta ska ske genom att i en av SP Trtek utvecklad programvara fr timmerklasslggning lgga till std fr optimering av klassgrnser och postningsandelar.

1.3 Ml
Mlet med examensarbetet r att utveckla en algoritm som optimerar timmerklassgrnser samt postningsandelar givet en databas med stockar. Algoritmen ska implementeras i en bentlig programvara utvecklad av SP Trtek och fr att underltta denna implementering ska algoritmen skrivas med programmeringssprket C# i utvecklingsmiljn Microsoft Visual Studio 2008. En del av algoritmen kommer att lsa ett linjrt optimeringsproblem. Drfr ska ett antal kommersiella programvaror fr linjrprogrammering utvrderas, vartefter den bst lmpade programvaran implementeras i systemet. Mlet r att den utvecklade algoritmen p ett snabbt, robust och anvndarvnligt stt ska lsa optimeringsproblemet. Slutligen r mlsttningen att validera algoritmen genom att utfra frsk i en fallstudie.

1.4 Avgrnsningar
Grnssnitten mot anvndare och databaser kommer att utfras av andra medarbetare p SP Trtek. Enbart testdata frn ett till SP Trtek samarbetande sg-

KAPITEL 1. INLEDNING

verk skall anvndas vid testning och inga ytterligare data behver infrskaffas. Vidare antas kubikmeterpriset fr producerade produkter vara konstant med avseende p volym. En annan avgrnsning r att den utvecklade algoritmen enbart behver optimera med avseende p diametergrnser och lter vriga sorteringsparametrar vara xerade. Slutligen ligger examensarbetets fokus p att utveckla ett par fungerande algoritmer och inte p att justera dess parametrar p ett optimalt stt.

Kapitel 2 Teori
2.1 Sgverksteknik
Tr r ett biologiskt material med stor variation, vilket innebr att varje trstock r unik till form och kvalitet. Fr att underltta processen sorteras allt inkommande timmer i ett antal s kallade timmerklasser. Tanken r att stockar med liknande egenskaper kan sgas med samma produktionsinstllningar. Allt timmer mts innan sortering och data ssom diameter, lngd, bghjd samt krokighet lagras i en databas fr att kunna anvndas vid sortering. Traditionellt r det framfrallt toppdiameter som stockarna sorteras efter, men andra egenskaper beaktas ocks i viss utstrckning. Anvnds en sostikerad rntgenutrustning till mtningarna kan ocks mtt p densitet och krnvedsandel utgra sorteringsparametrar. Timmerklasserna delas ofta in i vanliga klasser och specialklasser. De vanliga klasserna har i regel enbart krav p toppdiameter, medan specialklasserna ven kan stlla krav p er sorteringsparametrar [4].

2.1.1 Postning
Vid produktion stlls vanligen sgverkets produktionsparametrar om fr att passa en utvald timmerklass. Dessa parametrar innefattar bland annat vilka snderdelningsmnster, postningar, som stockarna ska sgas i. Enligt Grnlund [4] r det i Sverige verlgset vanligast fr sgverk att sga stockar med fyrsgning enligt gur 2.1. Som guren visar sgas frst stocken med tv snitt parallella med lngdaxeln fr att sedan roteras 90 grader och sgas igen. Det block som erhlls frn mitten av stocken kallas centrumutbyte, och r den mest vrdefulla delen av stocken. Virket frn centrumutbytet kallas centrumplank och i 4

KAPITEL 2. TEORI

Figur 2.1: Bilden visar fyrsgning, vilket i Sverige r det verlgset vanligaste sttet att
sga timmer. Illustrationen kommer frn Grnlund [4].

regel r det efterstrvansvrt att f s mycket centrumplank som mjligt d detta har relativt hgt frsljningsvrde. Delen av stocken som inte r centrumutbyte kallas fr sidutbyte och frn detta utvinns sidbrdor. Samtidigt som andelen centrumplank ska vara stor br ven det totala utbytet av stocken vara hgt. Postningarna som nmndes tidigare ger olika utbyte beroende av diametern p stocken. Totala antalet mjliga postningar r mycket hgt, men givet en diameter p en stock nns det endast ett antal som anses lmpliga. Eftersom en timmerklass inkluderar stockar inom ett visst diameterintervall begrnsas sledes de lmpliga postningsalternativen till ett ftal. Det gller att hitta postningsalternativ som fungerar tillrckligt bra fr hela klassen [4]. Den ovan nmnda metoden kan utvecklas genom att infra postningskombinationer, vilka innehller ett ftal postningar vardera. Om sgen r instlld p en viss postningskombination kan den, fr varje enskild stock, automatiskt stlla om postningen till ngon av dem som ingr i kombinationen. Den postning som vljs r den som ger hgst utbyte fr den specika stocken. Emellertid r det inte alla sgverk som har std fr detta.

2.1.2 Timmerklasslggning
Med timmerklasslggning menas en plan fr hur timmer ska sorteras samt fr hur stor andel av varje timmerklass som ska sgas med respektive postning. Timmerklasserna har diametergrnser, som hdanefter kallas klassgrnser, an-

KAPITEL 2. TEORI

givna i hela millimeter [4]. Att bestmma dessa klassgrnser r en mycket invecklad process eftersom likadana produkter kan utvinnas med olika postningar. Exempelvis kan en klen stock med en viss postning ge tv exemplar av en bestmd produkt medan en annan postning kan utvinna tre eller fyra likvrdiga produkter ur en grvre stock. Om produktionen av denna produkt ska kas r det sledes svrt att avgra fr vilken klass en viss postningsandel ska hjas. Samtliga klasser och tillhrande postningar blir drfr sammankopplade p ett mycket komplext stt. Fr att sgverk ska kunna verblicka hur kningar och minskningar av olika produktvolymer bst kan genomfras r datorstdda berkningar ett anvndbart verktyg. Dessutom nns behovet att frndra klassgrnserna, vilket gr att antalet stockar i klasserna ndras. Utbytet fr varje postning i en klass beror av hur timmerfrdelningen ser ut i klassen. En klassgrnsfrndring innebr drfr att utbytet frn de olika postningarna frndras. Beroende p vilka produkter som efterfrgas kan en sdan klassgrnsfrndring vara frdelaktig. Detta komplicerar n mer arbetet med timmerklasslggningen och understryker behovet av ett datorbaserat verktyg. Tidigare arbeten med ett sdant verktyg har visat p att timmerklasslggningen lmpligen br delas upp i tv niver. Den ena nivn r att givet en uppsttning statiska klassgrnser optimera postningar och postningsandelar fr varje klass, vilket r ett linjrt problem. Den andra nivn innebr att iterativt variera klassgrnserna fr att nna optimala vrden p sorteringsparametrarna. Detta r ett diskret optimeringsproblem [9]. Bda dessa varianter av optimering beskrivs i avsnitt 2.2.

2.2 Optimeringsteori
Som ordet antyder handlar optimering om att hitta den bsta mjliga lsningen till ett problem. Optimeringslra har ett stort antal praktiska tillmpningsomrden dr allt ifrn teoretisk fysik till trakplanering och ekonomi nns representerade. Fr att framgngsrikt tillmpa optimering krvs oftast kunskap inom matematik, datalogi samt det omrde dr tillmpningen ska implementeras. Utvecklingen str inte p ngot vis stilla fr denna vetenskap. I takt med att datorerna blir snabbare kar prestandan p optimeringsalgoritmer, men faktum r att den mesta utvecklingen sker i form av att algoritmerna i sig utvecklas. Startskottet fr optimering i tillmpad form var fr militra ndaml under Andra vrldskriget, men utan datorer ck berkningarna utfras fr hand. 1947 presenterade Dantzig sin bermda simplexmetod, vilken n idag lrs ut i

KAPITEL 2. TEORI

lrobcker. Flertalet moderna berkningsprogram anvnder sig av en form av simplexmetoden. Rent matematiskt uttrycks ett optimeringsproblem med en mlfunktion och ett antal bivillkor. Ett generellt optimeringsproblem beskrivs som min f (x)
x

g j (x) b j

j = 1, . . . , m,

(2.1)

dr f (x) r mlfunktionen som ska minimeras med avseende p vektorn x. m m g j j =1 r funktioner som beror av x och b j j =1 r konstanter. Att maximera f (x) r ekvivalent med att minimera f (x). Sledes kan alla optimeringsproblem skrivas som minimeringsproblem. Vidare kan alla bivillkor skrivas som g j b j med hjlp av enkla omskrivningar: Olikheten g j b j r liktydig med g j b j och g j = b j kan ersttas med g j b j samt g j b j [6].

2.2.1 Linjrprogrammering
Inom optimeringslra nns era typer av problemklasser. Detta avsnitt beskriver linjrprogrammering som r ett mycket populrt stt att formulera optimeringsproblem. Luenberger och Ye [5] menar att populariteten fr att formulera ett problem som linjrt kan misstnkas bero p att den bakomliggande matematiken r enklare och att lsningsmetoderna r snabba. I sjlva verket r vldigt mnga problem, som uppkommer i praktiken, linjra. Ett linjrprogrammeringsproblem (LP-problem) knnetecknas av att mlfunktionen och bivillkoren r linjra. Vidare mste samtliga parametrar vara kontinuerliga, x n . Exempelvis r min z = x 1 + 2x 2 d x 1 x 2 + 3x 3 3x 2 2x 3 x1 , x2 , x3 ett LP-problem. 5 1 0 (2.2)

KAPITEL 2. TEORI Standardform Standardformen fr ett LP-problem uttrycks som min f (x)
x

Ax = b x, b 0,

(2.3)

dr A r bivillkorsmatrisen av storlek m n. Vektorerna b och x har storleken m 1 respektive n 1. Problemet (2.2) r inte skrivet p standardform eftersom minst ett bivillkor r formulerat med olikhet. Genom att infra ett par extra variabler kan problemet uttryckas i standardform: min z = x 1 + 2x 2 d x 1 x 2 + 3x 3 + x 4 3x 2 2x 3 x5 x1 , x2 , x3 , x4 , x5 = 5 = 1 0 (2.4)

x 4 och x 5 kallas fr slack- respektive verskottsvariabler och de r ett mtt p hur lngt ifrn likhet de berrda bivillkoren i (2.2) r [5]. Egenskaper hos LP-problem Om ekvationssystemet som representerar bivillkoren i LP-problem (2.3) r underbestmt, formulerar det ett parameterrum i n dr samtliga tilltna lsningar, x, nns. I gur 2.2 visas ett exempel p alla tilltna lsningar fr ett tvdimensionellt problem. Bivillkoren r i guren r skrivna som olikheter och sledes r problemet inte i standardform. Detta eftersom att det d r lttare att beskriva visuellt. Naturligtvis kan problemet skrivas om i standardform efter infrande av extra variabler. En matematisk sats sger att det tilltna vektorrummet i ett LP-problem utgr en konvex mngd. Fr ett bevis av satsen hnvisas intresserad lsare till Lundgren et al. [6] eller Luenberger och Ye [5]. En konvex mngd kan beskrivas som en mngd dr hela linjen mellan tv godtyckliga punkter i mngden ocks nns i mngden. Detta ska glla oavsett vilka punkter som vljs. Extrempunkterna i en konvex mngd r mngdens hrn, vilka r markerade i gur 2.2 som E 1 , . . . , E 5 . Med hjlp av detta kan linjrprogrammeringens fundamentalsats formuleras och n en gng hnvisas lsaren till Lundgren et al. [6] eller Luenberger och Ye [5] fr ett bevis.

KAPITEL 2. TEORI

Figur 2.2: Ett exempel p samtliga tilltna lsningar i ett LP-problem. I detta fall r
bivillkoren olikheter som med hjlp av slack- och verskottsvariabler kan skrivas om i standardform.

Sats 1. Givet ett linjrprogrammeringsproblem formulerat i standardform enligt ekvation (2.3), dr A r en m n matris med rang m, s gller att: (i) Om det nns en tillten lsning nns det en tillten lsning som r en extrempunkt. (ii) Om det nns en tillten optimallsning nns det en tillten optimallsning som r en extrempunkt. Lt bivillkoren ges av Ax = b (2.5) och antag att A r en m n matris med linjrt oberoende rader, dr m < n. Vlj ut m linjrt oberoende kolumner ur A (antag fr enkelhetens skull att de m frsta kolumnerna r linjrt oberoende och vlj dessa) och beteckna dessa kolumner med m m matrisen B. D kan bivillkoren skrivas som BxB = b om x = xB (2.6)

, dr xB r en m 1 vektor. Med andra ord har alla vrden i x 0 som inte korresponderar till B satts till noll. Lsningen, xB , till LP-problemet med bivillkor enligt ekvation (2.5) kallas fr en baslsning tillhrande basen

KAPITEL 2. TEORI

10

B och representeras av en extrempunkt i det tilltna omrdet. Genom att underska samtliga baslsningar till det ursprungliga problemet kan, enligt linjrprogrammeringens fundamentalsats, den optimala lsningen nnas. Dock nns det fr ett strre LP-problem s mnga extrempunkter att det vore enormt tidsdande att underska samtliga [6]. Simplexmetoden Det nns ett otal tillgngliga datorprogram som lser LP-problem och mnga bygger p simplexmetoden. Fastn det r ver 60 r sedan simplexmetoden presenterades s r den fortfarande i allra hgsta grad gngbar. I detta avsnitt ges en introduktion till metoden utan att g in p allt fr mycket tekniska detaljer. Se Luenberger och Ye [5] fr en vacker och mer djupgende pedagogisk hrledning. Simplexmetoden nyttjar det faktum att den optimala lsningen r en extrempunkt i det tilltna omrdet. Som beskrivet tidigare motsvaras varje extrempunkt av en baslsning och sledes undersker simplexmetoden enbart baslsningar. Det frsta steget r att nna en tillten baslsning, vilket inte r trivialt. Antag att en sdan baslsning har hittats och i den ingr basvariablerna x 1 , ..., x m . Resterande n m variabler r icke-basvariabler. Nu brjar metoden att iterera till dess ett optimum r funnet. I varje iteration skapas en ny baslsning genom att lyfta ut en basvariabel ur basen fr att erstta den med en icke-basvariabel. Genom att kontrollera gradienten till mlfunktionen fr samtliga icke-basvariabler kan mlfunktionens frndring studeras nr vrdet fr en icke-basvariabel kas. Den icke-basvariabel som ger den strsta frndringen (minskning fr ett minimeringsproblem) r den som ska lyftas in i basen. Dock kan inte den variabeln kas hur mycket som helst utan att lsningen hamnar utanfr det tilltna omrdet. Genom att vlja rtt variabel att lyfta ur basen blir den nya baslsningen fortfarande tillten. Med andra ord vljs den utgende variabeln s att steglngden i iterationen r tillrckligt liten fr att den nya baslsningen ska vara inom det tilltna omrdet. Simplexmetoden kan ses som en vandring lngst randen p det tilltna omrdet frn extrempunkt till extrempunkt, vilket visas i gur 2.3. Efter ett antal iterationen kommer mlfunktionens gradient vara positiv i alla riktningar, vilket betyder att den dvarande baslsningen r den optimala. Eftersom det tilltna omrdet r konvext och mlfunktionen r linjr s kommer metoden alltid att konvergera till ett globalt optimum om problemet har en lsning. Att hitta en frsta tillten baslsning som simplexmetoden kan utg ifrn

KAPITEL 2. TEORI

11

Figur 2.3: Simplexmetodens iterationer i fallet fr ett tvdimensionellt problem. Mlfunktionens nivkurvor r vinkelrta mot normalvektorn N, vars riktning r mlfunktionens negativa gradient. Den inkommande variabeln vljs s att mlfunktionens vrde minskas s mycket som mjligt. Utgende variabel r den som ger den starkaste begrnsningen p den inkommande variabelns vrde. I detta fall r startlsningen E 1 . Drefter vandrar simplexmetoden via E 2 till optimallsningen E 3 .

r inte elementrt, men detta kan gras med i huvudsak tv metoder. Dessa r stora M-metoden samt tvfasmetoden och bda anvnder sig av att addera articiella variabler till bivillkoren. Nr detta grs r det enkelt att hitta en tillten baslsning till det nya articiella LP-problemet dr de articiella variablerna ingr i basen. Dock mste samtliga articiella variabler lyftas ut ur basen fr att lsningen ska vara tillten i det ursprungliga LP-problemet. Stora M-metoden gr detta genom att skriva om LP-problemet som min f(x, a) = f (x) + M (a 1 + + a k )
x,a

Ax + a = b x, a 0,

(2.7)

dr a 1 , . . . , a k r de articiella variablerna och M r en tillrckligt stor konstant (fr minimeringsproblem). Detta gr att simplexalgoritmen om mjligt undviker baslsningar med ngot a i i basen. Om den optimala baslsningen har en articiell variabel i basen dras slutsatsen att ingen tillten baslsning existerar.

KAPITEL 2. TEORI Tvfasmetoden lser frst min (a 1 + a 2 + + a k )


x,a

12

Ax + a = b x, a 0

(2.8)

med simplexmetoden, vilket leder till att samtliga a i stvar efter att lyftas ur basen. Nr de r ute ur basen har en tillten baslsning hittats fr det ursprungliga LP-problemet och om detta inte kan ske nns ingen tillten baslsning. Denna baslsning anvnds sedan som startvrde fr simplexmetoden. Sammanfattningsvis gr simplexmetoden ut p att, utgende frn en tillten baslsning, flja randen av det tilltna parameterrummet i den riktning dr mlfunktionens gradient har strst negativt vrde. Eftersom det r ett LPproblem nns alltid en riktning dr gradienten r negativ, frutom i minimumet. Det gr alltid att nna en tillten baslsning om en sdan existerar genom att anvnda stora M-metoden eller tvfasmetoden [5]. Inrepunktsmetoder Bortsett frn simplex nns det ett par andra metoder som lser LP-problem med liknande prestanda. Dessa r s kallade inrepunktsmetoder och gemensamt fr dessa r att de itererar genom det tilltna omrden till skillnad frn simplexmetoden som fljer randen. I detta avsnitt kommer tv metoder att beskrivas versiktligt. Afna skalningsmetoder gr ut p att skala om problemet i varje iteration s att den nuvarande lsningen transformeras till att ligga nra mitten av det tilltna omrdet. Detta grs fr att undvika att steglngden blir kort, vilket kan ske om lsningen ligger nra randen. Omskalningarna sker med hjlp av en projektionsmatris och i varje iteration vljs en lsning som ligger lngst efter den brantaste lutningen av mlfunktionen. Lsningarna kommer att konvergera mot optimumet utan att anta det exakta vrdet. Vg-fljande metoder anvnder en barrirfunktion som dels ser till att lsningarna i varje iteration hamnar i det tilltna omrdet och dels straffar lsningar som ligger lngt ifrn randen. Den logaritmiska barrirfunktionen ternns i mlfunktionen och p s stt kan andra ordningens derivator av mlfunktionen anvndas. Detta till skillnad frn i exempelvis simplexmetoden dr andra ordningens derivata alltid r noll. Ofta anvnds ngon form av Newtonmetod fr att iterera [6].

KAPITEL 2. TEORI

13

Figur 2.4: Figuren visar en bivillkorsmatris med en struktur som Dantzig-Wolfe dekomposition kan utnyttja.

Dantzig-Wolfe dekomposition I vissa fall har bivillkorsmatrisen en struktur som kan utnyttjas vid lsning. Linjrprogrammeringsproblemet i detta arbete ger upphov till en bivillkorsmatris med en speciell struktur som visas i gur 2.4. Fr ett sdant fall kan s kallad Dantzig-Wolfe dekomposition anvndas. Matrisen bestr av i huvudsak tv delar: en vre matris, T, samt diagonala blockmatriser, D1 , . . . , Dn . Lt x = [xT xT . . . xT ]T , dr varje xi motsvarar en vektor med ett antal variabler och n 1 2 lt p samma stt b = [bT bT . . . bT ]T . D kan det ursprungliga problemet, n 1 2 min f (x)
x

Ax = b x, b 0

(2.9)

delas upp i ett huvudproblem samt n delproblem med bivillkor: Tx = b D1 x1 = b1 D2 x2 = b2 . . . Dn xn = bn . I Tebboth [10] analyseras prestandan fr en parallellimplementerad algoritm designad fr problem med struktur enligt gur 2.4. Jmfrt med kommersiella programvaror r Tebboths algoritm betydligt snabbare. I synnerhet nr mnga processorer anvnds, men ven fr vid anvndning av endast en processor [10]. Artikeln r nstan tio r gammal och det har hnt en hel del, bde (2.10)

KAPITEL 2. TEORI

14

med metoder fr att lsa LP-problem samt med hrdvara. Drfr ska inga slutsatser dras frn artikeln annat n att det r vrt att prova Dantzig-Wolfe dekomposition om problemets struktur gr det mjligt.

2.2.2 Kombinatorisk optimering


Gemensamt fr samtliga kombinatoriska problem r att det nns diskreta variabler. Ofta kan denna problemtyp innefatta ett ntverk av noder med viktade bgar emellan. Ett exempel p sdana optimeringsproblem r ruttplanering dr varor ska fraktas till ett antal kunder p olika geograska positioner med minsta mjliga kostnad. Fr att lsa kombinatoriska problem kan en heuristisk metod anvndas. Vlimplementerade heuristiska metoder hittar ofta lsningar som r bra, men till skillnad frn simplexmetoden kan de generellt inte garantera konvergens mot ett globalt optimum [6]. Heuristiker kan delas upp i tv huvudkategorier: konstruktiva samt lokalskningsalgoritmer. De konstruktiva algoritmerna brjar med att samtliga variabler inte r tilldelade ngot vrde och i upprepade steg stts drefter vrden till variablerna. Nr samtliga variabler har ett vrde r lsningen komplett. Exempel p konstruktiva algoritmer r greedy samt branch and bound. En lokalskningsalgoritm utgr ifrn en initiallsning vartefter detta vrde iterativt frbttras. Vidare nns metaheuristiker som ocks kan delas upp i tv kategorier. Metaheuristiker av frsta kategorin gr, likt lokalskning, en lng stegning genom lsningsrummet, men med skillnaden att varje steg inte ndvndigtvis behver vara en frbttring. Den andra kategorin av metaheuristiker gr ertalet stegningar genom lsningsrummet [7]. Greedy Denna algoritmtyp r konstruktiv och startas med att samtliga variabler r fria. Drefter itereras en lsning fram dr en fri variabel ges ett vrde i varje iteration. Vrdet tilldelas s att mlfunktionen minskar s mycket som mjligt (fr ett minimeringsproblem). Nr alla variabler r tilldelade ett vrde r lsningen klar. Det r lngt ifrn alla problemtyper som garanteras en optimal lsning med greedy-algoritmer. Emellertid kan en hyfsad lsning genereras som kan anvndas som utgngspunkt vid lokalskning. Vrt att noteras r att greedyalgoritmer inte r tillmpbara ver huvudtaget p vissa problem [6].

KAPITEL 2. TEORI Lokalskning

15

Lt en instans av ett kombinatoriskt problem betecknas som (S, f ) dr S r mngden av alla tilltna lsningar och f r mlfunktionen. Fr ett minimeringsproblem gller det att ett globalt minimum, s S, uppfyller f (s ) f (s), s S. En lokalskningsalgoritm brjar frn ett startvrde, s 0 , och som namnet implicerar sker den efter en bttre lsning i nrheten av s 0 . Fr att specicera vilka lsningar som ligger i nrheten anvnds en omgivningsfunktion som betecknas N (s). Lokalskningsalgoritmer utgr frn s 0 och hittar bttre lsningar iterativt genom att leta i omgivningen: s k+1 N (s k ) S, dr f (s k+1 ) < f (s k ). Om f (s k+1 ) f (s k ), s k+1 s nns ingen bttre lsning i omgivningen och s k r ett lokalt minimum med avseende p N (s k ). Valet av omgivningsfunktion beror p problemet och det r viktigt att omgivningen innefattar ett lagom antal lsningar. r den fr stor tar det fr lng tid att ska igenom den efter en bra lsning och r det fr liten nns risken att lokalskningen undersker en fr liten del av S. I varje iteration vljs om mjligt en bttre lsning ut, men detta kan gras p ertalet stt. Metoden fr hur lsningen vljs kallas pivoteringsregel och tv vlknda sdana br namnen frsta frbttring samt bsta frbttring. Den sistnmnda kontrollerar samtliga lsningar i N (s) och vljer ut den som har bst mlfunktionsvrde, frutsatt att det r bttre n det nuvarande. Vid frsta frbttring kontrolleras lsningarna en och en efter varandra till en frbttring hittas. Denna lsning vljs ut och skningen i N (s) avbryts. Beroende p i vilken ordning lsningarna kontrolleras kan slutresultatet ndras. Frdelen med frsta frbttring r att den gr snabbt, men eventuellt kan bsta frbttring konvergera mot en bttre lsning. Det behver dock inte vara s d den bsta pivoteringsregeln beror p det specika optimeringsproblem som ska lsas [7]. Tabu search Lokalskning r en vldigt enkel heuristik, men den kan inte ta sig ur lokala optima. Det kan dremot metaheuristiken tabu search gra, vilket betyder att den har mjlighet att underska en strre del av S n lokalskning. Tabu search pminner mycket om lokalskning med bsta frbttring som pivoteringsregel med en distinkt skillnad. Algoritmen sparar de n senaste lsningarna i en tabulista. Nr en ny lsning ska genereras vljs den bsta lsningen frn N (s) oavsett om den r bttre eller smre n den nuvarande lsningen. Emellertid fr den inte nnas i tabulistan. Lngden n p tabulistan mste vljas med om-

KAPITEL 2. TEORI

16

sorg eftersom ett fr litet vrde gr att skningen snabbt kan terkomma till det lokala optimum som just lmnades, s kallad cykling. Ett fr stort vrde p n kan leda till en alltfr stor restriktion av tillltna lsningar i omgivningen. Om lsningarna innefattar vldigt mnga variabler kan tabulistan krva stora minnesresurser och kontrollering av nya lsningar mot tabulistan kan bli alltfr tidskrvande. I detta fall kan tabulistan lagra enbart frndringarna av variablerna eller ett antal nyckelegenskaper hos de tidigare lsningarna. Tabu search sparar den bsta lsningen som hittats och jmfr alla nya lsningar med den. Hittas en bttre lsning sparas den som den bsta funna lsningen. Eftersom det bsta vrdet alltid sparas kan iterationerna avbrytas nr som helst och nd ge en (lokalt) optimal lsning. Vanliga stoppkriterier fr tabu search r att en p frhand bestmd berkningstid gtt ut eller att det var ett visst antal iterationer sedan den bsta lsningen uppdaterades. Tabulistan r vad som kan kallas fr algoritmens korttidsminne. Ofta kan tabu search anvnda sig av ett lngtidsminne med syftet att intensiera eller diversiera skningen. Om en variabel oftast brukar anta ett vrde kan den variabeln xeras till det vrdet (intensiering) eller frbjudas anta det vrdet (diversiering). D kan skningen styras till att leta i ett lovande omrde av S eller till nya omrden [7]. Random restart, GRASP och iterativ lokalskning Random restart r en vidareutveckling av lokalskning och tabu search. De sistnmnda anvnder endast en startlsning frn vilken de itererar, medan random restart itererar ett stort antal gnger. Varje gng anvnds en distinkt, slumpmssig startlsning. Metoden ser till att en strre del av lsningsmngden undersks, men den garanterar inte att bra lokala optima hittas. En valfri iterativ algoritm, ssom lokalskning eller tabu search, kan anvndas med random restart. Om en greedy-algoritm kan appliceras p optimeringsproblemet r GRASP (Greedy Ranomized Adaptive Search Procedure) en tnkbar heuristik att anvnda. Den r identiskt med random restart fast med skillnaden att en greedyalgoritm anvnds fr att konstruera initiallsningarna. Fr att generera unika startlsningar modieras greedy-algoritmen ngot mellan gngerna. Exempelvis kan variablerna som ska tilldelas vrden f sina vrden i slumpvis ordning. Vidare nns iterativ lokalskning som fungerar som en vanlig lokalskning med skillnaden att nr den fastnat i ett lokalt optimum utkas N (s) under en iteration. Drifrn vljs en, antingen bttre eller slumpmssig, lsning ut och algoritmen fortstter sedan med lokalskning frn den lsningen [7].

KAPITEL 2. TEORI

17

2.3 Tidigare optimeringsarbeten


Grnlund [4] beskriver produktions- och ekonomistyrning fr sgverkverksindustrin dr hela kedjan inkp-produktion-marknad frklaras. Det r ett komplext system d alla delar av sgverket inverkar p lnsamheten. Utan att beskrivas nrmare nmns linjrprogrammering som ett hjlpmedel till att maximera lnsamheten nr hela produktionskedjan inrknas. Dock visas inga metoder att optimera klassgrnser och postningsandelar. Skog [9] angriper samma optimeringproblem som detta arbete. Emellertid grs ansatsen att marginalpriset, det vill sga priset fr det sista tillverkade exemplaret av en produkt, inte r konstant med avseende p producerad volym vilket r fallet i detta arbete. Istllet r det konstant upp till en trskelvolym fr att sedan avta linjrt ned till noll. Detta leder till att optimeringen av postningsandelar blir ett svrlst icke-linjrt problem. Algoritmen visar sig vara lovande, men den r inte tillrckligt snabb. Fokus ligger p att hitta en bra postningsoptimeringsrutin medan enbart en enklare algoritm anvnds till optimering av klassgrnser. Den viktigaste slutsatsen av arbetet r att angreppssttet att dela in problemet i tv niver, klassgrnsoptimering samt postningsoptimering, r det rtta. Vidare konstateras att frdelarna att ha en icke-linjr mlfunktion inte uppvger nackdelarna. Istllet br en linjr mlfunktion anvndas med mjligheten att maximala volymer av producerat virke kan sttas fr att undvika verproduktion av vissa virkestyper [9]. Sawyer r ett planeringsverktyg fr sgverk presenterat i Toverd [11] vid Norska trtekniska institutet (NTI). Verktyget stdjer berkning av den eller de mest optimala postningarna fr en given stock genom att jmfra utbytet frn olika postningsmnster. Genom att simulera sgning med alla mjliga postningsmnster fr samtliga stockar i en hel timmerklass vljs de tta bsta postningarna ut. Nr samtliga timmerklasser har blivit tilldelade en uppsttning postningar grs en marknadsoptimering. Denna optimering r baserad p linjrprogrammering och berknar vilken timmerklass som har hgsta marginalpriset och drfr br tillfras timmer. Problemet som lses pminner om problemet i denna rapport, men skiljer sig bde i mlfunktion och bivillkor. Sawyer garanterar exempelvis inte att minimumvolymer uppfylls.

Kapitel 3 Metod och material


3.1 Problemformulering
Problemet som ska lsas r att hitta den uppsttning klassgrnser och postningsandelar som maximerar vrdet av de producerade produkterna. Priset per volymenhet p varje produkt nns i en databas och kan antas vara konstant med avseende p producerad volym. Produceras vldiga volymer av en viss virkestyp minskas naturligtvis priset eftersom att det blir svrare att slja allt verdigt virke, men s lnge producerad volym inte r lngt ver efterfrgan br priset vara tmligen konstant. Postningsandelarna, som anger hur mycket av varje timmerklass som ska sgas med respektive postningsmnster, anges i procent och r kontinuerliga. Emellertid mste klassgrnserna vara angivna i hela millimeter, vilket har effekten att dessa vrden r diskreta. Timmerupplaget har plats fr vanliga timmerklasser samt ngot som brukar kallas specialklasser. De vanliga klasserna har i regel enbart krav p stockarnas max- och mindiameter medan specialklasserna kan ha er sorteringsparametrar n s. Exempelvis kan en specialklass stlla krav p lngd och/eller krnvedsandel utver max- och mindiameter, vilket ger tminstone tre sorteringsparametrar per specialklass. I gur 3.1 visas ett exempel p en uppsttning timmerklasser och den illustrerar det faktum att samtliga vanliga klasser ligger ttt packade med avseende p deras diametergrnser. Om n v anl i g och n speci al betecknar antalet vanliga respektive specialklasser, r det totala antalet sorteringsparametrar strre n n v anl i g 1 + 3n speci al . En vanlig situation r med n v anl i g = 25 och n speci al = 4, vilket ger totalt runt 40 sorteringsparametrar. Vissa sgverk anvnder ngot som kallas fr postningskombinationer, vilket

18

KAPITEL 3. METOD OCH MATERIAL

19

r ett ftal postningar som grupperats tillsammans och upptrder som om de vore vanliga postningar. Dessa anvnds p de sgverk dr sgens instllningar kan frndras mellan varje stock. P s stt kan sgen alternera mellan olika postningar i postningskombinationen fr att varje stock ska f s hgt utbyte som mjligt. Samtliga klasser har en prioritet som bestmmer i vilken ordning klasserna blir tilldelade stockar. Vanliga klasser har alltid prioritet noll medan specialklassernas prioritet r strre n noll. Om en stock uppfyller villkoren fr mer n en klass s placeras den i klassen med hgsta prioritet. Detta r fr att exempelvis kunna sortera ut stockar inom ett visst diameterintervall som r extra lnga eller har en viss kvalitet och placera dem i en specialklass. Klasser med samma prioritet fr inte verlappa varandra och de vanliga klasserna (prioritet noll) mste ligga s ttt att de fngar upp alla stockar som inte platsar i ngon specialklass.

Figur 3.1: Figuren visar timmerklasser som stockarna placeras i efter sortering. Prioritet
1 betyder att det r en specialklass. Vanliga klasser har prioritet 0. Diametergrnserna anges i hela millimeter.

3.2 Angreppsstt
Tillvgagngssttet att lsa problemet r detsamma som Skog [9] fresprkar, nmligen att dela upp optimeringen i tv niver: postningsoptimering samt klassgrnsoptimering. Givet en uppsttning klassgrnser kan producerat virke

KAPITEL 3. METOD OCH MATERIAL

20

fr varje kombination av klass och postning berknas genom att datorsimulera sgningen. Ett specialfall r vid anvndning av postningskombinationer. D berknas produktutfallet frn varje stock genom att anvnda den postning i kombinationen som ger strst vrdeutbyte. Postningsandelarna fr varje klass kan p matematisk vg optimeras s att vrdet fr allt producerat virke maximeras. Till detta kommer tv typer av bivillkor varav den frsta r att max- och minvolymer fr en uppsttning virkestyper ska uppfyllas. Den andra typen av bivillkor ges av att summan av alla postningsandelar inom varje klass ska vara mindre eller lika med ett. Med andra ord ska andelen sgat timmer inte verstiga 100%. Om inte bivillkoren fr maxvolymer r riktigt hrt satta kommer denna andel att vara exakt 100% eftersom det naturligtvis r det mest lnsamma. Postningsoptimeringen r ett linjrprogrammeringsproblem, vilket visas i stycke 3.3. Klassgrnsoptimeringen gr ut p att p ett smart stt frndra klassgrnserna s att utfallet av postningsoptimeringen maximeras. Vid avsaknad av specialklasser r den enda optimeringsvariabeln sorteringsdiametern, men eftersom specialklasserna har andra sorteringsparametrar s blir problemet mer komplext. I projektet jmfrs ett antal kommersiella LP-lsare fr att hitta en som r tillrckligt snabb och robust. Den implementeras i programmet fr att lsa postningsoptimeringen. Algoritmen som anvnds till klassgrnsoptimeringen utvecklas inom projektet specikt fr detta ndaml.

3.3 Postningsoptimering
Postningsandelarna betecknas med vektorn x vars element r x k,p fr k = 1, 2, . . . , K p = 1, 2, . . . , P. (3.1)

K r antalet klasser och P r totala antalet frekommande postningar. Vidare mste 0 x k,p 1, k, p glla och eftersom inte mer n allt timmer fr sgas i varje klass s krvs att
P

x k,p 1,
p=1

fr

k = 1, 2, . . . , K

(3.2)

r uppfyllt. Lt vektorn b med elementen b i beteckna minsta tilltna producerade volym av virkestyp i och lt p samma stt d vara en vektor med maximal

KAPITEL 3. METOD OCH MATERIAL

21

volym. Vektorerna b och d behver inte ndvndigtvis representera samma virkestyper. Beroende av postningsalternativ, p, s kommer varje stock, j , att bidra med u j ,p,i volymenheter av virkestyp i . Den totala volymen virke av typ i som produceras om hela klass k sgas med postning p r v k,p,i =
j k

u j ,p,i ,

(3.3)

dr summationen r ver alla stockar som nns i klass k. Total mngd producerat virke av typ i r d
K P

Vi =
k=1 p=1

v k,p,i x k,p .

(3.4)

Om mngderna I max och I mi n motsvarar de produkter med max- respektive minkrav p tillverkningsvolym s erhlls bivillkoren
K P

v k,p,i x k,p b i ,
k=1 p=1 K P

i I mi n (3.5) i I max .

v k,p,i x k,p d i ,
k=1 p=1

Mlfunktionen r det totala vrdet av de producerade produkterna. Om produkt i har frsljningsvrdet y i per volymenhet s ges mlfunktionen av
K P

z=
i K

Vi y i =
i k=1 p=1 P

v k,p,i x k,p y i =
K P

(3.6) x k,p c k,p = c x,


T

=
k=1 p=1

x k,p
i

v k,p,i y i =
k=1 p=1

dr c k,p =
i

v k,p,i y i

(3.7)

beskriver totala vrdet fr alla produkter som produceras om hela klass k sgas med postning p. Sammanfattningsvis formuleras allts optimeringsproblemet som max z = cT x
x

Dx = q A1 x b A2 x d x, b, d 0, (3.8)

KAPITEL 3. METOD OCH MATERIAL

22

Figur 3.2: Strukturen hos matrisen D. Det r en gles blockmatris vars diagonal bestr av
radvektorer. Radvektorerna kan vara av olika lngd och samtliga r fyllda med enbart ettor.

dr q r en vektor med enbart ettor och D r en matris med struktur i enlighet med gur 3.2. Matriserna A1 och A2 innehller de v k,p,i som representerar produkter med krav p min- respektive maxvolymer. Bde mlfunktion och bivillkor r linjra i problem (3.8), vilket betyder att linjrprogrammering kan anvndas vid lsning. Som antyddes i avsnitt 3.1 kan linearitet i mlfunktionen enbart antas s lnge produkterna inte verproduceras i stor utstrckning. Lngden av x r antalet unika kombinationer utav klasser och postningar. Dimensionen p x blir vldigt stor vid antagandet att samtliga klasser kan sgas med alla mjliga postningar. Fr en given timmerklass r emellertid enbart ett ftal postningar rimliga av praktiska skl (en klen stock kan inte utan vidare sgas med en postning anpassad fr en betydligt grvre stock). vriga postningar ger nrmast noll i vrdeutbyte eftersom virket kan bli helt sndersgat. P s stt begrnsas antalet element i x, vilket leder till att antalet variabler i optimeringsproblemet reduceras och berkningstiden minskar. Slutligen syns det tydligt i ekvation 3.8 att Dantzig-Wolfe dekomposition kan anvndas p postningsoptimeringen. Detta r inte gjort explicit i detta arbete, men det kan implicit vara implementerat i det externa programpaketet som anvnds fr att lsa postningsoptimeringen.

3.4 Klassgrnsoptimering
Klassgrnsoptimeringen r ett komplext problem. Inte minst p grund av att diametergrnserna r diskreta variabler samt att det frekommer bde vanliga klasser och specialklasser dr de sistnmnda kan ha ertalet sorteringsparametrar. Dessutom innebr en frndring av en klassgrns att ett antal stockar kan byta timmerklass, vilket frndrar sgutbytet fr samtliga postningar inom de berrda klasserna. Eftersom varje stock r unik r det viktigt att hlla reda p

KAPITEL 3. METOD OCH MATERIAL

23

vilka individer som byter klass. Som nmns i avsnitt 3.2 kommer klassgrnsoptimeringen att iterera frn en startlsning dr klassgrnserna ndras ngot i varje iteration. En utmaning som uppkommer r att hitta bra startlsningar. Specialklassernas extra sorteringsparametrar gr det svrt att skapa en algoritm som konstruerar startlsningar frn grunden. Dessa klasser nns till av en anledning och sgverkspersonalen vljer dem med omsorg vid manuella timmerklasslggningar. Som frenkling stts specialklassernas extravillkor till att vara statiska under optimeringen och enbart diametergrnserna varieras, vilket betyder att de initiala specialklasserna mste vara konstruerade p ett bra stt.

3.5 Material
De optimeringsmetoder som arbetet resulterar i implementeras i en programvara skapad av Per Berg vid SP Trtek. Programvaran hanterar den databas som lagrar data frn aktuella sgverk samt agerar grnssnitt mellan anvndare och optimeringsverktyg. Databasen innefattar bland annat en lista ver alla stockar samt data frn sgsimuleringar. Det sistnmnda r en lista p berknat produktutfall fr varje stock om de sgas med olika postningar. Program som anvnds innefattar utvecklingsmiljn Microsoft Visual Studio 2008, Microsoft Solver Foundation (MSF) dr LP-lsaren Gurobi ingr och Microsoft SQL Server 2008 Express som hanterar databaser. MSF har ett modelleringssystem fr LP-problem och det stdjer ett ertal LP-lsare genom att anvnda plug-ins [2, 3]. SP Trtek har sedan tidigare licens p MSF och d ven Gurobi. Ett 64-bitars Windows 7 Professional anvnds som operativsystem. Hrdvaran som anvnds r en Intel(R) Core(TM)2 Quad CPU 2,83 GHz processor med 4,00 GB RAM.

3.6 Metodik fr testning


Det testdata som anvnds fr testning kommer frn ett sgverk som samarbetat med SP Trtek. Testdatabasen innehller 1791 stockar som r sgsimulerade fr 24 olika postningar. I detta testdata nns ocks information om klassgrnser och vilka postningar som anvnts i vilken klass. Vidare nns diameterfrdelningen fr samtliga stockar som sgats under en ttamnadersperiod samt producerade volymer av olika produkter i en databas. P s stt kan de 1791

KAPITEL 3. METOD OCH MATERIAL

24

stockarna skalas om fr att motsvara tta mnaders produktion och simuleringarna kan jmfras med de faktiska sgade volymerna. Dessvrre r priser per produkt, postningsandelar per klass samt krav p max- samt minvolymer inte tillgngligt och eftersom testdatat r inhmtad fr ett par r sedan r dessa vrden inget som gr att ta reda p. Sammantaget gr detta det svrt att underska den exakta ekonomiska vinningen av att anvnda optimeringsprogramvaran, men dremot kan en god uppskattning gras genom att underska det totala volymutbytet. Dessutom kan tester gras fr att utrna huruvida optimeringen fungerar som det r tnkt. Vidare grs inga anstrngningar fr att stlla in de bsta instllningarna p klassgrnsoptimeringen eftersom det helt enkelt inte hinns med inom ramen fr projektet. Istllet ligger fokus p att testa om algoritmerna r stabila samt att f en bild av vilka algoritmer som har strst potential och drfr br vidareutvecklas. Testerna utfrs p postningsoptimering utan klassgrnsoptimering samt med klassgrnsoptimering genom metoderna lokalskning med frsta frbttring, lokalskning med bsta frbttring samt iterativ lokalskning. Tabu search testas inte eftersom exempelvis tabulistans lngd samt avbrottskriterium fr algoritmen inte har bestmts. Det krvs en hel del tester fr att bestmma dessa parametrar, vilket det inte nns tid fr. Resultaten skulle troligen vara orttvisa mot tabu search om dessa parametrar vljs p mf. Fr bde frstafrbttrings- och bstafrbttringsalgoritmerna anvnds en steglngd (frndring av klassgrnser) p 1 mm fr att kunna jmfra resultat och tidstgng. Iterativ lokalskning anvnder variabel steglngd. De esta testerna utgr ifrn uppsttningen klassgrnser frn testdatat medan slumpmssiga klassgrnser anvnds i en testkrning.

Kapitel 4 Algoritmbeskrivning
4.1 Postningsoptimering
Rutinen som optimerar postningsandelarna r uppdelad i tv huvuddelar, vilka r konstruktion av den matematiska modellen samt lsning av LP-problemet. Centralt i bda dessa delar r programvaran Microsoft Solver Foundation (MSF) som bland annat innehller ett modelleringsverktyg fr LP-problem fr programmeringssprket C#. Det r vldigt enkelt att anvnda och med hjlp av plug-in programvaror kan helt olika LP-lsare anvndas utan att det krver markanta ndringar i kllkoden. I projektet anvnds Gurobi som LP-lsare, men innan implementeringen skedde utvrderades ett par andra lsare.

4.1.1 Programpaket fr LP-lsning


Det nns mnga LP-lsare och de esta har ppen kllkod, men ngra r kommersiella. Problemet med ppen kllkod r att licensen oftast inte tillter anvndning i kommersiellt syfte. Detta lmnar kvar i huvudsak Cplex, Gurobi samt Mosek, dr de tv frstnmnda r de mest vlknda. Cplex har lnge varit marknadsledande, men Gurobi har, sedan det grundades fr ett par r sedan, blivit nrmast likvrdigt med Cplex [8]. Det r omjligt att p frhand veta vilken programvara som r bst p postningsoptimeringsproblemet. Problemspecika tester mste utfras innan ngon slutsats kan dras. SP Trtek har sedan tidigare licens p MSF dr Gurobi, men inte Cplex eller Mosek, ingr. Detta r sklet till att Gurobi inledningsvis valdes som optimeringsprogramvara. Under arbetet med detta projekt konstaterades att berkningstiden fr lsningen av optimeringsmodellen var frsumbar i jmfrelse med den tid modellen tog att 25

KAPITEL 4. ALGORITMBESKRIVNING

26

konstruera. Gurobi visade sig vara mer n kapabel till detta problem och nr askhalsen var ngonting annat fanns inget skl till att testa andra LP-lsare.

4.1.2 Modellkonstruktion
En stor del av modellkonstruktionen berr berkning av produktutfall. Produktutfallen beskriver vilka produkter som faller ut nr klasser sgas med olika postningar och de bygger p simuleringsdata av sgningar. Produkternas volym anvnds nr bivillkorsmatrisen konstrueras och vrdet p produkterna anvnds i mlfunktionen. ndras en klassgrns kommer en del stockar att byta klass, vilket leder till att stockarna kommer sgas med andra postningar. Detta betyder att produktutfallen frndras fr de berrda klasserna. Fr att produktutfallen ska kunna berknas mste mjliga postningar fr varje klass vara faststllda. I databasen nns en komplett lista ver samtliga postningar som sgverket kan anvnda. En enkel variant r att lta samtliga postningar vara mjliga fr alla klasser, men samtidigt r lngt ifrn alla postningar rimliga fr varje klass. Det nns inte sgsimuleringsdata fr varje kombination av stock och postning, utan det r bara ett urval av postningarna som simuleras fr respektive stock. Hur dessa postningar vljs r inte en frga som detta arbete besvarar, men fr att optimeringen ska vara s bra som mjligt mste ett tillrckligt stort antal postningar simuleras. Postningarna fr varje klass faststlls genom att kontrollera vilka stockar som nns i klassen. Drefter undersks sgsimuleringsdatat fr dessa stockar och alla postningar som nns representerade fr minst en stock vljs till att ing i klassen. Alla andra postningar saknar simuleringsdata och skulle sledes ge noll i utbyte, vilket r ointressant. Med detta stt att vlja postningar nns ingen risk att begrnsa optimeringen. Det r just berkning av produktutfall som r den tidsmssiga askhalsen i bde postnings- samt klassgrnsoptimeringen och det r drfr av stor vikt att berkna enbart de produktutfall som verkligen pverkar optimeringsresultatet. Antag att det nns simuleringsdata fr exempelvis 5% av stockarna i en klass fr en viss postning. D r det inte troligt att LP-lsaren kommer att generera en optimal lsning som anvnder den postningen (95% av stockarna ger noll i utbyte) och frgan r om en sdan postning behver inkluderas i klassen. Ngon sdan grns r inte implementerad i algoritmen, men det kan vara vrt att testa i en vidareutveckling av programmet. Finns postningskombinationer (se avsnitt 3.1) i databasen ska dessa mjligen inkluderas i vissa klasser. Antag att en viss klass har blivit tilldelad sina vanliga postningar. Om tv eller er av dessa postningar ingr i en postningskom-

KAPITEL 4. ALGORITMBESKRIVNING

27

bination inkluderas denna kombination i klassen. Ingr enbart en av klassens postningar i kombinationen r denna identisk med postningen och sledes r postningskombinationen ondig. Nr klassernas postningar har bestmts och produktutfallen berknats r det dags att skapa bivillkorsmatrisen samt mlfunktionen. Bivillkoren som avser att postningsandelarna per klass inte fr summeras till mer n ett r elementra att implementera. Bivillkoren som begrnsar de producerade volymerna hmtas frn databasen och med hjlp av produktutfallen kan alla koefcienter i matrisen berknas. Mlfunktionens koefcienter kan ven de bestmmas utifrn produktutfallen.

4.1.3 Detaljerad algoritmbeskrivning


1. Fr varje klass: 1.1. Radera alla gamla produktutfall fr klassen. 1.2. Radera alla gamla postningar i klassen. 1.3. Hmta alla relevanta postningar fr aktuell klass frn databasen. 1.4. Fr alla relevanta postningar: 1.4.1. Berkna produktutfall om hela klassen sgas med postningen. 2. Skapa en ny, tom LP-modell. 3. Skapa bivillkoren att postningsandelarna inte fr summeras till mer n 1. 4. Ls in bivillkor fr produktvolymer frn databas. 5. Skapa bivillkoren som avser produktvolymer. 6. Skapa mlfunktionen. 7. Anropa Gurobi-lsaren fr att lsa LP-problemet.

4.2 Klassgrnsoptimering
Klassgrnsoptimeringen bestr av i huvudsak tv steg. Det frsta r att bestmma en startlsning och det andra innebr att iterera frn den. Val av startlsning kan i programmet gras p tre olika stt och skning efter nrliggande bttre lsningar r implementerad med fyra olika rutiner.

KAPITEL 4. ALGORITMBESKRIVNING

28

4.2.1 Startlsning
En greedy-algoritm brukar vara en bra utgngspunkt nr en startlsning ska bestmmas p ett optimeringsproblem. Emellertid nns ingen sjlvklar greedyformulering av detta problem, vilket innebr att andra angreppsstt mste tillgs. Slumpmssiga startlsningar r ett bra alternativ, men utmaningen med det r specialklasserna. De vanliga klasserna har enbart diametergrnser som behver bestmmas medan specialklasserna har ett valfritt antal extravillkor. Det r svrt fr en algoritm att p ett bra stt bygga upp specialklasser frn grunden, i synnerhet nr dessa klasser r designade fr att ta fram unika produkter. Som frenkling stts specialklassernas extravillkor till att vara statiska under optimeringen. Enbart diametergrnserna varieras, vilket betyder att de initiala specialklasserna mste vara valda p ett bra stt. Detta grs genom att anvnda den uppsttning klasser som sgverket har fr nrvarande. Fler startlsningar kan konstrueras genom att inom ett visst diameterintervall lta diametergrnserna fr de vanliga klasserna vara slumpmssiga. Specialklassernas diametergrnser frndras, frn sgverkets grundinstllningar, slumpmssigt ett par millimeter medan extravillkoren r konstanta. Det ena sttet att bestmma en startlsning r allts att anvnda den uppsttning klasser som motsvarar sgverkets grundinstllningar. De andra tv metoderna r att anvnda slumpmssiga klassgrnser. Skillnaden mellan de tv sistnmnda r att den ena, givet max- och minvrde p diametergnserna, lter de vanliga klassernas diametergrnser vara helt slumpmssiga inom intervallet. Metoden fr den andra r att utg frn diametergrnser som r jmnt frdelade p ett p frhand bestmt diameterintervall. Inbrdes avstnd mellan klassgrnserna r 2d mm. Sedan fryttas varje klassgrns slumpmssigt inom [d , d ) mm I gur 4.1 visas de tv metoderna som skapar slumpmssiga vanliga klasser. Notera att dessa bda har samma tillvgagngsstt fr att bestmma specialklasserna, nmligen det som beskrivs i fregende stycke. Klassgrnsoptimeringen utgr alltid frn sgverkets grundinstllning och itererar med ngon lokalskningsalgoritm till dess ett lokalt optimum r funnet. Sedan konstrueras en slumpmssig startlsning och om den lsningen uppfyller alla krav p max- samt minvolymer p produkterna s pbrjas en iteration med samma algoritm frn den. Detta upprepas ett av anvndaren bestmt antal gnger.

KAPITEL 4. ALGORITMBESKRIVNING

29

Figur 4.1: Tv metoder att konstruera slumpmssiga vanliga klasser visas i guren. Metoden som representeras av den vre illustrationen lter klassgrnserna vara helt slumpmssiga inom max- och minvrdena. Den undre illustrationen visar den metod som utgr frn en jmn frdelning. Fr den sistnmnda fryttas drefter varje klassgrns slumpmssigt en strcka inom intervallet [d , d ). Notera att den klenaste klassen alltid har undre klassgrns 0 mm och den grvsta inte har ngon vre grns.

4.2.2 Lokalskningsalgoritmer
I projektet r fyra lokalskningsalgoritmer implementerade. Dessa r lokalskning med bsta frbttring, lokalskning med frsta frbttring, tabu search och iterativ lokalskning. De tv sistnmnda r vidareutvecklingar av de andra. Gemensamt fr alla fyra r att om en uppsttning timmerklasser betecknas s s r omgivningsfunktionen N (s) = { Alla uppsttningar klasser dr en klassgrns i s har yttats mm }, (4.1)

dr r ett litet heltal. Fr lokalskning med bsta frbttring samt tabu search r enbart = 1 valbart och fr lokalskning med frsta frbttring samt iterativ lokalskning kan vljas fritt. Anledningen till att ett xt anvnds fr bsta frbttring r att variabelt endast anvnds i kombination med iterativ lokalskning. Metoden iterativ lokalskning med bsta frbttring skulle troligen vara alltfr lngsam fr att anvndas i praktiken och drfr r den sannolikt en tervndsgrnd. Det skulle naturligtvis vara intressant att utfra tester, men tiden att utveckla metoden, validera att den fungerar samt utfra nmnda tester skulle kunna bli fr hg. Risken nns att andra resultat som r viktigare inte hinns med.

KAPITEL 4. ALGORITMBESKRIVNING

30

Innan varje gng en frbttring av lsningen sker kommer lokalskningsalgoritmerna ndra p ett antal klassgrnser var fr sig, dr antalet bestms av vilken algoritm som anvnds (tillrckligt mnga fr frsta frbttring och samtliga klassgrnser fr bsta frbttring). Det nns vissa kriterier som ska uppfyllas fr att en klassgrns ska vara tillten att ytta. Vad gller de vanliga klasserna ligger dessa ttt intill varandra s att det inte nns ngra luckor emellan (se gur 3.1). Nr en klassgrns fr en vanlig klass ndras berrs tv klasser, dr den ena blir strre och den andra mindre. Klassen som krymper mste vara tillrckligt stor fr att inte frsvinna p grund av klassgrnsndringen. Exempelvis fr en klass med vidden 5 mm inte minskas med mer n 4 mm (|| = 4). Specialklasserna behver inte ligga ttt intill varandra till skillnad frn de vanliga klasserna. Nr en specialklass diametergrns frndras nns tv fall, vilka r om klassen utkas eller minskas. Minskas klassen mste den vara tillrckligt stor p samma stt som fr de vanliga klasserna. kas klassen kontrolleras samtliga klasser som har samma prioritet och om ngon av dessa pverkas av frndringen s krymps den fr att undvika att klasserna verlappar. n en gng mste klassen som krymps vara tillrckligt stor fr att frndringen ska kunna ske. Efter varje klassgrnsfrndring fryttas vissa stockar mellan klasserna i enlighet med de nya klassgrnserna. Drefter uppdateras produktutfallen fr de frndrade klasserna och sedan grs en postningsoptimering fr att se om klassgrnsfrndringen r gynnsam.

4.2.3 Detaljerade algoritmbeskrivningar


Nedan beskrivs samtliga klassgrnsoptimeringsalgoritmer och i dessa ternns begreppen lsning och optimallsning. I bda ingr ett mlfunktionsvrde (totalt produktpris), z, en lista ver klassgrnser, s, med postningsandelar, x, som representerar lsningen samt en lista med produktutfall, u. Variabeln best r den bsta lsning som hittats och uppdateras lpande under krning av algoritmerna. Den aktuella lsningen i algoritmerna kallas och i metoden bsta frbttring nns ven bn som hller reda p bsta lsningen i omgivningen till best . Olikheten > best betyder att respektive mlfunktionsvrden jmfrs.

KAPITEL 4. ALGORITMBESKRIVNING Lokalskning Frsta frbttring

31

1. Kr en postningsoptimering samt spara optimallsningen i och best . 2. Permutera klasslistan i slumpmssigt. 3. Upprepa fr alla klasser i den permuterade listan: 3.1. Om aktuell klass r en specialklass: 3.1.1. Upprepa fr varje kombination av undre/vre klassgrns samt +/ (totalt fyra gnger). Vlj kombinationerna i slumpmssig ordning. 3.1.1.1. Kontrollera om den valda klassgrnsen kan fryttas den valda strckan (+/ ). Kontrollen grs i enlighet med avsnitt 4.2.2. 3.1.1.2. Om fryttning inte r tillten: Fortstt med nsta kombination i 3.1.1. 3.1.1.3. Annars: - Frytta vald klassgrns +/ genom att uppdatera . - Uppdatera produktutfall fr . - Kr postningsoptimering och spara lsningen i . - Om > best : Stt best := och g till punkt 2. - Annars: Stt := best . 3.1.2. Ingen bttre lsning hittades. terg till punkt 3 och vlj nsta klass i listan. 3.2. Om aktuell klass r en vanlig klass och om aktuell klass inte r den grvsta klassen (grvsta klassen har ingen vre klassgrns): 3.2.1. Upprepa fr +/ i slumpmssig ordning: 3.2.1.1. Kontrollera om den vre klassgrnsen kan fryttas den valda strckan (+/ ). Kontrollen grs i enlighet med avsnitt 4.2.2. 3.2.1.2. Om fryttning inte r tillten: Fortstt med nsta i 3.2.1. 3.2.1.3. Annars: - Frytta vre klassgrns +/ genom att uppdatera . - Uppdatera produktutfall fr . - Kr postningsoptimering och spara lsningen i . - Om > best : Stt best := och g till punkt 2. - Annars: Stt := best .

KAPITEL 4. ALGORITMBESKRIVNING

32

3.2.2. Ingen bttre lsning hittades. terg till punkt 3 och vlj nsta klass i listan. 4. Ingen bttre klassdistribution kunde hittas. Bsta funna lsning r best . Avsluta algoritmen. Lokalskning Bsta frbttring 1. Kr en postningsoptimering samt spara optimallsningen i , bn och best . 2. Upprepa fr alla klasser i : 2.1. Om aktuell klass r en specialklass: 2.1.1. Upprepa fr varje kombination av undre/vre klassgrns samt +/ (totalt fyra gnger): 2.1.1.1. Kontrollera om den valda klassgrnsen kan fryttas den valda strckan (+/ ). Kontrollen grs i enlighet med avsnitt 4.2.2. 2.1.1.2. Om fryttning inte r tillten: Fortstt med nsta kombination i 2.1.1. 2.1.1.3. Annars: - Frytta vald klassgrns +/ genom att uppdatera . - Uppdatera produktutfall fr . - Kr postningsoptimering och spara lsningen i . - Om > bn : Stt bn := . - Stt := best . 2.2. Om aktuell klass r en vanlig klass och om aktuell klass inte r den grvsta klassen (grvsta klassen har ingen vre klassgrns): 2.2.1. Upprepa fr +/ : 2.2.1.1. Kontrollera om den vre klassgrnsen kan fryttas den valda strckan (+/ ). Kontrollen grs i enlighet med avsnitt 4.2.2. 2.2.1.2. Om fryttning inte r tillten: Fortstt med nsta i 2.2.1. 2.2.1.3. Annars: - Frytta vald klassgrns +/ genom att uppdatera . - Uppdatera produktutfall fr .

KAPITEL 4. ALGORITMBESKRIVNING - Kr postningsoptimering och spara lsningen i . - Om > bn : Stt bn := . - Stt := best . 3. Om bn > best : 3.1. Stt best := bn . 3.2. Stt := best . 3.3. G till punkt 2.

33

4. Annars: Ingen bttre klassdistribution kunde hittas. Bsta funna lsning r best . Avsluta algoritmen. Iterativ lokalskning 1. Kr en postningsoptimering samt spara optimallsningen i och best . 2. Skapa en lista med olika vrden p . 3. Fr varje vrde p i listan: 3.1. Kr frsta frbttring frn punkt 2 med aktuellt och . Lt och best uppdateras i enlighet med frsta frbttring. 4. Bsta funna lsning r best . Avsluta algoritmen. Tabu search Implementeringen av tabu search r identisk med bsta frbttring med tv skillnader. Den frsta r tabulistan som hller reda p de n senaste lsningarna som algoritmen har stegat igenom. I varje steg vljs den bsta lsningen i N (s) som inte nns i tabulistan oavsett om den r bttre n den fregende lsningen eller inte. Den andra skillnaden r stoppkriteriet, dr bstafrbttringsalgoritmen stannar nr ingen bttre lsning hittas. Tabu search-algoritmen stannar nr den gjort m iterationer utan att hitta en ny bsta-lsning. Genom att vlja n = 0 och m = 1 blir tabu search-algoritmen inget annat n lokalskning med bsta frbttring.

Kapitel 5 Resultat
5.1 TimberNav
Optimeringsrutinerna r implementerade i programmet TimberNav, utvecklat parallellt med detta arbete av Per Berg p SP Trteks Stockholmskontor. Programmet konstruerar en databas genom inlsning av text- eller exceller samt hanterar all kommunikation till och frn databasen. Efter skapandet av databasen visualiseras timmerklasslggningen genom ett antal s kallade vyer. Det nns std fr att ndra det mesta i databasen s som exempelvis klassgrnser, postningsandelar, max- och minvolymer fr produkter samt pris p produkter. I programmet nns en funktion som berknar vilka produkter som faller ut frn hela timmerklasslggningen genom att anvnda sgsimuleringsdata frn databasen. ven totalt frsljningsvrde samt procentuellt rvaruutbyte kan visas klassvis. Programmets anvndargrnssnitt illustreras i gur 5.1. Det r tnkt att TimberNav ven utan optimeringsrutinerna ska vara ett bra verktyg fr sgverken vid timmerklasslggningar. Ett exempelscenario r att utg ifrn en klassdistribution komplett med postningar och postningsandelar fr varje klass. D kan berkningsrutinen anvndas fr att simulera producerade produktvolymer samt rvarunyttjandet fr varje klass och postning. Om postning P 1 i klass K 1 r ineffektiv kan den postningen tas bort eller postningsandelen minskas. Produceras fr lite av en viss produkt kas en annan postningsandel. Drefter grs berkningen om och resultatet jmfrs med det fregende. Nr en timmerklassdistribution r skapad kan optimeringen startas med en enkel knapptryckning, men innan dess br optimeringens instllningar kontrolleras. Detta grs via menyn Verktyg>Instllningar under iken Optimering.

34

KAPITEL 5. RESULTAT

35

Figur 5.1: TimberNavs anvndargrnssnitt som visar sgverkets timmerklasslggning. Dr kan i nulget enbart tv instllningar gras. Den ena avgr huruvida det enbart ska kras en postningsoptimering fr den givna klassdistributionen eller om det ska kras en klassgrnsoptimering. Den andra instllningen bestmmer hur mnga slumpmssiga startlsningar som ska anvndas vid klassgrnsoptimering. Utver mjligheten till att ndra instllningar ser TimberNav ocks till att visualisera optimeringsresultatet p ett snyggt stt som liknar gur 5.1. Optimeringsresultatet visas i ett separat fnster, vilket gr att det kan jmfras med den tidigare timmerklasslggningen.

5.2 Databas
Databasen hanteras av Microsoft SQL Server och innehller ett stort antal tabeller. De mest centrala tabellerna innehller inlsta stockar, sgsimuleringsdata, postningar, klassdistribution och stockfrdelning. Nr databasen har skapats kan den enkelt uppdateras genom det graska anvndargrnssnittet i gur 5.1. Exempelvis kan klassgrnser och volymkrav p produkterna uppdateras. Genom att anvnda .NET-funktionaliteten LINQ kan data hmtas frn de olika tabellerna. LINQ str fr (Language INtegrated Query) och innehller kraftfulla verktyg nr data ska hmtas frn tabeller. LINQ r anvnt i stor utstrckning i TimberNav nr databasen hanteras.

KAPITEL 5. RESULTAT

36

5.3 Fallstudie
5.3.1 Testdata
Optimeringsalgoritmerna utvrderas i en fallstudie och utgr frn ett anonymt sgverks grundinstllningar som visas i tabell A.1 i bilaga A. Som nmns i avsnitt 3.6 r postningar fr varje klass knda, men inte postningsandelar. Fr de klasser dr er n en postning anvnds frdelas drfr timret jmnt mellan postningarna och utbytet fr sgverket berknas d med hjlp av TimberNav till 47,77%.

5.3.2 Optimering
I detta avsnitt redovisas resultaten av testkrningar med postningsoptimering samt med klassgrnsoptimering genom lokalskning med frsta frbttring, lokalskning med bsta frbttring och iterativ lokalskning. Fr den iterativa lokalskningen vljs att anta vrdena 5, 3 och 1 i angiven ordning och fr mer information om detta se avsnitt 4.2.3. Tester utfrs bde utan samt med max- och minvolymer p produkterna. Priset stts till 1 kr per kubikmeter fr samtliga produkter, vilket betyder att optimeringen grs med avseende p volymutbyte. Startpunkten fr samtliga metoder stts inledningsvis till sgverkets grundinstllningar, men ett test med slumpmssiga startlsningar utfrs i slutet av detta kapitel. Postningskombinationer anvnds inte i testningarna eftersom det nns vissa indikationer p att produktutfallen inte berknas korrekt fr dessa. Felet ligger troligen i databasens hantering av postningskombinationer och att korrigera det ligger sledes utanfr detta arbetes ramar. Sgverkets grundinstllningar I tabell 5.1 visas de viktigaste resultaten frn de olika optimeringsmetoderna nr inga max- och minkrav p produktvolymerna r satta. Dessutom nns ven grundinstllningens berknade utbyte som jmfrelse. Tabellen visar att samtliga metoder ger hgre utbyte n grundutbytet. I detta fall ger postningsoptimeringen ett utbyte i nrheten av de olika klassgrnsoptimeringarna. Fr fyra testkrningar av postningsoptimering r berkningstidens medelvrde 4113 ms varav 4098 ms r modellkonstruktion och 15 ms r lsning av optimeringsproblemet. De tre lokalskningsalgoritmerna ligger alla inom 0,07 procentenheter, vilket betyder att de alla r mer eller mindre likvrdiga ur den synvin-

KAPITEL 5. RESULTAT

37

keln. Som vntat konvergerar bsta frbttring snabbare n frsta frbttring i antal iterationer rknat medan den iterativa lokalskningen krver est iterationer. Bsta frbttring krver drygt tre gnger s lng tid som frsta frbttring samtidigt som resultaten i princip r likvrdiga i dessa tester. Den iterativa lokalskningen krver knappt den dubbla berkningstiden som frsta frbttring, men ger samtidigt det bsta volymutbytet. Frsta frbttring och iterativ lokalskning har en inbyggd slumpmssighet och resultaten frn dessa kan variera ngot mellan testkrningar. Emellertid r denna variation enbart ngra f hundradels procentenheter. Fr frsta frbttring beror detta p att testkrningarna konvergerar till lokala optima som ligger vldigt nra varandra. I fyra av de fem testkrningarna r skillnaden 1 mm p ngon enstaka klassgrns. Det femte fallet, som ck bst resultat, r identiskt med de vriga fyra bortsett frn skillnaden p 67 mm fr en klassgrns. Bsta frbttring ger klassgrnser som r mycket lika de i frsta frbttring. Den iterativa lokalskningen resulterar oftast i helt olika lsningar. Flera klassgrnser kan skilja sig mycket (510 mm) mellan de olika testkrningarna samtidigt som volymutbytet nstintill blir detsamma. Samtliga metoder fr klassgrnsoptimering har hittat lsningar dr tminstone ett par klassgrnser frn grundinstllningarna har ndrats ett par millimeter. I bilaga A, tabell A.2A.5, visas resultaten av de bsta testkrningarna frn samtliga optimeringsmetoder. Nr metoderna testas med krav p max- och minvolymer p vissa produkter anvnds kraven som visas i tabell A.9 i bilaga A. Tabellen visar framstllda produkter frn en postningsoptimering med denna uppsttning bivillkor och klassgrnser enligt sgverkets grundinstllningar. De resulterande postningarna frn denna postningsoptimering visas i tabell A.8. Resultaten frn testkrningar av de olika optimeringsmetoderna med samma uppsttning bivillkor visas i tabell 5.2. De absoluta talen i utbyte skiljer sig mellan tabell 5.2 och tabell 5.1, men dremot r de inbrdes skillnaderna metoderna emellan snarlika med de frn den bivillkorsfria optimeringen. Tidstgngen fljer ocks samma mnster som i fregende tester med den lilla skillnaden att iterativ lokalskning relativt sett r ngot snabbare. Den behver nu 1,5 gnger mer berkningstid n frsta frbttring jmfrt med 1,9 gnger mer i testerna utan bivillkor. Spridningen av det optimerade volymutbytet mellan olika testkrningar av frsta frbttring och iterativ lokalskning r ven nu mycket sm. Skillnaderna p klassgrnserna mellan olika testkrningar fr iterativ lokalskning r ungefr lika stora som fr motsvarande testkrningar utan bivillkor. Vad gller bsta frbttring och frsta frbttring r spridningen av klassgrnser dessa emellan sm fr testerna utan bivillkor. Med bivillkor p produktvolymer blir skillna-

KAPITEL 5. RESULTAT

38

Tabell 5.1: Volymutbyte, tidstgng samt antal iterationer fr de olika algoritmerna nr


inga max- och minkrav p produktvolymerna r satta. En * betyder att medelvrdet frn fem testkrningar har berknats.
Algoritm Volymutbyte Tid (s) Iterationer Postningsopt. 51,58% 4,1 Frsta frb. 51,76%* 142* 21* Bsta frb. 51,75% 471 18 Iterativ lokals. 51,82%* 264* 36* Grundinst. 47,77%

Tabell 5.2: Volymutbyte, tidstgng samt antal iterationer fr de olika algoritmerna


nr max- och minkrav p produktvolymerna r satta enligt tabell A.9. En * betyder att medelvrdet frn fem testkrningar har berknats.
Algoritm Volymutbyte Tid (s) Iterationer Postningsopt. 50,82% 4,9 Frsta frb. 51,00%* 202* 33* Bsta frb. 50,99% 637 21 Iterativ lokals. 51,07%* 300* 40*

derna ngot strre d ett par klassgrnser varierar ett par millimeter mellan testkrningarna. Stabiliteten i optimeringsmetoderna r klanderfri och metoderna uppfyller alltid samtliga bivillkor om det existerar tminstone en lsning. Om produktkraven r s hrt satta att det inte existerar ngon lsning fr grundinstllningens klassdistribution s klarar ingen av optimeringsmetoderna att hitta ngon lsning. Metoderna som utfr en klassgrnsoptimering mste ha en tillten startlsning fr att kunna starta iterationerna. Slumpmssig startpunkt Ett test utfrs med 100 slumpmssiga startpunkter fr iterativ lokalskning. I avsnitt 4.2.1 beskrivs tv algoritmer som konstruerar slumpmssiga startlsningar och i detta test anvnds algoritmen som vljer vanliga klassgrnser helt slumpmssigt. De vanliga klassernas diametergrnser tillts ligga i intervallet 140350 mm och specialklassernas diametergrnser kan avvika maximalt 4 mm frn deras respektive vrden i grundinstllningarna. Testet utfrs utan bivillkor p produktvolymer och den bsta funna optimallsningen visas i tabell A.7 i bilaga A. Dessutom visas startlsningen som denna lsning utgick frn i tabell A.6. Den totala berkningstiden r 6 timmar och 6 minuter, vilket r 124 gnger s lng tid som nr enbart sgens grundinstllningar r startlsning. Det optimala volymutbytet berknas till 51,85% vilket r 0,03 procentenheter bttre n de bsta tidigare resultaten.

Kapitel 6 Diskussion och slutsatser


6.1 Funktionalitet
Optimeringsverktygen r tnkt att vara en funktion i TimberNav som ska hjlpa sgverken med timmerklasslggningar. Interaktionen mellan TimberNav samt optimeringsrutinerna fungerar mycket bra och optimeringsresultaten visualiseras p ett snyggt stt. Tester som utfrts visar att berkningstiden r kort om anvndaren endast nskar utfra en postningsoptimering samtidigt som algoritmen alltid hittar en lsning om en sdan existerar. Skillnaden mellan optimeringsresultaten fr postningsoptimering och klassgrnsoptimering r relativt liten i testerna som utfrts. Detta beror troligen p att grundinstllningarna r bra satta, vilket de ocks br vara eftersom de anvnts i verkligheten. Det r drfr troligt att postningsoptimeringens resultat kommer ligga i nrheten av vad som kan stadkommas med de mer avancerade klassgrnsoptimeringsalgoritmerna om grundinstllningarna r ngorlunda bra valda. Detta gr att postningsoptimeringsalgoritmen har stor potential att tillsammans med TimberNav utgra ett anvndbart verktyg vid mindre justeringar av timmerklasslggningar. Om det visar sig att de utvecklade metoderna fr klassgrnsoptimering av ngon anledning inte kan anvndas praktiskt p sgverk s kan postningsoptimeringsalgoritmen anvndas i kombination med manuell justering av klassgrnser. Klassgrnsoptimeringsmetoderna r vldigt lika vad gller resulterande optimallsning. Skillnaden ligger framfrallt i tidstgng dr lokalskning med bsta frbttring r alltfr lngsam fr att anvndas praktiskt. Lokalskning med frsta frbttring och iterativ lokalskning r de bsta testade kandida-

39

KAPITEL 6. DISKUSSION OCH SLUTSATSER

40

terna till att hitta optimala klassgrnser. Det r svrt att avgra hur lng tid optimeringsmetoderna fr ta p sig fr att sgverken ska anvnda sig av dem, men troligen fr en klassgrnsoptimering inte ta mer n ett par minuter i ansprk. Tester visar att de utvecklade optimeringsalgoritmerna har potential att hitta en timmerklasslggning vars volymutbyte r mellan 3,8 och 4,1 procentenheter bttre n grundutbytet, 47,77%, om inga krav stts p producerade produktvolymer. Dock nns det oknda krav p produktvolymerna fr grundinstllningarna, vilka inte har tagits hnsyn till i testerna fr optimeringsmetoderna. Det r drfr oklart hur mycket volymutbytet i praktiken kan hjas med hjlp av optimeringsalgoritmerna. Dessutom r frsljningsvrdet och inte volymutbytet det viktiga, vilket ytterligare frsvrar jmfrelsen mellan sgens grundinstllningar och optimeringens resultat. Resultaten av testerna som utfrts utan bivillkor p produktvolymer visar att det nns mnga lokala optima som ger relativt lika volymutbyte. Vid jmfrelse av testet med 100 slumpmssiga startpunkter och de vriga testerna utan bivillkor p produktvolymer r det stora skillnader p klassdistributionerna fr de lokala optima som hittas, samtidigt som volymutbytena inte skiljer nmnvrt. Testerna visar att det r relativt enkelt att hitta en bra lsning samtidigt som det troligen krvs mycket utvecklingstid att konstruera en klassgrnsoptimeringsalgoritm som hittar markant bttre optimallsningar n de som testats i detta arbete.

6.2 Felkllor
Ett problem intrffar om simuleringsdatat inte r tillrckligt komplett eftersom postningsoptimeringen utgr frn produktutfall som berknas med hjlp av detta data. Om ett antal stockar i en klass inte r simulerade fr en specik postning kommer den postningen ge ett lgre utbyte n vad den skulle gjort i verkligheten. Det kan avhjlpas i viss mn genom att fr varje postningsoptimering som krs kontrollera att samtliga postningar som ingr i resultatet har simuleringsdata fr alla stockar. Om s inte r fallet br anvndaren uppmanas att komplettera sgsimuleringsdatat. Problemet att optimeringen missgynnar postningar som en andel av stockarna inte r simulerade med kommer dock nd att kvarst, men optimeringsresultatet kommer bli ngot bttre och efterlikna verkligheten mer. Samtliga optimeringsrutiner baseras p att resultaten frn sgsimuleringen verensstmmer med sgverkets produktion. Drfr r det viktigt fr optimeringen att simuleringsdatat verensstmmer med verklig-

KAPITEL 6. DISKUSSION OCH SLUTSATSER

41

heten. Postningsoptimeringen tar inte hnsyn till eventuella kostnader som ett postningsbyte medfr. Om en klass innehller ett par postningar vars andelar r mycket lga kan detta medfra att kostnaden att byta postning inte uppvger vinsten med att sga med alla dessa postningar i klassen. Detta r mycket svrt att ta hnsyn till i optimeringen eftersom en timmerklasslggning innebr en lngsiktig planering. Samma timmerklass sgas vid era tillfllen, vilket betyder att era postningar i samma klass inte ndvndigtvis behver innebra att postningen mste bytas under en pgende sgning. En stor felklla i testresultaten r att det inte nns ngra specialprodukter representerade i sgsimuleringsdatat och produktlistorna. Detta medfr att specialklasserna inte har ngon egentlig funktion d dessa inte kan producera specialprodukter. Ett exempelscenario r ett sgverk som vill producera en typ av specialprodukt som har samma bredd och tjocklek som en specik vanlig produkt, men med ett extra lngdkrav. Fr att producera specialprodukten skapas en specialklass med motsvarande lngdkrav. Optimeringsprogrammet har mjlighet att skilja specialprodukten och den vanliga produkten t endast om dessa tv har tilldelats unika produktnamn.

6.3 Framtida utveckling


Flaskhalsen, vad gller berkningstid, fr samtliga klassgrnsoptimeringsalgoritmer r anropen till postningsoptimeringen som grs i varje frbttringssteg. Det r i synnerhet databashanteringen vid modellkonstruktionen av LP-problem som krver mycket tid. Tiden fr modellkonstruktionen och lsningen av LPproblem jmfrs i avsnitt 5.3.2, dr det tydligt syns att tiden LP-lsaren tar i ansprk r frsumbar. Den enskilt strsta frbttringen av samtliga optimeringsrutiner vore drfr att snabba upp denna databashantering, vilket i viss utstrckning troligen ocks r mjligt. Utver sjlva databashanteringen kan mngden data som ska hmtas frn databasen minskas en aning genom att justera hur postningar vljs att ing i klasser. I nulget vljs alla postningar som tminstone en stock i klassen r sgsimulerad med. Denna regel kan ndras frn minst en stock i klassen till exempelvis minst 20% av alla stockar i klassen. Berkningsbrdan skulle d minska en aning utan att resultatet av optimeringen skulle bli lidande. En annan tgrd som skulle minska tidstgngen r att anvnda en annan pivoteringsregel fr frstafrbttringsalgoritmen. I projektet anvnds en pivo-

KAPITEL 6. DISKUSSION OCH SLUTSATSER

42

teringsregel som r helt slumpmssig, men genom att p ett smart stt vlja i vilken ordning klassgrnser ska ndras skulle algoritmen konvergera snabbare och eventuellt till en bttre vrde. Exempel p pivoteringsregler r att vlja klasser med hgst antal stockar frst eftersom ett hgre utbyte p en sdan klass skulle medfra en stor vrdefrndring. Dock r det inte skert att en sdan klass har ngon frbttringspotential om utbytet redan r hgt. Alternativt kan klasser med lgst volymutbyte vljas, men problemet med detta r att klenare timmerklasser generellt ger lgre utbyte n grvre klasser. D kommer pivoteringsregeln att fokusera fr mycket p att frska frbttra volymutbytet hos de klenare klasserna. Dessutom talar volymutbytet inte om hur stora timmervolymer som nns i klassen. En avancerad pivoteringsregel vore att fr varje klass anvnda volymutbytet och vikta det mot klassens timmervolym samt diameterintervall. Detta br bilda ett vrde som motsvarar klassens potential till hjd producerad produktvolym. Ett ytterligare steg r att vikta alltsammans mot priset p produkterna, vilket leder till att pivoteringsregeln anvnder klassernas mjliga vrdekning. Iterativ lokalskning med frsta frbttring r den bsta metoden i testerna som redovisas i projektet. Emellertid har de som anvnds valts utan strre eftertanke, vilket betyder att det nns mjlighet att frbttra algoritmen. Exempelvis kan ett strre start- vljas eller s kan varieras upp och ned i cykler fr att kunna komma bort frn lokala optima. Om = {5, 3, 1, 5, 3, 1, 5, 3, 1} s kommer algoritmen frst gra en grov skning ( = 5) fr att sedan frnas. Nr ett lokalt optimum hittats fr = 1 kan kas igen till 5 fr att undkomma det optimumet och sedan frnas skningen igen. Detta mnster kan upprepas ett par gnger. Tabu search testas inte i projektet i huvudsak p grund av svrigheter att vlja tabulistans storlek samt avbrottskriterium. Bsta frbttring anvnds i regel fr tabu search, men eftersom den pivoteringsregeln r fr tidskrvande br en modierad tabu search-metod vara intressant att testa. En metod som anvnder frsta frbttring till ett lokalt optimum r funnet fr att sedan byta till tabu search med bsta frbttring skulle kunna hitta riktigt bra lsningar, men mjligen skulle den gra ansprk p fr mycket berkningstid. Nsta steg i utvecklingen av optimeringsverktyget r att mjliggra fr klassgrnsoptimeringen att utg frn klassdistributioner som, oavsett val av postningar, inte har mjlighet att uppfylla bivillkoren fr produktvolymer. Detta kan gras med hjlp av att relaxera bivillkoren i postningsoptimeringen och infra en straffunktion som missgynnar lsningar ju mer otilltna de r. P s stt kan klassgrnsoptimeringen iterera frn otilltna till tilltna lsningar och grundin-

KAPITEL 6. DISKUSSION OCH SLUTSATSER

43

stllningarna behver drfr inte vljas med lika stor omsorg nr riktigt hrda volymkrav stts. Det r vrdefullt fr operatrerna att se hur stora frndringar av klasserna som krvs om volymen fr en eller ett par produkter frndras till fljd av ndrad efterfrga. I vissa kommersiella LP-lsare kan relaxation nnas inbyggd, men det r oklart om s r fallet fr Gurobi som anvnds i detta arbete. Vidare nns andra tgrder som kan frbttra optimeringsrutinerna. En tgrd r att infra ett val fr anvndaren att avsluta optimeringen innan den r helt klar och erhlla den bsta funna lsningen. Detta r framfrallt anvndbart fr vissa algoritmtyper som behver mycket berkningstid med exempel som tabu search och algoritmer som anvnder ett ertal olika startlsningar. Klassgrnsoptimeringen som utvecklats i detta arbete berknar endast optimala diametergrnser. En stor vidareutveckling av optimeringsverktyget r att mjliggra klassgrnsoptimeringar med avseende p inte bara diametergrns utan ven andra parametrar, ssom timmerlngd, kvalitet och krokighet. Detta gr det hela mer komplicerat, men samtidigt mer anvndbart. Emellertid nns risken att berkningstiden vxer snabbt fr varje ny parameter som lggs till. I projektet utvrderas enbart Gurobi som LP-lsare och eftersom askhalsen r modellkonstruktion testas inga andra lsare. Om frbttringar av kllkoden grs s att modelleringen inte lngre r systemets askhals s br andra LP-lsare utvrderas.

6.4 Slutsatser
TimberNav har visat sig vara ett vldigt bra grnssnitt mot optimeringen och det r enkelt att jmfra optimeringsresultatet med sgverkets grundinstllningar. Microsoft Solver Foundation ger bra modelleringsverktyg fr linjrprogrammeringsproblem och Gurobi r en tillrckligt snabb och robust LP-lsare fr detta arbetes ndaml. Flaskhalsen fr samtliga optimeringsmetoder som testats r databashanteringen nr modellen av LP-problemet skapas, vilket innebr att det r den del som har strst frbttringspotential. Postningsoptimeringen krver runt 4 sekunder i tester som utfrts, vilket r tillrckligt snabbt om denna ska anvndas vid manuell justering av timmerklasslggningar. Emellertid r den alltfr lngsam vid klassgrnsoptimering eftersom den d anropas ett stort antal gnger. Av de klassgrnsoptimeringsmetoder som testats r iterativ lokalskning den som ger bst resultat, men samtidigt r skillnaderna sm jmfrt med andra metoder. Iterativ lokalskning kan frbttras genom att justera dess para-

KAPITEL 6. DISKUSSION OCH SLUTSATSER

44

metrar, men troligen r mjligheterna att hitta markant bttre lsningar sm. Sdana frbttringar kan dock minska berkningstiden som i tester r runt 45 minuter fr nmnda metod. Testerna som utfrts visar p en bsta mjlig frbttring av volymutbytet p 4,1 procentenheter genom att anvnda klassgrnsoptimering, medan motsvarande siffra fr postningsoptimering r 3,8 procentenheter. I verkligheten r denna siffra betydligt lgre p grund av brister i databasen samt oknda krav p produktvolymer. Den faktiska siffran r svr att uppskatta och det krvs er tester med mer komplett data fr att berkna den verkliga vinsten som optimeringsprogrammet kan ge. Anvndning av slumpmssiga startlsningar har visat sig ge enbart marginella frbttringar i volymutbyte samtidigt som berkningstiden kar mycket. Slutsatsen r drfr att metoden kan ge bttre lsningar n om enbart grundinstllningarna anvnds som startpunkt, men att vinsten med att anvnda denna metod r mycket begrnsad. Slutligen konstateras att algoritmen fr postningsoptimering samt den iterativa lokalskningen fungerar p ett tillfredsstllande stt och har potential att anvndas i praktiken. Samtidigt behvs mer arbete fr att algoritmerna ska rubriceras som helt klara. Frmst i form av att effektivisera databashanteringen vid modellkonstruktion, samt att mjliggra fr klassgrnsoptimeringen att anvnda startlsningar vars klassdistributioner inte kan uppfylla bivillkoren.

Litteraturfrteckning
[1] Anon. Setra Group AB rsredovisning, 2009. [2] Anon. http://www.gurobi.com, 2010. [3] Anon. http://www.microsoft.com, 2010. [4] Anders Grnlund. Sgverksteknik del II: Processen. Sveriges Skogsindustrifrbund, Markaryd, 1992. [5] David G. Luenberger och Yinyu Ye. Linear and Nonlinear Programming. Springer Science + Business Media, LLC, New York, 2008. [6] Jan Lundgren, Mikael Rnnqvist och Peter Vrbrand. Optimeringslra. Frfattarna och Studentlitteratur, Malm, upplaga 3:1, 2008. [7] Wil Michiels, Emile Aarts och Jan Korst. Theoretical Aspects of Local Search. Springer, Berlin Heidelberg, 2007. [8] Hans Mittelmann. http://plato.asu.edu/bench.html, 2010. [9] Johan Skog. Dynamisk timmerklasslggning - metod fr kontinuerlig optimering av rvarustyrning vid sgverk. Ume universitet, Institutionen fr fysik, 2004. Examensarbete. [10] James Richard Tebboth. A Computational Study of Dantzig-Wolfe Decomposition. Doktorsavhandling, University of Buckingham, 2001. [11] Hkon Toverd. Sawyer - planleggingsverkty for sagprosessen. Teknisk rapport, Norsk Treteknisk Institutt, Oslo, 2006.

45

Bilaga A Optimeringsresultat

Tabell A.1: I tabellen visas sgverkets grundinstllningar. Postningsandelarna fr klasser med tv postningar r oknda och antas vara 50%. Resultat som baseras p detta antagande markeras med (*). Volymutbyte per klass samt det totala volymutbytet r berknade av TimberNav.
Klass Klen 1 A Klen 1 B Klen 2 Klen 3 K1 K2A K2B K3 K 3 Jap K4 K 5 Jap K5 K6 K7B Specialklass Nej Nej Nej Nej Nej Nej Nej Nej Ja Nej Ja Nej Nej Nej Mindia. (mm) 0 147 151 163 172 183 192 198 198 211 217 217 231 243 Maxdia. (mm) 146 150 162 171 182 191 197 210 208 216 230 230 242 257 Timmervolym (m3 ) 21522 11076 111962 120052 131606 110819 74326 107433 55207 67503 44467 70398 121908 26866 Volymutbyte 33,1% 39,5% (*) 37,1% 41,8% (*) 45,4% (*) 50,8% 48,8% 51% (*) 46,9% 51,9% (*) 43,3% 51,9% 53,4% (*) 45,1% Postning 38x100 32x125 44x100 50x100 38x125 50x115(1) 50x115(2) 50x125(1) 50x125(2) 50x150(1) 50x150(2) 63x125 34x112 38x150 75x125 34x127 63x150 63x175 75x150 50x200 Stockandel 100% 50% (*) 50% (*) 100% 50% (*) 50% (*) 50% (*) 50% (*) 100% 100% 50% (*) 50% (*) 100% 50% (*) 50% (*) 100% 100% 50% (*) 50% (*) 100%

46

BILAGA A. OPTIMERINGSRESULTAT

47

Klass K7A K8A K8B K9 K 10 K 11 Totalt

Specialklass Ja Nej Nej Nej Nej Nej

Mindia. (mm) 243 258 268 277 296 321

Maxdia. (mm) 257 267 276 295 320 800

Timmervolym (m3 ) 71804 52651 40207 61110 35877 12288 1349082

Volymutbyte 48,2% 48,5% 52,4% 53,6% 54,4% 53,5% 47,77% (*)

Postning 50x200 63x200(1) 63x200(1) 63x200(2) 75x200 50x225

Stockandel 100% 100% 100% 100% 100% 100%

Tabell A.2: Resultat frn postningsoptimering som utfrs p klasserna i sgverkets grundinstllningar. Inga bivillkor p produktvolymer nns.
Klass Klen 1 A Klen 1 B Klen 2 Klen 3 K1 K2A K2B K3 K 3 Jap K4 K 5 Jap K5 K6 K7B K7A K8A K8B K9 K 10 K 11 Totalt Specialklass Nej Nej Nej Nej Nej Nej Nej Nej Ja Nej Ja Nej Nej Nej Ja Nej Nej Nej Nej Nej Mindia. (mm) 0 147 151 163 172 183 192 198 198 211 217 217 231 243 243 258 268 277 296 321 Maxdia. (mm) 146 150 162 171 182 191 197 210 208 216 230 230 242 257 257 267 276 295 320 800 Timmervolym (m3 ) 21522 11076 111962 120052 131606 110819 74326 107433 55207 67503 44467 70398 121908 26866 71804 52651 40207 61110 35877 12288 1349082 Volymutbyte 41,4% 43,5% 47,5% 48,5% 50,5% 52,8% 52,9% 51,9% 52,8% 54% 54,6% 54,1% 53,9% 52,6% 51,1% 49,2% 53,2% 53,6% 54,4% 53,5% 51,58% Postning 32x125 38x125 38x125 50x125(1) 50x125(2) 63x125 63x125 63x125 63x125 63x150 75x150 75x150 75x150 75x150 75x150 50x200 63x200(2) 63x200(2) 75x200 50x225 Stockandel 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100%

BILAGA A. OPTIMERINGSRESULTAT

48

Tabell A.3: Resultat frn bsta frbttring utan bivillkor.


Klass Klen 1 A Klen 1 B Klen 2 Klen 3 K1 K2A K2B K3 K 3 Jap K4 K 5 Jap K5 K6 K7B K7A K8A K8B K9 K 10 K 11 Totalt Specialklass Nej Nej Nej Nej Nej Nej Nej Nej Ja Nej Ja Nej Nej Nej Ja Nej Nej Nej Nej Nej Mindia. (mm) 0 145 149 163 166 184 192 199 198 211 217 217 231 243 243 258 266 277 296 321 Maxdia. (mm) 144 148 162 165 183 191 198 210 205 216 230 230 242 257 257 265 276 295 320 800 Timmervolym (m3 ) 14444 13827 116290 39019 224802 98656 89870 103342 43755 67503 44467 70398 121908 26866 71804 42934 49924 61110 35877 12288 1349082 Volymutbyte 41,4% 43,3% 47,5% 49,1% 50% 53% 52,8% 52,9% 53,1% 54% 54,6% 54,1% 53,9% 52,6% 51,1% 49,3% 52,6% 53,6% 54,4% 53,5% 51,75% Postning 50x100 32x125 38x125 50x125(1) 50x125(2) 63x125 63x125 63x150 63x125 63x150 75x150 75x150 75x150 75x150 75x150 50x200 63x200(2) 63x200(2) 75x200 50x225 Stockandel 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100%

BILAGA A. OPTIMERINGSRESULTAT

49

Tabell A.4: Bsta resultat av de fem testkrningarna av frsta frbttring utan bivillkor.
Klass Klen 1 A Klen 1 B Klen 2 Klen 3 K1 K2A K2B K3 K 3 Jap K4 K 5 Jap K5 K6 K7B K7A K8A K8B K9 K 10 K 11 Totalt Specialklass Nej Nej Nej Nej Nej Nej Nej Nej Ja Nej Ja Nej Nej Nej Ja Nej Nej Nej Nej Nej Mindia. (mm) 0 145 149 163 166 184 192 199 197 204 217 217 231 243 243 258 266 277 296 321 Maxdia. (mm) 144 148 162 165 183 191 198 203 205 216 230 230 242 257 257 265 276 295 320 800 Timmervolym (m3 ) 14444 13827 116290 39019 224802 98656 84450 44759 49175 126087 44467 70398 121908 26866 71804 42934 49924 61110 35877 12288 1349082 Volymutbyte 41,4% 43,3% 47,5% 49,1% 50% 53% 52,7% 52,7% 53,3% 54% 54,6% 54,1% 53,9% 52,6% 51,1% 49,3% 52,6% 53,6% 54,4% 53,5% 51,79% Postning 50x100 32x125 38x125 50x125(1) 50x125(2) 63x125 63x125 63x125 63x125 63x150 75x150 75x150 75x150 75x150 75x150 50x200 63x200(2) 63x200(2) 75x200 50x225 Stockandel 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100%

BILAGA A. OPTIMERINGSRESULTAT

50

Tabell A.5: En av de fyra testkrningarna av iterativ lokalskning som ger det bsta
resultatet fr fallet utan bivillkor.
Klass Klen 1 A Klen 1 B Klen 2 Klen 3 K1 K2A K2B K3 K 3 Jap K4 K 5 Jap K5 K6 K7B K7A K8A K8B K9 K 10 K 11 Totalt Specialklass Nej Nej Nej Nej Nej Nej Nej Nej Ja Nej Ja Nej Nej Nej Ja Nej Nej Nej Nej Nej Mindia. (mm) 0 149 159 164 166 177 184 204 203 206 217 217 221 250 248 258 266 267 296 316 Maxdia. (mm) 148 158 163 165 176 183 203 205 203 216 218 220 249 257 252 265 266 295 315 800 Timmervolym (m3 ) 28270 73474 52418 29417 143324 81478 264410 19319 6622 112775 5070 27833 237298 38389 26854 42934 6283 104751 33919 14245 1349082 Volymutbyte 41,9% 47,7% 48,1% 49% 49,5% 50,9% 52,9% 53,7% 51,5% 54% 53,5% 53,3% 54% 51% 51,6% 49,3% 49,9% 53,4% 54,7% 53% 51,82% Postning 32x125 38x125 50x115(2) 50x125(1) 50x125(2) 50x125(2) 63x125 63x150 63x125 63x150 63x150 75x150 75x150 63x175 75x150 50x200 63x200(2) 63x200(2) 75x200 50x225 Stockandel 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100%

BILAGA A. OPTIMERINGSRESULTAT

51

Tabell A.6: Slumpmssig klassdistribution dr postningar och postningsandelar r berknade med postningsoptimering. Detta r initiallsningen till den av de 100 slumpmssiga startlsningarna som ger bst utbyte efter en iterativ lokalskning.
Klass Klen 1 A Klen 1 B Klen 2 Klen 3 K1 K2A K2B K3 K 3 Jap K4 K 5 Jap K5 K6 K7B K7A K8A K8B K9 K 10 K 11 Totalt Specialklass Nej Nej Nej Nej Nej Nej Nej Nej Ja Nej Ja Nej Nej Nej Ja Nej Nej Nej Nej Nej Mindia. (mm) 0 150 151 155 156 169 171 175 194 176 219 229 241 247 239 260 266 274 289 326 Maxdia. (mm) 149 150 154 155 168 170 174 175 205 228 232 240 246 259 259 265 273 288 325 999 Timmervolym (m3 ) 31103 1495 20664 7990 159592 28208 54557 11696 57990 500553 50635 96792 12378 19729 107121 29381 34106 62299 54264 8529 1349082 Volymutbyte 41,9% 49,3% 47,1% 48% 47,4% 48,7% 50,3% 47,7% 53,2% 50,7% 55% 53,9% 53,8% 51,6% 51,3% 49,3% 51,8% 53,7% 53,9% 53,2% 50,82% Postning 32x125 38x125 38x125 38x125 50x115(2) 50x125(2) 50x125(2) 50x125(2) 63x125 63x125 75x150 75x150 75x150 63x175 75x150 50x200 63x200(2) 63x200(2) 75x200 50x225 Stockandel 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100%

BILAGA A. OPTIMERINGSRESULTAT

52

Tabell A.7: Bsta funna lsningen nr iterativ lokalskning har anvnts frn 100 slumpmssiga startlsningar.
Klass Klen 1 A Klen 1 B Klen 2 Klen 3 K1 K2A K2B K3 K 3 Jap K4 K 5 Jap K5 K6 K7B K7A K8A K8B K9 K 10 K 11 Totalt Specialklass Nej Nej Nej Nej Nej Nej Nej Nej Ja Nej Ja Nej Nej Nej Ja Nej Nej Nej Nej Nej Mindia. (mm) 0 145 149 151 159 164 166 180 192 184 204 204 221 250 219 258 266 271 294 316 Maxdia. (mm) 144 148 150 158 163 165 179 183 198 203 218 220 249 257 252 265 270 293 315 999 Timmervolym (m3 ) 14444 13827 4328 69146 52418 29417 178380 46422 18890 252141 67192 87652 72973 38389 201331 42934 19947 88163 36843 14245 1349082 Volymutbyte 41,4% 43,3% 46,3% 47,8% 48,1% 49% 49,8% 51,1% 53,7% 52,8% 54% 53,7% 54,3% 51% 53,6% 49,3% 51,1% 53,7% 54,7% 53% 51,85% Postning 50x100 32x125 38x125 38x125 50x115(2) 50x125(1) 50x125(2) 50x125(2) 63x125 63x125 63x150 63x150 75x150 63x175 75x150 50x200 63x200(2) 63x200(2) 75x200 50x225 Stockandel 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100%

BILAGA A. OPTIMERINGSRESULTAT

53

Tabell A.8: Resultat frn postningsoptimering som utfrs p klasserna i sgverkets


grundinstllningar nr ett antal bivillkor stlls. Bivillkoren p produktvolymer visas i tabell A.9.
Klass Klen 1 A Specialklass Nej Mindia. (mm) 0 Maxdia. (mm) 146 Timmervolym (m3 ) 21522 Volymutbyte 39,3% Postning 32x125 38x100 44x100 50x100 32x125 38x125 38x125 50x125(1) 50x125(2) 50x125(2) 50x125(2) 50x150(2) 63x125 63x150 38x150 63x150 75x150 75x150 63x175 75x150 50x200 63x175 50x200 50x200 50x200 63x200(2) 63x200(2) 75x200 63x200(2) Stockandel 44,5% 14% 24,5% 17% 95,2% 4,8% 100% 30,1% 69,9% 100% 100% 48,6% 51,4% 100% 100% 100% 100% 100% 12,5% 87,5% 79,8% 20,2% 100% 100% 100% 100% 15% 85% 100%

Klen 1 B Klen 2 Klen 3 K1 K2A K2B K3 K 3 Jap K4 K 5 Jap K5 K6 K7B K7A K8A K8B K9 K 10 K 11 Totalt

Nej Nej Nej Nej Nej Nej Nej Ja Nej Ja Nej Nej Nej Ja Nej Nej Nej Nej Nej

147 151 163 172 183 192 198 198 211 217 217 231 243 243 258 268 277 296 321

150 162 171 182 191 197 210 208 216 230 230 242 257 257 267 276 295 320 800

11076 111962 120052 131606 110819 74326 107433 55207 67503 44467 70398 121908 26866 71804 52651 40207 61110 35877 12288 1349082

43,5% 47,5% 48,4% 50,5% 50,8% 51,6% 51,8% 51,4% 54% 54,6% 54,1% 53,8% 46,6% 48,2% 49,2% 50,6% 53,6% 54,2% 48,2% 50,82%

BILAGA A. OPTIMERINGSRESULTAT

54

Tabell A.9: Resulterande produktvolymer samt max- och minvolymer frn en postningsoptimering som utgr frn klassdistributionen i sgverkets grundinstllning.
Produkt 10019 10025 10038 10044 10050 11234 11550 12519 12525 12532 12538 12550 12563 12575 12734 15025 15038 15050 15063 15075 17525 17563 20025 20050 20063 20075 22550 7519 7525 Totalt Minvolym (m3 ) 0 0 1000 2000 1500 0 0 0 0 6000 0 0 7000 0 0 5000 0 0 0 0 0 0 30000 0 5000 10000 0 0 0 Maxvolym (m3 ) 20000 INF INF INF INF INF INF INF INF 6000 INF INF 15000 INF INF INF INF INF INF INF INF INF INF INF INF INF INF INF INF Producerad volym (m3 ) 20000 41206 1000 2000 1500 0 0 21408 15897 6000 38753 134398 15000 0 0 5000 21718 13374 70526 90634 1761 7784 30000 54820 22958 10000 0 24023 35901 685662 Pris (kr/m3 ) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Produktvrde (kr) 20000 41206 1000 2000 1500 0 0 21408 15897 6000 38753 134398 15000 0 0 5000 21718 13374 70526 90634 1761 7784 30000 54820 22958 10000 0 24023 35901 685662

Anda mungkin juga menyukai