PowerSolver Docs
Back to Wizard

PowerSolver User Guide

Welcome to PowerSolver

This guide explains how to use PowerSolver to solve your planning and scheduling problems. Whether you're assigning tasks to employees, scheduling shifts, or routing deliveries, this guide will help you get the best results.


Before You Begin

What You Need

  1. Login credentials — Contact your administrator if you don't have them
  2. Your data — Entities (things to assign) and values (resources to assign to)
  3. Your rules — What constraints must the solution follow?

Choosing the Right Problem Type

If You Need To... Choose This Problem Type Variable Type
Assign tasks to people Task Assignment BASIC
Schedule employees to shifts Employee Rostering BASIC
Create class schedules School Timetabling BASIC
Schedule maintenance jobs Maintenance Scheduling BASIC
Route vehicles to customers Vehicle Routing LIST
Optimize cloud resources Cloud Optimization BASIC
Important

Vehicle Routing uses LIST variables (one vehicle visits multiple stops). All other types use BASIC variables. See Concepts Guide for details.


The 7-Step Wizard

PowerSolver guides you through 7 steps to define and solve your problem:

Step Name What You Do
1 Define Problem Describe your problem and choose a type
2 List Entities Enter the things that need to be assigned
3 Define Values Enter the resources you can assign to
4 Define Constraints Set the rules your solution must follow
5 Pinned Assignments Lock specific assignments (optional)
6 Solver Settings Set timeout and algorithm options
7 Review & Solve Validate, review, and run the solver

Step 1: Define Your Problem

What to Enter

Field Required Description Example
Problem Statement Yes 1-2 sentences describing what you're solving "I need to assign 20 development tasks to my team of 5 developers"
Success Criteria Yes What makes a solution "good" "All tasks assigned, skills matched, workload balanced"
Problem Type Yes Select from the dropdown Task Assignment

Tips

  • Be specific in your problem statement — it helps the AI advisor give better suggestions
  • Success criteria should mention your most important goals

Common Mistakes

Mistake Why It's a Problem How to Fix
Choosing wrong problem type Different types have different capabilities See the table above
Vague problem statement AI advisor can't help effectively Be specific about quantities and goals

Step 2: List Your Entities

Entities are the things you need to assign (tasks, shifts, jobs, etc.).

Required Fields

Field Description Example
ID Unique identifier TASK-001
Name Human-readable description "Design homepage"

Optional Fields (Depend on Constraints)

Field Used By Constraint Description
Duration cost, time How long this takes (hours)
Required Skills skill Skills needed (comma-separated)
Priority (display only) High/Medium/Low
Deadline time When this must be done
Important

Optional fields are ONLY used if you define a constraint that references them. If you add "deadline" but don't create a deadline constraint, the deadline is ignored.

How to Add Entities

Option 1: Manual Entry

  1. Click "Add Row"
  2. Fill in the fields
  3. Repeat for each entity

Option 2: Import from File

  1. Click "Import from File"
  2. Upload Excel, CSV, or JSON
  3. Map your columns to PowerSolver fields
  4. Review and confirm

Common Mistakes

Mistake Why It's a Problem How to Fix
Duplicate IDs Solver can't distinguish entities Use unique IDs like TASK-001, TASK-002
Empty required fields Validation will fail Fill in ID and Name for every entity
Adding properties without constraints Properties are ignored Only add properties you'll use in constraints

Step 3: Define Your Values

Values are the resources you can assign entities to (employees, time slots, rooms, etc.).

Understanding Value Ranges

PowerSolver supports 1 to 4 value ranges (planning variables):

Variables What You Define Example
1 One value range Developers
2 Two value ranges Developers + Time Slots
3 Three value ranges Developers + Time Slots + Rooms
4 Four value ranges Developers + Time Slots + Rooms + Equipment

Required Fields

Field Description Example
ID Unique identifier DEV-ALICE
Name Human-readable description "Alice Chen"

Optional Fields (Depend on Constraints)

Field Used By Constraint Description
Skills skill What this resource can do
Capacity capacity Maximum workload
Availability time When available
Hourly Rate cost Cost per hour

Common Mistakes

Mistake Why It's a Problem How to Fix
Not enough values Solver can't find feasible solution Add more resources or reduce entities
Skills don't match entity requirements Skill constraint will always fail Ensure values have skills that entities need
Zero capacity Capacity constraint blocks all assignments Set realistic capacity values

