odd cycle packing. we consider the following problem, which is called the odd cycle packing problem. input: a graph $g$ with n vertices and m edges, and an integer k. output: k vertex disjoint odd cycles. we also consider the edge disjoint case, and the node- and arc-disjoint directed case. this problem is known to be np-hard, even for planar graphs, if k is part of input. in this paper, we first present the integrality gap and hardness results for these problems. we prove that the integrality gap of the standard lp-relaxation of the odd cycle packing problem is θ (√n). this result is obtained by giving an algorithm to compute an odd cycle packing, which gives rise to an o(√n) approximating algorithm for the fractional odd cycle packing problem (this gives rise to an upper bound), and by showing that there is a graph g such that there is an o(√n) half-integral odd cycle packing in g, but there are no two disjoint odd cycle in g (this gives rise to a lower bound). for the hardness result, we prove that for any ε, the node-disjoint directed odd cycle packing problem is np-hard to approximate within m1/2-ε, where m is the number of arcs of a given digraph g. this is true not only for the node-disjoint directed odd cycle packing problem but also for the arc-disjoint directed odd cycle packing problem. in addition, we prove that there is an o(m1/2)-approximation algorithm for the node- and arc- directed odd cycle packing problems. thus this approximation algorithm almost matches the hardness result. for the positive side, we consider the case when the number of odd cycles, k, is fixed. this is a natural direction, for example, the seminal result of robertson and seymour for the disjoint paths problem in the graph minors project. we present an o(m α(m,n) n) algorithm for any fixed k, where the function α(m,n) is the inverse of the ackermann function (see by tarjan [72]). this is the first polynomial time algorithm for this problem (and in fact, it is the first fixed parameter tractable algorithm). this proves a conjecture by lovasz and schrijver in early 1980's, who gave a polynomial time algorithm for the case k=2. our algorithm can be applied to decide whether or not g has k edge disjoint odd cycle with the same time complexity for any fixed k. we also show that our algorithm gives rise to the graph minor algorithm for the k vertex-disjoint paths problem by robertson and seymour for any fixed k. thus our algorithm is beyond the framework of the graph minor theory. our algorithm has several appealing features: we use the odd s-path theorem, which is a generalization of the well-known s-paths theorem by mader. we also introduce an odd clique minor, which can be viewed as a clique minor with some parity condition. as with the robertson-seymour algorithm to solve the k disjoint paths problem for any fixed k, in each iteration, we would like to either use a huge clique minor as a "crossbar", or exploit the structure of graphs in which we cannot find such a minor. here, however, we must maintain the parity of the cycles and can only use an "odd clique minor". we must also describe the structure of those graphs in which we cannot find such a minor and discuss how to exploit it. this part needs the seminal result of robertson and seymour for the graph minor decomposition theorem for h-minor-free graphs. we also use some deep results of robertson and seymour that are needed to prove the correctness of their algorithm for the disjoint paths problem.