►
Description
Get your espresso ready for the EMEA OpenShift Coffee Break as we welcome our special guest Geoffrey De Smet to talk about Optaplanner, a lightweight, embeddable open source AI constraint satisfaction engine which optimizes planning problems.
Twitch: https://red.ht/twitch
A
A
A
A
Good
morning,
good
morning,
everyone
welcome
back
to
the
openshift
tv
coffee
break.
Today
we
have
a
special
episode
about
artificial
intelligence
with
optoplanner.
Before
going
into
the
introduction
of
our
special
guest,
let
me
say:
bonjourno
andrea.
How
are
you.
A
A
Everything's
good
bye,
good
yeah
today,
the
the-
if
you,
if
you
look
at
the
title
of
the
show,
the
it's
opta
planner
ai
planning,
optimization
on
kubernetes,
we
will
see
how
and
before
we
go
into
all
the
context.
Of
course
we
have
our
our
plan
today,
andrea.
We
have
some
some
some
introductions,
a
quick
round
of
quick
round
introduction.
Then
we
have
some
slides
and
then,
of
course,
joffrey
brings
us
to
the
live
demos.
We
we,
we
have
a
preference
here
for
live
demos,
that's
cool!
A
So
jeffrey.
Can
you
please
introduce
the
topic
for
us
and
for
the
people
attending
in
the
chat.
Please
send
your
question
we
will
bring
to
to
the
to
to
the
speaker.
Please
send
your
question
in
the
chat
and
we
will
bring
to
the
to
the
show.
D
C
So
I'll
talk
about
optimize
planning,
optimization
and
that's
that's
quite
so.
It's
a
form
of
artificial
intelligence,
but
it's
not
like
deep
learning,
neural
nets
or
machine
learning.
It's
actually
an
alternative
form
and
when
I
dive
into
the
slides
in
a
few
minutes,
I'll
actually
go
show
you
the
differences
between
those
I'll.
C
Do
some
demos
around
that
I'll
talk
about
vehicle
routing
problems
which
is
which
is
a
an
advanced
form
of
the
traveling
salesman
problem
for
people
who
who
knew
that
knew
that
from
school,
I'll
talk
about
school
time,
tabling
maintenance,
scheduling,
employee
rostering,
all
kinds
of
business
problems
and
how
you
can
solve
them
and
optimize
them
with
ai
to
basically
reduce
costs
and
improve
service,
as
well
as
reduce
carbon
emissions
and
so
forth,
and
any
you
know
weighted
function
between
those
goals
that
you
wanted
to
have
right.
A
That's
cool
yeah,
thanks
for
this
quick
intro
because
yeah.
I
also
had
this
question:
what
is
the
relationship
between
the
artificial
intelligence
and
opta
planner?
So
it's
it's
good
that
we
understand
and
also
jeffrey.
We
would
like
to
understand
today.
You
know:
what's
the
benefit
of
kubernetes
and
openshift
user,
using
this
software
on
their
platform,
how
they
can
use
the
software,
so
we
we
will
see
during
the
show,
but
yeah
thanks
for
this
quick
intro.
C
Sounds
good,
do
you
want
me
to
start
with
some
on
the
first
topic
sure
sure,
okay
I'll?
Just
if
you
can
see
my
slot
my
my
screen
here
we
go.
Yes,
we
can
yeah
okay,
so
I
would
just
like
to
say
that
machine
can
get
rid
of.
Oh
just
sorry
about
that.
C
Yeah,
it
will
hide.
I
guess.
Machine
learning
is
a
subset
of
artificial
intelligence
and
and
most
people
these
days.
A
lot
of
people
seem
to
forget
that
these
days,
so
I'd
like
to
illustrate
that
for
a
minute
right,
so
there's
a
lot
of
ai
algorithms
out
there
and
you
want
to
use
the
right
one
for
the
job
so
presume
you
want
to
do
a
full
text,
search
you
in
like
in
google,
or
something
like
that.
C
D
C
Case
this
pdf
file
that
talks
about
cat
right.
That's
one
problem,
that's
more!
That's!
That's!
That's
a
form
of
an
ai
problem.
Another
one
we
all
know
is
image
recognition.
You
get
a
picture,
you
have
to
figure
out
what
is
shown
on
that
picture,
and
you
know
the
result
of
that.
The
answer
of
that
is.
This
is
a
talk
right
and
another
one.
That's
one
of
what
we'll
be
focusing
is
the
vehicle
routing
problem
where
we
need
to
go
through
a
country,
a
region,
and
we
need
to
do.
C
We
need
to
send
the
number
of
vehicles
to
a
number
of
locations
and
we
need
to
figure
out
in
which
order
and
we
go
to
which
which
location
at
which
time
and
I'll
talk
a
little
bit
more
about
the
the
difficulties
in
that
problem
later.
But
what
we
want
to
get
out
of
there
is.
We
want
to
reduce
the
amount,
the
driving
time
of
these
vehicles.
We
want
to
really
make
sure
that
they
can
do
their
job
faster
and
they
can
do
the
job
more
efficiently.
Right.
D
C
All
of
these
problems
these
days,
a
lot
of
people
say:
okay,
ai,
that's
machine
learning,
machine
learning
is,
in
some
cases,
just
neural
nets,
and
so
neural
nets
will
solve
everything.
That's
not
true,
in
fact,
if
you
want
to
do
a
full
text
search,
what
you
want
to
do
is
you
want
to
use
a
vector
space
mode?
If
you
want
to
do
image
recognition,
you
definitely
want
to
use.
Take
a
look
at
neural
nets.
I
mean
you
want
to
do
vehicle
to
solve
the
vehicle.
Routing
problem.
C
Take
a
look
at
the
constraint
solver
at
mathematical,
optimization.
So
every
every
problem
has
its
own.
You
know
the
reuse,
the
right
tool
for
the
right
job
right.
So
if
you
want
to
do
a
vector
space,
mod
is,
of
course,
more
and
more
useful
than
just
full
text
search.
It's
also
useful
for
recommendations,
similarities.
C
Neural
nets
are
useful
for
any
form
of
pattern.
Recognition
think
about
voice
recognition,
machine
translation,
even
and
also
for
things
like
predictions,
so
forth,
classification
and
then
constrained
solvers
are
useful
for
not
just
vehicle
routing
problems,
but
some
of
the
other
problems.
I'll
talk
about
employee
rostering,
job
scheduling
and
so
forth,
and
if
you
use
the
wrong
algorithm
for
the
for
the
job,
so,
for
example,
a
lot
of
people
have
tried
to
use
neural
nets
on
the
vehicle
routing
problems.
You
will
see
that
their
results
are
poor.
C
A
typical
neural
net
on
the
vehicle
routing
problem
will
not
get
above
a
one
percent
reduction
in
driving
time,
while
a
good
constraint,
while
the
average
constraint
solver
will
easily
get
to
15
and
often
far
more
even
we
have
cases
going
up
to
25
percent
less
driving
time.
So.
B
C
Absolutely
andrea,
so
we've
seen
this
right
so
neural
net.
When
is
an
image
recognition
algorithm,
a
good
one
if
it
can
do
the
job
of
a
human
right,
if
it,
if
you,
if
you
say
okay,
this
is
an
image
and
the
human
can
recognize
if
it's
a
dog
or
a
cat
or
something
else
and
the
algorithm
can
can
get
the
same
output,
then
it's
a
good
algorithm
right
for
for
vehicle
routing
problems
and
then
these
kinds
of
decision
making
problems
optimization
problems,
the
algorithms
do
much
better
than
humans
and
why?
Because
humans?
C
If
you
solve
vehicle
routine
problems-
and
if
I
try
this
once
in
a
class,
I
we
we
gave
them
a
trap.
We
gave
the
entire
group.
B
C
A
C
Is
that
humans
on
average
are
actually
quite
bad
at
these?
These
sets
of
problems
I'll
talk
about
later
planning
problems,
and
but
if
everybody
in
the
room
is
colorblind,
it's
very
hard
to
understand,
there's
other
colors
than
the
ones
you
you
know
you
can
see
right
and,
and
so,
if
everybody
in
the,
if,
if
all,
if
all
of
you,
if
you're
sitting
around
with
the
number
of
humans,
looking
at
the
schedule
of
a
vehicle
routing
problem-
and
everybody
says
okay,
this
is
the
optimal
solution
or.
D
C
Optimal
solution,
you
will,
you
will
actually
group
think
that
that
is
the
near
optimal
solution
until
you
throw
a
real
constraint,
solver
at
it
right
and
you
can
actually
get
a
better,
better
results
and
and
then
everybody
will
be
able
to
see
okay,
this
isn't
better
results.
But
how
do
you
get
from?
You
know
that,
worse
result
to
that
better
result.
It's
hard
as
a
human.
It's
hard
to
see
that.
C
So
le
and
of
course,
the
technologies
you
can
use
for
these
depends,
but
I'm
going
to
talk
specifically
about
optical,
which
is
an
open
source
constraint.
Solver
apache,
license
sponsored
by
red
hat
and
I'll
also
show
you,
of
course,
how
this
works
on
openshift
and
I'll
show
some
use
cases
of
this
right.
C
C
So
what
is
a
planning
problem?
That's
the
that's!
The
kind
of
planning,
the
kind
of
problems
we're
going
to
solve.
It's
when
you
want
to
optimize
goals
like
maximize
profits,
minimize
ecological
footprint,
maximize
happiness
of
employees
or
customers,
improve
improve
service
quality
and
things
like
that,
and
you
might
want
to
try
to
optimize
all
of
these
goals
or
a
subset
of
these
or
a
weighted
function
between
those
you
might
say.
Okay,
profit
is
more
important
for
me,
but
I
still
want
to
do
minimize
my
ecological
footprint.
C
While
I
do
that
right
or
vice
versa,
and
you
when
you
want
to
optimize
these
goals,
you
have
to
do
that
with
limited
resources.
You
have
a
number
of
employees
with
certain
amounts
with
certain
skills
you
have
assets
like
in
the
vehicle
routing
problem
vehicles
which,
with
maybe
different
types,
different
sizes
and
so
forth.
You
have,
of
course,
time
which
is
the
most
limited
resource
of
all.
C
I
would
argue,
and
and
in
some
cases
you
also
have
budget
constraints
like
we
can
only
you
know,
make
these
kinds
of
decisions
that
already
written
budget
and
there's
constraints.
There's
the
there's
the
these.
These.
These
limited
resources
have
constraints
against
each
other.
Typically
right,
a
driver
needs
to
protect,
have
a
particular
skill
to
go
to
a
particular
location
or
needs
to
have
a
particular
skill
to
drive
a
particular
vehicle,
sometimes
there's
working
hours,
for
example,
in
a
vehicle
routing
problem.
C
When
you're
sending
drivers
to
go
to
different
locations
across
the
country,
they
need
to
complete
that
trip
within
8
hours
or
10
hours,
depending
on
the
length
of
their
shift,
or
it
might
be
longer
in
some
cases,
but
we
have
constraints
you
and,
and
of
course
a
person
cannot
be
in
two
places
at
the
same
time
and
then
and
there's
other
cases
like
that.
So
I'm
and
of
course
what
you
can
use
for
this
is
optic
planner.
C
It's
not
open
source
bachelor
license
solver
for
that,
and
it
will
help
you
find
better
solutions
in
time
and
scale
out
now,
yeah
one
more
slide
before
I
get
to
something
some
use
cases
and
then
some
demos.
I
think
it's
just
called
the
ability
about
this.
We
have
on
one
side,
opto
works
for
java
and
kotlin,
and
so,
but
we
also
have
an
an
python
implementation.
I'll
talk
about
in
a
second
and
then
on,
if
you
use
it
in
java
or
colton,
you
can
use
this
in
plain
java.
C
You
can
use
it
in
carcass
or
you
can
use
it
in
spring.
I'm
going
to
focus
today
on
corkus.
C
Why
corcus
gives
us
a
number
of
benefits,
speedwights,
but
also
developer
and
ver
experience,
wise
and
I'll
show
those,
and
it
also
makes
it
easier
to
deploy
it
on
openshift,
because
it
does
a
lot
of
the
the
boilerplate
stuff
for
you
out
of
the
box,
and
today
I'm
going
to
use
maven,
but
you
could
build
this
with
maven
or
gradle,
or
you
know
you
could
probably
with
any
other
tool
too,
but
these
are
the
two
major
ones
in
java
and
kotlin
ecosystem.
These
days.
C
Of
optoplanner
it
actually
uses
optoplanner
under
the
hood,
but
you
don't
see
that
as
a
python
user,
you
can
write
all
of
your
code
in
python
and
just
run
it
and
it
uses
pi
pip.
It's
actually
deployed
on
pi
pi,
so
you
can
just
do
pip
install
opto
pi
and
you
can
start
working
from
it
from
python.
Today,
I'm
going
to
show
when
I'll
dive
into
the
code
for
some
demos,
I'll
I'll,
do
the
java,
but
any
of
the
things
I'm
showing
here
today.
You
can
actually
do
it
in
kotlin
or
python
2..
C
That's
what
we'll
focus
on
today
right.
So
let's
talk
about
an
actual
use
case,
so
I've
mentioned
a
few
times.
The
vehicle
routing
use
case
just
to
clearly
specify
what
it
is
and
why
you
would
want
to
actually
solve
this
problem
with
the
constraint
solver.
So
we
need
to
assign
number
of
vehicles.
You
can
see
them
here
to
a
number
of
locations
across
the
country
and
we
need
to
decide
which
vehicle
goes
to
which
location
and
in
which
order.
C
Do
those
vehicles
go
to
those
locations
and
just
think
about
that
if
you
have
100
locations,
if
you
have
10
vehicles,
how
many
possible
ways
could
you
do
that
to
give
you
an
id?
It's
not
a
billion
ways.
It's
it's!
Probably
more!
A
billion
billion
billion
billion
billion
billion
billion
billion
ways.
It's
it's
the
number
of
the
search
base.
The
number
of
ways
you
can
go
to
a
number
of
locations
with
the
number
of
vehicles
is:
is
insanely
big?
It's
a
permutation!
It's
a
mathematical
formal!
C
I
won't
dive
into
that
today,
but
it's
it's
fun.
If
you
go
into
the
math
side
of
things
and
of
course,
what
what
are
the
constraints
with
this?
So
there's
a
number
of
constraints.
For
example,
the
vehicle
has
a
certain
capacity,
it
can
only
carry
10
20
tons
and
you
have
to
deliver
10
tons
here
and
three
tons
there,
or
maybe
it's
not
actually
delivering
items.
Maybe
it's
actually,
for
example,
installing
cable
in
people's
houses.
C
You
know,
technicians
who
are
driving
around
the
country
and
in
those
cases
it's
the
amount
of
time
they
can
drive
around
that
it's
limited.
They
have
to
finish
their
job
within
eight
hours
and
they
might
spend
two
hours
here,
five
hours
there
right
and
then,
of
course,
there's
the
driving
time
you
have
to
take
into
account
too
or
there
might
be
requirements,
for
example,
for
this
location,
that's
an
expensive
delivery.
You
need
an
armored
vehicle,
but
that
might
also
be
a
skill
requirement.
You
need
right
for
this
location.
C
We
need
somebody
who
can
install
a
cable,
so
I
can
install
cable
and
internet,
so
we
should
send
a
technician
with
that
particular
skill
set.
You
might
have
time
windows,
you
know
when
a
technician
comes
to
in
to
install
internet
at
your
home.
They
probably
is
probably
promised
to
come
in.
You
know
between
eight
and
twelve
o'clock
or
in
this
case,
between
eight
and
ten.
D
C
And
then,
of
course,
the
big
the
biggest
one
is
you
wanna
reduce
the
driving
time
right
and,
and
so
you
might
have
this
on
all
kinds
of
users,
supermarket
retail
stores
and
so
forth.
And
so
let
me
show
you
a
demo
of
that.
C
So
what
I've
done
here
is
I've
started
and
if
there's
any.
A
Questions
no
jeffrey,
there's
a
comment
in
the
chat
from
donato
say:
can
I
agreeing
what
you
say?
No
neural
network
is
the
best
case.
Can
mimic
the
human
brain
but
usually
defends
in
the
most
tricky
cases
where
human
brain
has
no
problem
and
he
say
constrained
solvers
always
achieve
better
result
than
human
brain
was
a
kind
of
explain.
A
Right
so
yeah
it
was
a
kind
of
donato.
Thanks
for
your
comment,
I
don't
know
we
know
he's
big
fan
of
artificial
intelligence
and
opta
planner.
This
was
the
comment
that
we
had
so
far
in
the
chat.
If
any,
we
will
bring
it
to
you.
So
if
you
have
any
question,
the
topic
looks
really
interesting.
To
be
honest,
I
also
send
a
tweet
live.
If
you
want
to
jump
into
the
discussion,
it
looks
very,
very
cool
thanks.
C
Thank
you
natalie.
So
what
I've
done
here
is
I've.
Actually,
let
me
just
show
you
so
what
I've
done
is
I've
gone
to
planner.org
I've
gone
to
the
clone.
The
restarts
code
over
here
and
in
here
there
is
the
script
run,
quick
start
from
source.
I've
run
the
as
h1
on
linux
here,
but
there's
a
one
for
windows,
2
of
course,
and
then
you
can
run
all
of
the
quickstart
and
then
it
actually
runs
this
application,
which
I've
just
shown
you.
C
It
shows
me
all
of
the
optoplanner
quickstarts
now
all
of
these
can
also
be
deployed
on
openshift
and
I'll
show
that
in
a
minute
how
to
do
that.
But
right
now
I'm
running
it
this
one
locally.
I've
started
up
the
vehicle
routing
demo
here,
so
I've
clicked
the
launch
button,
and
now
it's
running
on
the
sport
82,
so
I'll
just
go
there.
This
is
the
vehicle.
D
C
Example-
and
so
in
this
case
we
need
to
send
from
these
two
locations.
We
have
a
number
of
the
vehicles
there.
You
can
see
the
vehicles
here
on
the
side.
We
have
to
have
different
colors.
We
need
to
send
them
to
the
to
these
locations
here
to
and
we
need
to
figure
out
which
vehicle
goes
to
which
location
in
which
order.
So
we
click
the
solve
button
on
the
top
right
and
when
we
do
that,
opto
planner
finds
a
route,
and
you
can
see
that
the
routes
are
still
changing.
C
It's
finding
better
and
better
solutions,
as
we
give
it
more
and
more
time,
but
here
on
the
top,
you
can
actually
see
the
total
distance
right.
So
you
can
see
the
more
time
we
give
it
the
less
distance
it
takes
to
actually
do
this
right
now.
This
use
case
is
this:
implementation
is
optimized
on
distance,
but
in
a
real
world
use
case,
you
would
use
google
maps
integration.
We
have
a
more
advanced
example
that
shows
that
too
how
to
do
that
or
street
map.
C
Indeed,
and
then
you
would
not
use
distance,
but
you
would
use
time
right
because
you
want
to
reduce
the
amount
of
travel
time
typically
now.
C
The
travel
time
you
will
reduce
distance
typically
too.
Usually
it's
a
win-win
situation,
but
there's
some
exceptions.
Of
course.
Now
you've
seen
we've
solved
this
for
about
30
seconds
and
we've
reduced
the
the
distance
down
to
84
kilometers
right.
So
we
started
above
100
kilometers.
I
think
even
105
him,
if
I'm,
if
I
recall
correctly,
so
it
really
reduced
it
by
maybe
20
on
30
seconds
now
we
actually
had
this
in.
C
We
had
actually
have
this
in
production
all
over
the
world
for
all
kinds
of
vehicle,
routine
cases,
but
one
sticks
out.
There's
one
use
case
where
there
the
management
was
doing
this
for
tens
of
thousands
of
vehicles
on
on
on.
C
A
continent
and
they
expected
their
driving
time
to
reduce
by
one
percent,
and
it
was
25.
So
imagine
that
you
have
you,
your
company
can
all
of
a
sudden,
reduce
their
driving
time
by
25.
This
was
year
over
year
right.
This
was,
they
were
doing
it
for
decades.
They
were
doing
it
in
a
certain
way,
with
human
planners
or-
or
you
know,
traditional
algorithms
combination
of
those,
and
then
year
of
the
year
they
switched
to
constrained
solvers.
C
That
was
tens
of
millions
of
co2
emissions
per
year,
less,
which
was
nice,
but
they
really
liked
the
fact
that
it
also
reduced
their.
You
know
increased
their
operating
efficiency
by
more
than
100
million
dollars
per
year,
simply
because
they
were
driving
less
around,
so
the
people,
the
technicians,
could
actually
do
more
work
than
being.
You
know,
actually
help
customers
instead
of
driving
around
more
and
that.
D
C
Huge
difference,
of
course,
as
you
can
imagine,
but
it's
not
just
vehicle
routing
you
can
solve.
You
can
solve
and
plea
rostering
too.
So,
what's
employee
rostering,
you
need
to
assign
a
number
of
shifts
like
a
morning
shift
an
afternoon
shift
an
evening
shift
to
number
of
employees.
You
can
see
here
they
have
different
skills
and
you
need
to
decide
which
shifts
is
done
by
which
employee
so,
for
example,
so,
for
example,
this
morning
shift
here
from
6
to
2
to
2
pm
is
assigned
to
this
nurse.
Now
you
have
a
number
of
constraints.
C
Constraints
like
you
require
this
particular
certain
shifts
require
particular
skills.
So
you
need
to
have
an
employee
assigned
to
that
which
actually
has
that
skill
you
might
have.
You
have
constraints
that
you
can
only
have
one
shift
per
day
for
four
employees.
C
Maybe
in
some
cases
you
have
employees
who
can
actually
do
double
shifts,
but
that
might
depend
on
the
property
of
the
employee.
Of
course,
you
can
have
weekend
work
no
weekend
work
for
certain
things,
and
these
are
what
we
call
hard
constraints.
That
means
we
need
to
fulfill
them,
but
optopanel
can
also
deal
with
soft
constraints.
So
soft
constraints
are
things
like
there's
a
day
off
request.
This
particular
employee
says
I
don't
want
to
work
on
friday.
C
She
wants
to
take
care
of
her
grandchildren
or
something
like
that
right
or
his
grandchildren
right,
but
so
they
do
a
day
off
request
and
they
ask
you
know
I'm
not
going
to
take
pto,
but
please
avoid
giving
me
shifts
on
friday
and
when,
if
you
can
fulfill
those,
the
employees
are
happier
and
so
we're
going
to
try.
So
what
we
do
is
what
the
algorithm
does.
It
tries
to
fulfill
those
as
much
as
possible.
Other
things
are
things
like
forward
rotation
to.
B
C
Sure
that
the
employees
have
enough
sleep
between
two
shifts
and
that
they
don't
have
you
know
they
have
to
get
weekends
days.
They
don't
have
more
than
five
consecutive
shifts
and
things
like
that
right
and
so
uses
for
hospital
it.
Actually,
this
works
for
any
kind
of
employees
that
don't
work
nine
to
five.
C
So
if
you
have
a
morning
and
a
late
shift,
that's
a
typical
case,
but
you
could
also
have
night
shifts
with
or
without
weekend
work,
but
any
kind
of
situation
where
we
see
there
are
shifts.
We
need
people
to
staff
a
particular
job
at
a
particular
time,
and
it's
not
just
nine
to
five.
You
will
find
that
employee
rostering
can
is
something
that
that's
very
applicable,
and
so
we
try.
So
we
have
some
benchmarks
around
this
traditional
algorithms
versus
opt-up,
planner
and
so
forth.
C
A
number
of
academic
data
sets
what
we
see
that
on
average,
we
reduce
the
we
reduce
the
number
of
rejected
day
off
requests
in
total.
We
fulfill
all
of
the
hard
constraints
and
there's
the
number
a
whole
bunch
of
soft,
but
most
of
the
soft
constraints.
Most
of
the
impact
is
done
by
that
day
off
requests
and
we
reduce
the
number
of
rejections
by
that
by
more
than
50.
C
So,
basically
more
they
can
say.
Yes,
you
get
your
day
off
request,
50
more
right,
so
in
instead
of
having
to
reject
it
10
times,
you
only
have
to
reject
it
five
times
a
week
and
that
matters
of
course,
because
it
increases
the
the
you
know:
employee
retention,
employee
happiness
right
and
of
course
I
have
a
demo
for
that.
So,
let's
take
a
look.
Let's
see
if
I
started
it
here,
yeah
blue
rusting!
No,
I
haven't
started
yet
so
I'll
just
start
it.
C
So
it
start
it's
loading
right
now
and-
and
let
me
check
if
I've
deployed
it
on
openshift.
No
I've
did
another
one
on
openshift.
So
I'll
have
to
run
this
one
here.
C
Yes
and
I'll
show
you
in
a
minute,
so
the
next
one
is
I'll,
show
them
on
openshift.
I
I
didn't.
It
takes
a
minute
to
build
there,
so
I'm
just
going
to
show
this
one
here
locally.
So
in
this
case
we
have
the
number
of
shifts
right
and
I'm
going
to
you
see
the
shifts
here
all
on
the
side.
It's
particular
departments.
D
C
When
you
click
the
solve
button,
what
you
will
see
is
that
we
start
assigning
these
chat
elsa.
You
can
see
I'll
just
stop
it
for
a
second,
but
it's
assigned
this
particular
person
to
that
shift.
So
it
goes
to
this
shift.
Aim
it
to
this
shift
and
if
you
look
at
it
per
empty,
you
can
see
when
they
get
their
shifts.
You
can
see,
there's
still
a
mistake
here.
C
We
still
have
somebody
in
undesired
shift,
which
is
a
softness
range,
which
means
we
can
break
it
if
you
have
too
little
people
with
with
the
particular
skills
on
on
for
that
shift,
if
you
solve
it
longer.
Typically,
that
will
go
away
and
you
can
see
here
the
score.
Also.
Okay,
so,
like
I
said
you
can
deploy
any
of
these.
So
that's
a
really
good
question.
So,
if
you
go
to
do
the
quick
starts.
C
You
will
find,
and
so,
if
you
start
from
up.org
and
you
click
on
that
link-
I
showed
it
and
earlier
it
goes,
you
click
clone
quick
starts
code.
All
right,
you
can
find
a
list
of
all
those
quick
starts
here.
So
if
we
go
to
the
employee
scheduling
one,
the
police
schedule
and
we
see
a
screenshot
and
we
actually
jump
into
the
readme
of
that
on
the
this-
is
the
carcass
employee
scheduling
one?
C
C
So
so,
if
you
want
to
host
it
on
openshift,
what
you
do
is
you
just
follow
these
instructions,
so
you
get
a
free
developer,
sandbox
openshift
and
then,
when
you
get
r
into
the
web
console
let's
do
this
right
now
we're
going
to
add
so
I'm
going
to
go
to
the
web
console
of
open
shift.
You
can
see
I'm
in
the
developer
mode
and
you
can
see.
I
have
a
couple
of
things
running
here,
but
the
employee
sketching
one
is
not
in
there.
C
So
what
I'm
going
to
do
is
I'm
going
to
click
the
add
button,
I'm
going
to
say:
okay,
import
from
a
git
repository.
Why
does
that
work?
Because
if
we
look
into
the
source
code
here
of
employee
scheduling,
you
will
see
there's
an
s2i
directory,
and
so
this
entire
thing
is
built
with
qarcus.
So
if
you
look
into
the
palm
you'll
see
that
we
import,
qarcus
and-
and
it
takes
the
sources
and
builds
that
application-
it's
not.
D
D
C
Just
there's
some
tests
of,
but
it's
basically
there's
a
few
domain
classes.
There's
a
few
test
data
with
this
data
class.
There's
a
bit
of
persistence
a
bit
of
rest.
It's
it's
all
relatively
there's,
not
that
many
files
here,
maybe
10
20
files
and
then,
of
course,
that's
that
there's
an
s2i
directory
which
has
all
the
information
we
need
to
deploy
it
on
on
openshift
right
now.
This
is
a
very
simple
deployment.
It's
just
a
simple
app
I'll
go
through
the
architecture.
Later
we.
B
C
Far
more
advanced
cases
where
we're
integrating
with
an
active
mq
thread,
queue
or
a
kafka
and
so
forth,
and
where
you
can,
you
know,
really
scale
horizontally
as
you
get
more
and
more
data
sets
more
and
more
things
you
need
to
solve,
but
anyway,
to
get
back
to
hosting
it
in
the
cloud.
So
what
I'm
going
to
do
is
I'm
going
to
add
imports
from
the
get
from
a
git
repository
here.
You
can
do
this
right
now,
if
you
want
to,
you
can
just
follow
me.
A
Or
for
people
that
want
to
follow
along
put
the
link
in
the
chat
to
the
developer
sandbox
for
openshift.
This
is
a
free
account
where
you
can
access
your
opera
shift
cluster
in
a
multi-tenant
way,
so
you
register
for
free,
and
then
you
can
have
access
to
the
classes
like
joffrey
is
showing
in
this
moment
he's
deploying
it
in
developer
sandbox,
and
then
you
can
follow
along
with
the
quick
start.
A
I
I
guess
no
just
step
by
step
and
doing
la
as
he's
doing
you,
I
guess
jeffrey
you're,
doing
a
kind
of
a
search
to
image,
build
so
you're,
starting
from
the
repository
and
then
openshift
will
create
a
container
image.
I
don't
know
if
there
are
also
docker
files
in
the
source
code
that
people
can
also
use
for
creating
the
container.
Also
openshift
can
use
that
docker
file,
yeah.
C
So
right
now
we
just
use
source
image
for
these
examples,
but
we
have
a
couple
of
other
examples:
we'll
go
further
I'll
and
those
two
in
a
second
I'm
not
sure.
If
I'm
I'm,
I
will
be
able
to
I've,
have
it
set
up
to
to
demo
them
today,
but
I'll
just
let
me
show
this
one
first.
C
So
what
we
do
here
is
I,
I
will
click
add
import
from
git
repo
I've
already
done,
so
I
will
use
that
simple
approach
right
now,
and
so
what
I'll
do
is
set
get
rip
reaper
well,
so
in
here
we
have
to
set
the
git
reaper
url,
so
I'm
going
to
just
paste
it
in
there
I'll
show
advanced
options
now
the
thing
is
this
is
not
in
this
employee
scheduling
here
is
not
in
the
root
of
the
project.
C
The
reason
for
that
is
because
there
is
this
is
the
quick
starts
repo
and
there's
more
than
just
employers
scheduling
in
there
there's
vehicle
routing
in
there
and
so
forth.
So
you
actually
have
to
say
it
actually
within
you
have
to
actually
set
the
context
there.
You
have
to
actually
say:
okay,
please
go
down
into
this
directory
of
use
cases,
employee
scheduling
and
so
I'll.
Do
that,
of
course,
we'll
say
here
you
can
see.
C
C
D
C
It
so
again,
three
things
import,
git,
repo,
you
give
the
repo
url,
you
say:
okay,
I
want
the
the
context
there
to
be
use
cases
and
police
scheduling.
If
you
want
to
do
any
of
the
other
examples,
you
might
say,
use
cases,
vehicle,
routing
and
so
forth,
and
then,
of
course,
give
it
a
unique
name
and
you
do
create
and
as
you
can
see
right
now,
it's
being
started.
The
employee
scheduling,
so
the
one
I
just
run
locally
is
now
being
actually
run
on
openshift.
C
As
you
can
see,
it's
still
loading,
so
the
build
is
running.
So
once
that's
done,
we
should
be
able
to
open
it
and
take
a
look
at
it.
While
we
do
so,
I
just
want
to
show
you
I've
shown
you,
the
vehicle
run
one
vehicle
routing
one
locally
earlier,
but
that
actually
this
I've
actually
built
this
before
this
present
before,
like
an
hour
ago,
I've
deployed
this.
So
now
this
is
actually
available
and
I
can
actually
go
here.
It's
the
same
thing
as
a
as
I
ran
locally,
so
I
can.
C
I
can
click
the
solve
button.
It
solves,
but,
as
you
can
see
here
on
the
top,
this
is
actually
live.
So,
in
fact,
if
you
share
this
with
the
other,
you
can
actually
try
this
right
now
on
your
computer.
The
only
downside
is
that
this
demo
is
built
in
a
way
that
there
is
only
one
data
set.
So
if
multiple
users
will
be
looking
at
this
right
now,
they
will
be
seeing
this
state.
They
will
not
start
from
scratch
right
and
so
yeah.
You
can
try
it
out.
C
You
can
actually
mess
with
my
live
presentation
right
now,
probably,
but
it's
all
it's
all
good.
So
let's
get
back
to
your
string,
so
I've
just
oh
and
burst
over
here.
Let's
see
how
this
is
going
well
I'll
get
back
to
that
in
a
few
seconds
since
it's
building
it's
creating
the
part.
The
op
developer.
C
Sandbox
is
really
nice
to
try
stuff
out,
but
you
have
to
be
a
bit
patient,
of
course,
because
the
the
speed
of
the
builds
and
so
forth
is
less
than
if
you
would
have
a
dedicated
paid
for
solution
of
course.
So
that's
why
I'm
going
to
just
continue
a
bit
and
then
we'll
see
in
a
few
moments
when
it
is
built
there
and
available.
C
I
want
to
talk
about
another
use
case,
maintenance,
scheduling,
and
here
I'm
going
to
focus
on
more
on.
How
does
it
work?
How
how
would
you
use
opto
planner
to
solve
these
kind
of
problems,
and-
and
what
can
you
expect
right
so
in
the
maintenance
scheduling
problem
just
to
introduce
the
use
case?
What
we
need
to
do
is
we
need
to
sign
a
number
of
jobs,
maintenance,
jobs
like
work.
This
is
for
road
maintenance,
specifically
so
like
work
on
the
up,
uptown
streets,
uptown,
bridge
forest
road
airport.
Also,
these
four
jobs.
C
We
need
to
assign
them
to
a
particular
crew
to
handle
that
and
to
particular
date
to
start
that
work,
and
it
will
take
a
number
of
days
to
complete
that
work.
So,
for
example,
the
green
job
takes
three
working
days,
but
the
purple
job
here
takes
four
working
days.
Each
of
these
jobs
can
have
an
earliest
starting
date.
C
That's
their
ready
time
and
has
it
has
a
late
and
latest
possible
end
date,
which
is
their
due
time,
so
every
job
needs
to
be
done
before
a
particular
date
and
it
depends
from
job
to
job
right.
So
you
can
see
here.
The
green
job
needs
to
start
at
the
first
of
november
or
the
2nd
of
november,
because
it
cannot
start
before
that.
C
C
We
there's
also
a
bunch
of
constraints
like
you,
can
only
do
one
job
per
group
per
day
once
you
start
a
job,
you
need
to
finish
it
and
there's
and
there's
might
be
soft
constraints
like
these
two
area.
These
two
jobs,
uptown
jobs,
are
in
the
same
area,
so
we
don't
want.
We
don't
want
to
have
to
have
them
those
in
the
same
time,
at
the
same
time,
because
that
really
increases
the
number
of
traffic
jams
into
a
particular
area
that
is
doing
road
meetings.
C
If
you
have
multiple
road
maintenance
jobs
in
the
same
area.
At
the
same
time,
you
know
traffic
really
goes
goes
crazy,
so
we
do
that.
We
give
these
problems
to
opto
planner,
and
it
gives
a
solution
like
this.
It
does
okay,
you
can
start
the
green
job,
then,
on
with
crew
a
on
the
1st
of
november
and
after
they
finish
there,
they
will
do
the
airport
tunnel
it
laps
over
weekend
days.
C
Of
course,
you
can
add
in
holidays
to
take
into
account
too,
and
it
will
actually
do
the
planning
for
you
taking
into
account
crew
skills
and,
and
things
like
that
now,
how
do
does
the
architecture
look
like?
How
does
this?
How
does
this,
if
you
put
it
on
open
shift?
What
is
the
the
sample
applications?
Architecture
like
I've,
said,
there's
multiple
ways
to
do
the
architecture.
C
C
You
just
say
I
want
to
expose
that
as
a
rest
service
and
we've
used
the
browser
application
to
go
through
that
rest
service
and
actually
show
the
results
of
what
show
how
the
schedule
looks
like
from
the
database,
because
there's
a
database
at
the
back
and
we
contact
threat
again,
indeed,
an
implementation
detail
with
hibernate
and
so
basically
every
time
the
ui
refreshes
it
goes
through.
C
So
let
me
show
that
application
for
a
second.
I
have
it
running
here
on
on
openshift.
So
here
we
go.
This
is
the
main
scheduling
solver.
So
that's
the
application.
You
can
see
it's
running
here
on
openshift.
I
have
a
number
of
understand
jobs.
In
this
case
I
have
20
unsung
jobs
and
you
can
see.
C
Opto
planner
on
openshift
will
start
assigning
these
for
us,
and
you
can
see
the
quality
of
the
solution
here
at
the
top
when
this
number
gets
better
and
better.
Basically,
this
negative
number
goes
gets
closer
to
zero
or
even
above
zero.
You
have
better
and
better
solutions,
which
means
there
are
less
and
less
soft
constraints
broken.
It's
already
feasible
solution,
because
no
hard
constraints
are
broken.
Zero
heart
means
you
can
actually
execute
this
plan,
but
the
reducing
the
soft
constraints
basically
means
the
broken.
C
Soft
constraints
basically
means
you
get
a
higher
quality
solution
which
you
want
right,
so
you
can
see.
I
get
our
results
here.
Let
me
just
scroll
down
all
of
the
jobs
are
assigned.
None
of
these
jobs
are
assigned
outside
of
their
of
their
time
that
they
need
to
be
assigned,
so
no
job
is
to
assign
too
late
or
too
early,
and
you
can
also
see
that
the
crews
nicely
have
a
work
schedule.
C
In
this
case,
I
am
not
front
putting
so
I'm
not
pulling
the
jobs
to
the
front
of
the
schedule,
which
I
could
be
doing,
I'm
actually
just
leaving
them
where
they
are
in
some
cases.
In
some
maintenance
scheduling
you
want
to
do
front
loading.
You
want
to
do
all
the
jobs
as
quickly
as
possible,
but
sometimes
you
don't
want
to
do
that.
You
want
to
do
just
in
time.
Maintenance,
for
example,
cleaning
your
house
is
a
typical
just
in
time
maintenance.
You
don't
want
to.
C
You
know
if
you've
cleaned
your
house
today,
you
don't
and
you
want
to
clean
it
once
a
week.
You
don't
want
to
clean
it
tomorrow,
even
though
you
consider
that
next
week,
what
you
want
to
do
is
you
want
to
clean
it
every
seven
days
right,
you
want
it
just
in
time
and
just
because
before
it
gets
too
dirty
right.
C
It's
the
same
thing
when
you
do
maintenance
on
elevators
or
when
you
do
maintenance
on
electricity
grids
or
railroads
and
so
forth.
You
typically
want
to
delay
your
even
on
airplanes.
You
want
to
delay
until
the
moment
you
you
would
start
it
would.
You
would
start
endangering
or
anything
right
any
any
until
the
moment
the
risk
actually
starts
kicking
so,
for
example,
for
airplanes,
there's
a
requirement
that
they
need
to
have
maintenance
every
48
hours.
So
when
you
do
a
maintenance,
you
don't
want
to
do
maintenance
an
hour
later.
You
want
to
do
it.
C
It's
40
hours,
45
hours
later,
so
you
hit
you
hit
your
48
hours
requirement
for
safety
regulations
and,
and
you
want
to-
and
you
want
wanna
have
a
little
buffer
there,
but
for
efficiency
reasons,
if
you
would
do
it
every
24
hours,
that
would
be
a
very
high
expense,
of
course,
in
non-regulated
environments,
you
need
to
you
know,
there's
a
lot
of
business
constraints
to
take
into
account,
and
you
should
not.
You
know,
increase
the
risk
too
much,
of
course,
but
yeah,
that's
a
business
decision.
C
So
to
get
to
get
back
to
this.
This
is
how
it
works.
This
is
the
thing
and
if
I
want
to
show
you
in
the
code,
if
we
go
to
the
use
cases
and
we
go
to
maintenance
scheduling
here,
as
you
can
see,
you
will
see.
That
is.
C
C
So
there's
this
is
use
cases
they
they
all
work
like
that.
They
just
want
to
show
the
use
case,
but
in
the
technology
directory.
So
we
have
a
directory
use
case
in
the
quick
source,
but
we
also
have
a
technology
directory
one
of
the
technologies
directories
we
have
so
we
have
hearing
all
of
those
use
cases.
I
show
us
with
qarcus,
but
we
have
other
cases
like
if
you
want
to
use
kotlin
instead
of
java
with
carcass
or
you
want
to
use
spring
boot.
C
We
have
those
available
if
you
want
to
use
python.
This
is
actually
a
link
to
our
python.
Quick
starts
where
we
have
one
for
vehicle,
routing,
blue
rostering
and
so
forth
too.
On
python,
we
even
have
python
notebooks
for
there.
If
you
want
to
try
with
that,
but
the
the
one
I
want
to
talk
about
is
the
activemq1.
C
D
D
C
It
says
a
number
of
clients
can
can
have
a
planning
problem,
but
instead
of
having
it
for
instead
of
solving
one
maintenance,
scheduling
for
one
or
solving
one
employee
rostering
for
one
hospital
or
or
you
know,
fecal
routing
for
one
region,
you
might
actually
have
multiple
regions,
you
might
have
multiple
hospitals,
you
might
have
multiple.
C
You
know,
regions
where
you
do
meet
in
scheduling,
and
all
of
these
you
want
to.
You
want
to
be
able
to
solve
those,
and
you
want
to
be
able
to
make
sure
you
scale
horizontally.
Your
number
of
solver
servers
right,
so
you
want
to
have
for
every
problem.
You
have.
You
want
to
start
up
a
pod,
solve
that
and
and
send
the
response
back
to
things,
and
so
one
approach
there
is,
you
use
inactive
mq
broker.
C
You
send
in
your
your
your
solver
request
your
problems
into
that
active
mq
queue,
and
then
your
pods
pick
those
up
solve
those
and
send
them
back.
So
that's
one
thing
we're
working
on,
but
these
days
we're
also
working
on
another
thing.
I
wish
I
could
show
you
today,
but
this
is
still
under
development,
but
we
have
oh,
no,
that's
not
the
one
we
are.
C
I
have
a
public
yet,
but
direct
actually
working
on
also
approach.
Where
use
you,
you
have
an
operator
an
op
operator
for
for
openshift,
and
then
it
can.
It
will
actually
scale
to
zero.
So
when
you
have
no,
when
you
have
no,
you
have
no
pods
running
if
no
data
sets
are
in
the
queue,
but
as
soon
as
data
sets
come
into
the
queue
optical,
planner
will
start
up.
C
C
But
you
can
take
this
use
case.
You
can
take
the
maintenance
scheduling
use
case.
You
can
see
in
the
code
how
we
solve
it,
domain-wise
and
so
forth.
You
can
easily
cut
off
this
top
part
as
rest
service
and
replace
that
with
an
approach
that
works
like
this
cut
off
the
relational
database,
part
and
just
say:
okay,
here's
my
data
sets,
that's
how
we
solve
it.
In
java
or
kotlin
or
python
and
then
hook.
D
C
Into
what
we
will
have
with
the
operator,
for
example,
right
any
questions
so
far.
Anything
in
this
in
the
chat.
A
We
put
the
link
in
the
chat
of
the
blog
post.
We
don't
have
at
the
moment
the
question
if
you
thought,
if
you
have
any
questions,
please
send
in
the
chat
we
will
bring
to
the
show
and
then
I
think
you
are
okay.
I
had.
B
Okay,
okay,
so
I
have
a
number
of
questions
actually
and
one
is.
There
are
a
number
of
different
use
cases
that
you
you
you
show
here,
and
I
would
imagine
that
they
cover
a
let's
say,
different
classes
of
problems
that
can
be
solved,
and
so
they
would
be
the
starting
point
for
somebody
who
wants
to
solve
that.
They'll
have
to
try
and
see
what
which
one
of
these
problems
is
similar,
and
instead
of
starting
from
a
model
from
scratch,
they
can
have
an
example
how
the
model
was
created.
B
Are
all
these
examples
in
in
java
then,
or
do
you
have
the
examples
also
implemented
in
let's
say
python
or
for
the
benefit
of
those
that
may
find
themselves?
You
have
new
generations
that
find
themselves
more
familiar
with
python,
especially
the
ai
crowd.
C
Yes,
very,
very
good
question,
so
we
have
something
called
optipi
and
so
that's
optopy.org
and
in
fact,
if
you
are
on
the
optoplanner
website,
there's
a
link
to
this
too.
If
you
just
click
on
this
python
thing
here
right
and
we
have
jupiter
notebooks,
so
you
can
try,
we
have
jupiter
nooks.
This
is
one
that's
starting
up
right
now,
where
you
can
try
opto
pi
with
with
python,
but
just
to
jump
into
the
quick
starts
here.
Let
me
just
jump
to
the
quick
start.
I
think
we
should.
We
should
link
here
all
right.
C
So
this
is
not
the
quick
start,
but
I'll
just
go
there.
It
starts
so
this
is
the
optopic
starts.
These
are
in
python,
and
so,
for
example,
I
was
talking
about
the
employee,
rostering,
employee
scheduling
one.
You
can
find
the
exact
same
example
here
written
in
python.
So
you
can
see
this
is
the
domain
classes
instead
of
java?
It's
it's
python.
We
have
a
entire.
C
If
you
go.
If
we
go
back
here
to
the
documentation
I
showed
earlier,
we
have
an
entire
quick
start
on
how
to
build
the
school
time
tabling
example,
which
is
the
one
I
was
going
to
get
to
now,
and
how
to
build
this
in
python.
You
just
to
you,
click
install
opto
pi,
and
then
you
start
coding.
You
follow
these
so
yeah.
B
I
was
going
to
ask
if
you
then
have
to
create
a
system
that
works
in
production
at
scale
you
may
want
to.
Then
you
know
down
your
all
your
experiments
to
implement
it
in
quercus.
Maybe.
C
C
Speed
we're
always
making
up
the
planar
octopi,
faster
and
faster,
of
course
right,
but
the
yeah,
the
devil
is
indeed
yes,
so
also
pi
right
now,
delay
is
is,
is
significantly
slower
than
optical
planner.
That's
why
we're
actually
giving
it
a
different
name.
That's
why
we're
not
calling
a
little
planner
but
up
top
pi,
but
we're
working
on
improving
that
we
actually
have
a
nice
pr
that
reduces
the
the
performance
gap.
It's.
C
But
it
will
reduce
the
the
performance
gaps
significantly.
The
reason
was
that
we
had
you
know
internally.
Yes,
there
were
some
ping
pong
between
the
codes
and
reducing
that
with
some
byte
coding
techniques.
Now.
B
C
Go
into
java
kotlin
world,
you
can
just
use
optoplanner
in
plain
java
or
plain
kotlin,
and
but
if
you
then
say
I'm
also
using
qarcus,
it
actually
goes
a
step
further,
because
what
quarkx
does
so
optoplanner
needs
to
use
reflection
in
java
to
get
to
your
data
in
your
domain
classes.
C
But
quark
is
actually
avoids
the
reflection
instead
of
using
reflection
at
runtime
to
go
into
those
classes.
What
it
does
is
when
you
build
your
project,
and
you
know,
and
then
at
that
point
in
time,
your
domain
classes
are
known.
It
actually
generates
bytecode
to
avoid
reflection
and
go
into
those
classes
directly
and
gives
that
bytecode
to
optoplanet
reach,
which
takes
advantage
of
that,
and
that
gives
an
additional
performance
benefit
of
when
you
use
qarcus
over
just
plain
java
or
spring
java,
or
playing
cards
and
so
forth.
Confidence
force
right.
B
C
Oh
yeah,
a
very
good
question,
so
that's
why
I
had
that
too
many
tabs
right
now,
so
I'll
just
use
a
new
one.
C
So
that's
why
we
had
that
that
how
does
it
scale?
So
if
you
follow
the
approach
that
that
that's
what's
showing
here
right
with
that
active
and
q
approach,
this
call
scales
well
horizontally
in
function
of
your
number
of
data
sets.
So
for
example.
Example,
if
you
have
a
vehicle
routing
problem,
but
you
have
a
large
company,
you
have
you
know
multiple
countries,
multiple
regions,
eight
provinces
and
you
have
a
vehicle,
routing,
pumper,
let's
say
region,
area
or
or
or
state.
C
What
you
do
is
you
say
every
problem
you
have,
and
sometimes
you
have
cases
here
where
they
have
hundreds
or
even
more
of
these
kinds
of
of
data
sets.
They
send
them
into
the
solver
into
this
active
activemq
request,
and
then
you
will
horizontally
scale
your
number
of
solvers,
together
with
the
number
of
things
that
are
coming
in
here
right.
If
you
use
the,
if
you,
if
you
will
be
using
the
new
operator,
the
optoplanner
operator,
then
we
will
start
a
pulp
per
data
set
and
and
so
forth.
C
So
that
will
scale
horizontally
with
that.
But
the
problem
is
sometimes
you
cannot.
You
don't
want
to
do
partitioning,
because
if
you
take
a
planning
problem
and
you
cut
it
in
pieces-
and
I
can-
I
can
illustrate
that-
that's
actually
quite
interesting
to
show.
So
I
can
actually.
C
C
Yes,
this
one
all
right,
okay,
so
if
you
take
a
planning
problem,
yeah
I've
shown
the
solution
already,
but
just
bear
with
me
for
a
second.
If
you
take,
this
is
a
traveling
salesman
problem.
We
need
to
send
one.
B
C
To
all
of
these
locations
to
all
of
these
dots
and
we
need
to
find
the
shortest
line
that
connects
all
these
dots.
Basically,
if
you
say
we
split
that
up
into
four
pieces
and
we
solve
those
four
pieces
optimally
and
we
put
those
four
pieces
back
together,
you
get
this
solution
right,
so
this
is
a
single
line
that
goes
through
all
of
these
locations,
but
it's
not
the
optimal
line.
The
optimal
line
is
actually
shorter
and
looks
quite
different,
as
you
can
see.
So
this
is
the
big
problem
of
all
of
these
optimization
problems.
C
You
cannot
say
I
have
a
big
problem.
I
cut
it
up
in
pieces,
I
solved
the
pieces
independently,
you
know,
divide
and
conquer
map,
reduce
whatever
you
call
it,
and
then
in
the
end,
I
put
them
all
back
together
and
I
get
an
optimal
solution,
and
that
also
means
that
if
you
have
one
data
set,
you
need
to
solve
and
not
let's
say
hundreds
that
to
be.
C
You
can't
really
scale
that
to
number
of
parts
what
you
can
do,
however,
what
option
planner
does
support
is
within
one
pod
scale,
the
solving
of
it
across
multiple
cores
right,
and
so
we
have
something
called
multi-traded
solving
which
other
constraint,
solvers,
don't
have,
or
or
or
have
don't
have
at
least
four
kind
of
algorithms
we
use,
and
we
can
scale
that
up.
We
can
scale
with
the
number.
C
Of
course
we
have
some
limits
there,
but
we're
working
on
those
and
we're
still
improving
those,
but
that
doesn't
mean
that
that
is
still
limited
by
the
number
of
physical
cpus
on
a
machine
that
that
bothers
schedule
two,
so
we're
still
investigating
how
we
can,
if
you
have
one
data,
set,
how
we
can
scale
that
further.
But
if
you
have
multiple
data
sets,
that's
not
an
issue
at
all.
So.
C
Yes,
so
the
the
well,
the
opto
planner
operator,
that's
going
to
that's
called
scaling
to
zero
right.
That
basically
means
if
you
have
no.
B
C
Sets
in
your
so
if
you're
working
like
so,
this
is
an
active
broker
right,
but
if
you
have
that
doesn't
use
active
mqd.
This
is
this
is
the
active
mq
example
which
you
can
find
here,
but
the
opt
planner
operator
approach
does
not
use
active
mq,
it's
actually
based
on
kafka,
but
when,
when
you
have
a
number
of
data,
you
know
problems
come
in
it's
going.
If
there's
no
problems
in
submitted,
it
will
not
be
using
any
pulse
as
soon
as
parts
come
in.
It
will
actually
scale
up.
C
Scale
to
zero
approach
right,
if
that
makes
sense,
if
you
want
to
follow
that
that
development
around
that
and
you
can-
we
have-
we
are
working
in
here-
that's
the
optical
operator,
so
we're
working
on
still
experimental.
As
you
can
see,
and
there's
more
information
around
that
here,
somebody
in
my
team
renovated,
my
team
is
working
on
this
progress
is
good.
C
I
have
not
played
with
the
latest
version
yet
myself,
so
I
I
I
I'm
not
studying
I'm
not
demoing
it
to
the
day
yet
give
us
some
time
when
this
is
out
of
experimental
things,
it's
very
very
early
on,
but
in
a
few
weeks
few
months,
a
few
months
we'll
have
them
we'll
have
much
better
thing
and
happily
I'll
happily
demo
that,
for
you
too,.
A
Questions
I
have
a
question
jeffrey,
so
this
is
really
cool
and
you
show
you
showed
us
many
use
cases.
Actually.
I
have
two
questions.
I've
seen
that
opta
planner
has
been
used
also,
maybe
as
a
demo
for
scheduling.
You
know
vaccination
slots.
So
do
you
have
any
reference
like
if
it
was
used
for
a
real
vaccination
appointment.
C
So
many
of
our
use
case,
so
we
have
a
lot
of
production
use
cases
for
all
for,
like
vehicle
routing,
employee
rostering,
it's
used
all
across
the
world,
but
for
vaccination
scheduling
that
actually
did
not.
We
don't
have
that
in
in
production
that
I'm
aware
of
it's
a
very
cool
use
case,
because
we
actually
were
scheduling
more
than
we
were
running
with.
C
Data
sets
up
to
two
three
hundred
thousand
people
being
decided
in
a
single
schedule,
so
the
number
of
the
size
of
the
problem,
the
was
just
much
bigger
than
we
usually
deal
with
because
deciding
how
to
assign
tens
of
thousands
or
or
maybe
a
hundred
thousand
locations
to
to
to
tens
of
thousands
of
vehicles.
C
That
was
a
really
interesting
case.
However,
vaccination
scheduling
it's
it's.
It
was
very
time
windowed.
We
had
a
good
implementation,
but
yeah
things
were.
We
started
with
it
way
too
late.
So
we
still
have
this
game
already,
and
so,
when
the
next
pandemic
hits,
we
will
be
ready
instead
of
like
this
time,
but
we
were
too
late
for
this
one.
To
be
honest,
we
started
way
too
late
with
creating
an
example.
A
Okay,
okay,
that
yeah.
I
hope
we
don't
need
another
pandemic
to
do
right.
We
can
try,
you
know
for
a
flu,
vaccination
or
those
kind
of
stuff,
but
that's
really
cool.
I
was
impressed
also
when
you
did
your
article,
no,
that
it
could
be
implemented
in
this
way,
and
I
have
another
question
geoffrey,
because
we
close
up:
how
do
you
see?
Is
there
a
reference
architecture
for
using
opto,
planner
and
any
mlops
pipeline?
Do
you
have
any
architect
architecture
blueprint
where
you
can
automate
all
this
stuff.
C
We
don't
have
a
blueprint,
yet
we
should
probably
think
about
one
architecture-wise.
If
you
look
at
your
panel
quickstarts.
So
let
me
do
that.
That's
probably
that's
there.
You
I'm
in
the
wrong.
Okay,
go
to
opto
planner
quick
starts.
C
The
use
cases
I've
shown
earlier
are
a
very
simple
setups,
where
you're
selling
you
know
where
you
go
to
a
database
and
then
bring
it
back,
but
in
the
technology
one
the
one
I
showed
about
active
mq
is
quite
interesting
as
soon
as
we
have
one
with
the
operator,
it
should
probably
appear.
It
will
probably
appear
here
too,
with
the
option
operator.
So
these
are
basically
the
these.
Are
our
reference
architectures
to
look
at.
C
You
have
a
couple
of
different
options,
but
I
what
we
see
the
the
the
big
enterprises
that
use
optoplanner.
They
typically
go
for
a
setup
like
this
one
where
they
set
up
that
queue,
because
so
they
don't
connect
their
ui
directly
to
to
the
opto
planner
solving
bit,
but
it's
actually
just
they
have
a
micro
service.
C
A
hot
opt-opener
that
pulls
from
their
data
store,
solves
the
problem
every
night
and
sends
it
back
right
and
that
of
course,
scales
to
the
number
of
data
sets
they
have,
and
so
this
is
a
good
good
approach
there.
Basically
quite
interesting
to
note
a
minute
ago,
you
asked
you
know
what
kind
of
production
usage
you
see.
C
I
always
it's
always
quite
interesting
to
hear
where
octoprint
is
being
used
in
production
and
so,
for
example,
in
certain
countries,
if
you
get
a
hearing
scheduled,
opt
up
will
decide
which
judge
you
get
and
if,
for
example,
in
belgium,
if
you
go
to
a
pharmacy
at
in
the
weekend,
autopanner
will
decide
which
pharmacy
is
on
duty
in
your
region
to
to
actually
to
be
open
in
the
weekend.
D
C
C
Is
sent
to
your
house
to
to
do
certain
jobs
right,
so
the
the
the
impact
is
is
worldwide
and,
and
I
regularly
meet
people
that
tell
me
okay,
we've
used
ultratar
for
this,
or
that
use
case
the
the
really
cool
one
I
heard
very
recently.
Is
that
and
there's
a
public
article
about
this?
C
Is
that
to
decide
which
fighter
pilot
for
airplanes
in
the
us
gets
decided
with
with
with
a
couple
of
algorithms,
and
one
of
them
is
optoplanar,
you
know
which
training
goes
to
which
so
it's
used
all
across
the
planet.
C
Planning
problems
are
everywhere
when
you
start
seeing
them,
and
you
can
really,
you
know,
improve
those
schedules
to
to
get
better
schedules
for
the
for
the
employees
for
the
for
the
the
stakeholders,
the
company,
the
organizations,
the
governments
and
so
forth
right
and
really
deliver
better
better
schedules.
B
B
C
You
can
based
on
your
needs,
you
can
pick
the
ones
you
need
and,
and
they
all
fit
together
right.
You
know
just
pick
the
ones
you
need
and
yeah.
A
Jeffrey,
you
should
definitely
come
back
with
the
openshift
tv
coffee
break
because
we
want
to
hear
more
about
opta
planner,
it's
cool,
it's
very
great
that
we
hear
that
open
source
is
affecting
for
the
good
people's
life.
No,
the
opto
planner
is
used
in
many
use
cases
like
the
pharmacy,
as
you
mentioned,
logistics
or
open
source,
which
is
helping
people
live
and
also
businesses.
This
is
really
good
to
hear.
Thank
you
joffrey.
This.
We
kind
of
ended
our
time
right,
andrea.
B
Yes,
I
just
wanted
to
remind
you
guys,
everybody
that
wants
to
join
us
next
week
next
week,
we're
going
to
have
ian
also
that
will
give
us
a
guide
to
tekken
for
beginners.
So
if
anybody
wants
to
get
the
their
their
feet,
wet
were
technical
texting
for
the
first
time.
That's
a
good
starting
point.
Awesome.
A
So
we
will
come
back
to
the
openshift
coffee
break
next
wednesday
at
10
a.m.
Here
today
in
the
in
the
shadow
there's
the
ask
an
admin
at
the
at
5
00
p.m.
European
time,
if
you
like
to
follow
along
through
dropship
tv
other
than
that
folks
see
you
on
next
wednesday.
Thank
you
joffrey
for
staying
with
us
today.
It
was
a
really
great
session.
If
you
want
to
connect
with
jeffrey,
you
have
your
his
twitter
account
and
if
you
want
to
hear
more
about
opta
planner,
of
course,
there's
the
opta
planner
website.
A
Remember
you
can
try
all
the
quickstart
that
jeffrey
did
in
in
the
sandbox,
so
you
can
go
into
the
website.
Go
to
the
quick
start,
create
your
sandbox
account
and
try
opto
planner
and
implement
your
start
implementing
your
use
case.
Thank
you,
everyone
and
see.
You
soon
see
you
next
time.