Step 4: Define Constraints

Constraints are the rules your solution must follow.

Constraint Levels

Level Color What It Means If Violated
Hard 🔴 Red Must be satisfied Solution is invalid
Medium 🟡 Yellow Should be satisfied Significant penalty
Soft 🟢 Green Nice to have Minor penalty

Available Constraint Rules

Rule What It Does Required Properties
unassigned Penalize unassigned entities None
skill Match required skills Entity: skills, Value: skills
capacity Don't exceed capacity limits Value: capacity
cost Minimize total cost Entity: duration, Value: hourlyRate
balance Distribute workload evenly None
time Respect time windows Entity: deadline, Value: availability
no_conflict Prevent overlapping assignments (Built-in)

How to Add Constraints

  1. Click "Add Constraint"
  2. Select the constraint type (hard/medium/soft)
  3. Choose the rule
  4. Select which variable it applies to
  5. Set a weight (higher = more important)
  6. Click "Save"

Constraint Weight Guidelines

Weight Range When to Use
1-10 Low priority soft constraints
10-100 Normal priority constraints
100-1000 High priority constraints
1000+ Critical constraints (consider making hard)

Common Mistakes

Mistake Why It's a Problem How to Fix
Too many hard constraints No feasible solution possible Convert some to medium/soft
Missing required properties Constraint can't work Check property requirements
All constraints same weight No prioritization Vary weights based on importance
No unassigned constraint Entities may be left unassigned Add hard/medium unassigned constraint

Step 5: Pinned Assignments (Optional)

Pinned assignments are pre-set and won't be changed by the solver.

When to Use Pinning

  • ✅ An employee has already confirmed a shift
  • ✅ A task must go to a specific person
  • ✅ A meeting is already booked in a room
  • ✅ Partial solution from previous run should be kept

How to Pin Assignments

  1. In Step 2, check the "Pinned" checkbox for the entity
  2. Select the pre-assigned value from the dropdown
  3. The solver will respect this assignment

Common Mistakes

Mistake Why It's a Problem How to Fix
Pinning too many entities Limits solver flexibility Only pin what's truly fixed
Pinning creates conflicts May cause infeasible solution Check that pins don't violate constraints

Step 6: Solver Settings

Configure how long and how the solver should run.

Time Limit

Problem Size Recommended Timeout
Small (< 20 entities) 30 seconds
Medium (20-100 entities) 60-120 seconds
Large (100-500 entities) 180-300 seconds
Very Large (500+ entities) 300-600 seconds
Tip

Longer timeouts generally produce better solutions, but with diminishing returns. Start with the recommended time and adjust based on results.

Algorithm Options

PowerSolver automatically selects the best algorithm. Advanced options include:

Setting Default Description
Construction Heuristic First Fit Decreasing How to build initial solution
Local Search Tabu Search How to improve solution

For most problems, the defaults work well. Only change these if you have specific needs.


Step 7: Review & Solve

Validate Your Problem

Before solving, PowerSolver checks for:

  • ✅ At least one entity defined
  • ✅ At least one value in each value range
  • ✅ At least one constraint defined
  • ✅ Required properties present for constraint rules
  • ✅ No invalid JSON syntax

What PowerSolver Will Reject

Issue Error Message How to Fix
No entities "entities array is required" Add entities in Step 2
No values "valueRanges object is required" Add values in Step 3
No variables defined "variables array is required" Check problem type selection
Missing targetVariableId "Constraint X missing targetVariableId" Edit constraint and set target variable
Invalid variable type "Unknown variable type: X" Use basic or list

Running the Solver

  1. Click "Validate JSON" to check for errors
  2. Review the JSON preview
  3. Click "Solve Now"
  4. Watch progress in real-time
  5. Wait for completion or click "Stop" for partial result

Understanding the Solution

After solving, you'll see:

Job ID: job-1736234567890
Status: COMPLETED
Score: 0hard / 0medium / -450soft

Assignments:
  Task-001 → Alice + Monday 9:00
  Task-002 → Bob + Monday 9:00
  ...
Score Component Meaning
0hard ✅ All hard constraints satisfied — solution is valid
-Xhard ❌ X hard constraint violations — solution is invalid
-Ymedium Y medium constraint penalties
-Zsoft Z soft constraint penalties (optimization score)

Working with Solutions

Exporting Results

Format Best For
JSON Integrating with other systems
Excel Sharing with stakeholders
Copy to Clipboard Quick paste into documents

