Q:

find minimal number of column

Here is a example:
Suppose I have a 2D-array which only include 0 and 1:
0,1,0,0
0,0,0,1
1,0,1,0

I need to find minimal number of column which can be add up to ones vector. For example, 
column0 + column1 + column3 =0,0,1 + 1,0,0 + 0,1,0 = 1,1,1
So, the minimal number of column is 3.

A:

This is basically a Set cover problem, which is NP-hard. It can be formulated and solved (optimally) as Integer Linear Programming problem.
You can also translate the problem to another problem of the same class which have very good solvers, e.g. to boolean SAT.
Last, but not least, you can solve it suboptimally using greedy and/or local search algorithms, e.g. Simmulated Annealing.

