AIMMS Function Reference - Set Functions



Similar documents
AIMMS Function Reference - Data Change Monitor Functions

AIMMS User s Guide - Advanced Data Management

AIMMS Tutorial for Professionals - Quantities and Time

AIMMS Function Reference - Arithmetic Functions

AIMMS 4.0. Portable component Linux Intel version. Release Notes for Build 4.9. Visit our web site for regular updates AIMMS

Glossary of Object Oriented Terms

AP Computer Science Java Subset

10CS35: Data Structures Using C

ORACLE 9I / 10G / 11G / PL/SQL COURSE CONTENT

: provid.ir

Automata Theory. Şubat 2006 Tuğrul Yılmaz Ankara Üniversitesi

The C Programming Language course syllabus associate level

The Designer's Guide to VHDL

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

Paper An Introduction to SAS PROC SQL Timothy J Harrington, Venturi Partners Consulting, Waukegan, Illinois

The System Designer's Guide to VHDL-AMS

Agile Software Development

IBM SPSS Data Preparation 22

PL/SQL Overview. Basic Structure and Syntax of PL/SQL

Lab 2 : Basic File Server. Introduction

PART-A Questions. 2. How does an enumerated statement differ from a typedef statement?

SQL Server for developers. murach's TRAINING & REFERENCE. Bryan Syverson. Mike Murach & Associates, Inc. Joel Murach

Java Application Developer Certificate Program Competencies

Web Intelligence User Guide

Specifying Data. 9.1 Formatted data: the data command

Positional Numbering System

AIMMS Tutorial for Professionals - Absentee and Planning Overviews

Software Engineering

DATA STRUCTURES USING C

CHAPTER 2 DATABASE MANAGEMENT SYSTEM AND SECURITY

AIMMS Language Reference - Format of Text Data Files

Integrating VoltDB with Hadoop

C++ Programming: From Problem Analysis to Program Design, Fifth Edition. Chapter 3: Input/Output

Algebra 2 Notes AII.7 Functions: Review, Domain/Range. Function: Domain: Range:

Package uptimerobot. October 22, 2015

Coveo Platform 7.0. Microsoft Dynamics CRM Connector Guide

Chapter 13 - The Preprocessor

FEEG Applied Programming 5 - Tutorial Session

INF5140: Specification and Verification of Parallel Systems

SESAM USER MANUAL BRIX EXPLORER SESAM CONFIGURATION. Best Engineering Practice DET NORSKE VERITAS

Java (12 Weeks) Introduction to Java Programming Language

irods and Metadata survey Version 0.1 Date March Abhijeet Kodgire 25th

estatistik.core: COLLECTING RAW DATA FROM ERP SYSTEMS

Relational Database: Additional Operations on Relations; SQL

AIMMS The Network License Server

Eventia Log Parsing Editor 1.0 Administration Guide

CS 2112 Spring Instructions. Assignment 3 Data Structures and Web Filtering. 0.1 Grading. 0.2 Partners. 0.3 Restrictions

HP Operations Manager Software for Windows Integration Guide

WESTMORELAND COUNTY PUBLIC SCHOOLS Integrated Instructional Pacing Guide and Checklist Computer Math

Optimum Database Design: Using Normal Forms and Ensuring Data Integrity. by Patrick Crever, Relational Database Programmer, Synergex

Database Access General principles of data correspondence

Efficient Data Structures for Decision Diagrams

PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON

Streaming Lossless Data Compression Algorithm (SLDC)

Drupal Survey. Software Requirements Specification /10/2009. Chris Pryor Principal Project Manager

CLC Server Command Line Tools USER MANUAL

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.

Chapter 5 More SQL: Complex Queries, Triggers, Views, and Schema Modification

Core Components Data Type Catalogue Version October 2011

Virto Active Directory Service for SharePoint. Release Installation and User Guide

Kofax Export Connector for Microsoft SharePoint

Database SQL messages and codes

C Compiler Targeting the Java Virtual Machine

Magit-Popup User Manual

Compliance and Requirement Traceability for SysML v.1.0a

QuickScan L. Barcode Scanner. Advanced Data Formatting (ADF) Guide

