Friday, August 25, 2017

Solving Thanedar and Vanderplaats' Cantilever Beam of Five Steps with the Method of This Blog

Jsun Yui Wong

The computer program listed below seeks to solve the following problem in Thanedar and Vanderplaats [12], Mathworks [8], and Nigdeli, Bekdas, and Yang [10, pp. 34-36].

Minimize        (X(1) * X(6) * 100 + X(2) * X(7) * 100 + X(3) * X(8) * 100 + X(4) * X(9) * 100 + X(5) * X(10) * 100)

subject to

           600 * 50000 / (X(5) * X(10) ^ 2)<=14000

         1200 * 50000 / (X(4) * X(9) ^ 2)<=14000
         1800 * 50000 / (X(3) * X(8) ^ 2)<=14000
        2400 * 50000 / (X(2) * X(7) ^ 2)<=14000
        3000 * 50000 / (X(1) * X(6) ^ 2)<=14000
         (50000 * 1000000 / 6E+07) * (((12 * (1) / (X(5) * X(10) ^ 3)) + (12 * (7) / (X(4) * X(9) ^ 3)) + 12 * (19) / (X(3) * X(8) ^ 3)) + (12 * (37) / (X(2) * X(7) ^ 3)) + (12 * (61) / (X(1) * X(6) ^ 3)))<=2.7

         X(10) / X(5)<=20

         X(9) / X(4)<=20
         X(8) / X(3)<=20
         X(7) / X(2)<=20
         X(6) / X(1)<=20

              1<= X(i) <=5,  i=1, 2, 3, 4, 5.

              30<= X(j) <=65,  j=6, 7, 8, 9, 10.

The X(11) through X(21) below are slacks variables.

It is important to note line 269, which is 269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0.


0 DEFDBL A-Z

2 DEFINT K

3 DIM B(99), N(99), A(99), H(99), L(99), U(99), X(1111), D(111), P(111), PS(33)
12 FOR JJJJ = -32000 TO 32000 STEP .01

    14 RANDOMIZE JJJJ
    16 M = -1D+37
    22 REM FOR J44 = 1 TO 4


    68 A(1) = 2 + RND * 2

    70 A(2) = 2 + RND * 2

    72 A(3) = 2 + RND * 2


    74 A(4) = 2 + RND * 2


    76 A(5) = 2 + RND * 2

    78 A(6) = 40 + RND * 15

    82 A(7) = 40 + RND * 15

    88 A(8) = 40 + RND * 15

    90 A(9) = 40 + RND * 15

    92 A(10) = 40 + RND * 15



    128 FOR I = 1 TO 50000



        129 FOR KKQQ = 1 TO 10

            130 X(KKQQ) = A(KKQQ)
        131 NEXT KKQQ
        133 FOR IPP = 1 TO (1 + FIX(RND * 4))




            181 J = 1 + FIX(RND * 10)


            183 R = (1 - RND * 2) * A(J)
            187 X(J) = A(J) + (RND ^ (RND * 10)) * R
        191 NEXT IPP

        201 X(11) = 14000 - 600 * 50000 / (X(5) * X(10) ^ 2)

        202 X(12) = 14000 - 1200 * 50000 / (X(4) * X(9) ^ 2)
        203 X(13) = 14000 - 1800 * 50000 / (X(3) * X(8) ^ 2)
        204 X(14) = 14000 - 2400 * 50000 / (X(2) * X(7) ^ 2)
        205 X(15) = 14000 - 3000 * 50000 / (X(1) * X(6) ^ 2)
        206 X(16) = 2.7 - (50000 * 1000000 / 6E+07) * (((12 * (1) / (X(5) * X(10) ^ 3)) + (12 * (7) / (X(4) * X(9) ^ 3)) + 12 * (19) / (X(3) * X(8) ^ 3)) + (12 * (37) / (X(2) * X(7) ^ 3)) + (12 * (61) / (X(1) * X(6) ^ 3)))




        207 X(17) = 20 - X(10) / X(5)


        208 X(18) = 20 - X(9) / X(4)
        209 X(19) = 20 - X(8) / X(3)
        210 X(20) = 20 - X(7) / X(2)
        211 X(21) = 20 - X(6) / X(1)

        221 FOR J44 = 1 TO 5
            231 IF X(J44) < 1 THEN 1670
            233 IF X(J44) > 5 THEN 1670

        244 NEXT J44


        246 FOR J44 = 6 TO 10
            247 IF X(J44) < 30 THEN 1670
            248 IF X(J44) > 65 THEN 1670

        249 NEXT J44



        268 FOR J99 = 11 TO 21

            269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0

        270 NEXT J99
        318 POBAprel1 = -(X(1) * X(6) * 100 + X(2) * X(7) * 100 + X(3) * X(8) * 100 + X(4) * X(9) * 100 + X(5) * X(10) * 100)


        319 POBAprel2 = 1000000 * X(11) + 1000000 * X(12) + 1000000 * X(13) + 1000000 * X(14) + 1000000 * X(15) + 1000000 * X(16) + 1000000 * X(17) + 1000000 * X(18) + 1000000 * X(19) + 1000000 * X(20) + 1000000 * X(21)



        328 POBA = POBAprel1 + POBAprel2



        466 P = POBA

        1111 IF P <= M THEN 1670


        1452 M = P
        1454 FOR KLX = 1 TO 21

            1455 A(KLX) = X(KLX)
        1456 NEXT KLX
        1557 GOTO 128

    1670 NEXT I
    1889 IF M < -61914.85 THEN 1999


    1900 PRINT A(1), A(2), A(3), A(4)

    1901 PRINT A(5), A(6), A(7), A(8)

    1902 PRINT A(9), A(10), A(11), A(12)

    1903 PRINT A(13), A(14), A(15), A(16)

    1904 PRINT A(17), A(18), A(19), A(20)


    1909 PRINT A(21), M, JJJJ

