在LINGO软件中,`sets`部分用于定义集合。集合是优化问题中一类重要的对象,可以包含多个成员,每个成员拥有与之相关联的属性。以下是定义集合的基本语法和步骤:
定义集合
使用关键字 `sets:` 开始定义集合部分。
集合名称是可选的,并且不区分大小写。
成员列表是可选的,可以显式列出每个成员,也可以隐式列出(只需输入首尾成员,中间成员由LINGO自动生成)。
属性列表也是可选的,用于描述集合成员的属性。
语法格式
原始集合定义:`setname[/member_list/][:attribute_list];`
派生集合定义:`derived_set_name(set_name1, set_name2):attribute_list;`
示例
定义一个包含三个成员(A, B, C)的集合,每个成员有两个属性(sex, age):
```lingo
sets:
students / Jhon, Mike, Rose /:sex,age;
endsets
```
定义一个一维集合,包含从1到10的整数,每个整数作为属性x:
```lingo
sets:
set / 1..10 / :x;
endsets
```
定义一个二维集合,其中第一个集合是一维集合 `set1`(1到3),第二个集合是一维集合 `set2`(1到3),并定义一个属性z:
```lingo
sets:
set1 / 1..3 / :x;
set2 / 1..3 / :y;
two_dim_set(set1, set2):z;
endsets
```
注意事项
集合名称和成员列表中的元素名称必须以字母或下划线开头,后续字符可以是字母、数字或下划线,且总长度不超过32个字符。
集合的属性用于描述集合成员的特性,可以有多个,每个属性对应一个成员。
定义集合时,必须以 `endsets` 结束集合部分。
通过以上步骤和语法,可以在LINGO中有效地定义集合,从而为后续的优化问题建模提供基础数据结构。