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
- Login credentials — Contact your administrator if you don't have them
- Your data — Entities (things to assign) and values (resources to assign to)
- 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 |
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 |
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
- Click "Add Row"
- Fill in the fields
- Repeat for each entity
Option 2: Import from File
- Click "Import from File"
- Upload Excel, CSV, or JSON
- Map your columns to PowerSolver fields
- 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
- Click "Add Constraint"
- Select the constraint type (hard/medium/soft)
- Choose the rule
- Select which variable it applies to
- Set a weight (higher = more important)
- 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
- In Step 2, check the "Pinned" checkbox for the entity
- Select the pre-assigned value from the dropdown
- 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 |
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
- Click "Validate JSON" to check for errors
- Review the JSON preview
- Click "Solve Now"
- Watch progress in real-time
- 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 |
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:
- Too many hard constraints
- Not enough values for entities
- 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:
- Timeout too short
- Constraint weights not balanced
- 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:
- Too many entities
- Too many values
- 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:
- Missing constraint
- Wrong constraint level (soft instead of hard)
- 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
- Concepts Guide — Understanding the fundamentals
- Quick Start — Step-by-step tutorials
- Wizard User Guide — Screen-by-screen walkthrough
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 |
- |
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 |