1999 NEXT JJJJ


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

2.992043018707838         2.7775729190822             2.523590842355113
2.204564851351432  
1.749757371755625          59.840841901209           55.55125445247642
50.4716805348091
44..09102223302651         34.99513664058446           0
0
0      0      0      0
0      0      0      0            
0                                  -61914.84202158146         -31999.97000000001

2.992042705033575          2.777578223956335           2.523586391280642
2.204566061683266  
1.749757151583712          59.84084503795081           55.55120140400578
50.47172504549244
44..0910101297886           34.9951388423031           0
0
0      0      0      0
0      0      0      0
0                                  -61914.84686799372         -31999.73000000004

2.992045845104811        2.77756815102281             2.523589481268903
2.204556907724794  
1.74976482689434          59.84081363726791           55.55130213295667
50.47169414563992
44..0911016690125         34.99506208945851           0
0
0      0      0      0
0      0      0      0
0                                   -61914.82933239185         -31999.55000000007

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

The solution above at JJJJ=-31999.55000000007 can be compared to the three solutions presented in Table 10 of Nigdeli, Bekdas, and Yang [10, p. 40].    .

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

Acknowledgment

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

References

[1]  Yuichiro Anzai (1974).  On Integer Fractional Programming.  Journal Operations Research Society of Japan, Volume 17, No. 1, March 1974, pp. 49-66.
www..orsj.or.jp/~archiv/pdf/e_mag/Vol.17_01_049.pdf.

[2]  Sjirk Boon. Solving systems of nonlinear equations. Sci. Math. Num-Analysis,1992, Newsgroup Article 3529.     .

[3]  H. Chickermane, H. C. Gea (1996)  Structural optimization using a new local approximation method, International Journal for Numerical Methods in Engineering, 39, pp. 829-846.

[4]  Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013).  Cuckoo search algorithm:  a metaheuristicapproach to solve structural optimization problem.  Engineering with Computers (2013) 29:17-35.

[5]  Han-Lin Li, Jung-Fa Tsai (2008).  A distributed computational algorithm for solving portfolio problems with integer variables.  European Journal of Operational Research 186 (2008) pp.882-891.

[6]  Ming-Hua Lin, Jung-Fa Tsai (2014).  A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization  (2014) 46:7, pp. 863-879.

[7]  Harry Markowitz  (1952).   Portfolio Selection.   The Journal of Finance  7 (2008) pp. 77-91.

[8]  Mathworks. Solving a mixed integer engineering design problem using the genetic algorithm - MATLAB & Simulink Example.
https://www.mathworks.com/help/gads/examples/solving-a-mixed-integer-engineering-design-problem-using-the-genetic-algorithm.html/

[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]  Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algoritm in Structural Engineering. Springer International Publishing Switzerland 2016.  www.springer.com/cda/content/document/cda.../

[11]  H. S. Ryoo, N. V. Sahinidis (1995).  Global optimization of nonconvex NLP and MINLP with applications in process design. Computers and Chemical Engineering Vol. 19 (5) (1995) pp. 551-566.

[12]  P. B. Thanedar, G. N. Vanderplaats (1995).  Survey of discrete variable optimization for structural design,  Journal of Structural Engineering, 121 (2), 301-306 (1995).

[13]  Jung-Fa Tsai (2005).  Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization  (2005) 37:4, pp. 399-409.

[14]  Jung-Fa Tsai, Ming-Hua Lin (2007).  Finding all solutions of systems of nonlinear equations with free variables.  Engineering Optimization  (2007) 39:6, pp. 649-659

[15]  Jung-Fa Tsai, Ming-Hua Lin, Yi-Chung Hu (2007).  On generalized geometric programming problems with non-positive variables.  European Journal of Operational Research 178 (2007) pp. 10-19.

[16]  Jung-Fa Tsai, Ming-Hua Lin (2008).  Global optimization of signomial mixed-integer nonlinear programming with free variables.  Journal of Global Optimization  (2008) 42  pp. 39-49.

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

[18] Jsun Yui Wong (2012, April 12).  The Domino Method of General Integer Nonlinear Programming Applied to a Nonlinear Fractional Programming Problem from the Literature. http://myblogsubstance.typepad.com/substance/2012/04/12/

[19] Xin-She Yang, Christian Huyck, Mehmet Karamanoglu, Nawaz Khan (2014).  True global optimality of the pressure vessel design problem:  A benchmark for bio-inspired optimisation algorithms.
https://arxiv.org/pdf/1403.7793.pdf.

No comments:

Post a Comment