PowerSolver Docs
Back to Wizard

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
Automatic Detection: When you load a JSON file, the wizard automatically detects custom properties and creates editable fields for them.

→ 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)

Most Important Concept

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

Wrong

Using BASIC variables for Vehicle Routing

Vehicle 1 → Stop A    ❌ Only one stop per vehicle!
Vehicle 2 → Stop B
Correct

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:

  1. First: Compare hard scores (must both be 0)
  2. Then: Compare medium scores (less negative is better)
  3. 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:

  1. Quick Start Guide — Follow step-by-step tutorials
  2. User Guide — Learn how to use PowerSolver
  3. Wizard User Guide — Screen-by-screen walkthrough

Remember

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.