Combinatorial Optimization Problems (COPs), such as Job Scheduling and Vehicle Routing, occur very frequently in real life. These problems are NP-complete or worse which means they are computationally hard and there is no efficient general method of solving them. Many techniques exist for solving these problems, and they can be divided into two main categories: Incomplete (stochastic), including the meta-heuristics subclass, and complete (systematic) methods. Each of these methods has relatively well known advantages over the other, as well as limitations and drawbacks. This project analyses the performance of both methods on sample real life problems known as job scheduling problems (JSPs). In particular, two stochastic methods, Ant Colony Optimisation (ACO) and Bayesian Optimisation Algorithm (BOA) are looked at, as well as a systematic method known as Constraint Programming, or Constraint Propagation (CP). In addition, this project investigates the possibility of creating a hybrid technique that combines Constraint Programming and a meta-heuristic algorithm, more precisely the two meta-heuristics mentioned earlier, Ant Colony Optimisation and Bayesian Optimisation Algorithm.