CS2Bh: Current Technologies. Introduction to XML and Relational Databases. The Relational Model. The relational model

Virto Create & Clone AD User Web Part for Microsoft SharePoint. Release Installation and User Guide

Debugging Complex Macros

Web Document Clustering

Coveo Platform 7.0. Oracle Knowledge Connector Guide

CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards

Guide to SQL Programming: SQL:1999 and Oracle Rdb V7.1

THE DIMENSION OF A VECTOR SPACE

Scaling up = getting a better machine. Scaling out = use another server and add it to your cluster.

CA IDMS SQL. Programming Guide. Release

Database Programming with PL/SQL: Learning Objectives

Command Scripts Running scripts: include and commands

create-virtual-server creates the named virtual server

Utility Software II lab 1 Jacek Wiślicki, jacenty@kis.p.lodz.pl original material by Hubert Kołodziejski

C++ Language Tutorial

CS 145: NoSQL Activity Stanford University, Fall 2015 A Quick Introdution to Redis

JDK 1.5 Updates for Introduction to Java Programming with SUN ONE Studio 4

SQL Server Array Library László Dobos, Alexander S. Szalay

Version USER GUIDE

Domains and Competencies

Oracle Database: Introduction to SQL

Digital Imaging and Communications in Medicine (DICOM) Supplement 119: Frame Level Retrieve SOP Classes

Java CPD (I) Frans Coenen Department of Computer Science

Formal Engineering for Industrial Software Development

Simple Identity Management Profile

Visual Basic Programming. An Introduction

NLP Programming Tutorial 0 - Programming Basics

Release Document Version: User Guide: SAP BusinessObjects Analysis, edition for Microsoft Office

6. SQL/XML. 6.1 Introduction. 6.1 Introduction. 6.1 Introduction. 6.1 Introduction. XML Databases 6. SQL/XML. Creating XML documents from a database

ASSEMBLY PROGRAMMING ON A VIRTUAL COMPUTER

PowerDesigner WarehouseArchitect The Model for Data Warehousing Solutions. A Technical Whitepaper from Sybase, Inc.

The CLIPS environment. The CLIPS programming language. CLIPS production rules language - facts. Notes

Using AD fields in Policy Patrol

Transcription:

AIMMS Function Reference - Set Functions This file contains only one chapter of the book. For a free download of the complete book in pdf format, please visit www.aimms.com Aimms 3.13

Set Related Functions Aimms supports the following set related functions: ActiveCard Card CloneElement ConstraintVariables Element ElementCast ElementRange FindUsedElements First Last Ord RestoreInactiveElements RetrieveCurrentVariableValues SetAddRecursive SetElementAdd SetElementRename StringToElement SubRange VariableConstraints

