PowerSolver Concepts Guide
What is PowerSolver?
PowerSolver is a planning optimization tool that automatically finds the best way to assign resources to tasks while following your business rules.
Think of it as: An intelligent assistant that considers thousands of possibilities and selects the best arrangement that meets all your requirements.
Example: Instead of spending hours manually creating a staff schedule, PowerSolver does it in seconds — ensuring no one works overlapping shifts, skills match requirements, and workload is balanced fairly.
The 6 Core Concepts
Every planning problem in PowerSolver consists of these six building blocks:
| Concept | Simple Definition | Example |
|---|---|---|
| Entity | The things you need to assign | Tasks, Shifts, Deliveries |
| Planning Variable | The decision you're making | "Which developer?" "Which time slot?" |
| Planning Value | The options you can choose from | Employees, Time slots, Vehicles |
| Constraint | Rules the solution must follow | "Don't exceed 8 hours/day" |
| Score | How good the solution is | 0hard/-50soft |
| Solution | The final assignments | Task 1 → Alice, Task 2 → Bob |
1. Entities — "What Needs to Be Assigned?"
Entities are the items that need decisions made about them.
Examples by Problem Type
| Problem Type | Entities Are... | You Need to Decide... |
|---|---|---|
| Task Assignment | Tasks | Who does each task? When? |
| Employee Rostering | Shifts | Who works each shift? |
| School Timetabling | Classes/Lessons | Which room? Which time? |
| Maintenance Scheduling | Maintenance Jobs | Which technician? When? |
| Vehicle Routing | Customer Stops | Which vehicle visits them? |
What Makes Up an Entity?
Each entity has properties that describe it:
Entity: "Task-001"
├── Name: "Implement Login Page"
├── Duration: 4 hours
├── Priority: High
├── Required Skills: ["JavaScript", "React"]
└── Deadline: January 15, 2026
Your job: Define what entities you have and what properties each one has.
Standard vs Custom Properties
PowerSolver supports two types of properties:
| Type | Examples | Description |
|---|---|---|
| Standard | id, name, skills, duration, deadline |
Built-in fields shown by default |
| Custom | requiredResourceType, cpuRequired, memoryRequired |
Domain-specific fields you define |
→ See: Custom Properties Reference for complete details on using custom properties with constraints.
2. Planning Variables — "What Decisions Are You Making?"
Planning Variables define what choices PowerSolver needs to make for each entity.
Simple Example
For a task assignment problem:
- Entity: Task
- Planning Variable: "Which developer is assigned to this task?"
- Result: Task-001 → Alice
Multiple Variables (N-Variable Planning)
PowerSolver supports 1 to 4 planning variables per entity:
| Variables | Example | What's Being Decided |
|---|---|---|
| 1 variable | Task → Developer | Who does this task? |
| 2 variables | Task → Developer + Time Slot | Who does it and when? |
| 3 variables | Task → Developer + Time Slot + Room | Who, when, and where? |
| 4 variables | Task → Developer + Time Slot + Room + Equipment | Who, when, where, with what? |
⚠️ CRITICAL: Two Types of Variables (BASIC vs LIST)
This is the most important concept to understand. PowerSolver supports two fundamentally different types of planning variables.
BASIC Variables — One Entity Gets One Value
Use for: Task Assignment, Employee Rostering, Timetabling, Maintenance Scheduling
How it works: Each entity is assigned to exactly ONE value per variable.
BASIC Variable Example (Task Assignment):
┌─────────────┐ ┌─────────────┐
│ Task 1 │───────▶│ Alice │
└─────────────┘ └─────────────┘
┌─────────────┐ ┌─────────────┐
│ Task 2 │───────▶│ Bob │
└─────────────┘ └─────────────┘
┌─────────────┐ ┌─────────────┐
│ Task 3 │───────▶│ Alice │
└─────────────┘ └─────────────┘
Each task → ONE developer
(Multiple tasks CAN go to the same developer)
LIST Variables — One Entity Gets Multiple Values
Use for: Vehicle Routing (and similar "collect multiple items" problems)
How it works: Each entity is assigned a LIST of values in a specific order.
LIST Variable Example (Vehicle Routing):
┌─────────────┐ ┌─────────────────────────────┐
│ Vehicle 1 │───────▶│ [Stop A, Stop B, Stop C] │
└─────────────┘ └─────────────────────────────┘
┌─────────────┐ ┌─────────────────────────────┐
│ Vehicle 2 │───────▶│ [Stop D, Stop E] │
└─────────────┘ └─────────────────────────────┘
Each vehicle → MULTIPLE stops (in order)
Each stop goes to exactly ONE vehicle
When to Use Which?
| Problem Type | Variable Type | Why |
|---|---|---|
| Task Assignment | BASIC | Each task is done by ONE person |
| Employee Rostering | BASIC | Each shift is worked by ONE employee |
| School Timetabling | BASIC | Each class happens in ONE room at ONE time |
| Maintenance Scheduling | BASIC | Each job is done by ONE technician |
| Vehicle Routing | LIST | Each vehicle visits MULTIPLE stops |
❌ Common Mistake: Using Wrong Variable Type
Using BASIC variables for Vehicle Routing
Vehicle 1 → Stop A ❌ Only one stop per vehicle!
Vehicle 2 → Stop B
Using LIST variables for Vehicle Routing
Vehicle 1 → [Stop A, Stop B, Stop C] ✅ Multiple stops per vehicle
Vehicle 2 → [Stop D, Stop E]
💡 Rule of Thumb: If each entity needs to "collect" or "visit" multiple things in order, use LIST. Otherwise, use BASIC.
3. Planning Values — "What Are Your Options?"
Planning Values are the resources or options you can assign to entities.
Examples
| For This Variable... | Values Are... |
|---|---|
| Developer assignment | List of developers |
| Time slot assignment | List of available time slots |
| Room assignment | List of available rooms |
| Vehicle assignment | List of vehicles in your fleet |
What Makes Up a Value?
Each value has properties that affect constraints:
Value: "Alice Chen"
├── Skills: ["JavaScript", "React", "Python"]
├── Max Hours Per Day: 8
├── Availability: Mon-Fri, 9:00-17:00
└── Hourly Rate: $75
Your job: Define all available options and their properties.
4. Constraints — "What Are the Rules?"
Constraints are rules that your solution must follow (or should try to follow).
The Three Levels of Constraints
| Level | Icon | Meaning | If Violated... |
|---|---|---|---|
| Hard | 🔴 | MUST be satisfied | Solution is invalid — cannot use it |
| Medium | 🟡 | SHOULD be satisfied | Solution is valid but not ideal |
| Soft | 🟢 | NICE TO HAVE | Solution is valid, just less optimal |
Hard Constraints — Non-Negotiable Rules
These are your absolute requirements. A solution that violates ANY hard constraint is unusable.
Examples:
- ❌ "An employee cannot work two shifts at the same time"
- ❌ "A task requiring Java skills must be assigned to someone who knows Java"
- ❌ "Vehicle capacity cannot be exceeded"
- ❌ "All tasks must be completed before their deadlines"
Medium Constraints — Resource Management
These help when you have limited resources and can't satisfy everything.
Examples:
- 📊 "Assign as many tasks as possible" (when you don't have enough staff)
- 📊 "Cover as many shifts as possible" (when understaffed)
- 📊 "Visit as many customers as possible" (when fleet is limited)
Soft Constraints — Optimization Goals
These make your solution better but aren't mandatory.
Examples:
- ⭐ "Distribute workload evenly across employees"
- ⭐ "Minimize total travel distance"
- ⭐ "Honor employee shift preferences when possible"
- ⭐ "Minimize overtime costs"
Constraint Decision Guide
| Ask Yourself... | If Yes → | If No → |
|---|---|---|
| "Would violating this break the law?" | Hard | — |
| "Would violating this be physically impossible?" | Hard | — |
| "Would violating this make the solution unusable?" | Hard | — |
| "Is this very important but we could survive without it?" | — | Medium |
| "Is this a preference or optimization goal?" | — | Soft |
5. Score — "How Good Is This Solution?"
Every solution PowerSolver produces has a score that tells you how well it meets your constraints.
Score Format
Score: -2hard / -1medium / -350soft
│ │ │
│ │ └── Soft constraint penalties
│ └── Medium constraint violations
└── Hard constraint violations (MUST be 0!)
Understanding Scores
| Score | Meaning | Can You Use It? |
|---|---|---|
0hard / 0medium / 0soft |
Perfect! All constraints satisfied | ✅ Yes — optimal |
0hard / 0medium / -500soft |
Good. Some soft penalties | ✅ Yes — usable |
0hard / -3medium / -200soft |
Acceptable. Some medium issues | ✅ Yes — review medium violations |
-2hard / 0medium / -100soft |
Invalid! Hard constraints violated | ❌ No — fix the problem |
The Golden Rule
A solution is only valid (feasible) if the hard score is exactly 0.
If you see -1hard or worse, the solution violates must-have rules and cannot be used.
Comparing Scores
When comparing two valid solutions:
- First: Compare hard scores (must both be 0)
- Then: Compare medium scores (less negative is better)
- Finally: Compare soft scores (less negative is better)
Solution A: 0hard / -2medium / -500soft
Solution B: 0hard / -1medium / -800soft
Winner: Solution B (better medium score, even though soft is worse)
6. Solution — "The Final Result"
A solution is the complete set of assignments that PowerSolver produces.
What You Get
{
"score": "0hard / 0medium / -450soft",
"assignments": [
{ "entity": "Task-001", "developer": "Alice", "timeslot": "Monday 9:00" },
{ "entity": "Task-002", "developer": "Bob", "timeslot": "Monday 9:00" },
{ "entity": "Task-003", "developer": "Alice", "timeslot": "Monday 14:00" }
]
}
Solution States
| State | Score Pattern | Meaning |
|---|---|---|
| Feasible | 0hard/... |
Valid solution — can be implemented |
| Infeasible | -Xhard/... |
Invalid — violates must-have rules |
| Optimal | 0hard/0medium/0soft |
Perfect — all constraints satisfied |
Putting It All Together: A Complete Example
Scenario: Task Assignment (2 Variables)
Business Problem: Assign 3 development tasks to 2 developers in 2 time slots.
Step 1: Define Entities (Tasks)
| Task | Duration | Required Skill | Deadline |
|---|---|---|---|
| Task 1 | 4 hours | Java | Monday EOD |
| Task 2 | 2 hours | React | Monday EOD |
| Task 3 | 3 hours | Java | Tuesday EOD |
Step 2: Define Variables
| Variable | Type | What It Decides |
|---|---|---|
developer |
BASIC | Which developer does this task? |
timeslot |
BASIC | When is this task done? |
Step 3: Define Values
Developers:
| Developer | Skills | Max Hours/Day |
|---|---|---|
| Alice | Java, React | 8 |
| Bob | Java | 8 |
Time Slots:
| Slot | Day | Time |
|---|---|---|
| Slot 1 | Monday | 9:00-13:00 |
| Slot 2 | Monday | 14:00-18:00 |
| Slot 3 | Tuesday | 9:00-13:00 |
Step 4: Define Constraints
| Constraint | Level | Rule |
|---|---|---|
| Skill Match | Hard | Developer must have required skill |
| No Overlap | Hard | Same developer can't do 2 tasks at same time |
| Deadline | Hard | Task must be done before deadline |
| Balance Workload | Soft | Distribute tasks evenly |
Step 5: PowerSolver Finds Solution
Score: 0hard / 0medium / -50soft (feasible!)
Assignments:
Task 1 → Alice + Monday 9:00
Task 2 → Alice + Monday 14:00
Task 3 → Bob + Monday 9:00
Step 6: Verify the Solution
- ✅ Skill Match: Alice has Java (Task 1), Alice has React (Task 2), Bob has Java (Task 3)
- ✅ No Overlap: Alice does Task 1 at 9:00, Task 2 at 14:00 — no overlap
- ✅ Deadline: All tasks before their deadlines
- ⚠️ Balance: Alice has 2 tasks, Bob has 1 — small soft penalty
What PowerSolver Cannot Do (Limitations)
Understanding limitations helps you model problems correctly.
❌ Cannot Mix BASIC and LIST Variables on Same Entity
If you need LIST variables (Vehicle Routing), ALL variables must be designed for that pattern.
❌ Cannot Handle Infinite Options
You must define a finite list of values. PowerSolver cannot search infinite possibilities.
❌ Cannot Guarantee Perfect Solutions for Very Large Problems
With thousands of entities, PowerSolver finds very good solutions — but may not find the mathematically perfect one within the time limit.
❌ Cannot Make Business Decisions for You
PowerSolver optimizes within the rules you define. You must decide:
- What constraints matter
- How important each constraint is (hard/medium/soft)
- What trade-offs are acceptable
Quick Reference: Problem Type Modeling
| Problem Type | Entities | Variables | Type | Common Constraints |
|---|---|---|---|---|
| Task Assignment | Tasks | developer, timeslot | BASIC | Skill match, capacity, deadline |
| Employee Rostering | Shifts | employee | BASIC | No overlap, skills, availability |
| School Timetabling | Lessons | room, timeslot, teacher | BASIC | No conflicts, room capacity |
| Maintenance Scheduling | Jobs | technician, timeslot | BASIC | Skills, equipment availability |
| Vehicle Routing | Vehicles | visits (list of stops) | LIST | Capacity, time windows, distance |
Next Steps
Now that you understand the concepts:
- Quick Start Guide — Follow step-by-step tutorials
- User Guide — Learn how to use PowerSolver
- Wizard User Guide — Screen-by-screen walkthrough
The most important decision is choosing the right variable type (BASIC vs LIST) for your problem. When in doubt, refer to the table above or contact support.