Saturday, April 15, 2017

Solving a Parallel Ordering Problem of 15-Facility Layout

Jsun Yui Wong

Adapting to the computer program in Wong [11], the following computer program seeks to solve the parallel row ordering problem (PROP) of 15 facilities with the first row of 7 facilities and the second row of 8 facilities from Amaral [5].          

One notes lines 401, 405, and 408, which are 401 FOR J55 = 1 TO 7, 405 IF X(J55) > 7 THEN GOTO 1670, and 408 NEXT J55.
     
0 REM DEFDBL A-Z
1 DEFINT I, J, K, X, A
2 DIM B(99), N(99), A(2002), H(99), L(99), U(99), X(2002), D(111), P(111), PS(33), J44(2002), J(99), AA(99), HR(32), HHR(32), Y(33), C(33), CC(33)
3 DIM HS(49, 49)
4 DIM PE(49, 49)
5 DIM SD(49, 49)
27 HR(1) = 20: HR(2) = 3: HR(3) = 9: HR(4) = 3: HR(5) = 7
28 REM   HR(6)=4:HR(7)=6:HR(8)=8:HR(9)=9
29 HR(6) = 3: HR(7) = 7: HR(8) = 5: HR(9) = 9: HR(10) = 6
30 HR(11) = 5: HR(12) = 3: HR(13) = 9: HR(14) = 3: HR(15) = 7
31 FOR IL = 1 TO 15
    32 FOR JL = 1 TO 15
        33 READ HS(IL, JL)
    34 NEXT JL
35 NEXT IL
61 DATA 999,10,0,5,1,0,1,2,2,2,2,0,4,0,0
62 DATA 10,999,1,3,2,2,2,3,2,0,2,0,10,5,0
63 DATA 0,1,999,10,2,0,2,5,4,5,2,2,5,5,5
64 DATA 5,3,10,999,1,1,5,0,0,2,1,0,2,5,0
66 DATA 1,2,2,1,999,3,5,5,5,1,0,3,0,5,5
67 DATA 0,2,0,1,3,999,2,2,1,5,0,0,2,5,10
68 DATA 1,2,2,5,5,2,999,6,0,1,5,5,5,1,0
69 DATA 2,3,5,0,5,2,6,999,5,2,10,0,5,0,0
70 DATA 2,2,4,0,5,1,0,5,999,0,10,5,10,0,2
71 DATA 2,0,5,2,1,5,1,2,0,999,0,4,0,0,5
72 DATA 2,2,2,1,0,0,5,10,10,0,999,5,0,5,0
73 DATA 0,0,2,0,3,0,5,0,5,4,3,999,3,3,0
74 DATA 4,10,5,2,0,2,5,5,10,0,0,3,999,10,2
75 DATA 0,5,5,5,5,5,1,0,0,0,5,3,10,999,4
76 DATA 0,0,5,0,5,10,0,0,2,5,0,0,2,4,999
78 FOR JJJJ = -32000 TO 32000
    79 RANDOMIZE JJJJ
    80 M = -1D+37
    81 FOR J44 = 1 TO 15
        83 A(J44) = J44
    84 NEXT J44
    111 IF RND < 1 / 4 THEN IMAX = 7 ELSE IF RND < 1 / 3 THEN IMAX = 7 ELSE IF RND < 1 / 2 THEN IMAX = 7 ELSE IMAX = 7

    126 REM IMAR=10+FIX(RND*1000)
    128 FOR I = 1 TO 500
        129 FOR KKQQ = 1 TO 15
            130 X(KKQQ) = A(KKQQ)
        131 NEXT KKQQ
        133 III = 1 + FIX(RND * 15)
        134 JJJ = 1 + FIX(RND * 15)
        221 X(III) = A(JJJ)
        223 X(JJJ) = A(III)
        231 FOR J44 = 1 TO 15
            233 FOR J45 = 1 TO 15
                234 IF X(J44) = J45 THEN HHR(J44) = HR(J44) ELSE GOTO 238
                237 Y(J45) = J44
            238 NEXT J45
            253 FOR ISE20 = 1 TO IMAX
                254 C(ISE20) = .5 * HHR(Y(ISE20))
                258 FOR ISE2000 = ISE20 + 1 TO IMAX
                    259 C(ISE20) = C(ISE20) + HHR(Y(ISE2000))
                263 NEXT ISE2000
            269 NEXT ISE20
            386 FOR ISE20N = IMAX + 1 TO 15
                387 C(ISE20N) = .5 * HHR(Y(ISE20N))
                388 FOR ISE2000N = ISE20N + 1 TO 15
                    389 C(ISE20N) = C(ISE20N) + HHR(Y(ISE2000N))
                390 NEXT ISE2000N
            391 NEXT ISE20N
        395 NEXT J44

        401 FOR J55 = 1 TO 7


            405 IF X(J55) > 7 THEN GOTO 1670


        408 NEXT J55

        411 PROD = 0
        412 FOR J44 = 1 TO 15
            413 FOR J45 = J44 + 1 TO 15
                414 PROD = PROD - HS(Y(J44), Y(J45)) * ABS(C(J44) - C(J45))
            415 NEXT J45
        416 NEXT J44
        422 P = PROD
        1111 IF P <= M THEN 1670
        1452 M = P
        1453 FOR KLX = 1 TO 15
            1454 CC(KLX) = C(KLX)
            1455 A(KLX) = X(KLX)
        1456 NEXT KLX
        1559 IIMAX = IMAX
        1657 GOTO 128
    1670 NEXT I
    1889 IF M < -3555 THEN 1999

    1901 PRINT A(1), A(2), A(3), A(4), A(5)
    1902 PRINT A(6), A(7), A(8), A(9), A(10)
    1903 PRINT A(11), A(12), A(13), A(14), A(15)
    1905 REM PRINT CC(1), CC(2), CC(3), CC(4), CC(5)
    1906 REM PRINT CC(6), CC(7), CC(8), CC(9), CC(10)
    1907 REM PRINT CC(11), CC(12), CC(13), CC(14), CC(15)
    1919 PRINT M, JJJJ, IIMAX