Set Related Functions 41 ActiveCard The function ActiveCard returns the cardinality of active elements in its identifier argument, or the cardinality of active elements of a suffix of that identifier. Card( Identifier, [Suffix]! (input identifier reference! (optional element in the set AllSuffixNames Identifier A reference to a set or an indexed identifier. Suffix An element in the predefined set AllSuffixNames. If Identifier is a set, the function ActiveCard returns the number of active elements in Identifier. If Identifier is an indexed identifier, the function ActiveCard returns the number of nondefault values stored for Identifier. If Suffix is given, the number of nondefault values stored for the given suffix of Identifier. Remarks: The ActiveCard function cannot be applied to slices of indexed identifiers. In such a case, you can use the Count operator to count the number of nondefault elements. See also: The function Card and Count operator (see also Section 6.1.6 of the Language Reference.

Set Related Functions 42 Card The function Card returns the cardinality of its identifier argument, or of the cardinality of a suffix of that identifier. Card( Identifier, [Suffix]! (input identifier reference! (optional element in the set AllSuffixNames Identifier A reference to a set or an indexed identifier. Suffix An element in the predefined set of AllSuffixNames. If Identifier is a set, the function Card returns the number of elements in Identifier. If Identifier is an indexed identifier, the function Card returns the number of nondefault values stored for Identifier. If Suffix is given, the number of nondefault values stored for the given suffix of Identifier. Remarks: The Card function cannot be applied to slices of indexed identifiers. In such a case, you can use the Count operator to count the number of nondefault elements. When the Card function is used inside the definition of a parameter or a set and the first argument is an index or element parameter into the set AllIdentifiers then the definition depends on all identifiers that can appear on the left hand side of an assignment (sets without a definition, parameters without a definition, variables and constraints. The cardinality will be computed for all identifiers, including those with a definition. These definitions will not be made up to date, however. This is illustrated in the following example. PARAMETER: identifier : A ; PARAMETER: identifier : B definition : A + 1 ; PARAMETER: identifier : TheCards index domain : IndexIdentifiers definition : Card( IndexIdentifiers, Level ; body: A := 1 ; display TheCards ;

Set Related Functions 43 See also: Here TheCards is computed in the display statement because A just changed. The definition of TheCards, that is made up to date by the display statement, will, however, not invoke the computation of B, although it is not up to date. This is done in order to avoid circular references while making set and parameter definitions up to date. In order to make B up to date consider using the Update statement, see also Section 7.3 of the Language Reference. The function ActiveCard and the Count operator (see also Section 6.1.6 of the Language Reference.

Set Related Functions 44 CloneElement The procedure CloneElement copies the data associated with a particular element to another element. CloneElement( updateset,! (input, output a set identifier originalelement,! (input an element in the set clonename,! (input a string that is the name of the clone cloneelement,! (output an element parameter includedefinedsubsets! (optional an integer, default 0. The procedure CloneElement performs the following actions: 1. It creates or finds an element with name clonename: cloneelement. The element cloneelement is inserted into updateset if it is not already there. This insertion is only permitted if updateset does not have a definition. 2. For each domain set of updateset, say insertdomainset, the element cloneelement is inserted into insertdomainset if it is not already there. Such an insertion is only permitted if insertdomainset does not have a definition. 3. For each subset of updateset, say insertsubset in which originalelement is an element, cloneelement is also inserted into insertsubset. If includedefinedsubsets is 0, then insertsubset is skipped if it is a defined subset. 4. The domain sets of steps 1 and 2, and the sets modified in step 3 form a set, say modifiedsets. 5. Identifiers declared over a set in modifiedsets that meet one of the following criteria, are selected: It is a non-local multi-dimensional set without a definition. It is a non-local parameter without a definition. It is a variable. It is a constraint. These identifiers form the set modifiedidentifiers. 6. For each identifier in the set modifiedidentifiers, and all suffixes of this identifier, the data associated with element originalelement is copied to cloneelement. updateset A one-dimensional non-compound set. originalelement An element valued expression that should result in an element in updateset. clonename A string expression that should result in a name that is in the set updateset or can be added to that set.

Set Related Functions 45 cloneelement An element parameter, in which the resulting element is stored. includedefinedsubsets When non-zero, defined subsets are included in the modifiedsets as well. When these defined subsets are evaluated thereafter again, this may result in the creation of inactive data. Inactive data can be removed by a CLEANUP or CLEANDEPENDENTS statement, see Section 24.3 of the Language Reference. Defined subsets that are defined as an enumeration are never included. The procedure returns 1 if successful and 0 otherwise. Possible reasons for returning 0 are: originalelement is not in updateset. clonename equals name of originalelement. There are no identifiers modified. Remarks: If you want to make sure that the string clonename is not yet an element in updateset, use a statement like: if ( not ( clonename in updateset then CloneElement(... ; endif ; Example: With the following declarations (and initial data: SET: identifier : S index : i, j parameter : ep initial data : data { a } ; PARAMETER: identifier : P index domain : i initial data : data { a : 1 } ; PARAMETER: identifier : Q index domain : (i,j initial data : data { ( a, a : 1 } ; the statement CloneElement( S, a, "b", ep ; results in S, P, Q and ep having the following data:

Set Related Functions 46 See also: S := data { a, b } ; P := data { a : 1, b : 1 } ; Q := data { ( a, a : 1, ( a, b : 1, ( b, a : 1, ( b, b : 1 } ; ep := b ; The function StringToElement, the procedure FindUsedElements and the procedure RestoreInactiveElements.

Set Related Functions 47 ConstraintVariables The function ConstraintVariables returns all the symbolic variables that are referred in a certain collection of constraints, including the variables that are referred in the definitions of these variables. ConstraintVariables( Contraints! (input a subset of AllConstraints Contraints The set of constraints for which you want to retrieve the referred variables. The function returns a subset of the set AllVariables, containing the variables found. See also: The function VariableConstraints.

Set Related Functions 48 Element With the function Element you can retrieve then-th element from a set. Element( Set, n! (input set reference! (input integer expression Set n The set from which an element is to be returned. An integer expression indicating the ordinal number of the element to be returned. The function Element returns then-th element of set Set. Remarks: If there is non-th element in Set, the function returns the empty element instead.

Set Related Functions 49 ElementCast With the function ElementCast you can cast an element of one set to an (existing element with the same name in a set with a different root set. ElementCast( set,! (input a set expression element,! (input a scalar element expression [create]! (optional 0 or 1 set A set in which you want to find a specific element name. element A scalar element expression, representing the element that you want to convert to a different root set hierarchy. create (optional An indicator whether or not a nonexisting element are added to the set during the call. The function returns the existing element or, if the element cannot be converted to an existing element and the argument create is not set to 1, the function returns the empty element. If create is set to 1, nonexisting elements will be created on the fly. See also: The procedure SetElementAdd.

Set Related Functions 50 ElementRange With the function ElementRange you can create a set with elements in which each element can be constructed using a prefix string, a postfix string, and a a sequential number. ElementRange( from,! (input integer expression to,! (input integer expression [incr,]! (optional integer expression [prefix,]! (optional string expression [postfix,]! (optional string expression [fill]! (optional 0 or 1 from The integer value for which the first element must be created to The integer value for which the last element must be created incr (optional The integer-valued interval length between two consecutive elements. If omitted, then the default interval length of 1 is used. prefix (optional The prefix string for every element. If omitted, then the elements have no prefix (and thus start with the number. postfix (optional The postfix string for every element. If omitted, then the elements have no postfix (and thus end with the number. fill (optional This logical indicator specifies whether the numbers must be padded with leading zeroes. If omitted, then the default value 1 is used. The function returns a set containing the created elements.

Set Related Functions 51 FindUsedElements The procedure FindUsedElements finds all elements of a particular set that are in use in a given collection of indexed model identifiers. FindUsedElements( SearchSet,! (input a set SearchIdentifiers,! (input a subset of AllIdentifiers UsedElements! (output a subset SearchSet The set for which you want to find the used elements. SearchIdentifiers A subset of AllIdentifiers, holding identifiers that are indexed over SearchSet. UsedElements A subset of SearchSet. On return this subset will contain the elements that are currently used (i.e. have corresponding nondefault values in the identifiers contained in SearchIdentifiers.

Set Related Functions 52 First With the function First you can retrieve the first element from a set. First( Set,! (input set reference Set The set from which the first element is to be returned. The function First returns the first element of set Set. Remarks: If there is no element in Set, the function returns the empty element instead.

Set Related Functions 53 Last With the function Last you can retrieve the last element from a set. Last( Set,! (input set reference Set The set from which the last element is to be returned. The function Last returns the last element of set Set. Remarks: If there is no element in Set, the function returns the empty element instead.

Set Related Functions 54 Ord The function Ord returns the ordinal number of a set element relative to a set. Ord( index, [set]! (input element expression! (optional set reference index An element expression for which you want to obtain the ordinal number. set (optional The set with respect to which you want the ordinal number to be taken. If omitted, set is assumed to be the range of the argument index. The function Ord returns the ordinal number of index in set set. Remarks: A compile time error occurs if the argument set is not present, and Aimms is unable to determine the range of index.

Set Related Functions 55 RestoreInactiveElements The procedure RestoreInactiveElements finds and restores all elements that were previously removed from a particular set, but for which inactive data still exists in a given collection of indexed model identifiers. RestoreInactiveElements( SearchSet,! (input/output a set SearchIdentifiers,! (input a subset of AllIdentifiers UsedElements! (output a subset SearchSet The set for which you want to find the inactive elements. SearchIdentifiers A subset of AllIdentifiers, holding identifiers that are indexed over SearchSet. UsedElements A subset of SearchSet. On return this subset will contain all the inactive elements that are currently used (i.e. have corresponding nondefault values in the identifiers contained in SearchIdentifiers. Remarks: The inactive elements found are placed in the result-set, but are also automatically added to the search-set.

Set Related Functions 56 RetrieveCurrentVariableValues With the procedure RetrieveCurrentVariableValues you can obtain the variable values for a given collection of variables during a running solution process. This procedure can only be called from within the context of a solver callback procedure. RetrieveCurrentVariableValues( Variables! (input a subset of AllVariables Variables A subset of AllVariables, holding all the variables for which you want to retrieve the current values. See also: Solver callback procedures are discussed in full detail in Section 15.2 of the Language Reference

Set Related Functions 57 SetAddRecursive With the procedure SetAddRecursive you can merge the elements of one set into another set. SetAddRecursive( toset, fromset! (input/output a set! (input a set toset The set into which the elements of fromset are merged. fromset The set that you want to merge in toset. Remarks: The sets toset and fromset should have the same root set. The difference between this function and a regular set assignment is that in case fromset is not the domain of toset all elements added to toset will also be added to the domain set of toset

Set Related Functions 58 SetElementAdd With the procedure SetElementAdd you can add new elements to a set. When you apply SetElementAdd to a root set, the element will be added to that root set. When you apply it to a subset, the element will be added to the subset as well as to all its supersets, up to and including its associated root set. SetElementAdd( Setname,! (input/output a set Elempar,! (output an element parameter Newname! (input a scalar string expression Setname The root set or subset to which you want to add the element. Elempar An element parameter into Setname, that on return will point to the newly added element. Newname A string holding the name of the element to be added. Remarks: If the element already exists in the set, the procedure does not make any changes to the set, and on return the element parameter Elempar will point to the existing element. See also: The functionelementcast and the proceduressetelementrename andstringtoelement. The lexical conventions for set elements in Section 2.3 of the Language Reference.

Set Related Functions 59 SetElementRename With the procedure SetElementRename you can rename an element in a set. SetElementRename( Setname, Element, Newname! (input a set! (input an element parameter! (input a scalar string expression Setname The root set or subset in which you want to rename an element. Element The element that you want to rename. Newname A string holding the new name of the element. Remarks: If the new name for the element already exists in the set, the procedure will generate an execution error. Aimms will refuse to rename a set element, if an explicit reference to such an element exists in the model source. See also: The procedure SetElementAdd, and the function StringToElement. The lexical conventions for set elements in Section 2.3 of the Language Reference.

Set Related Functions 60 StringToElement With the function StringToElement you can convert a string into an (existing element of a set. StringToElement( Set,! (input a set expression Name,! (input a scalar string [create]! (optional 0 or 1, default 0 Set A set in which you want to find a specific element name. Name A scalar string expression, representing the string that you want to convert. create (optional An indicator whether or not a nonexisting element are added to the set during the call. The function returns the existing element or, if the string cannot be converted to an existing element and the argument create is not set to 1, the function return the empty element. If create is set to 1, nonexisting elements will be created on the fly. See also: The function ElementCast and the procedure SetElementAdd. The lexical conventions for set elements in Section 2.3 of the Language Reference.

Set Related Functions 61 SubRange The function SubRange extracts a subrange of consecutive elements from an existing set. SubRange( Superset, First, Last! (input a simple or compound set! (input an element! (input an element Superset The set containing the subrange of elements that you want to extract. First An element in Superset representing the first element of the subrange. Last An element in Superset representing the last element of the subrange. The function returns a set containing the subrange of elements extracted from Superset. If the element First is positioned after Last, then the empty set is returned.

Set Related Functions 62 VariableConstraints The function VariableConstraints returns all the symbolic constraints that refer to one or more variables in a given set of variables. VariableConstraints( Variables! (input a subset of AllVariables Variables The set of variables for which you want to retrieve the constraints that refer to them. This is a subset of AllVariables. The function returns a subset of the set AllConstraints, containing the constraints found. See also: The function ConstraintVariables.