Como Patrick87 señala, $\forall m,n\ge 2 : mn \ge m+n$, por lo que siempre se desea construir el uso de factores primos.
Indicar el destino de los tamaños de bloque como $\{t_i\}$. Podemos expresar los costos de construcción como un grafo dirigido con vértices correspondientes a $\mathbb{Z}^+$ y los bordes $n\to pn$ peso $p$ todos los $n$ y todos prime $p$. La tarea es encontrar el conectado subgrafo que contiene $\{t_i\} \cup \{1\}$ que tiene menos peso total.
Podemos hacer las siguientes observaciones:
Si sólo hay un objetivo, $n$, la solución óptima es $\text{sopfr}(n)$
donde sopfr (A001414) es la suma de los factores primos con la repetición. De hecho, podemos reclamar un mayor propiedad: cualquier camino de $1$ $n$tienen peso total $\text{sopfr}(n)$, que sólo difieren en el orden de los números primos.
Si los objetivos se pueden dividir en $\{a_j\}, \{b_k\}$ tal que $\forall j,k : \gcd(a_j, b_k) = 1$, entonces el problema puede dividirse en subproblemas independientes para la $\{a_j\}$$\{b_k\}$. Prueba: si un vértice distinto de $1$ está incluido en el óptimo subgrafo de la $\{a_j\}$, entonces no es un factor de cualquiera de las $\{b_k\}$, y por tanto, se encontraban en el óptimo subgrafo de la $\{b_k\}$ podría ser eliminado, contradiciendo la optimalidad.
Si hay un común divisor $d$ de todas las $\{t_i\}$, entonces podemos reducir el problema con los objetivos de $\left\{\frac{t_i}{d}\right\}$ y añadir $\text{sopfr}(d)$ para obtener una solución óptima. Como Ross Millikan observa, esto es obvio; es fácil demostrar, cuando sólo hay dos objetivos, y cuando hay más yo creo que una prueba por contradicción es posible, aunque no muy elegante.
Esto ya es una solución completa para $|\{t_i\}| \le 2$.
En la no-trivial caso con tres objetivos deben ser descomponible como $axy, bxz, cyz$ donde$x,y,z>1$$\gcd(ay,bz) = \gcd(ax,cz) = \gcd(bx, cy) = 1$. A continuación, supongamos que wlog que construimos el primer MCD de a pares, $x$. Esto conduce a un costo total $$\begin{eqnarray}C & = & \text{sopfr}(x) + \text{sopfr}(ay) + \text{sopfr}(bz) + \text{sopfr}(cyz) \\ & = & \text{sopfr}(x) + 2\text{sopfr}(y) + 2\text{sopfr}(z) + \text{sopfr}(a) + \text{sopfr}(b) + \text{sopfr}(c) \end{eqnarray}$$
Por lo tanto es óptimo para la construcción de los pares de MCD con la mayor sopfr en este caso. (NB no necesariamente los más grandes pares MCD - considerar la posibilidad de $\text{sopfr}(8) = 6 < \text{sopfr}(7)$).
Si sólo necesita un mejor de lo trivial de la aproximación de la siguiente codiciosos estrategia es mejor que nada:
- Aplicar las tres observaciones anteriores, si procede.
- De lo contrario, encontrar el par de dianas $t_j$ $t_k$ con el MCD de a pares con mayor sopfr, $d$; resolver los objetivos de $\{t_i | i\ne j \wedge i\ne k\} \cup \{d\}$; y agregar
$\text{sopfr}\left(\frac{t_j}{d}\right) + \text{sopfr}\left(\frac{t_k}{d}\right)$.
Pero hay una reducción desde el vértice de la cubierta, lo que demuestra que el problema es NP-completo, así que no se mantenga mucho la esperanza de un manejable solución general.
Con el crédito para user946850 para la idea clave:
Esbozamos el argumento de que el problema es NP-completo por la reducción de
desde el vértice de la cubierta problema. Dado que la NP es formalmente una clase de problemas de decisión, debemos repetir el problema en una decisión de la forma:
Objetivo determinado tamaños de bloque de $\{t_i\}$ y un objetivo de costos $T$, es posible construir todos los tamaños de destino con los costes totales no exceda el $T$?
El vértice de la cubierta problema se expresa como:
Dado un no-grafo dirigido $G = (V, E)$ y un objetivo de cubrir el tamaño de la $k$ ¿existe un subconjunto $S \subseteq V$ tal que $|S| \le k$$\forall (v_i, v_j)\in E : v_i \in C \vee v_j \in C$?
Podemos suponer wlog que la gráfica está conectado, por lo que (abusando de la notación, permitiendo que la pone en un contexto escalar a ser interpretado como sus tamaños) $E = \Omega(V)$$E = O(V^2)$.
La estrategia de reducción de la tomamos es el mapa cada una de las $v_i \in V$ a distintas prime $p_i$ y cada arista $(v_i, v_j) \in E$ a un objetivo de tamaño de bloque de $p_i p_j$. Entonces cualquier vértice de la cubierta $C'$ puede ser representado como la construcción de los números primos correspondientes a los vértices en $C'$ y de estos la construcción de los objetivos. El costo de la misma será la suma de $|C'| + |E|$ no distintos de los números primos extraídas de $\{p_i\}$. Si llamamos a la más pequeña de los números primos utilizado $p_{min}$ y la mayor de las $p_{max}$, se puede establecer un
objetivo costo de $(k + E)p_{max}$ y es suficiente con que $(k+E+1)p_{min}$ es mayor para la respuesta dada por la reducción del problema a ser la respuesta al problema original.
Por lo tanto, tenemos que encontrar un primer $p_{min}$ tal de que no se $V$ de los números primos en el medio abierto intervalo de $[\;p_{min},\;(1+\epsilon)p_{min})$ donde $\epsilon^{-1} = k + E$. También tenemos que identificar a todas las $V$ números primos. Aquí vamos a mantener las cosas simples (de ahí el "boceto de un argumento" en lugar de "probar") por la mera utilización de la forma más simple del teorema de los números primos. Vamos a comprobar $\Theta(\epsilon\; p_{min})$ números de primalidad, y tenemos la necesidad de $V$ de aciertos, por lo que queremos $\frac{p_{min}}{\log p_{min}} = \Theta(\epsilon^{-1} V )$. Esto le dará $p_{min} = O(E^2 V^2)$ (que puede ser fortalecido a $p_{min} = O((EV)^{1+\alpha})$ cualquier $\alpha > 0$), que es polinomial en el tamaño de la entrada para el vértice de la cubierta problema, que de entrada tamaño de $\Theta(E \log V)$. El número de candidatos de los números que se debe comprobar es también exponencialmente acotado, y puesto que sus tamaños son exponencialmente delimitada y pruebas de primalidad es en P el costo total de la realización de la reducción es el polinomio.