VB.NET (Windows only)
|
|
|
| Type: | Programming |
| Rating: | 3 (intermediate) |
| Description: | ExSet.vb: Using sets in Mosel (requires burglari.mos)
|
| File(s): | ExSet.vb, ExAs.vb, ExProb.vb, ExLib.vb, DispMod.vb, DispDso.vb, ExDrvsCallback.vb, ExDrvsRaw.vb, ExDrvsStream.vb, OptimizerLog.vb, frmMain.vb, frmMain.resx, Mosel-VB.NET.vbproj |
| Data file(s): | burglari.mos, trans.mos, blend2.mos, chess2.mos |
|
|
|
| ExSet.vb |
Imports System.IO
Imports Mosel
' Example of accessing sets in Mosel
Module ExSet
Public Sub RunExSet(ByVal Log As TextWriter)
Dim mosel As XPRM
Dim model As XPRMModel
Dim mySet As XPRMSet
Dim first, last, i As Integer
' Initialise Mosel
mosel = XPRM.Init
' Set Mosel work directory to folder containing our example source code
mosel.WorkDir = Directory.GetParent(System.Reflection.Assembly.GetExecutingAssembly.Location).FullName
' Compile and load model
model = mosel.CompileAndLoad("Models/burglari.mos")
' And run it
model.Run()
' Get the model object named 'ITEMS'
' (it must be a set)
mySet = model.FindIdentifier("ITEMS")
If (Not mySet.IsEmpty) Then
' Items in a set are indexed by numbers
' So get the first and last indexes
first = mySet.FirstIndex
last = mySet.LastIndex
Log.WriteLine("Elements of set ITEMS:")
For i = first To last
Log.Write(" {0}, ", mySet.GetAsString(i))
Next
Log.WriteLine()
' We've written this out explicitly to demonstrate set access, but the
' set actually knows how to output itself. Uncomment the following line
' to see this in action
' Log.WriteLine(mySet.ToString)
If (mySet.GetIndex("CD player") < 0) Then
Log.WriteLine("'CD player' is not contained in 'ITEMS'")
End If
End If
End Sub
End Module
|
| ExAs.vb |
Imports System.IO
Imports Mosel
' Example of using arrays with index sets; different ways of enumerating arrays
Module ExAs
Public Sub RunExAs(ByVal Log As TextWriter)
Dim mosel As XPRM
Dim model As XPRMModel
Dim varr As XPRMArray
Dim sets() As XPRMSet
Dim vindex() As XPRMValue
Dim indices() As Integer
Dim dimensions As Integer
Dim i As Integer
' Initialise Mosel
mosel = XPRM.Init
' Set Mosel work directory to folder containing our example source code
mosel.WorkDir = Directory.GetParent(System.Reflection.Assembly.GetExecutingAssembly.Location).FullName
' Compile and load a MOS file
model = mosel.CompileAndLoad("Models/trans.mos")
' Run the model
model.Run()
' Get the model object named 'x'
' It must be an array
varr = model.FindIdentifier("x")
' Get the number of dimensions of the array
dimensions = varr.Dim
' Get the indexing sets
sets = varr.IndexSets
' We could use varr.ToString to obtain a summary of the array contents,
' but instead we'll demonstrate how to interate over the array's content
' directly
Log.WriteLine("1. Logic entries:")
' Get the first entry of varr
For Each indices In varr.Indices
Log.Write("x(")
' Get the values for this index
vindex = varr.DereferenceIndex(indices)
' Now, output them. Note that we could call the utility method
' varr.IndexToString(indices) instead of doing all this, but again
' this wouldn't be such a useful demonstration
If (dimensions > 1) Then
For i = 0 To dimensions - 2
Log.Write(vindex(i).AsString & ",")
Next
End If
Log.Write(vindex(dimensions - 1).AsString & "), ")
Next
Log.WriteLine()
' Now enumerate over the true entries - in a dense array this would
' be no different from the previous demonstration, so only do it for
' a dynamic array
If (varr.IsDynamic) Then
Log.WriteLine("2. True entries:")
For Each indices In varr.TEIndices
' Functionally the same as above, but this time we'll demonstrate
' using IndexToStringrasExAs
Log.Write("x" & varr.IndexToString(indices) & ", ")
Next
End If
Log.WriteLine()
model.Reset()
End Sub
End Module
|
| ExProb.vb |
Imports System.IO
Imports Mosel
' Example of accessing problems and solution information
Module ExProb
Public Sub RunExProb(ByVal Log As TextWriter)
Dim mosel As XPRM
Dim model As XPRMModel
Dim varr, darr As XPRMArray
Dim lgrade As XPRMLinCtr
' Initialise Mosel
mosel = XPRM.Init
' Set Mosel work directory to folder containing our example source code
mosel.WorkDir = Directory.GetParent(System.Reflection.Assembly.GetExecutingAssembly.Location).FullName
' Compile and load model
model = mosel.CompileAndLoad("Models/blend2.mos")
' Run the model (it includes optimization)
model.Run()
' Export the problem to a file in LP format (maximization)
model.ExportProblem("p", "blend")
' Test whether optimal is found
If (model.ProblemStatus = XPRMProblemStatus.PB_OPTIMAL) Then
Log.WriteLine("Solution is optimal.")
End If
' Print out the objective function value
Log.WriteLine("Objective value: {0}", model.ObjectiveValue)
' Get the model objects 'x' and 'COST' (both arrays)
varr = model.FindIdentifier("x")
darr = model.FindIdentifier("COST")
' For each entry in array var, display solution value and corresponding
' cost
Dim indices() As Integer
For Each indices In varr.Indices
Log.WriteLine( _
"x{0}={1} (COST: {2})", _
varr.IndexToString(indices), _
varr.Get(indices).AsMPVar.Solution, _
darr.GetAsReal(indices) _
)
Next
' Get the model object 'LoGrade'
' It must be a reference to a linear constraint
lgrade = CType(model.FindIdentifier("LoGrade"), XPRMReference).Value.AsLinCtr
Log.WriteLine( _
"LoGrade: activity={0}, dual={1}", _
lgrade.Activity, _
lgrade.Dual _
)
model.Reset()
End Sub
End Module
|
| ExLib.vb |
Imports System.IO
Imports Mosel
' Example of working with models and accessing Mosel dynamic libraries
Module ExLib
Public Sub RunExLib(ByVal Log As TextWriter)
Dim mosel As XPRM
Dim models(2) As XPRMModel
' Initialise Mosel
mosel = XPRM.Init
' Set Mosel work directory to folder containing our example source code
mosel.WorkDir = Directory.GetParent(System.Reflection.Assembly.GetExecutingAssembly.Location).FullName
' Compile and Load the BIM files
models(0) = mosel.CompileAndLoad("Models/burglari.mos")
models(1) = mosel.CompileAndLoad("Models/chess2.mos")
models(2) = mosel.CompileAndLoad("Models/trans.mos")
Log.WriteLine("Models loaded")
' Display basic information about the models
Dim model As XPRMModel
For Each model In models
Log.WriteLine(" {0}: {1} ({2}, '{3}' size:{4})", _
model.Number, model.Name, model.SysComment, _
model.UserComment, model.Size)
Next
Log.WriteLine()
' Enumerate all loaded modules and display information
Log.WriteLine("Additional libraries loaded:")
Dim mo As XPRMModule
For Each mo In mosel.Modules
Log.WriteLine( _
" {0} (version {1}) used by {2} model(s)", _
mo.Name, mo.Version, mo.NumberOfReferences)
Next
End Sub
End Module
|
| DispMod.vb |
Imports System.IO
Imports Mosel
' Displays the contents of a model
Module DispMod
Public Sub RunDispMod(ByVal ModName As String, ByVal Log As TextWriter)
Dim mosel As XPRM
Dim model As XPRMModel
Dim proc As XPRMProcedure
' Initialize Mosel and load the model
mosel = XPRM.Init
' Set Mosel work directory to folder containing our example source code
mosel.WorkDir = Directory.GetParent(System.Reflection.Assembly.GetExecutingAssembly.Location).FullName
Log.WriteLine("Compiling model {0}", ModName)
model = mosel.CompileAndLoad(ModName)
Log.WriteLine()
' List model parameters
Dim p As XPRMParameter
Log.WriteLine("Model parameters:")
For Each p In model.Parameters
Log.WriteLine(" {0}", p.Name)
Next
Log.WriteLine()
' List symbols
Log.WriteLine("Symbols:")
Dim symb As XPRMIdentifier
For Each symb In model.Identifiers
Select Case symb.StructCode
Case XPRMVarStruct.CONST ' Constant: display value
Log.WriteLine(" {0}={1}", symb.Name, symb)
Case XPRMVarStruct.REF ' Reference: display type
Log.WriteLine(" {0}: {1}", symb.Name, symb.TypeName)
Case XPRMVarStruct.ARRAY ' Array: display type
Log.WriteLine(" {0}: array of {1}", symb.Name, symb.TypeName)
Case XPRMVarStruct.SET ' Set: display type
Log.WriteLine(" {0}: set of {1}", symb.Name, symb.TypeName)
Case XPRMVarStruct.PROC ' Subroutine
proc = CType(symb, XPRMProcedure)
Do ' look for all overloading procedures/functions
dispProcFct(proc, Log) ' display the prototype
proc = proc.Next
Loop While (Not proc Is Nothing)
Case Else ' Unknown
Log.WriteLine(" {0}: ?", symb.Name)
End Select
Next
End Sub
' Display a prototype from a signature
Private Function dispProcFct(ByVal proc As XPRMProcedure, ByVal log As TextWriter)
Dim parms() As Char
Dim i As Integer
If (proc.TypeCode <> XPRMVarType.NOT) Then
Log.Write(" function {0}", proc.Name)
Else
Log.Write(" procedure {0}", proc.Name)
End If
If (proc.NbParameters > 0) Then
Log.Write("(")
parms = proc.ParameterTypes.ToCharArray
i = 0
Do While (i < parms.Length)
If (i > 0) Then
Log.Write(",")
End If
i = dispType(i, parms, Log) + 1
Loop
Log.Write(")")
End If
If (proc.TypeCode <> XPRMVarType.NOT) Then
Log.Write(":{0}", proc.TypeName)
End If
Log.WriteLine()
End Function
' Display a type name from a signature
Private Function dispType(ByVal i As Integer, ByVal parms As Char(), ByVal log As TextWriter)
Dim j As Integer
Select Case parms(i)
Case "i"
log.Write("integer")
Case "r"
log.Write("real")
Case "s"
log.Write("string")
Case "b"
log.Write("boolean")
Case "v"
log.Write("mpvar")
Case "c"
log.Write("linctr")
Case "I"
log.Write("range")
Case "a"
log.Write("array")
Case "e"
log.Write("set")
Case "|"
i = i + 1
Do
log.Write(parms(i))
i = i + 1
Loop While (parms(i) <> "|")
Case "!"
i = i + 1
Do
log.Write(parms(i))
i = i + 1
Loop While (parms(i) <> "!")
Case "A"
log.Write("array (")
i = i + 1
j = i
Do While (parms(i) <> ".")
If (j <> i) Then
log.Write(",")
End If
i = dispType(i, parms, log) + 1
Loop
log.Write(") of ")
i = dispType(i + 1, parms, log)
Case "E"
log.Write("set of ")
i = i + 1
i = dispType(i, parms, log)
Case Else
log.Write("?")
End Select
Return i
End Function
End Module
|
| DispDso.vb |
Imports System.IO
Imports Mosel
' Displays information about a Mosel DSO module
Module DispDso
Public Sub RunDispDso(ByVal ModName As String, ByVal log As TextWriter)
log.WriteLine("Will interrogate module '{0}'", ModName)
Dim mosel As XPRM
Dim ourModule As XPRMModule
' Initialise Mosel
mosel = XPRM.Init
' Load the module
ourModule = mosel.LoadModule(ModName)
' Output basic information about the module
log.WriteLine("Module '{0}', version {1}", ourModule.Name, ourModule.Version)
If ((Not ourModule.Certificate Is Nothing) And (ourModule.Certificate.Length > 0)) Then
log.WriteLine(" ({0})", ourModule.Certificate)
Else
log.WriteLine("")
End If
log.WriteLine()
' Output a list of types defined within the module
log.WriteLine("Types:")
Dim nt As XPRMNativeType
For Each nt In ourModule.Types
log.WriteLine(" {0} (", nt.Name)
If (nt.HasCreate) Then
log.Write("create")
End If
If (nt.HasDelete) Then
log.Write(",delete")
End If
If (nt.HasToString) Then
log.Write(",tostring")
End If
If (nt.HasPRTBL) Then
log.Write("+")
End If
If (nt.HasFromString) Then
log.Write(",fromstring")
End If
log.WriteLine()
Next
log.WriteLine()
' List of control parameters
log.WriteLine("Control Parameters:")
Dim p As XPRMParameter
For Each p In ourModule.Parameters
log.Write(" {0}: {1} (", p.Name, p.TypeName)
If (Not p.Description Is Nothing And p.Description.Length > 0) Then
log.Write("{0},", p.Description)
End If
log.WriteLine(rwstatus(p) + ")")
Next
log.WriteLine()
' List of subroutines
log.WriteLine("Procedures and Functions:")
Dim proc As XPRMProcedure
For Each proc In ourModule.Procedures
dispProcFct(proc, log)
Next
log.WriteLine()
' List of IO drivers
log.WriteLine("I/O drivers:")
Dim iod As XPRMIODriver
For Each iod In ourModule.IODrivers
log.WriteLine(" {0}:{1}", iod.Name, IIf(Not iod.Info Is Nothing, iod.Info, ""))
Next
End Sub
' Return the r/w status of a control parameter
Private Function rwstatus(ByVal p As XPRMParameter) As String
If (p.IsReadable) Then
If (p.IsWriteable) Then
Return "r/w"
Else
Return "r"
End If
Else
If (p.IsWriteable) Then
Return "w"
Else
Return "?"
End If
End If
End Function
' Display a prototype from a signature
Private Function dispProcFct(ByVal proc As XPRMProcedure, ByVal log As TextWriter)
Dim parms() As Char
Dim i As Integer
If (proc.TypeCode <> XPRMVarType.NOT) Then
log.Write(" function {0}", proc.Name)
Else
log.Write(" procedure {0}", proc.Name)
End If
If (proc.NbParameters > 0) Then
log.Write("(")
parms = proc.ParameterTypes.ToCharArray
i = 0
Do While (i < parms.Length)
If (i > 0) Then
log.Write(",")
End If
i = dispType(i, parms, log) + 1
Loop
log.Write(")")
End If
If (proc.TypeCode <> XPRMVarType.NOT) Then
log.Write(":{0}", proc.TypeName)
End If
log.WriteLine()
End Function
' Display a type name from a signature
Private Function dispType(ByVal i As Integer, ByVal parms As Char(), ByVal log As TextWriter)
Dim j As Integer
Select Case parms(i)
Case "i"
log.Write("integer")
Case "r"
log.Write("real")
Case "s"
log.Write("string")
Case "b"
log.Write("boolean")
Case "v"
log.Write("mpvar")
Case "c"
log.Write("linctr")
Case "I"
log.Write("range")
Case "a"
log.Write("array")
Case "e"
log.Write("set")
Case "|"
i = i + 1
Do
log.Write(parms(i))
i = i + 1
Loop While (parms(i) <> "|")
Case "!"
i = i + 1
Do
log.Write(parms(i))
i = i + 1
Loop While (parms(i) <> "!")
Case "A"
log.Write("array (")
i = i + 1
j = i
Do While (parms(i) <> ".")
If (j <> i) Then
log.Write(",")
End If
i = dispType(i, parms, log) + 1
Loop
log.Write(") of ")
i = dispType(i + 1, parms, log)
Case "E"
log.Write("set of ")
i = i + 1
i = dispType(i, parms, log)
Case Else
log.Write("?")
End Select
Return i
End Function
End Module
|
| ExDrvsCallback.vb |
'********************************************************
'* Mosel Library Examples *
'* ====================== *
'* *
'* file ExDrvsCallback.vb *
'* ``````````````````` *
'* Example for the use of the Mosel libraries *
'* (using dotnet: I/O driver for data exchange via *
'* callbacks *
'* *
'* (c) 2011 Fair Isaac Corporation *
'* author: J.Farmer, Y. Colombani, 2011 *
'********************************************************
Imports System
Imports System.IO
Imports Mosel
Module ExDrvsCallback
Private OutputLog As TextWriter
' Define the Mosel source of our model
Private source_of_model As String = _
"model tstcb" & vbCrLf & _
"uses 'mmsystem'" & vbCrLf & _
"parameters" & vbCrLf & _
" ICB_INITFROM=''" & vbCrLf & _
" ICB_INITTO=''" & vbCrLf & _
"end-parameters" & vbCrLf & _
_
"public declarations" & vbCrLf & _
" v_i:integer" & vbCrLf & _
" v_r:real" & vbCrLf & _
" v_s:string" & vbCrLf & _
" v_b:boolean" & vbCrLf & _
" v_d:date" & vbCrLf & _
_
" s_i:set of integer" & vbCrLf & _
" l_i:list of integer" & vbCrLf & _
_
" s_d:set of date" & vbCrLf & _
" l_d:list of date" & vbCrLf & _
_
" a_i:array(range) of integer" & vbCrLf & _
" Rx:range" & vbCrLf & _
" a_s:array(Rx) of string" & vbCrLf & _
" a_r:array(Rx) of real" & vbCrLf & _
_
" R=record" & vbCrLf & _
" public i:integer" & vbCrLf & _
" public s:set of integer" & vbCrLf & _
" end-record" & vbCrLf & _
" r:R" & vbCrLf & _
" a_R:array(range) of R" & vbCrLf & _
"end-declarations" & vbCrLf & _
_
"initialisations from ICB_INITFROM" & vbCrLf & _
" v_i" & vbCrLf & _
" v_r" & vbCrLf & _
" v_s" & vbCrLf & _
" v_b" & vbCrLf & _
" v_d" & vbCrLf & _
_
" s_i" & vbCrLf & _
" l_i" & vbCrLf & _
_
" s_d" & vbCrLf & _
" l_d" & vbCrLf & _
_
" a_i" & vbCrLf & _
" [a_s,a_r] as 'ax'" & vbCrLf & _
_
" r" & vbCrLf & _
" a_R" & vbCrLf & _
"end-initialisations" & vbCrLf & _
_
" writeln('v_i=',v_i)" & vbCrLf & _
" writeln('v_r=',v_r)" & vbCrLf & _
" writeln('v_s=',v_s)" & vbCrLf & _
" writeln('v_b=',v_b)" & vbCrLf & _
" writeln('v_d=',v_d)" & vbCrLf & _
" writeln('s_i=',s_i)" & vbCrLf & _
" writeln('l_i=',l_i)" & vbCrLf & _
" writeln('s_d=',s_d)" & vbCrLf & _
" writeln('l_d=',l_d)" & vbCrLf & _
" writeln('a_i=',a_i)" & vbCrLf & _
" writeln('a_r=',a_r)" & vbCrLf & _
" writeln('a_s=',a_s)" & vbCrLf & _
" writeln('r=',r)" & vbCrLf & _
" writeln('a_R=',a_R)" & vbCrLf & _
_
"initialisations to ICB_INITTO" & vbCrLf & _
" v_i" & vbCrLf & _
" v_r" & vbCrLf & _
" v_s" & vbCrLf & _
" v_b" & vbCrLf & _
" v_d" & vbCrLf & _
_
" s_i" & vbCrLf & _
" l_i" & vbCrLf & _
_
" s_d" & vbCrLf & _
" l_d" & vbCrLf & _
_
" a_i" & vbCrLf & _
_
" r" & vbCrLf & _
" a_R" & vbCrLf & _
"end-initialisations" & vbCrLf & _
"end-model"
' A function to initialize the Mosel data-structures via callback
Private Function initializeFrom(ByVal ictx As XPRMInitializeContext, ByVal label As String, ByVal type As XPRMTyped) As Boolean
Try
Select Case label
Case "v_i" ' v_i:999
ictx.Send(999)
Return True
Case "v_r" ' v_r:999.99
ictx.Send(999.99)
Return True
Case "v_b" ' v_b:false
ictx.Send(False)
Return True
Case "v_s" ' v_s:"tralala"
ictx.Send("tralala")
Return True
Case "v_d" ' v_d:"2012-12-12"
ictx.Send("2012-12-12")
Return True
Case "s_i", "l_i" ' s_d:[10 20 30 ... ]
ictx.Send(XPRMInitializeControl.OpenList)
For i As Integer = 1 To 10
ictx.Send(i * 10)
Next
ictx.Send(XPRMInitializeControl.CloseList)
Return True
Case "s_d", "l_d" ' s_d:["2001-01-11" "2002-02-21" ... ]
ictx.Send(XPRMInitializeControl.OpenList)
For i As Integer = 1 To 10
ictx.Send(String.Format("{0}-{1}-{2}", 2000 + i, i, i + 1))
Next
ictx.Send(XPRMInitializeControl.CloseList)
Return True
Case "a_i" ' // a_i:[ (1) 10 (2) 20 ... ]
ictx.Send(XPRMInitializeControl.OpenList)
For i As Integer = 1 To 10
ictx.Send(XPRMInitializeControl.OpenIndices)
ictx.Send(i)
ictx.Send(XPRMInitializeControl.CloseIndices)
ictx.Send(i * 10)
Next
ictx.Send(XPRMInitializeControl.CloseList)
Return True
Case "ax" ' ax:[ (1) [ "aa1" 1.23 ] (2) [ "aa2" 2.46 ] ... ]
ictx.Send(XPRMInitializeControl.OpenList)
For i As Integer = 1 To 10
ictx.Send(XPRMInitializeControl.OpenIndices)
ictx.Send(i)
ictx.Send(XPRMInitializeControl.CloseIndices)
ictx.Send(XPRMInitializeControl.OpenList)
ictx.Send(String.Format("aa{0}", i))
ictx.Send(CType(i * 1.23, Double))
ictx.Send(XPRMInitializeControl.CloseList)
Next
ictx.Send(XPRMInitializeControl.CloseList)
Return True
Case "r" ' r:[ 123 [ 10 20 30 ] ]
ictx.Send(XPRMInitializeControl.OpenList)
ictx.Send(123)
ictx.Send(XPRMInitializeControl.OpenList)
For i As Integer = 1 To 3
ictx.Send(i * 10)
Next
ictx.Send(XPRMInitializeControl.CloseList)
ictx.Send(XPRMInitializeControl.CloseList)
Return True
Case "a_R" ' a_R:[ (1) [10 [10 20 30] ] (1) [20 [20 40 60] ] ... ]
ictx.Send(XPRMInitializeControl.OpenList)
For i As Integer = 1 To 10
ictx.Send(XPRMInitializeControl.OpenIndices)
ictx.Send(i)
ictx.Send(XPRMInitializeControl.CloseIndices)
ictx.Send(XPRMInitializeControl.OpenList)
ictx.Send(i * 10)
ictx.Send(XPRMInitializeControl.OpenList)
For j As Integer = 1 To 3
ictx.Send(j * i * 10)
Next
ictx.Send(XPRMInitializeControl.CloseList)
ictx.Send(XPRMInitializeControl.CloseList)
Next
ictx.Send(XPRMInitializeControl.CloseList)
Return True
Case Else
OutputLog.WriteLine("Label '{0}' not found", label)
Return False
End Select
Catch e As Exception
OutputLog.WriteLine("Label '{0}' could not be initialized - {1}", label, e.Message)
Return False
End Try
End Function
' A method to retrieve data from Mosel
Private Function initializeTo(ByVal label As String, ByVal val As XPRMValue) As Boolean
OutputLog.WriteLine(".NET: {0} = {1}", label, val)
Return True
End Function
' Main function
Public Sub RunExDrvsCallback(ByVal Log As TextWriter)
' Initialize mosel
Dim mosel As XPRM = XPRM.Init
' Set default output stream to stdout
mosel.SetDefaultStream(XPRMStreamType.F_OUTPUT_LINEBUF, Log)
mosel.SetDefaultStream(XPRMStreamType.F_ERROR, Log)
OutputLog = Log
' Compile and load the model
Dim model As XPRMModel = mosel.CompileAndLoad(New StringReader(source_of_model))
' Set the execution parameters and bind the variables
model.SetExecParam("ICB_INITFROM", "dotnet:cbinitfrom")
model.SetExecParam("ICB_INITTO", "dotnet:cbinitto")
model.Bind("cbinitfrom", New XPRMInitializationFrom(AddressOf initializeFrom))
model.Bind("cbinitto", New XPRMInitializationTo(AddressOf initializeTo))
' Run the model
model.Run()
End Sub
End Module
|
| ExDrvsRaw.vb |
Imports System.IO
Imports Mosel
' Example for use of Mosel libraries (using 'dotnetstream' IOdriver for data exchange)
Module ExDrvsRaw
' Defines the Mosel source of our model
Private source_of_model As String = _
"model drivers" & vbCrLf & _
_
"parameters" & vbCrLf & _
" DATA=''" & vbCrLf & _
" SOL=''" & vbCrLf & _
"end-parameters" & vbCrLf & _
_
"public declarations" & vbCrLf & _
" S:set of string" & vbCrLf & _
" R:range" & vbCrLf & _
" data:array(S,R) of real" & vbCrLf & _
" sol:array(1..10) of real" & vbCrLf & _
"end-declarations" & vbCrLf & _
_
"initialisations from 'dotnetraw:'" & vbCrLf & _
" data as 'DATA(s,r,v)'" & vbCrLf & _
"end-initialisations" & vbCrLf & _
_
"writeln('set S=',S)" & vbCrLf & _
"writeln('range R=',R)" & vbCrLf & _
"writeln('array data=',data)" & vbCrLf & _
_
"forall(i in 1..10) sol(i):=i^2" & vbCrLf & _
_
"initialisations to 'dotnetraw:noindex'" & vbCrLf & _
" sol as 'SOL'" & vbCrLf & _
"end-initialisations" & vbCrLf & _
_
"end-model"
' Define a structure to store initial values for the array 'data'
Public Class ModelDataElement
Public s As String
Public r As Integer
Public v As Double
Public Sub New(ByVal s As String, ByVal r As Integer, ByVal v As Double)
Me.s = s
Me.r = r
Me.v = v
End Sub
End Class
Public Sub RunExDrvsRaw(ByVal Log As TextWriter)
' Initialize Mosel
Dim moselRT As XPRM = XPRM.Init
' Use a StringReader to compile and load the Mosel model directly from a .NET string
Log.WriteLine("Compiling from memory...")
Dim modelSourceReader As New StringReader(source_of_model)
Dim model As XPRMModel = moselRT.CompileAndLoad(modelSourceReader)
' Send the model's output directly to the log
model.SetDefaultStream(XPRMStreamType.F_OUTPUT_LINEBUF, Log)
' Create an array containing the initialization data
Dim ModelData(3) As ModelDataElement
ModelData(0) = New ModelDataElement("one", 2, 12.5)
ModelData(1) = New ModelDataElement("two", 1, 15)
ModelData(2) = New ModelDataElement("three", 16, 9)
ModelData(3) = New ModelDataElement("hundred", 2, 17)
' Bind this array to the name "DATA"
moselRT.Bind("DATA", ModelData)
' Create an array to receive solution data and bind it to the name 'SOL'
Dim Solution(9) As Double
moselRT.Bind("SOL", Solution)
' Run the model
model.Run()
' Print the solution
Log.WriteLine()
Log.WriteLine()
Log.Write("Solution values: ")
Dim i As Integer
For i = 0 To 9
Log.Write(" {0}", Solution(i))
Next
Log.WriteLine()
Log.WriteLine()
End Sub
End Module
|
| ExDrvsStream.vb |
Imports System.IO
Imports Mosel
' Example for use of Mosel libraries (using 'dotnetstream' IOdriver for data exchange)
Module ExDrvsStream
' Defines the Mosel source of our model
Private source_of_model As String = _
"model Blend" & vbCrLf & _
"uses ""mmxprs""" & vbCrLf & _
"public declarations" & vbCrLf & _
" ROres = 1..2" & vbCrLf & _
" REV = 125" & vbCrLf & _
" MINGRADE = 4" & vbCrLf & _
" MAXGRADE = 5" & vbCrLf & _
" COST: array(ROres) of real" & vbCrLf & _
" AVAIL: array(ROres) of real" & vbCrLf & _
" GRADE: array(ROres) of real" & vbCrLf & _
" x: array(ROres) of mpvar" & vbCrLf & _
"end-declarations" & vbCrLf & _
"" & vbCrLf & _
"initializations from 'dotnetstream:BlendIni'" & vbCrLf & _
" COST" & vbCrLf & _
" AVAIL" & vbCrLf & _
" GRADE" & vbCrLf & _
"end-initializations" & vbCrLf & _
vbCrLf & _
"Profit:= sum(o in ROres) (REV-COST(o))*x(o)" & vbCrLf & _
"LoGrade:= sum(o in ROres) (GRADE(o)-MINGRADE) * x(o) >= 0" & vbCrLf & _
"UpGrade:= sum(o in ROres) (MAXGRADE-GRADE(o)) * x(o) >= 0" & vbCrLf & _
"" & vbCrLf & _
"forall(o in ROres) x(o)<=AVAIL(o)" & vbCrLf & _
"" & vbCrLf & _
"maximize(Profit)" & vbCrLf & _
"writeln(""Objective:"", getobjval)" & vbCrLf & _
"end-model"
' Defines the initialisation data for our model
Dim init_data As String = _
"COST: [85 93]" & vbCrLf & _
"AVAIL: [60 45]" & vbCrLf & _
"GRADE: [2.1 6.3]" & vbCrLf
Public Sub RunExDrvsStream(ByVal Log As TextWriter)
' Initialize Mosel
Dim moselRT As XPRM = XPRM.Init
' Use a StringReader to compile and load the Mosel model directly from a .NET string
Log.WriteLine("Compiling from memory...")
Dim modelSourceReader As New StringReader(source_of_model)
Dim model As XPRMModel = moselRT.CompileAndLoad(modelSourceReader)
' Bind a stream to read the initialization data to the name 'BlendIni'
model.Bind("BlendIni", New StringReader(init_data))
' Send the model's output directly to the log
model.SetDefaultStream(XPRMStreamType.F_OUTPUT_LINEBUF, Log)
' And finally run the model
model.Run()
End Sub
End Module
|
| OptimizerLog.vb |
Imports System.IO
Imports System.Windows.Forms.TextBox
' Simple class that logs output in a TextBox field on a form
Public Class OptimizerLog
Inherits System.IO.StringWriter
Private Field As System.Windows.Forms.TextBox
Sub New(ByRef tb As System.Windows.Forms.TextBox)
MyBase.New()
Field = tb
Field.Text = ""
System.Windows.Forms.Application.DoEvents()
End Sub
Public Overloads Overrides Sub Flush()
MyBase.Flush()
Field.Text = Me.ToString
' We want to automatically scroll the textbox to show the last line.
' No easy way to scroll the textbox or set the caret position - so we have to
' select the last character, which will set the caret position, then scroll to
' that.
Field.SelectionStart = Field.Text.Length
Field.SelectionLength = 0
Field.ScrollToCaret()
System.Windows.Forms.Application.DoEvents()
End Sub
Public Overloads Overrides Sub WriteLine(ByVal val As String)
If (Field.Text.Length = Me.ToString.Length) Then
MyBase.WriteLine(val)
Field.AppendText(val)
Else
MyBase.WriteLine(val)
Field.Text = Me.ToString
End If
' We want to automatically scroll the textbox to show the last line.
' No easy way to scroll the textbox or set the caret position - so we have to
' select the last character, which will set the caret position, then scroll to
' that.
Field.SelectionStart = Field.Text.Length
Field.SelectionLength = 0
Field.ScrollToCaret()
System.Windows.Forms.Application.DoEvents()
End Sub
Public Overloads Overrides Sub WriteLine(ByVal fmt As String, ByVal ParamArray arg() As Object)
Me.WriteLine(String.Format(fmt, arg))
End Sub
End Class
|
| frmMain.vb |
Public Class frmMain
Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
'Add any initialization after the InitializeComponent() call
End Sub
'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
Friend WithEvents tbxLog As System.Windows.Forms.TextBox
Friend WithEvents cmdRun As System.Windows.Forms.Button
Friend WithEvents lblInstructions As System.Windows.Forms.Label
Friend WithEvents radDispDso As System.Windows.Forms.RadioButton
Friend WithEvents radDispMod As System.Windows.Forms.RadioButton
Friend WithEvents radExAs As System.Windows.Forms.RadioButton
Friend WithEvents radExLib As System.Windows.Forms.RadioButton
Friend WithEvents radExProb As System.Windows.Forms.RadioButton
Friend WithEvents radExSet As System.Windows.Forms.RadioButton
Friend WithEvents radExDrvsCallback As System.Windows.Forms.RadioButton
Friend WithEvents radExDrvsRaw As System.Windows.Forms.RadioButton
Friend WithEvents radExDrvsStream As System.Windows.Forms.RadioButton
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.radDispDso = New System.Windows.Forms.RadioButton
Me.radDispMod = New System.Windows.Forms.RadioButton
Me.radExAs = New System.Windows.Forms.RadioButton
Me.radExLib = New System.Windows.Forms.RadioButton
Me.radExDrvsCallback = New System.Windows.Forms.RadioButton
Me.tbxLog = New System.Windows.Forms.TextBox
Me.cmdRun = New System.Windows.Forms.Button
Me.lblInstructions = New System.Windows.Forms.Label
Me.radExProb = New System.Windows.Forms.RadioButton
Me.radExSet = New System.Windows.Forms.RadioButton
Me.radExDrvsRaw = New System.Windows.Forms.RadioButton
Me.radExDrvsStream = New System.Windows.Forms.RadioButton
Me.SuspendLayout()
'
'radDispDso
'
Me.radDispDso.Location = New System.Drawing.Point(16, 32)
Me.radDispDso.Name = "radDispDso"
Me.radDispDso.Size = New System.Drawing.Size(136, 16)
Me.radDispDso.TabIndex = 0
Me.radDispDso.Text = "DispDSO"
'
'radDispMod
'
Me.radDispMod.Location = New System.Drawing.Point(16, 56)
Me.radDispMod.Name = "radDispMod"
Me.radDispMod.Size = New System.Drawing.Size(136, 16)
Me.radDispMod.TabIndex = 1
Me.radDispMod.Text = "DispMod"
'
'radExAs
'
Me.radExAs.Location = New System.Drawing.Point(160, 32)
Me.radExAs.Name = "radExAs"
Me.radExAs.Size = New System.Drawing.Size(136, 16)
Me.radExAs.TabIndex = 2
Me.radExAs.Text = "ExAs"
'
'radExLib
'
Me.radExLib.Location = New System.Drawing.Point(304, 32)
Me.radExLib.Name = "radExLib"
Me.radExLib.Size = New System.Drawing.Size(136, 16)
Me.radExLib.TabIndex = 3
Me.radExLib.Text = "ExLib"
'
'radExDrvsCallback
'
Me.radExDrvsCallback.Location = New System.Drawing.Point(448, 56)
Me.radExDrvsCallback.Name = "radExDrvsCallback"
Me.radExDrvsCallback.Size = New System.Drawing.Size(136, 16)
Me.radExDrvsCallback.TabIndex = 4
Me.radExDrvsCallback.Text = "ExDrvsCallback"
'
'tbxLog
'
Me.tbxLog.Location = New System.Drawing.Point(16, 120)
Me.tbxLog.Multiline = True
Me.tbxLog.Name = "tbxLog"
Me.tbxLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
Me.tbxLog.Size = New System.Drawing.Size(520, 224)
Me.tbxLog.TabIndex = 5
Me.tbxLog.Text = ""
'
'cmdRun
'
Me.cmdRun.Location = New System.Drawing.Point(416, 88)
Me.cmdRun.Name = "cmdRun"
Me.cmdRun.Size = New System.Drawing.Size(120, 24)
Me.cmdRun.TabIndex = 6
Me.cmdRun.Text = "Run"
'
'lblInstructions
'
Me.lblInstructions.Location = New System.Drawing.Point(16, 8)
Me.lblInstructions.Name = "lblInstructions"
Me.lblInstructions.Size = New System.Drawing.Size(512, 16)
Me.lblInstructions.TabIndex = 7
Me.lblInstructions.Text = "Select the example to run..."
Me.lblInstructions.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'radExProb
'
Me.radExProb.Location = New System.Drawing.Point(16, 80)
Me.radExProb.Name = "radExProb"
Me.radExProb.Size = New System.Drawing.Size(136, 16)
Me.radExProb.TabIndex = 8
Me.radExProb.Text = "ExProb"
'
'radExSet
'
Me.radExSet.Location = New System.Drawing.Point(448, 32)
Me.radExSet.Name = "radExSet"
Me.radExSet.Size = New System.Drawing.Size(136, 16)
Me.radExSet.TabIndex = 9
Me.radExSet.Text = "ExSet"
'
'radExDrvsRaw
'
Me.radExDrvsRaw.Location = New System.Drawing.Point(304, 56)
Me.radExDrvsRaw.Name = "radExDrvsRaw"
Me.radExDrvsRaw.Size = New System.Drawing.Size(136, 16)
Me.radExDrvsRaw.TabIndex = 10
Me.radExDrvsRaw.Text = "ExDrvsRaw"
'
'radExDrvsStream
'
Me.radExDrvsStream.Location = New System.Drawing.Point(160, 56)
Me.radExDrvsStream.Name = "radExDrvsStream"
Me.radExDrvsStream.Size = New System.Drawing.Size(136, 16)
Me.radExDrvsStream.TabIndex = 11
Me.radExDrvsStream.Text = "ExDrvsStream"
'
'frmMain
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(552, 349)
Me.Controls.Add(Me.radExDrvsStream)
Me.Controls.Add(Me.radExDrvsRaw)
Me.Controls.Add(Me.radExSet)
Me.Controls.Add(Me.radExProb)
Me.Controls.Add(Me.lblInstructions)
Me.Controls.Add(Me.cmdRun)
Me.Controls.Add(Me.tbxLog)
Me.Controls.Add(Me.radExDrvsCallback)
Me.Controls.Add(Me.radExLib)
Me.Controls.Add(Me.radExAs)
Me.Controls.Add(Me.radDispMod)
Me.Controls.Add(Me.radDispDso)
Me.Name = "frmMain"
Me.Text = "Mosel VB.NET Examples"
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub cmdRun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdRun.Click
Dim Log As OptimizerLog
Log = New OptimizerLog(Me.tbxLog)
Me.Cursor = Cursors.WaitCursor
If Me.radDispDso.Checked Then
Log.WriteLine("Running DispDSO...")
Log.WriteLine("")
DispDso.RunDispDso("mmxprs", Log)
ElseIf Me.radDispMod.Checked Then
Log.WriteLine("Running DispMod...")
Log.WriteLine("")
DispMod.RunDispMod("Models\blend2.mos", Log)
ElseIf Me.radExAs.Checked Then
Log.WriteLine("Running ExAs...")
Log.WriteLine("")
ExAs.RunExAs(Log)
ElseIf Me.radExLib.Checked Then
Log.WriteLine("Running ExLib...")
Log.WriteLine()
ExLib.RunExLib(Log)
ElseIf Me.radExSet.Checked Then
Log.WriteLine("Running ExSet...")
Log.WriteLine()
ExSet.RunExSet(Log)
ElseIf Me.radExProb.Checked Then
Log.WriteLine("Running ExProb...")
Log.WriteLine()
ExProb.RunExProb(Log)
ElseIf Me.radExDrvsStream.Checked Then
Log.WriteLine("Running ExDrvsStream...")
Log.WriteLine()
ExDrvsStream.RunExDrvsStream(Log)
ElseIf Me.radExDrvsCallback.Checked Then
Log.WriteLine("Running ExDrvsCallback...")
Log.WriteLine()
ExDrvsCallback.RunExDrvsCallback(Log)
ElseIf Me.radExDrvsRaw.Checked Then
Log.WriteLine("Running ExDrvsRaw")
Log.WriteLine()
ExDrvsRaw.RunExDrvsRaw(Log)
Else
Log.WriteLine("ERROR: No example selected.")
MsgBox("Please select which example you wish to execute")
End If
Log.WriteLine()
Log.WriteLine("Example ended.")
Me.Cursor = Cursors.Default
End Sub
End Class
|
| frmMain.resx |
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 1.3
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">1.3</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1">this is my long string</data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
[base64 mime encoded serialized .NET Framework object]
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
[base64 mime encoded string representing a byte array form of the .NET Framework object]
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used forserialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="radDispDso.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="radDispDso.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="radDispDso.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="radDispMod.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="radDispMod.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="radDispMod.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="radExAs.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="radExAs.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="radExAs.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="radExLib.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="radExLib.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="radExLib.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="radExDrvsCallback.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="radExDrvsCallback.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="radExDrvsCallback.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="tbxLog.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="tbxLog.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="tbxLog.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="cmdRun.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="cmdRun.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="cmdRun.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="lblInstructions.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="lblInstructions.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="lblInstructions.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="radExProb.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="radExProb.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="radExProb.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="radExSet.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="radExSet.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="radExSet.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="radExDrvsRaw.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="radExDrvsRaw.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="radExDrvsRaw.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="radExDrvsStream.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="radExDrvsStream.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="radExDrvsStream.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
<data name="$this.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>(Default)</value>
</data>
<data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Localizable" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Name">
<value>frmMain</value>
</data>
<data name="$this.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="$this.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="$this.TrayHeight" type="System.Int32, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>80</value>
</data>
<data name="$this.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Assembly</value>
</data>
</root> |
| Mosel-VB.NET.vbproj |
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0-windows</TargetFramework>
<RootNamespace>optimizer.vb.net</RootNamespace>
<StartupObject>optimizer.vb.net.frmMain</StartupObject>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
<ItemGroup>
<Content Include="../Models/**">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<LinkBase>Models</LinkBase>
</Content>
</ItemGroup>
<ItemGroup>
<Import Include="System.Data" />
<Import Include="System.Drawing" />
<Import Include="System.Windows.Forms" />
<Import Include="Microsoft.VisualBasic" />
<PackageReference Include="FICO.Xpress.XPRMdn" Version="5.6.1" /> <!-- Compatible with Mosel .NET 5.6.1 and later -->
</ItemGroup>
</Project> |
© 2001-2023 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.
