Maximering av det totala
täckningsbidraget inom ett producerande företag med hänsyn till
maskinkapacitetsbegränsningar.
av Peter Lohmander
Version 2002-04-10
Nedan finns länkar till två alternativa numeriska lösningar av samma problem. Som illustration tänker vi oss ett litet företag som kan producera två alternativa produkter med hjälp av två befintliga maskiner (avdelningar). Det gäller att maximera det totala täckningsbidraget under ett år.
Tabell 1.
Produkt |
Pris per styck |
Rörlig kostnad per styck |
Tid i maskin 1 (M1) |
Tid i maskin 2 (M2) |
X1 |
110 KSEK |
70 KSEK |
4 tim |
10 tim |
X2 |
110 KSEK |
50 KSEK |
8 tim |
5 tim |
Från förutsättningarna i Tabell 1. räknar
vi ut att täckningsbidragen per styck blir 40 KSEK för X1 och 60 KSEK för X2.
Summa täckningsbidrag = Målfunktionen = 40 X1
+ 60 X2. Eventuella fasta kostnader (är per defintion fasta och) påverkas ej av
våra produktionsbeslut. De beaktas därför ej i målfuktionen.
Vi har två maskiner (avdelningar) i företaget, M1 och M2. Båda produkterna behöver bearbetas i båda maskinerna (avdelningarna) i enlighet med informationen i Tabell 1. Maskinernas kapacitet per år är 1000 timmar (effektiv tid för produktion inom vårt företag). Den tid som åtgår för service, underhåll och uthyrning till andra företag är redan borträknad.
Man kan maximera det totala täckningsbidraget via linjär programmering (LP). Problemet definieras således:
--------------------------------------
max TB = 40X1 + 60X2
subject to
4X1 + 8X2 =< 1000
10X1 + 5X2 =< 1000
--------------------------------------
Problemet kan lösas med simplexmetoden eller alternativa metoder. Man kan lösa det grafiskt och/eller via tabellmetoder. Det finns en stor mängd alternativa böcker som beskriver hur man hanterar optimeringsproblem av olika slag. Det finns en stor mängd alternativa datorprogram som hanterar sådana optimeringsproblem. Två exempel är LINDO och LINGO.
En fördel med LINDO och LINGO är att man
kan ladda ner "små" gratisversioner direkt via INTERNET från LINDO.com. Man kan även köpa in versioner av de
programmen som kan hantera problem som är praktiskt taget hur stora som helst.
(Beslutsproblem med hundratusentals delvis sammanlänkade beslut kan hanteras
via större versioner av LINDO och LINGO.) LINDO och LINGO löser stora problem
snabbt. LINGO kan programmeras med sets, loopar och alla tänkbara slags
funktioner, vilket gör formuleringen generell, tidsmässigt effektiv och
kompakt. För små problem spelar det vanligen ingen större roll vilket program
man använder.
Två alternativa lösningar av samma problem:
LINDO och LINGO inkluderar hjälp-tangenter och/eller exempel-filer vilka man kan använda för att lära sig mer om olika möjligheter. Det rekommenderas naturligtvis att man verkligen lär sig teori och metod via bra kursböcker i optimering och tillämpningar. Studera gärna hur man formulerar problemet och hur den optimala lösningen ser ut via dessa två länkar: