[Os-project-managers] Consent agenda items: Sparse objects in OSgL.xsd

Kipp Martin kmartin at chicagobooth.edu
Sun Oct 10 04:24:31 EDT 2010


Hi:

I consent to all of the items below.

Cheers
> 
> following yesterday's meeting I have gone through the schemas again  
> and pulled out the sparse data structures currently in OSgL. There are  
> quite a few of them, namely:
> 
> DoubleVector:
>    Consists of attribute numberOfEl and array of <el> with mult and incr
> 
> IntVector:
>    Same as DoubleVector, but element value must be integer
> 
> NonNegativeIntVector:
>    Same but element value must be nonnegative integer
> 
> PositiveIntVector:
>    Same but element value must be strictly positive
> 
> NegativeIntVector:
>    Same but element value must be negative
> 
> NonNegativeIntVectorWithValueAndDescriptionAttribute:
>    Same as NonNegativeIntVector but has two extra attributes, value and
>    description. This is used, for instance, in <otherVariableResult>
> 
> NegativeIntVectorWithValueAndDescriptionAttribute:
>    Analogous to NonNegativeIntVector
> 
> LinearConstraintCoefficientsDoubleVector:
>    Like DoubleVector, but without numberOfEl
> 
> LinearConstraintCoefficientsIntVector:
>    Like IntVector, but without numberOfEl
> 
> LinearConstraintCoefficientsNonNegativeIntVector:
>    Like NonNegativeIntVectorVector, but without numberOfEl. Not used
> 
> SparseVector:
>    Array (!) of IntVector plus DoubleVector. Never used.
> 
> -----------------------------------------------------------------
> 
> Consent agenda item 1: remove  
> LinearConstraintCoefficientsNonNegativeIntVector. It is not and will  
> never be used.
> 
> Consent agenda item 2: remove  
> NonNegativeIntVectorWithValueAndDescriptionAttribute and  
> NegativeIntVectorWithValueAndDescriptionAttribute. It is easy to add  
> the attributes in a different way.
> 
> Consent agenda item 3: Change SparseVector to:
> attribute "numberOfValues"
> nonnegative integer array <indices> (with mult and incr but *no*  
> separate numberOf...)
> double array <values> (with "mult" only, no incr, no separate numberOf...)
> A definition and a use case are given in Appendix A and Appendix B,  
> respectively.
> 
> Consent agenda item 4: Use new SparseVector in <matrices> (other than  
> <linearConstraintMatrix>)
> 
> 
> You can object to any one of these items, in which case it will be  
> discussed at the next meeting.
> 
> Cheers
> 
> gus
> 
> ----------------------------------------------
> 
> Appendix A
> 
> Proposed definition of SparseVector:
> 
> <xs:complexType name="SparseVector">
>      <xs:annotation>
>          <xs:documentation>experimental</xs:documentation>
>      </xs:annotation>
>      <xs:sequence>
>          <xs:element name="indexes">
>              <xs:complexType>
>                  <xs:choice>
>                      <xs:element name="idx" minOccurs="0"  
> maxOccurs="unbounded">
>                          <xs:annotation>
>                              <xs:documentation>number must agree with  
> numberOfValues (after "mult" has been considered)</xs:documentation>
>                          </xs:annotation>
>                          <xs:complexType>
>                              <xs:simpleContent>
>                                  <xs:extension base="xs:nonNegativeInteger">
>                                      <xs:attribute name="mult"  
> type="xs:positiveInteger" default="1"/>
>                                      <xs:attribute name="incr"  
> type="xs:int" default="0"/>
>                                  </xs:extension>
>                              </xs:simpleContent>
>                          </xs:complexType>
>                      </xs:element>
>                      <xs:element name="base64BinaryData"  
> type="Base64BinaryData"/>
>                  </xs:choice>
>              </xs:complexType>
>          </xs:element>
>          <xs:element name="values">
>              <xs:complexType>
>                  <xs:choice>
>                      <xs:element name="value" minOccurs="0"  
> maxOccurs="unbounded">
>                          <xs:annotation>
>                              <xs:documentation>number must agree with  
> numberOfValues (after "mult" has been considered)</xs:documentation>
>                          </xs:annotation>
>                          <xs:complexType>
>                              <xs:simpleContent>
>                                  <xs:extension base="xs:double">
>                                      <xs:attribute name="mult"  
> type="xs:positiveInteger" use="optional" default="1"/>
>                                  </xs:extension>
>                              </xs:simpleContent>
>                          </xs:complexType>
>                      </xs:element>
>                      <xs:element name="base64BinaryData"  
> type="Base64BinaryData"/>
>                  </xs:choice>
>              </xs:complexType>
>          </xs:element>
>      </xs:sequence>
>      <xs:attribute name="numberOfValues" use="required"/>
> </xs:complexType>
> 
> ==========================================================================
> 
> Appendix B:
> 
> Use case:
> 
> <objectiveCoefs numberOfValues="5">
>      <indexes>
>          <idx mult="2">0</idx>
>          <idx mult="2" incr="2">3</idx>
>          <idx>4</idx>
>      </indexes>
>      <values>
>          <value>-1.0</value>
>          <value mult="3">1.0</value>
>          <value>-1.0</value>
>      </values>
> </objectiveCoefs>
> 
> This defines the vector [ -1   1   0   1   1  -1]
> 
> _______________________________________________
> Os-project-managers mailing list
> Os-project-managers at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/os-project-managers


-- 
Kipp Martin
Professor of Operations Research
and Computing Technology
Booth School of Business
University of Chicago
5807 South Woodlawn Avenue
Chicago, IL 60637
773-702-7456
kmartin at chicagobooth.edu
http://www.chicagobooth.edu/faculty/bio.aspx?person_id=12825325568
http://projects.coin-or.org/OS



More information about the Os-project-managers mailing list