質問編集履歴

2

意図的な内容抹消の取り消し

2018/11/27 02:52

投稿

reina1125
reina1125

スコア21

test CHANGED
File without changes
test CHANGED
@@ -1 +1,95 @@
1
+ ```java
2
+
3
+ コード
4
+
5
+ public class Automation {
6
+
7
+  static public void main(String[] args) throws IloException {
8
+
9
+ IloCplex cplex = new IloCplex();
10
+
11
+ int t1 =3
12
+
13
+ int t2 =2;
14
+
15
+ int a=2;
16
+
17
+ //変数の定義
18
+
19
+ int tmax = Math.max(t1, t2);
20
+
21
+ IloIntVar[] X = cplex.intVarArray((t1+1)*(t2+1)-1,0,tmax);
22
+
23
+ //制約式(1)
24
+
1
- wsdedewddedededwedddsaeewdwedewvvrefesxdccsdwcd
25
+ IloLinearNumExpr sum = cplex.linearNumExpr();
26
+
27
+ for(int i=0, j=1; i<X.length; i++,j++) {
28
+
29
+ sum.addTerm((int)j/(t2+1),X[i]);
30
+
31
+ cplex.addLe(sum1,t1);
32
+
33
+ }
34
+
35
+ cplex.addEq(sum1,t1);
36
+
37
+
38
+
39
+ //制約式(2)
40
+
41
+ IloIntVar[] array1 = cplex.intVarArray(X.length,0,t1*tmax);
42
+
43
+ for(int i=0, j=1; i<X.length; i++,j++) {
44
+
45
+ array1[i]= (j/(t2+1))*X[i]; //エラー箇所
46
+
47
+ cplex.addLe(array1[i],a);
48
+
49
+ }
50
+
51
+ }
52
+
53
+ }
54
+
55
+ ```
56
+
57
+ 制約式(1)
58
+
59
+ X[2]+X[3]+X[4]+2X[5]+2X[6]+2X[7]+3X[8]+3X[9]+3X[10]= 3
60
+
61
+ 制約式(2)
62
+
63
+ X[2]<=a
64
+
65
+ X[3]<=a
66
+
67
+ X[4]<=a
68
+
69
+ 2X[5]<=a
70
+
71
+ 2X[6]<=a
72
+
73
+ 2X[7]<=a
74
+
75
+ 3X[8]<=a
76
+
77
+ 3X[9]<=a
78
+
79
+ 3X[10]<=a
80
+
81
+ という風に制約式を作りたいです。
82
+
83
+ 制約式(1)の各項が全て変数a以下になるように制約を加えたものが制約式(2)になります。
84
+
85
+ (1)の方は問題ないのですが、(2)で
86
+
87
+ 「演算子 * は引数の型 int, IloIntVar で未定義です」
88
+
89
+ と表示されてしまいます。
90
+
91
+ 係数j/(t2+1)と各項X[i]を掛けて配列array1に代入し、それをforで回して求めようとしてます。
92
+
93
+ 演算子が未定義というのもよくわかりません。
94
+
95
+ 原因がわかる方、よりスマートな書き方があれば教えて頂きたいです。

1

goji

2018/11/27 02:52

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,115 +1 @@
1
- ```java
2
-
3
- コード
4
-
5
- public class Automation {
6
-
7
-  static public void main(String[] args) throws IloException {
8
-
9
- IloCplex cplex = new IloCplex();
10
-
11
-
12
-
13
- int t1 =3
14
-
15
- int t2 =2;
16
-
17
- int a=2;
18
-
19
-
20
-
21
- //変数の定義
22
-
23
- int tmax = Math.max(t1, t2);
24
-
25
- IloIntVar[] X = cplex.intVarArray((t1+1)*(t2+1)-1,0,tmax);
26
-
27
-
28
-
29
- //制約式(1)
30
-
31
- IloLinearNumExpr sum = cplex.linearNumExpr();
1
+ wsdedewddedededwedddsaeewdwedewvvrefesxdccsdwcd
32
-
33
- for(int i=0, j=1; i<X.length; i++,j++) {
34
-
35
- sum.addTerm((int)j/(t2+1),X[i]);
36
-
37
- cplex.addLe(sum1,t1);
38
-
39
- }
40
-
41
- cplex.addEq(sum1,t1);
42
-
43
-
44
-
45
-
46
-
47
- //制約式(2)
48
-
49
- IloIntVar[] array1 = cplex.intVarArray(X.length,0,t1*tmax);
50
-
51
- for(int i=0, j=1; i<X.length; i++,j++) {
52
-
53
- array1[i]= (j/(t2+1))*X[i]; //エラー箇所
54
-
55
- cplex.addLe(array1[i],a);
56
-
57
- }
58
-
59
- }
60
-
61
- }
62
-
63
-
64
-
65
- ```
66
-
67
- 制約式(1)
68
-
69
- X[2]+X[3]+X[4]+2X[5]+2X[6]+2X[7]+3X[8]+3X[9]+3X[10]= 3
70
-
71
-
72
-
73
- 制約式(2)
74
-
75
- X[2]<=a
76
-
77
- X[3]<=a
78
-
79
- X[4]<=a
80
-
81
- 2X[5]<=a
82
-
83
- 2X[6]<=a
84
-
85
- 2X[7]<=a
86
-
87
- 3X[8]<=a
88
-
89
- 3X[9]<=a
90
-
91
- 3X[10]<=a
92
-
93
-
94
-
95
-
96
-
97
- という風に制約式を作りたいです。
98
-
99
- 制約式(1)の各項が全て変数a以下になるように制約を加えたものが制約式(2)になります。
100
-
101
-
102
-
103
- (1)の方は問題ないのですが、(2)で
104
-
105
- 「演算子 * は引数の型 int, IloIntVar で未定義です」
106
-
107
- と表示されてしまいます。
108
-
109
-
110
-
111
- 係数j/(t2+1)と各項X[i]を掛けて配列array1に代入し、それをforで回して求めようとしてます。
112
-
113
- 演算子が未定義というのもよくわかりません。
114
-
115
- 原因がわかる方、よりスマートな書き方があれば教えて頂きたいです。