The irregular strip packing problem consists in the cutting of a set of two-dimensional pieces from an object of fixed width using the minimum possible length. Despite its economic importance for many industries, because of its resolution difficulty few exact methods have addressed this problem. Recently, a mixed integer programming model in which pieces are placed on a grid has been proposed. Although the model has proved the optimality for some large instances, it has a large number of non-overlap constraints, which grows quickly according to the discretization resolution and number of distinct pieces. This thesis proposes a clique covering model to reduce the number of constraints and improve the linear relaxation. The coverings were obtained by a heuristic developed by the author. The model has outperformed the previous model in most evaluated instances and obtained an optimal solution for instances with up to 25 pieces (22 distinct pieces) subject to grid discretization. Recently, another mixed integer programming model was proposed for the problem, but it may allow a large number of symmetric solutions. In this thesis, new symmetry breaking constraints are proposed to improve the model. Computational experiments were performed for instances with convex pieces. The results show the proposed formulation is better than the previous one for most instances, since it improves lower bounds and reduces run-time and number of nodes explored to prove optimality. A particular case of an irregular item is a polyomino. A polyomino is a set of unit squares connected by joining one of their edges. A quasi-polyomino is a polyomino generalization, since it is a subset of not necessarily connected squares obtained from an equidistant raster grid. Quasi-polyomino cutting and packing problems have many real applications, e.g., leather cutting, sheet metal stamping, design of printed circuit boards and layout of magazines and newspapers. In this thesis, we study the quasi-polyomino strip packing problem. We propose two integer programming models for the problem and evaluate them using state-of-the-art solvers. We evaluate the models using instances taken from the literature and both models obtained good results, solving to optimality an instance with 320 items (20 distinct items) on a strip of dimensions 44x50. As expected, we found more optimal solutions when there are no rotation and flips and when the dimensions of the items are small.