# what are we actually optimizing
i'm working through a workshop scheduling problem.
hotels, beds, dates, equipment, participants. a program for the year, with bookings and cancellations happening along the way.
you can already imagine the spreadsheet.
before building anything, i keep returning to a few questions.
what can we change? what must always hold? what should improve? and how will we know whether the result is any good?
the answers decide what kind of problem we're solving.
start with what can change.
can we move a workshop to another hotel? can we move the date? can we change how many times it runs during the year? can we cancel one if too few people sign up?
these are decision variables: the choices the system is allowed to make.
that sounds obvious until you ask who actually has the authority to change each thing.
a hotel might be available in the data, but covered by a contract signed two years ago. a date might look flexible, while participants have already arranged their lives around it.
i want to understand which decisions are still open, when they close, and what it costs to change them.
then we need to go through the constraints.
say a hotel has 100 beds available to us.
is that the physical limit of the building? the allocation in our contract? or the number we usually book because nobody has asked for more?
those are three different situations.
a hard constraint is something every acceptable plan must satisfy. a soft constraint is something we prefer to satisfy, with an agreed cost or penalty when we don't.
we need to ask which kind of constraint each rule actually is.
does a workshop require equipment that only some hotels have? is there a minimum number of participants? can we use additional rooms somewhere nearby? what would that do to the cost and the experience?
feasibility means that a plan satisfies all the hard constraints. before comparing plans, we need to know whether an acceptable one exists at all.
and if it doesn't, which requirement would somebody be willing and able to change?
then comes the question of what should improve.
"optimize the schedule" sounds like an objective. it leaves a lot undecided.
are we trying to reduce accommodation costs? improve utilization? give everyone a place? avoid moving events after people have booked? protect long-term relationships with partner hotels?
these goals can pull in different directions.
a fuller hotel may look efficient while leaving no room for changes in demand. moving an event may reduce the room bill while creating cancellation fees and extra work. a small workshop may be expensive per participant and still be something we want to offer.
if cancellation is allowed and cost is the only thing we minimize, cancelling an expensive workshop could look like a good answer.
we would need to decide whether that is an acceptable outcome.
the objective function is how we tell the system what counts as better. the solver searches for a plan according to that objective and the constraints we give it.
somebody still has to decide what deserves a place in that calculation.
how much extra cost would we accept to keep an event where it is? how do we account for customer satisfaction, retention, or a partnership we want to maintain?
i don't have those answers yet. i want the people doing this work to make the trade-offs explicit.
i also want to understand where the cost comes from today.
is it empty capacity? rescheduling? cancellations? contracts that require us to commit before demand becomes clear? a workshop program that keeps changing?
we should know which of these causes the most pain. that tells us where a better plan could actually help.
and then there is verification.
suppose we make the annual plan in june. demand changes during the year. people cancel. the weather is bad.
a good decision can have an unlucky outcome. a weak plan can get lucky.
so how do we evaluate the planning itself?
i want to compare alternatives using the same assumptions. i want to see what happens when demand changes, or when we have to move an event. i want to understand how much money, capacity, and freedom to adjust each plan leaves us.
we also need to agree what we will measure during the year, so we can come back and assess what worked.
before that conversation, i want a short briefing everyone can read.
what data do we have? how do we currently understand the goal? which decisions are open? which rules need clarification? what do words like constraint, objective, and feasibility mean in the work people actually do?
a shared vocabulary gives us a way to answer the questions together.
the question i want to put in front of the customer is simple:
what would have to change for you to say, a year from now, that this was a better plan?