How to get the minimal number of solutions \begin{array}{|c|c|c|}
\hline
A& a, b & a \\ \hline
B & e, d, a& e\\ \hline
 C&  f &f\\ \hline
 D&  d, e& e\\ \hline
E&  f, e& e\\ \hline
F&  c, d& c\\ \hline
G&  c, a& c\\ \hline
H&  c & c\\ \hline
\end{array}
I have 8 capitalized letters on column 1. These letters are associated with lower case letters on column 2. I'm trying to find the minimal combination of lower case letters that will cover all capitalized letters. For this example, the minimal combination of them would be $a$, $c$, $e$, and $f$. $b$ and $d$ are redundant.
This is a simple example and I'm trying to solve this problem on a much larger set. Is there a mathematical way to solve this with vectors?
 A: Your problem is called the hitting set problem and it was proven NP-hard around forty years ago.  This means that there is unlikely to be any algorithm much better than exhaustive search for finding minimal solutions.  If you're looking for a practical solution to such a problem, reducing the problem to Boolean satisfiability and feeding it to a state-of-the-art SAT solver is probably the best approach.
A: This problem is quite easy to solve by a greedy algorithm.   
Let $X$ be the set of uppercase alphabets in your $1^{st}$ column.
Let $Y$ be the set of smallcase alphabets in your $2^{nd}$ column.   
Now, a bipartite graph can be constructed with edges $(x,y)$ such that $x\in X, y\in Y$.   
To be more specific, for a row $A,(a,b)$ in your table, generate edges like $(A,a)\text{ and } (A,b)$.   
Now, the solution to your problem would be given by finding the minimal nodes from $Y$ such that all edges $E$ of the above biparitie graph are covered.   

You can do that by simply picking the node from $Y$ that has maximum degree i.e maximum edges going out of it.
Once you pick one vertex, remove the nodes from $X$ which are now covered, and also remove all edges going out of such nodes.
Make sure to update the degrees of the nodes in $Y$ and keep repeating this process, until set $X$ becomes empty.
