### On tackling an NP-Complete problem

NP-Complete problems are hard by definition. If you ever face an NP-Complete problem, chances are you'll be trying a bunch of heuristics to find an approximate optimal solution. A problem that I came across recently was this one: given a set of 1000 words, find the minimum subset of words in order to cover all English letters . It is a simple problem statement but behind the scenes this problem is nothing but a variation of the set cover problem , a classic NP-Complete problem. Knowing that the problem is an NP-Complete problem, one quickly realizes that doing a brute-force won't work: we have 1000 words. The number of subsets of all these words is of the order of 2^1000, also known as: 1071508607186267320948425049060001810561404811705533607443750388370351051124936122493198378815695858127594672917553146825187145285692314043598457757469857480393456777482423098542107460506237114187795418215304647498358194126739876755916554394607706291457119647768654216766042983165262438683720