1 Overview
Introduction
Structure
How to Read This
Installation
Microsoft Windows
Linux
Snap
AppImage
Archive
Apple macOS
Adding Third-party Solvers
First steps with MiniZinc
The MiniZinc IDE
The MiniZinc command line tool
2 Minizinc 指南
MiniZinc基本模型
第一个实例
算术优化实例
数据文件和谓词
实数求解
模型的基本结构
更多复杂模型
数组和集合
全局约束
条件表达式
枚举类型
复杂约束
集合约束
汇总
谓词和函数
全局约束
Alldifferent
Cumulative
Table
Regular
定义谓词
定义函数
反射函数
局部变量
语境
局部约束
定义域反射函数
作用域
选项类型
声明和使用选项类型
隐藏选项类型
搜索
有限域搜索
搜索注解
注解
MiniZinc中的有效建模实践
变量界限
有效的生成元
冗余约束
模型选择
多重建模和连通
对称
静态的对称性破缺
其他对称的例子
在MiniZinc中对布尔可满足性问题建模
整型建模
非等式建模
势约束建模
FlatZinc和展平
展平表达式
简化和求值
定义子表达式
FlatZinc约束形式
边界分析
目标函数
线性表达式
展开表达式
数组
具体化
谓词
Let表达式
3 User Manual
The MiniZinc Command Line Tool
Basic Usage
Adding Solvers
Configuration files
Configuration for MIP solvers
Options
General options
Solving options
Flattener input options
Flattener two-pass options
Flattener output options
Solution output options
User Configuration Files
The MiniZinc IDE
Editing files
Editing functions
Fonts and dark mode
Configuring and Running a Solver
Running a model
Solver configurations
Automatic Solution Checking
Compiling a model
Profiling a model
Working With Projects
Submitting Solutions to Online Courses
Configuration Options
Locating the MiniZinc installation
Adding Third-Party Solvers
Configuring existing solvers
Adding new solvers
Globalizer
Basic Usage
Caveats
Supported Constraints
Using Globalizer in the MiniZinc IDE
How it works
Performance tips
Limitations / Future work
FindMUS
Basic Usage
Commandline arguments
Example
Using FindMUS in the MiniZinc IDE
How it works
Performance tips
Limitations / Future work
Using MiniZinc in Jupyter Notebooks
Installation
Basic usage
Python Interface
4 Reference Manual
Specification of MiniZinc
Introduction
Original authors.
Notation
Overview of a Model
Evaluation Phases
Run-time Outcomes
Output
Syntax Overview
Character Set
Comments
Identifiers
High-level Model Structure
Model Instance Files
Namespaces
Scopes
Types and Type-insts
Properties of Types
Instantiations
Type-insts
Type-inst expression overview
Built-in Scalar Types and Type-insts
Booleans
Integers
Floats
Enumerated Types
Strings
Built-in Compound Types and Type-insts
Sets
Arrays
Option Types
The Annotation Type
Constrained Type-insts
Set Expression Type-insts
Float Range Type-insts
Expressions
Expressions Overview
Operators
Expression Atoms
Identifier Expressions and Quoted Operator Expressions
Anonymous Decision Variables
Boolean Literals
Integer and Float Literals
String Literals and String Interpolation
Set Literals
Set Comprehensions
Array Literals
2d Array Literals
Array Comprehensions
Array Access Expressions
Array Slice Expressions
Annotation Literals
If-then-else Expressions
Let Expressions
Call Expressions
Generator Call Expressions
Items
Include Items
Variable Declaration Items
Enum Items
Assignment Items
Constraint Items
Solve Items
Output Items
Annotation Items
User-defined Operations
Basic Properties
Ad-hoc polymorphism
Local Variables
Annotations
Partiality
Partial Assignments
Partial Predicate/Function and Annotation Arguments
Partial Array Accesses
Built-in Operations
Comparison Operations
Arithmetic Operations
Logical Operations
Set Operations
Array Operations
Coercion Operations
String Operations
Bound and Domain Operations
Option Type Operations
Other Operations
Content-types
JSON support
Full grammar
Items
Type-Inst Expressions
Expressions
Miscellaneous Elements
The MiniZinc library
Annotations
General annotations
Parameters
Functions and Predicates
Propagation strength annotations
Search annotations
Variable selection annotations
Value choice annotations
Exploration strategy annotations
Restart annotations
Parameters
Functions and Predicates
Other declarations
Warm start annotations
Warm start annotations with optional values
Other declarations
Option type support
Option type support for Booleans
Option type support for integers
Option type support for floats
Other declarations
Compiler options
Parameters
Functions and Predicates
Builtins
Comparison Builtins
Arithmetic Builtins
Exponential and logarithmic builtins
Trigonometric functions
Logical operations
Set operations
Conditionals
Array operations
Array sorting operations
Coercions
String operations
Reflection operations
Assertions and debugging functions
Functions for enums
Random Number Generator builtins
Special constraints
Language information
FlatZinc builtins
Integer FlatZinc builtins
Bool FlatZinc builtins
Set FlatZinc builtins
Float FlatZinc builtins
FlatZinc builtins added in MiniZinc 2.0.0.
FlatZinc builtins added in MiniZinc 2.0.2.
FlatZinc builtins added in MiniZinc 2.1.0.
FlatZinc builtins added in MiniZinc 2.1.1.
Global constraints
Counting constraints
All-Different and related constraints
Lexicographic constraints
Sorting constraints
Channeling constraints
Packing constraints
Scheduling constraints
Graph constraints
Extensional constraints (table, regular etc.)
Machine learning constraints
Deprecated constraints
Other declarations
Additional declarations for Gecode
Additional Gecode search annotations
Parameters
Functions and Predicates
Additional Gecode constraints
Additional declarations for Chuffed
Additional Chuffed search annotations
Parameters
Functions and Predicates
Interfacing Solvers to Flatzinc
Specification of FlatZinc
Comments
Types
Parameter types
Variable types
The string type
Values and expressions
FlatZinc models
Predicate declarations
Parameter declarations
Variable declarations
Constraints
Solve item
Annotations
Search annotations
Output annotations
Variable definition annotations
Intermediate variables
Constraint annotations
Output
Solution output
Statistics output
Error and warning output
Solver-specific Libraries
Standard predicates
Solver-specific predicates
Reified and half-reified predicates
Command-Line Interface and Standard Options
Solver Configuration Files
Grammar
Index