Transport-

problemet

Problemlösning i matematik med programmering

Problem

Tonys transportbil har

  • Maximal lastvolym: \(8\phantom{.}000\text{ dm}^3\)
  • Maximal lastvikt:     \(1\phantom{.}700\text{ kg}\)

För lådorna som ska transporteras gäller:

Typ av låda Volym
[dm3/låda]
Vikt per låda [kg] Fraktersättning [kr/låda]
Stor och lätt 200 5 40
Liten och tung 50 20 25

Vilken kombination av antal stora och små lådor ska Tony transportera för att få maximal ersättning?

Prövning

Antal stora lådor Antal små lådor

Total volym [dm3]
(max: 8 000)


Total vikt [kg]
(max: 1 700)


Ersättning [kr]
0 85 4 250 1 700 2 125
40 0 8 000 200 1 600
24 64 8 000 1 400 2 560
12 82 6 500 1 700 2 530
6 83 5 350 1 690 2 315

Det stora antalet kombinationer att pröva gör att det är tidsödande att hantera manuellt.

Vi låter datorn göra jobbet!

Flödesschema

Kod

# Programmet skrivet i Python enligt uppgift
# i Ma5000+, 2c-kursen

Emax = 0 # Nollställ maximal ersättningen

# I for-looparna nedan så ökas antalet stora lådor (x)
# och antalet små lådor (y) en i taget för varje varv
for x in range(0, 41): # Loop som räknar stora lådor, start från 0
   for y in range(1, 86): # Loop som räknar små lådor, start från 1
      V = 200*x + 50*y # Beräknar total volym
      m = 5*x + 20*y # Beräknar total vikt
         if V <= 8000 and m <= 1700: # Lastkriterier uppfyllda?
            E = 40*x + 25*y # Beräknar ersättning för kombination
            if E > Emax: # Hittills största möjliga ersättning?
               Emax = E  # Tilldela Emax det aktuella värdet
               stora = x # Spara antalet stora lådor
               små = y   # Spara antalet små lådor
                
print("Tony ska lasta", stora, "stora lådor och ")
print(små, " små lådor för maximal ersättning.")

Slutnotering

I matematikkursen behöver du inte kunna skapa ett sådant här program från början, men det är tänkt att du ska förstå hur ett enklare program som löser matematiska problem fungerar och kunna göra mindre förändringar utifrån en given kod. Två viktiga strukturer, som återkommer i de flesta program, är villkor och loopar. Dessa har vi här sett exempel på.

Lycka till med dina tilldelade programmeringsuppgifter!

Transportproblemet

By Nikodemus Karlsson

Transportproblemet

En uppgiftspresentation som inleder programmeringsavsnittet i Ma2c.

  • 70