Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Error in Browser, But Not in "Problems" Tab

    Posted 06/16/10 12:25 PM

    Originally posted by: UDOPS


    When viewing a dexpr value in the browser, I saw the big messy error below instead of the dexpr values, but I saw no errors in the Problems tab. Is this error slipping past the regular error checking?

    ilog.concert.IloException:
    Out of Scope Index i out of scope in <r, i, j, ti, tj, d> in IloTupleSetSubMapRootI TupleSets<i, t>

    at ilog.opl.opl_lang_wrapJNI.IloOplElement_cpp_asNumMap(Native Method)

    at ilog.opl.IloOplElement.cpp_asNumMap(IloOplElement.java:300)

    at ilog.opl.IloOplElement.asNumMap(IloOplElement.java:163)

    at ilog.opl.IloOplElement.asMap(IloOplElement.java:76)

    at ilog.odms.ide.core.bridge.collocated.IloCollocatedMapBridge.asIloMap(Unknown Source)

    at ilog.odms.ide.core.bridge.collocated.IloCollocatedMapBridge.getTotalSize(Unknown Source)

    at ilog.odms.ide.ui.editors.elements.IloElementInfoGetterArray.getRows(Unknown Source)

    at ilog.odms.ide.ui.editors.elements.IloElementInfoGetterArray.createContents(Unknown Source)

    at ilog.odms.ide.ui.editors.elements.IloElementEditor.createContents(Unknown Source)

    at ilog.odms.ide.ui.editors.elements.IloElementEditor.createPartControl(Unknown Source)

    at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:661)

    at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:428)

    at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:594)

    at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:266)

    at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2820)

    at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2729)

    at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2721)

    at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2673)

    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)

    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2668)

    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2652)

    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2635)

    at ilog.odms.ide.ui.views.problembrowser.IloProblemBrowserView.openDataView(Unknown Source)

    at ilog.odms.ide.ui.views.problembrowser.IloProblemBrowserView$1$1.widgetSelected(Unknown Source)

    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)

    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)

    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)

    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3823)

    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3422)

    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382)

    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)

    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198)

    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)

    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)

    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)

    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)

    at ilog.odms.ide.rcp.IloApplication.start(Unknown Source)

    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)

    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)

    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)

    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)

    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:618)

    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)

    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)

    at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 2.  Re: Error in Browser, But Not in "Problems" Tab

    Posted 06/16/10 12:38 PM

    Originally posted by: UDOPS


    Further stumped. These are all my variable declarations. The first dexpr "Primal" works just fine, and displays a value in the browser. The others all display the same "out of scope" error. For example, the simplest one "BlockSlack" I see no current cause for the error, unless my syntax is fundamentally wrong.

    dvar boolean DispatchPaths;
    dvar boolean TurnaroundLayover;
    dexpr float Primal=sum(r in Trains) (
    sum(<r,TrainData[r].origin,j,ti,tj,d> in Paths) (TrainData[r].utility+(1-Problem[1].delayzero)*TrainData[r].delay_bonus*(ti-TrainData[r].early_start))
    *Dispatch[<r,TrainDatahttp://r].origin,j,ti,tj,d> //origin arc
    + sum(<r,i,-1,ti,tj,d> in Paths) (1-Problem[1].bonuszero)*TrainData[r].arrival_bonus*(TrainData[r].late_end-tj)*Dispatch<r,i,-1,ti,tj,d> //destination arc
    - sum(<r,i,i,ti,tj,d> in Paths) (1-Problem[1].stopzero)*TrainData[r].stop_cost*(tj-ti)*Dispatch<r,i,i,ti,tj,d> //idle arcs, scaled for variable stop size
    - sum(<r,r2,tj,tii> in Layover) (1-Problem[1].layoverzero)*TrainData[r].layover_cost*(tii-tj)*Turnaround<r,r2,tj,tii> //layover linkage
    ); //end of primal objective
    dexpr float BlockSlack<i,t> in BlockOccupied=sum(<r,i,j,ti,tj,d> in BlockTransit<i,t>) Dispatch<r,i,j,ti,tj,d> - BlockData[i].capacity;
    dexpr float CellSlack<a,t> in CellOccupied=
    sum(<r,i,j,ti,tj,1> in CellTransit<a,t>) Dispatch<r,i,j,ti,tj,1> +
    sum(<r,i,j,ti,tj,-1> in CellTransit<a,t>) Dispatch<r,i,j,ti,tj,-1> +
    ((Problem[1].idletransition==1) ? sum(<r,i,i,ti,tj,d> in CellTransit<a,t>) Dispatch<r,i,i,ti,tj,d>: 0)-CellCap<a,t>;
    dexpr float NBSlack<i,t> in NBOccupied=
    sum(<r,eye,j,ti,tj,1> in BlockTransit<i,t>)Dispatch<r,eye,j,ti,tj,1>+
    sum(<r,a,b,c,d,1> in BlockPending1<i,t>) Dispatch<r,a,b,c,d,1> +
    sum(<r,e,f,g,h,1> in BlockPending2<i,t>) Dispatch<r,e,f,g,h,1>
    -BlockData[i].capacity;
    dexpr float SBSlack<i,t> in SBOccupied=
    sum(<r,eye,j,ti,tj,-1> in BlockTransit<i,t>)Dispatch<r,eye,j,ti,tj,-1>+
    sum(<r,a,b,c,d,-1> in BlockPending1<i,t>) Dispatch<r,a,b,c,d,-1> +
    sum(<r,e,f,g,h,-1> in BlockPending2<i,t>) Dispatch<r,e,f,g,h,-1>
    -BlockData[i].capacity;
    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 3.  Re: Error in Browser, But Not in "Problems" Tab

    Posted 06/16/10 12:39 PM

    Originally posted by: UDOPS


    Note cut and paste from OPL editor keeps deleting my brackets [].
    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 4.  Re: Error in Browser, But Not in "Problems" Tab

    Posted 06/16/10 04:44 PM

    Originally posted by: UDOPS


    I am attaching a model file and a data file generated by the export external data command, and it should be enough to run. I tried these two files in a configuration on my machine first.

    This model will generate the errors I describe above.
    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 5.  Re: Error in Browser, But Not in "Problems" Tab

    Posted 06/17/10 03:31 AM

    Originally posted by: SystemAdmin


    Answer to your first question:

    place {code} around your code-snippet ...
    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 6.  Re: Error in Browser, But Not in "Problems" Tab

    Posted 06/17/10 10:10 AM

    Originally posted by: UDOPS


    I am sorry, I do not understand what you are asking me to do, placing curly brackets {} around something?
    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 7.  Re: Error in Browser, But Not in "Problems" Tab

    Posted 06/17/10 10:18 AM

    Originally posted by: SystemAdmin


    Sorry - my comment was posted in too much of a hurry ...

    In case you write

    {code}
    a[i] = b[j]
    {code}

    it will lead to
    a[i] = b[j]
    


    brackets, etc. will be preserved ...

    Thus, put {code} arround the complete part of code you post.
    Code snippets will be much more readable.

    Regards
    Norbert
    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 8.  Re: Error in Browser, But Not in "Problems" Tab

    Posted 06/17/10 11:03 AM

    Originally posted by: UDOPS


    here you go:

    
    dvar 
    
    boolean Dispatch[Paths]; dvar 
    
    boolean Turnaround[Layover]; dexpr 
    
    float Primal=sum(r in Trains) ( sum(<r,TrainData[r].origin,j,ti,tj,d> in Paths) (TrainData[r].utility+(1-Problem[1].delayzero)*TrainData[r].delay_bonus*(ti-TrainData[r].early_start)) *Dispatch[<r,TrainData[r].origin,j,ti,tj,d>] 
    //origin arc + sum(<r,i,-1,ti,tj,d> in Paths) (1-Problem[1].bonuszero)*TrainData[r].arrival_bonus*(TrainData[r].late_end-tj)*Dispatch[<r,i,-1,ti,tj,d>] 
    //destination arc - sum(<r,i,i,ti,tj,d> in Paths) (1-Problem[1].stopzero)*TrainData[r].stop_cost*(tj-ti)*Dispatch[<r,i,i,ti,tj,d>] 
    //idle arcs, scaled for variable stop size - sum(<r,r2,tj,tii> in Layover) (1-Problem[1].layoverzero)*TrainData[r].layover_cost*(tii-tj)*Turnaround[<r,r2,tj,tii>]  
    //layover linkage ); 
    //end of primal objective dexpr 
    
    float BlockSlack[<i,t> in BlockOccupied]=sum(<r,i,j,ti,tj,d> in BlockTransit[<i,t>]) Dispatch[<r,i,j,ti,tj,d>] - BlockData[i].capacity; dexpr 
    
    float CellSlack[<a,t> in CellOccupied]= sum(<r,i,j,ti,tj,1> in CellTransit[<a,t>]) Dispatch[<r,i,j,ti,tj,1>] + sum(<r,i,j,ti,tj,-1> in CellTransit[<a,t>]) Dispatch[<r,i,j,ti,tj,-1>] + ((Problem[1].idletransition==1) ? sum(<r,i,i,ti,tj,d> in CellTransit[<a,t>]) Dispatch[<r,i,i,ti,tj,d>]: 0)-CellCap[<a,t>]; dexpr 
    
    float NBSlack[<i,t> in NBOccupied]= sum(<r,eye,j,ti,tj,1> in BlockTransit[<i,t>])Dispatch[<r,eye,j,ti,tj,1>]+ sum(<r,a,b,c,d,1> in BlockPending1[<i,t>]) Dispatch[<r,a,b,c,d,1>] + sum(<r,e,f,g,h,1> in BlockPending2[<i,t>]) Dispatch[<r,e,f,g,h,1>] -BlockData[i].capacity; dexpr 
    
    float SBSlack[<i,t> in SBOccupied]= sum(<r,eye,j,ti,tj,-1> in BlockTransit[<i,t>])Dispatch[<r,eye,j,ti,tj,-1>]+ sum(<r,a,b,c,d,-1> in BlockPending1[<i,t>]) Dispatch[<r,a,b,c,d,-1>] + sum(<r,e,f,g,h,-1> in BlockPending2[<i,t>]) Dispatch[<r,e,f,g,h,-1>] -BlockData[i].capacity;
    

    #DecisionOptimization
    #OPLusingCPLEXOptimizer