1999 NEXT JJJJ

This computer program was run with qb64v1000-win [10]. The complete output through JJJJ=-31996 is shown below:

1     3     7     5     4
6     2     10    8    15
9    12     11      13     14
-3448      -32000        7

1     2     5     4    7
6     3    10     8    14
9      12      11    13     15
-3435     -31999      7

1    2     5     4    7
6    3    10     8    14
9      12      11    13     15
-3435     -31998      7

1    2     5    4    7
6    3    10    8    14
9      12      11    13     15
-3435     -31997      7

1     2    7    5    4
6     3     10    8    15
9    12     11      13     14
-3448      -31996        7

Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.

On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [10], the wall-clock time for obtaining the output through JJJJ=-31996 was 15 seconds.  

Acknowledgment

I would like to acknowledge the encouragement of Roberta Clark and Tom Clark.

References

[1] Andre R. S. Amaral (2006), On the Exact Solution of a Facility Layout Problem.  European Journal of Operational Research 173 (2006), pp. 508-518.

[2] Andre R. S. Amaral (2008), An Exact Approach to the One-Dimensional Facility Layout Problem.  Operations Research, Vol. 56, No. 4 (July-August, 2008), pp. 1026-1033.

[3] Andre R. S. Amaral (2011), Optimal Solutions for the Double Row Layout Problem. Optimization Letters, DOI 10.1007/s11590-011-0426-8, published on line 30 November 2011, Springer-Verlag 2011.

[4] Andre R. S. Amaral (2012), The Corridor Allocation Problem.  Computers and Operations Research 39 (2012), pp. 3325-3330.

[5] Andre R. S. Amaral (2013), A Parallel Ordering Problem in Facilities Layout.  Computers and Operations Research, Vol. 40, Issue 12, December 2013, pp. 2930-2939.

[6] Miguel F. Anjos, Anthony Vannelli, Computing Globally Optimal Solutions for Single-Row Layout Problems Using Semidefinite Programming and Cutting Planes.  INFORMS Journal on Computing, Vol. 20, No. 4, Fall 2008, pp. 611-617.

[7] Miguel F. Anjos (2012), FLPLIB--Facility Layout Database.  Retrieved on September 25 2012 from www.gerad.ca/files/Sites/Anjos/indexFR.html

[8] Philipp Hungerlaender, Miguel F. Anjos (January 2012), A Semidefinite Optimization Approach to Free-Space Multi-Row Facility Layout.  Les Cahiers du GERAD.  Retrieved from www.gerad.ca/fichiers/cahiers/G-2012-03.pdf

[9] Microsoft Corp., BASIC, Second Edition (May 1982), Version 1.10. Boca Raton, Florida: IBM Corp., Personal Computer, P. O. Box 1328-C, Boca Raton, Florida 33432, 1981.

[10] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64

[11] Jsun Yui Wong (2012, September 20).  A General Nonlinear Integer/Discrete/Continuous Programming Solver Applied to the Corridor Allocation Problem with Fifteen Facilities, Fifth Edition. https://myblogsubstance.typepad.com/substance/2012/09/index.html/

No comments:

Post a Comment