Solution Pages

Page What It Shows
Solution View Final assignments in table/calendar format
Insights Constraint analysis and score breakdown
Explain Why specific assignments were made

Limitations and Rules

What PowerSolver Can Do

  • ✅ Assign entities to values based on constraints
  • ✅ Handle 1-4 planning variables per entity
  • ✅ Find feasible solutions (if they exist)
  • ✅ Optimize for multiple objectives
  • ✅ Handle hundreds of entities efficiently

What PowerSolver Cannot Do

  • Mix BASIC and LIST variable types in one problem — Choose one approach
  • Find solutions for over-constrained problems — If too many hard constraints conflict, no solution exists
  • Guarantee optimal solution for very large problems — Within time limit, it finds very good (but possibly not perfect) solutions
  • Use properties not referenced by constraints — Properties are only used if a constraint references them
  • Change pinned assignments — Pinned entities are locked

Variable Type Rules

Problem Type Entities Variables Type Why
Task Assignment Tasks developer, timeslot BASIC Each task → one developer, one time
Employee Rostering Shifts employee BASIC Each shift → one employee
Vehicle Routing Vehicles visits LIST Each vehicle → multiple stops
Critical

Using the wrong variable type will produce incorrect results. Vehicle Routing MUST use LIST variables.


Troubleshooting

No Feasible Solution (Hard Score < 0)

Symptoms: Score shows -1hard or worse

Causes:

  1. Too many hard constraints
  2. Not enough values for entities
  3. Conflicting requirements (e.g., task needs skill no one has)

Solutions:

  • Convert some hard constraints to medium or soft
  • Add more values (employees, time slots, etc.)
  • Check that value skills cover all entity requirements
  • Reduce the number of entities
  • Check for conflicting pinned assignments

Poor Optimization (High Soft Penalties)

Symptoms: Solution is feasible but soft score is very negative

Causes:

  1. Timeout too short
  2. Constraint weights not balanced
  3. Conflicting soft constraints

Solutions:

  • Increase timeout
  • Review and adjust constraint weights
  • Prioritize which soft constraints matter most

Solver Too Slow

Symptoms: Takes very long, times out

Causes:

  1. Too many entities
  2. Too many values
  3. Complex constraints

Solutions:

  • Reduce problem size
  • Simplify constraints
  • Increase hardware resources
  • Consider breaking into smaller sub-problems

Unexpected Assignments

Symptoms: Solution makes assignments you didn't expect

Causes:

  1. Missing constraint
  2. Wrong constraint level (soft instead of hard)
  3. Properties not matching

Solutions:

  • Add constraint to enforce desired behavior
  • Change constraint from soft to hard
  • Verify property names match exactly

Getting Help

In-App Help

  • Click the ? icon on any step for context-specific help
  • Use the AI Advisor panel for suggestions
  • Review validation messages for specific errors

Documentation

Support

Email: support@planningpowertools.com


Quick Reference

Keyboard Shortcuts

Shortcut Action
Ctrl+S Save problem
Ctrl+Enter Start solving
Escape Stop solving

Property-Constraint Reference (Standard)

Constraint Rule Entity Properties Value Properties
unassigned (none) (none)
skill skills (array) skills (array)
capacity (none) capacity (number)
cost duration (number) hourlyRate (number)
balance (none) (none)
time deadline, startTime, endTime availability
no_conflict (uses timeslot variable) (uses timeslot variable)

Property-Constraint Reference (Custom Properties)

When using custom properties, configure these fields in your constraints:

Constraint Entity Property Field Value Property Field
skill entitySkillsProperty valueSkillsProperty
capacity demandProperty capacityProperty
cost durationProperty rateProperty
distance entityLocationProperty valueLocationProperty
preference entityPreferenceProperty valuePreferenceProperty
dependency dependsOnProperty -
unavailable unavailableProperty -
consecutive - maxGapHours
mutual_exclusion groupProperty -
same_value groupProperty -
different_value groupProperty -
Example: To use requiredResourceType on entities and resourceTypes on values:
entitySkillsProperty: "requiredResourceType"
valueSkillsProperty: "resourceTypes"

→ See Also: Wizard Guide - Custom Properties Reference for complete details.

Score Quick Guide

Score Status Can You Use It?
0hard/... Feasible ✅ Yes
-Xhard/... Infeasible ❌ No — fix hard violations first