Optimization Services


 

 

 

 

 

 

 

 

Optimization Services general Language (OSgL)

Click to see or download the OSgL XML Schema -> OSgL.xsd [stable]


OSgL (general) contains definitions of general elements and data types used by all other OSxL schemas. Thus OSgL is usually included in the beginning of another OSxL schema through the statement:

<xs:include schemaLocation="OSgL.xsd"/>

For example, the following figure shows the <intVector> data type in OSgL that is used in OSiL for defining a vector of row or column indexes.

intVectorGraph

<xs:complexType name="intVector">
       <xs:choice>
             <xs:element name="base64BinaryData" type="base64BinaryData"/>
             <xs:element name="el" maxOccurs="unbounded">
                    <xs:complexType>
                           <xs:simpleContent>
                                 <xs:extension base="xs: int ">
                                        <xs:attribute name="mult" type="xs:positiveInteger" use="optional" default="1"/>
                                        <xs:attribute name="incr" type="xs:int" use="optional" default="0"/>
                                 </xs:extension>
                           </xs:simpleContent>
                    </xs:complexType>
             </xs:element>
       </xs:choice>
</xs:complexType>

An <intVector> may have one or more <el> children or a <base64BinaryData> child if the data in the <el> elements are compressed. The compression is explained in detail in the LPFML paper. Each <el> element has a mult attribute (for multiplicity) with a default value 1 and an incr attribute (for increment) with a default value 0. For example

<el>0</el><el>0</el><el>0</el><el>0</el><el>0</el>

and

<el>0</el><el>1</el><el>2</el><el>3</el><el>4</el>

is more concisely expressed as

<el mult="5">0</el> and <el mult="5" incr="1">0</el>

There is also a similar <doubleVector> data type defined in OSgL.

In the following table, we list some common data types defined in OSgL.

Type Name

Brief Description

intVector

vector of integers

doubleVector

vector of doubles

elType

el element with a name and a value attribute and a description text

mapType

a sequence of  el elements (name-value pairs)

base64Binary

compression of a sequence of data usually expressed in el elements; see the LPFML paper [53]

sparseVector

sparse vector with an idx array and a nonz value array

listMatrix     

typical sparse matrix storage type with a start array, a choice of rowIdx or colIdx array, and a nonzero value array

mpsMatrix

MPS style sparse matrix storage with a sequence of col (or row) elements; each col (or row) element is in turn a sequence of row (or col) elements

matrixMarket

common sparse matrix storage used in linear algebra with a sequence of el elements; each element is a double value (for a matrix entry) with a row and  a col attribute (for matrix indexes)

xmlData

a sequence of any data

In The following table, we list typical function-related elements. Many of these functions are distribution functions. All the distribution functions can have an optional cdf boolean attribute which is false by default. If true, the distribution function is a cumulative distribution function. If false, the distribution is a probability distribution function (pdf, for continuous distributions) or probability mass function (pmf, for discrete distributions). Many of these functions have parameters which are expressed as element attributes. The distribution functions are widely used in the OSiL extension to stochastic programming.

Function Name

Brief Description

userFunctions

a sequence of userFunction elements; each userFunction element contains one OSnLNode as an expression tree root for expressing a function

userVariables

a sequence of userVariable elements; each userVariable element contains one OSnLNode as an expression tree root for expressing a user defined variable

discreteUniform

Discrete Uniform function with a parameter N

bernoulli

Bernoulli function with a parameter p

binomial

Binomial function with parameters N, p

hypergeometric

Hypergeometric function with parameters N, M, n

poisson

Poisson function with a parameter lamda

geometric

Geometric function with a parameter p

negativeBinomial

Negative Binomial function with a parameter p, r

empiricalDiscrete

Empirical Discrete function with a sequence of el elements; each el element is a double value and has a prob attribute

empiricalContinuous

Empirical Continuous function with a sequence of el elements; each el element contains one OSnLNode as an expression tree root for expressing a function and a from and a to attribute for the function domain

uniform

Uniform function with parameters a, b

normal

Normal function with parameters mu, sigma

stdNormal

Standard normal function

exponential

Exponential function with a parameter lamda

weibull

Weibull function with parameters location, scale, shape

erlang

Erlang function with parameters lamda, n

gamma

Gamma function with parameters location, scale, shape

beta

Beta function with parameters degree1, degree2

betaGeneral

General Beta function with parameters degree1, degree2, min, max

lognormal

Lognormal function with parameters mu, sigma

cauchy

Cauchy function with parameters location, scale

t

Student T function with a parameter degree

chiSquare

Chi Square function with a parameter degree

f

F function with parameters degree1, degree2

logistic

Logistic function with parameters mu and beta

logLogistic

Log Logistic function with parameters mu and beta

logarithmic

Logarithmic function with parameters a, b

pareto

Pareto function with parameters shape and scale

rayleigh

Rayleigh function with a parameter beta

pert

Pert function with parameters a, c, b

triangular

Triangular function with parameters a, c, b

multivariateDiscrete

Multivariate Discrete function with a sequence of 2 or more scenario elements; each scenario is a sequence of 2 or more el elements of double values

multinomial

Multinomial function with a parameter N and a sequence of el elements of probability values

bivariateNormal

Bivariate Normal function with parameters mu1, sigma1, mu2, sigma2, rho

multivariateNormal

Multivariate Normal function with a sequence of 3 or more mu elements and a covariance matrix of matrixMarket type

linearTransformation

Linear transformation function with a numberRows and a numberColumns attribute; it contains one constants element of type doubleVector, one matrix element of type matrixMarket, and a randomVariables element  to indicate a multivariate distribution

Elements of similar types can be grouped and referenced together. For example the discreteDistributionGroup group shown in the following figure is used to group all the discrete distribution functions in the above table.

discreteDitributionGroup

<xs:group name="discreteDistributionGroup">
       <xs:choice>
             <xs:element ref="empiricalDiscrete"/>
             <xs:element ref="discreteUniform"/>
             <xs:element ref="bernoulli"/>
             <xs:element ref="binomial"/>
             <xs:element ref="hypergeometric"/>
             <xs:element ref="poisson"/>
             <xs:element ref="geometric"/>
             <xs:element ref="negativeBinomial"/>
       </xs:choice>
</xs:group>

A continuousDistributionGroup is similarly defined. The more general distributionGroup is a group of discreteDistributionGroup and continuousDistributionGroup as shown in the following figure.

continuousDistributionGroup

<xs:group name="distributionGroup">
       <xs:choice>
             <xs:group ref="discreteDistributionGroup"/>
             <xs:group ref="continuousDistributionGroup"/>
       </xs:choice>
</xs:group>

 


Links:

Click to see or download the OSgL XML Schema -> OSgL.xsd