Dado um conjunto de conjuntos, eu gostaria de encontrar um conjunto M tal que cada conjunto S em S contém pelo menos um elemento de M . Eu também gostaria de M contivesse o mínimo possível de elementos enquanto ainda atendesse a esse critério, embora possa existir mais de um menor com essa propriedade (a solução não é necessariamente única).
Como um exemplo concreto, suponha que o conjunto seja o conjunto de bandeiras nacionais e, para cada bandeira S em S , os elementos sejam as cores usadas na bandeira da nação. Os Estados Unidos teria S = { r e d , w h i t e , b l u e } e Marrocos teria S = { r e d , g r e e n } . Então M seria um conjunto de cores com a propriedade de que cada A bandeira nacional usa pelo menos uma das cores . ( As cores olímpica azul, preto, vermelho, verde, amarelo e branco são um exemplo desse , ou pelo menos eram em 1920.)
Existe um nome geral para esse problema? Existe um algoritmo "melhor" aceito para encontrar o conjunto ? (Estou mais interessado na solução em si do que em otimizar o processo para complexidade computacional.)