Transportation problem: Difference between revisions
m
→{{header|REXX}}: fixed courtesy GS
m (centered the two HTML tables.) |
Walterpachl (talk | contribs) m (→{{header|REXX}}: fixed courtesy GS) |
||
Line 3,910:
=={{header|REXX}}==
^▼
<lang rexx>/* REXX ***************************************************************
* Solve the Transportation Problem using Vogel's Approximation
Default Input
2 3 # of sources / # of demands
25 35 sources
20 30 10 demands
3 2 5
* 20201210 support no input file -courtesy GS
* Note: correctness of input is not checked
**********************************************************************/
Parse Arg fid
Line 4,040 ⟶ 4,003:
If m.r.c>0 Then Do
ol=ol format(m.r.c,3)
cost
End
Else
Line 4,076 ⟶ 4,039:
init:
If lines(fid)=0 Then Do
parse Value linein(fid) With numSources numDestinations 1 rr cc▼
Do i=1 To 5
l=linein(fid)▼
in.i=sourceline(i+3)
End
End
Else Do
Do i=1 By 1 while lines(fid)>0
End
End
source_sum=0
Do i=1 To numSources
Parse Var
ss.i=source.i
source_sum
End
demand_sum=0
Do i=1 To numDestinations
Parse Var
dd.i=demand.i
demand_sum
End
Do i=1 To numSources
j=i+3
l=in.j
Do j=1 To numDestinations
Parse Var l cost.i.j l
Line 4,107 ⟶ 4,079:
When source_sum=demand_sum Then Nop /* balanced */
When source_sum>demand_sum Then Do /* unbalanced - add dummy demand */
cc
demand.cc=source_sum-demand_sum
dd.cc=demand.cc
Line 4,115 ⟶ 4,087:
End
Otherwise /* demand_sum>source_sum */ Do /* unbalanced - add dummy source */
rr
source.rr=demand_sum-source_sum
ss.rr=source.rr
|