Here are some of the types of projects I have worked on.

Scheduling Mobile Resources

In this scenario, a number of mobile resources are available which must travel to sites to perform work.   A good solution involves using the best resources for the job, reducing the amount of time resources spend travelling, and making sure that important work is done on time.

Dispatch and Deployment

In a dynamic environment, jobs and their location are not always known in advance.  In this context, a good solution is often measured by the time a resource takes to service a new job.  Dispatch is the task of assigning a new job to a resource.  Deployment is the positioning of available resources  so that they can quickly respond to new jobs where they are likely to appear.  A good deployment leads to the ability to perform a good dispatch.

Scheduling with Setups

Setup costs, which are often described in terms of time and money, appear often in many industries.  A setup occurs when a resource changes from one type of activity to another, such as cleaning equipment when the colour of paint required changes.  The simple way to avoid a setup cost is to simply batch all similar activities together, a strategy known as a campaign.  The downside to a campaign is that while setup costs are minimized on one particular resource, many other costs can be incurred, such as setup on other resources or penalties for missing production target dates.

Automated Trading Robots

This project developed a system for generating and back-testing trading robots.  The system comprised historical data retrieval, simulation, and parametric trading strategies.  A search algorithm was applied to generate the best performing trading strategies on a particular time period and financial instrument.  In addition, interfaces were developed to allow the robots to perform live trading.