Mathematical Programming, sometimes generally referred to as Linear Programming

Mathematical Programming

Mathematical Programming (often generally referred to as Linear Programming) is the dominant standard technique used to find solutions to optimisation problems when the business problem being solved is not too difficult to represent mathematically (i.e. linearly) and not too hard find high quality solutions to (i.e. has a compliant solution space). It can provide guarantees on the optimality of the current solution found during the search process, a property which sets it apart from other solution techniques.

The use of the term 'programming' predates the advent of modern computers and so can be considered somewhat of a misnomer. There are a range of very mature commercially available mathematical programming packages that are used by virtually all software and consulting companies (Polymathian being no exception) and academics when solving problems using mathematical programming for industry.

We are leaders in the application of mathematical programming to industry.


Constraint Programming

Constraint Programming

Constraint Programming (often referred to as Constraint Logic Programming) is often used when the business problem being solved is harder to represent mathematically (i.e. the constraints defining permissible solutions are tricky) or the decisions being made include an explicit time dimension (i.e. problems with a scheduling component).

There are a many constraint programming packages used by academia and industry, some open source some commercially supported, when solving problems using constraint programming.

We have years of experience solving hard optimisation problems using constraint programming.

Google Constraint Programming
Gecode constraint programming
Ilog constraint programming

Dynamic programming

Dynamic Programming

Dynamic Programming refers to a general technique used to solve a range of problems that exhibit particular properties. The classic example is the shortest path problem through a street network, though this example does not do justice to the complexity or variety of problems that this technique can be used for. Dynamic programming often finds application as a sub-algorithm inside larger algorithms as well as being a standalone solution technique.

We are experts in the application of dynamic programming to industrial business problems.