Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

Test

...

Eclipse

...

Open

...

eclipse

...

and

...

select

...

your

...

workspace.

...

If

...

you

...

start

...

out

...

with

...

a

...

blue

...

screen

...

with

...

some

...

circular

...

buttons

...

saying

...

Welcome

...

,

...

Tutorial

...

,

...

etc.,

...

click

...

Go

...

to

...

Workbench

...

.

...

Otherwise,

...

you

...

are

...

already

...

at

...

the

...

workbench.

...

Go

...

to

...

File

...

...

New

...

...

Java

...

Project

...

.

...

Name

...

your

...

project

...

sandbox

...

,

...

then

...

click

...

the

...

button

...

Finish

...

.

...

You

...

now

...

have

...

a

...

new

...

project

...

!

...

In

...

the

...

Package

...

Explorer

...

(left

...

side)

...

right

...

click

...

the

...

arrow

...

next

...

to

...

sandbox

...

to

...

expand

...

the

...

project.

...

Right

...

click

...

on

...

the

...

src

...

folder

...

and

...

then

...

go

...

to

...

new

...

...

class

...

.

...

Name

...

the

...

class

...

TestClass

...

.

...

Under

...

"Which

...

method

...

stubs

...

would

...

you

...

like

...

to

...

create?"

...

check

...

the

...

box

...

next

...

to

...

public

...

static

...

void

...

main(String

...

[

...

]

...

args)

...

.

...

Hit

...

the

...

Finish

...

button.

...

Then

...

replace

{
Code Block
}// TODO Auto-generated method stub{code}

by

{code}

by

Code Block
System.out.println("Hello World!");{code}

Save

...

the

...

file

...

TestClass.java

...

by

...

hitting

...

Ctrl+s

...

or

...

the

...

save

...

button

...

(top

...

left

...

on

...

the

...

menu

...

bar).

...

To

...

run

...

your

...

code,

...

go

...

to

...

the

...

top

...

center

...

of

...

the

...

menu

...

bar

...

and

...

hit

...

the

...

run

...

icon

...

(its

...

a

...

green

...

circle

...

with

...

a

...

white

...

arrow

...

inside),

...

or

...

go

...

to

...

the

...

menu

...

bar

...

and

...

hit

...

Run

...

...

Run

...

.

...

The

...

Console

...

should

...

pop

...

up

...

on

...

the

...

bottom

...

with

...

the

...

output

...

of

...

your

...

program.

...

Test

...

Cplex

...

from

...

Eclipse

...

Open

...

Eclipse

...

and

...

expand

...

the

...

sandbox

...

project

...

we

...

created

...

previously.

...

Create

...

a

...

new

...

class

...

called

...

KnapsackSolver

...

.

...

Next

...

we

...

are

...

going

...

to

...

connect

...

to

...

Cplex.

...

Right

...

click

...

on

...

sandbox

...

in

...

the

...

package

...

explorer

...

and

...

select

...

new->folder

...

.

...

Give

...

it

...

the

...

name

...

lib

...

and

...

click

...

Finish

...

.

...

Find

...

the

...

file

...

cplex.jar

...

in

...

your

...

Cplex

...

installation.

...

On

...

my

...

Windows

...

installation,

...

it

...

was

...

located

...

at

...

  • Windows:

...

  • C:\Program

...

  • Files\IBM\ILOG\CPLEX_Studio125\cplex\lib\cplex.jar

...

  • Linux:

...

  • /opt/IBM/ILOG/CPLEX_Studio125/cplex/lib/cplex.jar

...

  • Mac:

...

  • /Users/<yourusername>/Applications/IBM/ILOG/CPLEX_Studio125/cplex/lib/cplex.jar

...

Copy

...

the

...

file

...

cplex.jar

...

and

...

paste

...

it

...

in

...

the

...

newly

...

created

...

lib

...

folder

...

in

...

our

...

project.

...

Right

...

click

...

on

...

sandbox

...

in

...

the

...

package

...

explorer,

...

then

...

select

...

Build

...

Path

...

...

Configure

...

Build

...

Path...

...

Select

...

the

...

Libraries

...

tab,

...

then

...

