主要内容

findindex

发现数字索引等价物命名索引变量

描述

例子

(numindex1,numindex2……numindexk) = findindex (var,strindex1,strindex2……strindexk)发现数字索引等价物命名索引变量的优化变量var

例子

numindex= findindex (var,strindex1,strindex2……strindexk)找到指定的索引变量的线性指数等价物。

例子

全部折叠

创建一个优化变量命名颜色索引的主要添加剂颜色名称和主减色法名称。包括“黑”“白色”作为添加剂名称和颜色“黑”作为一个减色的名字。

颜色= optimvar (“颜色”,(“黑色”,“白色”,“红色”,“绿色”,“蓝色”]、[“青色”,“红色”,“黄色”,“黑色”]);

找到索引编号为添加剂的颜色“红色”“黑”和减色“黑”

[idxadd, idxsub] = findindex(颜色,{“红色”,“黑”},{“黑”})
idxadd =1×23个1
idxsub = 4

创建一个优化变量命名颜色索引的主要添加剂颜色名称和主减色法名称。包括“黑”“白色”作为添加剂名称和颜色“黑”作为一个减色的名字。

颜色= optimvar (“颜色”,(“黑色”,“白色”,“红色”,“绿色”,“蓝色”]、[“青色”,“红色”,“黄色”,“黑色”]);

发现组合的线性指数等价物(“白色”、“黑色”),(“红”、“青色”),(“绿色”、“红色”),(“蓝色”、“黄色”)

idx = findindex(颜色,(“白色”,“红色”,“绿色”,“蓝色”]、[“黑色”,“青色”,“红色”,“黄色”])
idx =1×417个3 9日15

创建和使用命名索引变量解决优化问题。问题是最大化profit-weighted水果流向不同的机场,受到约束加权流动。

rng (0)%的再现性p = optimproblem (“ObjectiveSense”,“最大化”);流= optimvar (“流”,{“苹果”,“橘子”,“香蕉”,“浆果”},{“纽约”,“bo”,“宽松”},下界的0,“类型”,“整数”);p。目标=总和(总和(兰德(4,3)。*流));p.Constraints。纽约= rand(1,4)*flow(:,“纽约”)< = 10;p.Constraints。BOS= rand(1,4)*flow(:,“bo”)< = 12;p.Constraints。宽松的= rand(1,4)*flow(:,“宽松”)< = 35;索尔=解决(p);
使用intlinprog解决问题。LP:最优的客观价值是-1027.472366。使用子启发式:发现1解决方案。上限是-1027.233133。相对差距是0.00%。找到最优解。Intlinprog停在根节点,因为客观价值差距公差内的最优值,选择。AbsoluteGapTolerance = 0(默认值)。在宽容intcon变量是整数,选项。IntegerTolerance = 1 e-05(默认值)。

找到最优的纽约和洛杉矶橘子和草莓。

[idxFruit, idxAirports] = findindex(流,{“橘子”,“浆果”},{“纽约”,“宽松”})
idxFruit =1×22 4
idxAirports =1×21 3
orangeBerries = sol.flow (idxFruit idxAirports)
orangeBerries =2×2980.0000 - 70.0000 0

这意味着没有橘子要显示纽约,70个浆果纽约980个橙子要宽松的,不去浆果宽松的

列表的最优流如下:

果机场

- - - - - - - - - - - - - - -

浆果纽约

苹果BOS

橙子松懈

idx = findindex(流,{“浆果”,“苹果”,“橘子”},{“纽约”,“bo”,“宽松”})
idx =1×34 5 10
optimalFlow = sol.flow (idx)
optimalFlow =1×370.0000 28.0000 980.0000

这意味着70个浆果会显示纽约,28日苹果要BOS,980橙子要宽松的

创建命名索引变量的各种土地类型的问题,潜在的庄稼,和耕作方法。

土地= [“irr-good”,“irr-poor”,“dry-good”,“dry-poor”];作物= [“wheat-lentil”,“小麦加工”,“barley-chickpea”,“barley-lentil”,“wheat-onion”,“barley-onion”];犁= [“传统”,“机械化”];xcrop = optimvar (“xcrop”、土地、庄稼、犁,下界的,0);

设置初始点为零的数组的大小。

x0。xcrop = 0(大小(xcrop));

初始值设置为3000“wheat-onion”“wheat-lentil”作物种植在任何干燥条件和传统耕种。

[idxLand, idxCrop idxPlough] = findindex (xcrop, (“dry-good”,“dry-poor”),(“wheat-onion”,“wheat-lentil”),“传统”);x0.xcrop (idxLand idxCrop idxPlough) = 3000;

以下三个点设置初始值。

2000年土地作物方法价值dry-good小麦加工机械化irr-poor barley-onion传统5000 irr-good barley-chickpea机械化3500
idx = findindex (xcrop,(“dry-good”,“irr-poor”,“irr-good”),(“小麦加工”,“barley-onion”,“barley-chickpea”),(“机械化”,“传统”,“机械化”]);x0.xcrop (idx) = (2000、5000、3500);

输入参数

全部折叠

优化变量,作为指定OptimizationVariable对象。创建var使用optimvar

例子:var = optimvar (“var”、4、6)

名叫指数,指定为一个单元阵列的特征向量,特征向量,字符串向量,或整数向量。的数量strindex参数必须的维数var

例子:(“小”、“中等”、“大”)

数据类型:|字符|字符串|细胞

输出参数

全部折叠

数字指标等价,返回一个整数向量。输出参数的数量必须是下列之一:

  • 维度的数量var。每个输出向量numindexj在数值上等于相应的输入参数strindexj

  • 一个。在这种情况下,每个输入的大小strindexj必须是相同的吗j,输出满足线性索引准则

    var (numindex (j)) = var (strindex1 (j),…, strindexk (j))对所有j

介绍了R2018a