teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

6

2018/11/05 01:10

投稿

reina1125
reina1125

スコア21

title CHANGED
File without changes
body CHANGED
@@ -15,38 +15,11 @@
15
15
 
16
16
  ```java
17
17
  コード
18
- package sample;
19
18
 
20
- import ilog.concert.IloException;
21
- import ilog.concert.IloIntVar;
22
- import ilog.concert.IloLinearNumExpr;
23
- import ilog.concert.IloNumExpr;
24
- import ilog.cplex.IloCplex;
25
-
26
-
27
- public class sample1 {
28
- static public void main(String[] args) throws IloException {
29
-
30
- IloCplex cplex = new IloCplex();
31
-
32
- cplex.setOut(null);
33
- cplex.setWarning(null);
34
- int c = 1;
35
-
36
- //変数の定義
37
- IloIntVar X1 = cplex.intVar(0,2);
38
- IloIntVar X2 = cplex.boolVar();
39
- IloIntVar X3 = cplex.intVar(0,3);
40
- IloIntVar X4 = cplex.intVar(0,2);
41
- cplex.addMaximize(
42
- cplex.sum( new IloNumExpr[]{
43
- cplex.prod(20.0, X1), cplex.prod(50.0,X2), cplex.prod(20.0, X3),
44
- cplex.prod(50,X4} )
45
- );
46
19
  if(cplex.solve()) {
47
20
 
48
21
  for (int i = 0; i <= 3; i++) {
49
- for (int j = 0; j <= 2 ; j++) {
22
+ for (int j = 0; j <= 2 ; {
50
23
  if(i+j!=0) {
51
24
  for (int k = 0; k<=4; k++) {
52
25
  IloIntVar[] num = {X1,X2,X3,X4};

5

2018/11/05 01:10

投稿

reina1125
reina1125

スコア21

title CHANGED
File without changes
body CHANGED
File without changes

4

2018/11/05 01:09

投稿

reina1125
reina1125

スコア21

title CHANGED
File without changes
body CHANGED
File without changes

3

2018/11/05 01:09

投稿

reina1125
reina1125

スコア21

title CHANGED
File without changes
body CHANGED
File without changes

2

2018/11/05 01:08

投稿

reina1125
reina1125

スコア21

title CHANGED
File without changes
body CHANGED
@@ -1,18 +1,5 @@
1
- X1=(0,1)=X1の値
2
- X2=(0,2)=X2の値
3
- X3=(1,0)=X3の値
4
- X4=(1,1)=X4の値
5
- X5=(1,2)=X5の値
6
- X6=(2,0)=X6の値
7
- X7=(2,1)=X7の値
8
- X8=(2,2)=X8の値
9
- X9=(3,0)=X9の値
10
- X10=(3,1)=X10の値
11
- X11=(3,2)=X11の値 という形にしたいです。
12
-
13
1
  下記のコードで実行したところ、下のようなエラーが出てしまいます。
14
2
  原因がわかる方、よろしくお願いします。
15
- また、改善点やスマートな書き方があれば、教えて頂きたいです。
16
3
 
17
4
 
18
5
  X1=(0,1)=Exception in thread "main" java.util.IllegalFormatConversionException: d != ilog.cplex.CpxNumVar
@@ -51,31 +38,18 @@
51
38
  IloIntVar X2 = cplex.boolVar();
52
39
  IloIntVar X3 = cplex.intVar(0,3);
53
40
  IloIntVar X4 = cplex.intVar(0,2);
54
- IloIntVar X5 = cplex.boolVar();
55
- IloIntVar X6 = cplex.boolVar();
56
- IloIntVar X7 = cplex.boolVar();
57
- IloIntVar X8 = cplex.boolVar();
58
- IloIntVar X9 = cplex.boolVar();
59
- IloIntVar X10 = cplex.boolVar();
60
- IloIntVar X11 = cplex.boolVar();
61
-
62
- //目的関数の最大化
63
41
  cplex.addMaximize(
64
42
  cplex.sum( new IloNumExpr[]{
65
43
  cplex.prod(20.0, X1), cplex.prod(50.0,X2), cplex.prod(20.0, X3),
66
- cplex.prod(50.0,X4), cplex.prod(80.0, X5), cplex.prod(50.0, X6),
67
- cplex.prod(90.0,X7), cplex.prod(110.0, X8), cplex.prod(100.0,X9),
68
- cplex.prod(120.0, X10), cplex.prod(200.0, X11)} )
44
+ cplex.prod(50,X4} )
69
45
  );
70
-
71
- //モデルを解く
72
46
  if(cplex.solve()) {
73
47
 
74
48
  for (int i = 0; i <= 3; i++) {
75
49
  for (int j = 0; j <= 2 ; j++) {
76
50
  if(i+j!=0) {
77
- for (int k = 0; k<=10; k++) {
51
+ for (int k = 0; k<=4; k++) {
78
- IloIntVar[] num = {X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11};
52
+ IloIntVar[] num = {X1,X2,X3,X4};
79
53
  System.out.printf("X%d=(%d,%d)=%d \n", c++, i, j,num[k]);
80
54
  }
81
55
  }

1

2018/11/05 01:08

投稿

reina1125
reina1125

スコア21

title CHANGED
File without changes
body CHANGED
File without changes