hit

...

the

...

Add

...

JARs

...

button

...

(see

...

here

...

for

...

an

...

explanation

...

of

...

what

...

all

...

these

...

buttons

...

do).

...

Select

...

the

...

file

...

sandbox/lib/cplex.jar

...

,

...

then

...

hit

...

OK

...

until

...

we

...

have

...

exited

...

all

...

the

...

menus.

...

Open

...

up

...

KnapsackSolver

...

and

...

replace

...

the

...

text

...

of

...

the

...

file

...

with

...

the

...

following:

{
Code Block
}
import java.util.Arrays;
import ilog.concert.IloException;
import ilog.concert.IloIntVar;
import ilog.cplex.IloCplex;

public class KnapsackSolver {

	public static double[] solveKnapsack(double[] values, double[] weights, double capacity){
		if(weights.length != values.length){
			throw new RuntimeException("values.length was " + values.length
					+ " and weights.length was" +  weights.length
					+ " but they must be the same");
		}
		try {
			IloCplex cplex = new IloCplex();
			IloIntVar[] x = cplex.boolVarArray(values.length);
			cplex.addLe(cplex.scalProd(x, weights), capacity);
			cplex.addMaximize(cplex.scalProd(x, values));
			cplex.solve();
			return cplex.getValues(x);
		} catch (IloException e) {
			throw new RuntimeException();
		}
	}

	public static void main(String[] args){
		double[] values = new double[]{2,4,5,6};
		double[] weights= new double[]{2,3,4,7};
		double capacity = 8;
		double[] solution = solveKnapsack(values,weights,capacity);
		System.out.println(Arrays.toString(solution));
	}
}
{code}

Run

...

the

...

code.

...

The

...

final

...

line

...

of

...

output

...

should

...

of

...

course

...

be

...

[0.0,

...

1.0,

...

1.0,

...

0.0

...

]

...

,

...

up

...

to

...

some

...

precision.

...

Upload

...

the

...

output

...

of

...

the

...

program

...

as

...

your

...

assignment

...

here

...

If

...

you

...

get

...

the

...

error

...

Exception

...

in

...

thread

...

"main"

...

java.lang.UnsatisfiedLinkError:

...

ilog.cplex.Cplex.CPXopenCPLEX(

...

[I)J

...

then

...

your

...

PATH

...

was

...

not

...

set

...

properly.

...

The

...

easiest

...

way

...

to

...

deal

...

with

...

this

...

is

...

to

...

add

...

a

...

virtual

...

machine

...

argument

...

to

...

the

...

Run

...

Configuration.

...

Starting

...

from

...

the

...

menu

...

bar

...

at

...

the

...

top,

...

select

...

Run

...

...

Run

...

Configurations...

...

and

...

then

...

on

...

the

...

left,

...

make

...

sure

...

Java

...

Application

...

...

KnapsackSolver

...

is

...

selected.

...

In

...

the

...

center

...

panel,

...

pick

...

the

...

(

...

x

...

)=Arguments

...

tab.

...

In

...

the

...

second

...

box,

...

titled

...

VM

...

Arguments

...

,

...

add

...

the

...

line:

...

  • Linux:

...

  • -Djava.library.path=/opt/ibm/ILOG/CPLEX_Studio125/cplex/bin/x86-64_sles10_4.1

...

  • Windows:

...

  • -Djava.library.path="C:\Program

...

  • Files\IBM\ILOG\CPLEX_Studio125\cplex\bin\x64_win64"

...

  • Mac:

...

  • -Djava.library.path=/Users/<yourusername>/Applications/IBM/ILOG/CPLEX_Studio125/cplex/bin/x86-64_darwin

...

As

...

you

...

can

...

see,

...

the

...

VM

...

argument

...

is

...

telling

...

java

...

the

...

directory

...

that

...

the

...

c

...

code

...

of

...

cplex

...

is

...

located

...

in.

{:=
Warning
title
Warning
}

If

your

VM

argument

would

have

a

space,

you

need

to

put

quotes

around

it,

as

in

the

Windows

example

above.

{warning}

Finally,

...

hit

...

Run

...

on

...

the

...

bottom.