Topic
2 replies Latest Post - ‏2013-03-22T01:11:20Z by SystemAdmin
SystemAdmin
SystemAdmin
386 Posts
ACCEPTED ANSWER

Pinned topic Help!! I cannot figure out where the problem is...

‏2013-01-29T00:36:24Z |
Hello everyone!

Please someone help explain why when I try to generate vertices for more than one floor, I get vertices for one floor and (0,0)vertices for other floors. the aim of this program is to generate vertices for a building with minimized building envelope(i.e the area of the whole building). Attached is the source code created in IBM ILOG CPLEX Optimisation Studio version 12.4

Any help rendered will be highly appreciated.
Thank you.
Updated on 2013-03-22T01:11:20Z at 2013-03-22T01:11:20Z by SystemAdmin
  • rdumeur
    rdumeur
    10 Posts
    ACCEPTED ANSWER

    Re: Help!! I cannot figure out where the problem is...

    ‏2013-03-01T18:13:28Z  in response to SystemAdmin
    Hi,

    First, my apologies for getting back to you so lately, and I hope you have solved your problem independently.
    I've been running your model with COS12.5 and tried your model with TimeLimit=120 to see what kind of solution you get:

    
    250.7454098705181 1 0 0 0 0 0 0 0 0 250.7454098705181 2 7 13 4 0 0 0 0 0 193.1655047636558 1 0 0 0 0 0 0 0 0 193.1655047636558 2 0 0 4 7 9 3 0 0 191.4177897940998 1 0 0 0 0 0 0 0 0 191.4177897940998 2 0 0 4 8 7 1 0 0 189.8425598373151 1 0 0 0 0 0 0 0 0 189.8425598373151 2 2 0 1 0 3 6 10 4 179.5644436179416 1 0 0 0 0 0 0 0 0 179.5644436179416 2 2 0 10 3 4 6 2 4 168.5311006424702 1 0 0 0 0 0 0 0 0 168.5311006424702 2 5 0 2 3 4 6 10 4 166.4180795051958 1 0 0 0 0 0 0 0 0 166.4180795051958 2 5 0 2 3 4 7 9 4 165.1535019386117 1 0 0 0 0 0 0 0 0 165.1535019386117 2 5 0 2 4 4 7 9 4 163.7964645562817 1 0 0 0 0 0 0 0 0 163.7964645562817 2 5 0 2 4 5 7 9 4
    

    which is normal you don't have set per floor area constraint, so it is normal that some floor may have null area. Your constraint is on the sum of areas. So your model should probably state:
    
    forall(f in Floor) 
    { Area3[f] >= 49 ; Area3[f] <= 70; 
    }
    

    instead of :
    
    Area >= 49 && Area <= 70;
    

    which only constrains the global area. And you need also to replace:
    
    dexpr 
    
    float Area1[f in Floor] = ((sum(f in Floor, i in aPoints)((x[f][i-1]*y[f][i])-(x[f][i]*y[f][i-1])))); dexpr 
    
    float Area2[f in Floor] = ((sum(f in Floor)((x[f][numPoints]*y[f][1])-(x[f][1]*y[f][numPoints]))));
    

    where expressions won't actually uses the index of the floor since 'f' is redefined in the sum, with:
    
    dexpr 
    
    float Area1[f in Floor] = ((sum(i in aPoints)((x[f][i-1]*y[f][i])-(x[f][i]*y[f][i-1])))); dexpr 
    
    float Area2[f in Floor] = ((x[f][numPoints]*y[f][1])-(x[f][1]*y[f][numPoints]));
    


    I hope this helps, and sorry again for the late answer.

    Cheers,
    • SystemAdmin
      SystemAdmin
      386 Posts
      ACCEPTED ANSWER

      Re: Help!! I cannot figure out where the problem is...

      ‏2013-03-22T01:11:20Z  in response to rdumeur
      Oh my God!! Thank you very much.....It works perfectly. No worries about the late reply, I am so happy to get the solution...WOW!!! :)