Ecuaciones en números enteros. Encontrar soluciones enteras a un sistema de ecuaciones con más incógnitas que las ecuaciones.

Generalmente en tareas programación lineal No es necesario que las coordenadas del plan sean números enteros. Sin embargo, en la práctica uno a menudo encuentra problemas en los que las coordenadas de los planes óptimos deben ser números enteros, y estos problemas se denominan problemas. . Al resolver problemas de programación lineal utilizando el método gráfico y el método simplex, no hay garantía de que las coordenadas del plan óptimo sean números enteros.

En algunos casos, los resultados pueden estar redondeados. Por ejemplo, si el plan óptimo estipula que se deben producir 499683,3 automóviles, entonces está económicamente justificado redondear el resultado a 499683 o incluso a 500000.

Sin embargo, existen problemas en los que dicho redondeo puede generar un gran error. Por ejemplo, si el plan óptimo estipula que se deben construir 0,67 plantas, entonces el redondeo formal a 0 o 1 es inaceptable.

Por lo tanto genial significado práctico Tienes métodos para resolver problemas de programación lineal con los que puedes encontrar. plan optimo, cuyas coordenadas son números enteros. Tareas programación entera se resuelven utilizando exactamente estos métodos.

Si problema de programación entera establecer en forma canónica, se formula de la siguiente manera:

encontrar el máximo de la función objetivo (forma lineal)

bajo un sistema de restricciones

Así, la tarea programación entera y el correspondiente problema de programación lineal difieren sólo en la condición de que las incógnitas sean enteras.

Al igual que los problemas de programación lineal, los problemas de programación entera requieren que el plan óptimo maximice la función objetivo (forma lineal).

Método Gomori para resolver problemas de programación entera.

método gomori es método universal resolver problemas de programación entera, con la ayuda de los cuales, después de un número finito de iteraciones, se puede encontrar el plan óptimo o asegurarse de que el problema no tenga solución. Sin embargo, el valor práctico del método de Gomori es muy limitado, ya que es necesario realizar muchas iteraciones para resolver problemas.

Al resolver problemas de programación entera utilizando el método Gomori, los subconjuntos que no contienen planes enteros se eliminan gradualmente del conjunto de planes óptimos para un problema de programación lineal.

En la primera iteración, debes resolver un problema de programación lineal utilizando el método simplex. Si las incógnitas encontradas satisfacen el requisito de los números enteros, entonces el problema de programación entera está resuelto. Si entre las incógnitas al menos una es un número fraccionario, entonces se debe componer Condición adicional(cómo componerlo; más sobre eso a continuación) y adjuntarlo al sistema de restricciones del problema de programación entera. Así, del conjunto de planes, se elimina el subconjunto que no contiene planes enteros. Si el plan óptimo del problema aumentado de esta manera es entero, entonces el problema de programación entera está resuelto. El proceso de solución continúa hasta que en alguna iteración se encuentra un plan óptimo entero o se puede verificar que el problema no tiene solución.

Ahora hablemos de cómo crear la condición adicional mencionada. Esta, una condición adicional, se obtiene a partir de una de las ecuaciones del sistema de restricciones a partir de los coeficientes de las incógnitas y las propias incógnitas según la fórmula

, donde entre llaves están las partes fraccionarias del término libre y los coeficientes de las incógnitas, respectivamente.

Por ejemplo, de tabla simplex obtenemos la siguiente ecuación:

.

La parte fraccionaria del término libre la obtenemos restando su parte entera al propio número de la siguiente manera:

De manera similar, obtenemos las partes fraccionarias de los coeficientes de las incógnitas:

(en X3 ),

(en X4 ).

A regla general hallazgo partes fraccionarias es: parte entera Número Real a El número entero más grande se llama [ a] , que no exceda a; parte fraccionaria de un número real a llamada diferencia {a} = a - [a] el número mismo a y toda su parte [ a] .

.

En nuestro ejemplo, usando la fórmula anterior, se obtiene la siguiente ecuación:

.

Ejemplo 1. Resuelva el siguiente problema de programación entera utilizando el método Gomori. Encuentra el máximo función objetiva

bajo un sistema de restricciones

Solución. Resolvemos el problema mediante el método simplex. Desde que tenemos lección sobre la resolución de problemas de programación lineal utilizando el método simplex, el método en sí no se explicará aquí, sino que solo se proporcionarán tablas simplex.

Incógnitas adicionales X3 Y X4 Tomémoslo como básico. Expresemos las incógnitas básicas y la función objetivo en términos de variables no básicas:

Creemos una tabla simplex a partir de los coeficientes:

Recopilamos las siguientes tablas hasta obtener el plan óptimo:

Tabla 3
Incógnitas básicas Miembros gratuitosincógnitas libres Coeficientes auxiliares
X3X4
X119/7 4/7 -1/7 -1/2
X24/7 -1/7 2/7
CON65/7 10/7 1/7 1/2

De la Tabla 3 encontramos el plan óptimo. . Dado que este plan óptimo no satisface la condición del número entero, necesitamos crear una condición adicional. La parte fraccionaria de la coordenada es el número y la parte fraccionaria de la coordenada es el número.

La primera ecuación basada en la tabla se escribirá de la siguiente manera:

.

Determinadas las partes fraccionarias de los coeficientes de las incógnitas y los términos libres, obtenemos la siguiente condición adicional:

o, introduciendo una variable adicional,

.

Obtenemos nueva línea en la tabla simplex obtenida de la Tabla 3 y sumando los coeficientes de la ecuación recién obtenida:

Tabla 4
Incógnitas básicas Miembros gratuitosincógnitas libres Coeficientes auxiliares
X3X4
X119/7 4/7 -1/7 -1/2
X24/7 -1/7 2/7
X5-5/7 -4/7 -6/7
CON65/7 10/7 1/7 1/2

Completamos el paso del método simplex y obtenemos la tabla:

Tabla 5
Incógnitas básicas Miembros gratuitosincógnitas libres Coeficientes auxiliares
X3X4
X117/6 2/3 -1/6 1/7
X21/3 -1/3 1/3 -2/7
X45/6 2/3 -7/6
CON55/6 4/3 1/6 -1/7

Recibimos el plan óptimo. . Este plan, al igual que el anterior, no satisface la condición del número entero. Por lo tanto, nuevamente se requiere una condición adicional. EN en este caso puedes usar la primera o la tercera ecuación. Obtenemos la siguiente condición adicional:

.

Creemos la siguiente tabla:

Tabla 6
Incógnitas básicas Miembros gratuitosincógnitas libres Coeficientes auxiliares
X3X4
X117/6 2/3 -1/6 1/7
X21/3 -1/3 1/3 -2/7
X45/6 2/3 -7/6
X6-5/6 -2/3 -5/6
CON55/6 4/3 1/6 -1/7

plan optimo obtenemos de la siguiente tabla final:

Tabla 7
Incógnitas básicas Miembros gratuitosincógnitas libres Coeficientes auxiliares
X3X6
X13 4/5 -1/5 1/6
X20 -3/5 2/5 -1/3
X42 8/5 -7/5 7/6
X51 4/5 -6/5
CON9 6/5 1/5 -1/6

Dado que el plan óptimo encontrado satisface la condición de números enteros, el problema de programación entera está resuelto. Coordenadas X5 Y X6 puede ignorarse, ya que las condiciones iniciales del problema contienen solo cuatro incógnitas. Por lo tanto, el plan óptimo final se escribirá de la siguiente manera:

,

y el máximo de la función objetivo es 9.

Método de ramificación y ligadura para resolver problemas de programación entera.

El método de rama y ligada es conveniente para resolver problemas de programación entera en los que el número de incógnitas es pequeño o los requisitos de números enteros no se aplican a todas las incógnitas. La esencia del método de rama y ligada es que para aquellas incógnitas a las que se aplica el requisito de número entero, es necesario determinar los límites dentro de los cuales pueden encontrarse los valores de estas incógnitas. Luego se resuelven los correspondientes problemas de programación lineal.

La especificación de los límites dentro de los cuales deben encontrarse los valores de las incógnitas en un problema de programación entera se puede escribir de la siguiente manera:

En la práctica, en muchos casos, los límites de los valores desconocidos ya están incluidos en el sistema de restricciones del problema de programación entera, o pueden determinarse en función del contenido económico del problema. De lo contrario, podemos suponer que el límite inferior es y el límite superior es , donde METRO- un número positivo bastante grande.

Cómo el método de rama y encuadernación le permite refinar los límites valores aceptables¿desconocido?

Primero, se resuelve un problema de programación lineal correspondiente a un problema de programación entera, por ejemplo, utilizando el método simplex. Sea el plan óptimo en este problema y el valor de cualquiera de sus coordenadas sea un número fraccionario. Luego necesitarás crear dos nuevos problemas de programación lineal. ¿Cómo hacerlo?

Denotaremos la parte entera de la coordenada como . En uno de los nuevos problemas de programación lineal, el límite inferior del valor de la coordenada será el número , es decir, la parte entera del valor de la coordenada aumentada en uno. Se escribirá de la siguiente manera:

.

En otro nueva tarea En programación lineal, el límite superior del valor de la coordenada será la parte entera del valor de la coordenada en sí. Se escribirá así:

Así, dos nuevos problemas se "ramificaron" del primer problema de programación lineal, en el que cambiaron los límites de los valores permisibles de una incógnita. A la hora de resolver cada uno de estos problemas, son posibles tres casos:

  • el plan óptimo no es un número entero,
  • el plan óptimo es un número entero,
  • el problema no tiene soluciones.

Sólo en el primer caso es posible “bifurcar” nuevas tareas como se muestra arriba. En el segundo y tercer caso, la “ramificación” se detiene.

En cada iteración de resolución de un problema de programación entera, se resuelve un problema. Introduzcamos el concepto: una lista de problemas de programación lineal a resolver. De la lista, seleccione el problema a resolver en la iteración correspondiente. En iteraciones posteriores, la lista cambia, ya que los problemas resueltos ya no se incluyen en ella y, en lugar de ellos, se incluyen en la lista nuevas tareas que "se derivaron" de tareas anteriores.

Para limitar la “ramificación”, es decir, reducir el número de problemas a resolver, en cada iteración es necesario determinar el límite inferior valor máximo función objetivo. Esto se hace de la siguiente manera:

Según el algoritmo para resolver un problema de programación entera utilizando el método de rama y límite, en cada pag La tercera iteración requiere 4 pasos.

Ejemplo 2. Resuelva el siguiente problema de programación entera utilizando el método de rama y enlace. Encuentra el máximo de la función objetivo.

bajo un sistema de restricciones

Solución. Supongamos que se dan o determinan los siguientes límites de los valores óptimos de las incógnitas:

.

Dado que la tarea se da en forma normal, tiene un diseño entero y un límite inferior en el valor máximo de la función objetivo.

La lista de tareas a resolver incluye la primera tarea:

Iteración 1.

Paso 1. Mediante el uso método simplex Se obtuvo la solución al 1er problema:

Dado que el plan encontrado no es un número entero, sigue el paso 4.

Etapa 4. Dado que el plan óptimo tiene una coordenada fraccionaria de 1,2, entonces . Aplicando los límites de los valores de las incógnitas del 1er problema, obtenemos nuevos problemas. En el segundo problema, el límite inferior es y en el tercer problema, el límite superior es.

Ecuaciones en números enteros Son ecuaciones algebraicas con dos o más variables desconocidas y coeficientes enteros. Las soluciones a dicha ecuación son todos conjuntos de valores enteros (a veces naturales o racionales) de las variables desconocidas que satisfacen la ecuación. Estas ecuaciones también se llaman diofantino, en honor al antiguo matemático griego que estudió algunos tipos de ecuaciones similares antes de nuestra era.

La formulación moderna de los problemas diofánticos se la debemos al matemático francés. Fue él quien planteó ante los matemáticos europeos la cuestión de resolver ecuaciones indefinidas sólo en números enteros. La ecuación más famosa en números enteros es el último teorema de Fermat: ecuación

no tiene soluciones racionales distintas de cero para todos los naturales n > 2.

El interés teórico por las ecuaciones en números enteros es bastante grande, ya que estas ecuaciones están estrechamente relacionadas con muchos problemas de la teoría de números.

En 1970, el matemático de Leningrado Yuri Vladimirovich Matiyasevich demostró que método general, que permite resolver ecuaciones diofánticas arbitrarias en números enteros en un número finito de pasos, no existe y no puede existir. Por lo tanto se sigue para diferentes tipos ecuaciones, elija sus propios métodos de solución.

Al resolver ecuaciones en números enteros y números naturales Se pueden distinguir a grandes rasgos los siguientes métodos:

    forma de clasificar las opciones;

    aplicación del algoritmo euclidiano;

    representación de números en forma de fracciones continuas (continuas);

    factorización;

    resolver ecuaciones en números enteros como cuadrado (u otro) con respecto a cualquier variable;

    método residual;

    método de descenso infinito.

Problemas con soluciones

1. Resuelve la ecuación x 2 – xy – 2y 2 = 7 en números enteros.

Escribamos la ecuación en la forma (x – 2y)(x + y) = 7.

Dado que x, y son números enteros, encontramos soluciones a la ecuación original como soluciones a los siguientes cuatro sistemas:

1) x – 2y = 7, x + y = 1;

2) x – 2y = 1, x + y = 7;

3) x – 2y = –7, x + y = –1;

4) x – 2y = –1, x + y = –7.

Habiendo resuelto estos sistemas, obtenemos soluciones a la ecuación: (3; –2), (5; 2), (–3; 2) y (–5; –2).

Respuesta: (3; –2), (5; 2), (–3; 2), (–5; –2).

a) 20x + 12y = 2013;

b) 5x + 7y = 19;

c) 201x – 1999y = 12.

a) Dado que para cualquier valor entero de x e y lado izquierdo la ecuación es divisible por dos y la mano derecha es un número impar, entonces la ecuación no tiene soluciones en números enteros.

Respuesta: no hay soluciones.

b) Primero seleccionemos algunos solución específica. En este caso, es simple, por ejemplo,

x 0 = 1, y 0 = 2.

5x 0 + 7y 0 = 19,

5(x – x 0) + 7(y – y 0) = 0,

5(x – x 0) = –7(y – y 0).

Como los números 5 y 7 son primos relativos, entonces

x – x 0 = 7k, y – y 0 = –5k.

Entonces la solución general es:

x = 1 + 7k, y = 2 – 5k,

donde k es un número entero arbitrario.

Respuesta: (1+7k; 2–5k), donde k es un número entero.

c) Encontrar una solución específica mediante selección en este caso es bastante difícil. Usemos el algoritmo euclidiano para los números 1999 y 201:

MCD(1999, 201) = MCD(201, 190) = MCD(190, 11) = MCD(11, 3) = MCD(3, 2) = MCD(2, 1) = 1.

Escribamos este proceso en orden inverso:

1 = 2 – 1 = 2 – (3 – 2) = 2 2 – 3 = 2 (11 – 3 3) – 3 = 2 11 – 7 3 = 2 11 – 7(190 – 11 17) =

121 11 – 7 190 = 121(201 – 190) – 7 190 = 121 201 – 128 190 =

121·201 – 128(1999 – 9·201) = 1273·201 – 128·1999.

Esto significa que el par (1273, 128) es una solución a la ecuación 201x – 1999y = 1. Entonces el par de números

x 0 = 1273 12 = 15276, y 0 = 128 12 = 1536

es una solución a la ecuación 201x – 1999y = 12.

La solución general de esta ecuación se escribirá en la forma

x = 15276 + 1999k, y = 1536 + 201k, donde k es un número entero,

o, después de la redesignación (usamos que 15276 = 1283 + 7 1999, 1536 = 129 + 7 201),

x = 1283 + 1999n, y = 129 + 201n, donde n es un número entero.

Respuesta: (1283+1999n, 129+201n), donde n es un número entero.

3. Resuelve la ecuación en números enteros:

a) x 3 + y 3 = 3333333;

b) x 3 + y 3 = 4(x 2 y + xy 2 + 1).

a) Dado que x 3 e y 3, cuando se dividen por 9, solo pueden dar restos 0, 1 y 8 (consulte la tabla en la sección), entonces x 3 + y 3 solo pueden dar restos 0, 1, 2, 7 y 8. Pero el número 3333333 cuando se divide por 9 da un resto de 3. Por lo tanto, la ecuación original no tiene soluciones en números enteros.

b) Reescribamos la ecuación original en la forma (x + y) 3 = 7(x 2 y + xy 2) + 4. Dado que los cubos de números enteros cuando se dividen por 7 dan restos 0, 1 y 6, pero no 4, entonces la ecuación no tiene soluciones en números enteros.

Respuesta: No hay soluciones enteras.

a) en números primos la ecuación x 2 – 7x – 144 = y 2 – 25y;

b) en números enteros la ecuación x + y = x 2 – xy + y 2.

a) Resuelva esta ecuación como una ecuación cuadrática con respecto a la variable y. Obtenemos

y = x + 9 o y = 16 – x.

Dado que para x impar el número x + 9 es par, entonces el único par números primos, que satisface la primera igualdad, es (2; 11).

Como x, y son simples, entonces de la igualdad y = 16 – x tenemos

2 x 16,2 en 16.

Buscando entre las opciones, encontramos las soluciones restantes: (3; 13), (5; 11), (11; 5), (13; 3).

Respuesta: (2; 11), (3; 13), (5; 11), (11; 5), (13; 3).

b) Considere esta ecuación como ecuación cuadrática relativo ax:

x 2 – (y + 1)x + y 2 – y = 0.

El discriminante de esta ecuación es –3y 2 + 6y + 1. Es positivo sólo para los siguientes valores de y: 0, 1, 2. Para cada uno de estos valores, de la ecuación original obtenemos una ecuación cuadrática para x , que se soluciona fácilmente.

Respuesta: (0; 0), (0; 1), (1; 0), (1; 2), (2; 1), (2; 2).

5. ¿Hay número infinito triples de números enteros x, y, z tales que x 2 + y 2 + z 2 = x 3 + y 3 + z 3?

Intentemos seleccionar tripletas donde y = –z. Entonces y 3 y z 3 siempre se cancelarán entre sí y nuestra ecuación quedará así

x 2 + 2y 2 = x 3

o de otro modo,

x 2 (x–1) = 2y 2 .

Para que un par de números enteros (x; y) cumpla esta condición, es suficiente que el número x–1 sea el doble del cuadrado del número entero. Hay infinitos números de este tipo, es decir, todos estos son números de la forma 2n 2 +1. Sustituyendo este número en x 2 (x–1) = 2y 2, después de transformaciones simples obtenemos:

y = xn = n(2n 2 +1) = 2n 3 +n.

Todos los tripletes obtenidos de esta manera tienen la forma (2n 2 +1; 2n 3 +n; –2n 3 – n).

Respuesta: existe.

6. Encuentre los números enteros x, y, z, u tales que x 2 + y 2 + z 2 + u 2 = 2xyzu.

El número x 2 + y 2 + z 2 + u 2 es par, por lo que entre los números x, y, z, u número par números impares.

Si los cuatro números x, y, z, u son impares, entonces x 2 + y 2 + z 2 + u 2 es divisible por 4, pero 2xyzu no es divisible por 4: una discrepancia.

Si exactamente dos de los números x, y, z, u son impares, entonces x 2 + y 2 + z 2 + u 2 no es divisible por 4, pero 2xyzu es divisible por 4, nuevamente una discrepancia.

Por tanto, todos los números x, y, z, u son pares. Entonces podemos escribir eso

x = 2x 1 , y = 2y 1 , z = 2z 1 , u = 2u 1 ,

y la ecuación original tomará la forma

x 1 2 + y 1 2 + z 1 2 + tu 1 2 = 8x 1 y 1 z 1 tu 1 .

Ahora observe que (2k + 1) 2 = 4k(k + 1) + 1 cuando se divide por 8 da un resto de 1. Por lo tanto, si todos los números x 1, y 1, z 1, u 1 son impares, entonces x 1 2 + y 1 2 + z 1 2 + u 1 2 no es divisible por 8. Y si exactamente dos de estos números son impares, entonces x 1 2 + y 1 2 + z 1 2 + u 1 2 no es par 4. Esto significa

x 1 = 2x 2, y 1 = 2y 2, z 1 = 2z 2, tu 1 = 2u 2,

y obtenemos la ecuación

x 2 2 + y 2 2 + z 2 2 + tu 2 2 = 32x 2 y 2 z 2 tu 2 .

Repitiendo el mismo razonamiento nuevamente, encontramos que x, y, z, u son divisibles por 2 n para todo n natural, lo cual es posible solo para x = y = z = u = 0.

Respuesta: (0; 0; 0; 0).

7. Demuestra que la ecuación

(x – y) 3 + (y – z) 3 + (z – x) 3 = 30

no tiene soluciones en números enteros.

Usemos la siguiente identidad:

(x – y) 3 + (y – z) 3 + (z – x) 3 = 3(x – y)(y – z)(z – x).

Entonces la ecuación original se puede escribir como

(x – y)(y – z)(z – x) = 10.

Denotemos a = x – y, b = y – z, c = z – x y escribamos la igualdad resultante en la forma

Además, es obvio que a + b + c = 0. Es fácil comprobar que, hasta la permutación, la igualdad abc = 10 implica que los números |a|, |b|, |c| son iguales a 1, 2, 5 o 1, 1, 10. Pero en todos estos casos, para cualquier elección de signos a, b, c, la suma a + b + c es distinta de cero. Por tanto, la ecuación original no tiene soluciones enteras.

8. ¡Resuelve la ecuación 1 en números enteros! + 2! + . . . +x! = y 2 .

Es obvio que

si x = 1, entonces y 2 = 1,

si x = 3, entonces y 2 = 9.

Estos casos corresponden a próximos pares números:

x1 = 1, y1 = 1;

x2 = 1, y2 = –1;

x3 = 3, y3 = 3;

x4 = 3, y4 = –3.

¡Tenga en cuenta que para x = 2 tenemos 1! + 2! = 3, para x = 4 tenemos 1! + 2! + 3! + 4! = 33 y ni 3 ni 33 son cuadrados de números enteros. Si x > 5, entonces, dado que

5! + 6! + . . . +x! = 10norte,

podemos escribir eso

1! + 2! + 3! + 4! + 5! + . . . +x! = 33 + 10n.

Como 33 + 10n es un número que termina en 3, no es el cuadrado de un número entero.

Respuesta: (1; 1), (1; –1), (3; 3), (3; –3).

9. Decidir el siguiente sistema ecuaciones en números naturales:

a 3 – b 3 – c 3 = 3abc, a 2 = 2(b + c).

3abc > 0, entonces a 3 > b 3 + c 3 ;

así tenemos

Sumando estas desigualdades obtenemos que

Teniendo en cuenta la última desigualdad, de la segunda ecuación del sistema obtenemos que

Pero la segunda ecuación del sistema también muestra que a es un número par. Por tanto, a = 2, b = c = 1.

Respuesta: (2; 1; 1)

10. Encuentra todos los pares de números enteros xey que satisfacen la ecuación x 2 + x = y 4 + y 3 + y 2 + y.

Factorizando ambos lados de esta ecuación, obtenemos:

x(x + 1) = y(y + 1)(y 2 + 1),

x(x + 1) = (y 2 + y)(y 2 + 1)

Tal igualdad es posible si los lados izquierdo y derecho son iguales a cero o son el producto de dos números enteros consecutivos. Por tanto, igualando ciertos factores a cero, obtenemos 4 pares de valores de variables deseados:

x 1 = 0, y 1 = 0;

x2 = 0, y2 = –1;

x3 = –1, y3 = 0;

x4 = –1, y4 = –1.

El producto (y 2 + y)(y 2 + 1) puede considerarse como el producto de dos enteros consecutivos distintos de cero sólo cuando y = 2. Por lo tanto x(x + 1) = 30, de donde x 5 = 5, x 6 = –6. Esto significa que hay dos pares más de números enteros que satisfacen la ecuación original:

x5 = 5, y5 = 2;

x6 = –6, y6 = 2.

Respuesta: (0; 0), (0; –1), (–1; 0), (–1; –1), (5; 2), (–6; 2.)

Problemas sin soluciones

1. Resuelve la ecuación en números enteros:

a) xy = x + y + 3;

b) x 2 + y 2 = x + y + 2.

2. Resuelve la ecuación en números enteros:

a) x 3 + 21y 2 + 5 = 0;

b) 15x 2 – 7y 2 = 9.

3. Resuelve la ecuación en números naturales:

a) 2 x + 1 = y 2;

b) 3 2 x + 1 = y 2.

4. Demuestra que la ecuación x 3 + 3y 3 + 9z 3 = 9xyz en números racionales tiene solución única

5. Demuestra que la ecuación x 2 + 5 = y 3 en números enteros no tiene soluciones.

6 respuestas

Sigue este ejemplo: supongamos que las ecuaciones son:

7 = x + 3y + 4z + 9w 12 = 4x + 2y + 3z + 7w

Hay 2 ecuaciones y 4 incógnitas. Puedes establecer 2 de las incógnitas como parámetros, de modo que el sistema tendrá tantas ecuaciones como incógnitas haya:

7 - (4z + 9w) = x + 3y 12 - (3z + 7w) = 4x + 2y

Usaremos x e y como incógnitas. Se puede resolver y dejar w y z como parámetros en la solución lineal:

X = (22 - 3w - z)/10 y = (16 - 29w - 13z)/10

Ahora necesitas hacer que los numeradores sean divisibles por 10, el denominador. Si hay una solución, puede verificar todos los parámetros del 1 al 10.

En general, haces esto:

  • Elige los parámetros de forma que haya tantas incógnitas como ecuaciones. Intente dejar las incógnitas que generan el valor absoluto más pequeño para el determinante (en el ejemplo era 10, pero elegir y y z sería mejor ya que sería |det|=3)
  • Decidir sistema lineal y crear una respuesta dependiendo de los parámetros
  • Verifique los valores de los parámetros del 1 al valor absoluto det (si hay una solución, la encontrará en este punto) hasta que haya una solución entera para todas las incógnitas (por eso eligió el valor determinante más pequeño antes) y verifique si es positivo (esto no se ilustró en el ejemplo).

Lo siento si el es fuerza bruta en último paso, pero al menos es posible minimizar el rango de prueba. Tal vez La mejor manera Resuelvo el sistema final de ecuaciones diofánticas, pero no conozco ningún método.

EDITAR1

Existe un método para evitar la fuerza bruta en la última parte. Nuevamente, en el ejemplo debes hacer:

22 = 3w + z (congruente, mod 10) 16 = 29w + 13z (congruente, mod 10)

Aplicación del módulo:

2 = 3w + z (congruente, mod 10) 6 = 9w + 3z (congruente, mod 10)

Puedes hacer que el sistema de congruencia sea triangular (eliminación gaussiana) multiplicando la congruencia por su inverso módulo 10 y sumando los demás. El inverso de 9 módulo 10 es -1, entonces multiplicamos la última congruencia:

2 = 3w + z (congruente, mod 10) -6 = -9w + -3z (congruente, mod 10)

Equivalente:

2 = 3w + z (congruente, mod 10) 4 = w + 7z (congruente, mod 10)

Luego multiplica por -3 y suma al primero:

2 - 3*4 = 3w + z -3w - 21z (congruente, mod 10) 4 = w + 7z (congruente, mod 10)

Equivalente:

10 = -20z (congruente, mod 10) 4 = w + 7z (congruente, mod 10)

Luego resuelves de arriba a abajo (este ejemplo parece ser válido para cualquier valor de z). Puede haber cierto grado de libertad si tiene más parámetros que congruencias, pero son equivalentes y puede establecer los parámetros redundantes en cualquier valor, preferiblemente valor más pequeño, igual a 1.

¡Avíseme si hay algo más que no esté claro!

Si entiendo el problema correctamente, tiene varios paquetes, cada uno con diferentes gastos de envío. Quieres pagar este envío con el conjunto de sellos que tienes. Puedes resolver el problema con una programación completa. La siguiente solución resuelve todos los paquetes a la vez. Tendrá una cantidad de variables igual a numPackages * numStampDenominations (probablemente inconveniente para gran cantidad paquetes).

La restricción de igualdad parece Aeqx = beq. La matriz Aeq para dos paquetes con cuatro marcas (numVarsnumPackages) tiene este aspecto:

21 .68 .47 .01 .00 .00 .00 .00 .89 * x = .00 .00 .00 .00 .21 .68 .47 .01 .50

La primera fila son los coeficientes de restricción (valores de sello) para el lote 1. Los coeficientes distintos de cero son los valores de sello. No se cuida la variable nula asociada con otros paquetes.

El segundo conjunto de limitaciones (desigualdad) se refiere al conjunto de marcas que tengo. La restricción de desigualdad parece A * x = b. La matriz A para 4 sellos y 8 variables (numPackages * numStampDenominations) se ve así:

1 0 0 0 1 0 0 0 10 0 1 0 0 0 1 0 0 10 * x<= 0 0 1 0 0 0 1 0 10 0 0 0 1 0 0 0 1 20

La función de costo es f"*x, que representa el número total de troqueles. Sus coeficientes son simplemente unidades, especificadas como un vector columna.

Hay un script ejecutándose en Matlab que resuelve el problema de la manera descrita. Probablemente se formulará de la misma manera en las octavas que ofrece GNU, similar a Matlab. Es posible que Matlab u Octave no sean la solución adecuada para usted, pero al menos le dicen qué funciona y le brindan una zona de pruebas para desarrollar una solución.

% El valor de cada sello disponible como matriz de 4x1 sv = [.21; .68; .47; .01]; % El número de cada sello disponible como una matriz de 4x1 sq = ; % Número de demostraciones m = tamaño(sv, 1); % El franqueo requerido para cada paquete como una matriz de 4x1 % - probablemente leído de un archivo franqueo = [.89;.50;1.01;.47;.47]; % Número de paquetes: solo un recuento de las filas de envío packageCount = size(franqueo, 1); % El número de variables es m*packageCount numVar = m*packageCount; % límite inferior: cero sellos de una denominación determinada lb = zeros(numVar,1); % límite superior: use restricciones para el límite superior ub =; % La función de costo: minimiza el número de sellos utilizados % min(f"*x) f = ones(numVar,1); % restricciones de enteros intcon = 1:numVar; % Construye la matriz de restricciones de envío Aeq = zeros(numVar, packageCount ); for i = 1:packageCount first = i*m - 3; last = first + 3; Aeq(first:last,i) = sv(:); Construir matriz de restricción de recuento de sellos A = zeros(numVar, m). ); para r = 1:m para j = 1:m c = (j-1)*m + 1; A(c,r) = 1; ", beq, lb, ub)

Probaría el siguiente enfoque (tenga en cuenta que nunca he tenido que lidiar con este problema, así que tome esta respuesta como un intento de resolver el problema con usted en lugar de una respuesta analítica real).

Simplemente encuentras soluciones como si fuera un sistema normal, por lo que puedes encontrar infinitas soluciones:

Ejemplo:

Y=x+3

entonces el par real de números (2,5) es una posible solución real para este sistema, una vez que tienes infinitas soluciones, simplemente limitas el subconjunto de soluciones que son producidas por números enteros.

Por supuesto que tienes limitaciones, en nuestro caso la solución solo tiene 1 variable libre, por lo que podemos escribir todas las soluciones de esta manera:

(x,x+3)

Asombro:

Si hay un número irracional en alguna parte, no hay soluciones enteras:

(x, x+pi) => ni el primer ni el segundo número aquí pueden ser enteros al mismo tiempo

Entonces puedes encontrar soluciones enteras si y sólo si sus "infinitas soluciones" se limitan a números enteros o racionales.

Digamos que tienes el siguiente vector:

(3x, (2/5)y, y, x, x+y)

Entonces toda la solución podría ser:

X=3 y=10/2

Si cree que la respuesta no es adecuada para usted, simplemente diga: La eliminaré para no recibir puntos de bonificación.

En una serie de problemas económicos relacionados con problemas de programación lineal, los elementos de la solución deben expresarse en números enteros. En estos problemas, las variables significan el número de unidades de productos indivisibles.

El problema de programación entera se formula de la siguiente manera:

Encuentre un plan de solución de este tipo X=(x 1 , X 2 ,…, X norte ) , en el que la función lineal toma un valor máximo o mínimo sujeto a restricciones

el problema se resuelve utilizando métodos de programación lineal. Si las variables de la solución óptima resultan no enteras, se utilizan métodos de corte o el método de enumeración de soluciones enteras.

Conceptos de rama y límites .

El método de ramificación y consolidación consiste en una búsqueda ordenada de opciones y en la consideración sólo de aquellas que resultan prometedoras según ciertos criterios, y en el descarte de las opciones no prometedoras.

El método de rama y enlace es el siguiente: set soluciones admisibles(planes) se divide de alguna manera en subconjuntos, cada uno de los cuales se divide nuevamente en subconjuntos de la misma manera. El proceso continúa hasta entonces. Aún no se ha obtenido la solución entera óptima del problema original.

El nombre del método de rama y enlace proviene del hecho de que en el proceso de resolución del problema el problema se “ramifica” sucesivamente, reemplazándose por otros más simples. El proceso de solución se puede continuar en forma de árbol, cuyos números en cuyos nodos (vértices) indican el plan para resolver el problema (las variables deseadas).

5.2 Método gráfico para la resolución de problemas de programación entera.

Si hay dos variables en un problema de programación lineal y desigualdades en el sistema de restricciones, se puede resolver gráficamente sin el requisito de variables enteras.

Si la solución óptima a este problema es un número entero, entonces es óptima para el problema original.

Si la solución óptima resultante no es un número entero, entonces se construye una restricción lineal adicional. Tiene las siguientes propiedades:

    Debería ser lineal;

    Se debe cortar el plan no entero óptimo encontrado;

    No debe truncarse ningún plan de números enteros.

Algoritmo para la solución gráfica del problema.

programación entera.

    Construya un sistema de coordenadas x 1 0x 2 y seleccione una escala.

    Encuentre la región de soluciones factibles (ADS) del sistema de restricciones del problema.

    Construya una función objetivo que sea una línea de nivel e indique la dirección de la normal en ella.

    Mueva la recta de la función objetivo en la dirección de la normal a través del ODR para que pase de secante a tangente al ODF y pase por el punto más alejado del origen. Este punto será el punto extremo, es decir. resolviendo el problema.

Si resulta que la recta de la función objetivo es paralela a uno de los lados del ODP, entonces en este caso se alcanza el extremo en todos los puntos del lado correspondiente y el problema de programación lineal tendrá un número infinito de soluciones. .

    Encuentre las coordenadas, los puntos extremos y el valor de la función objetivo en ellos. Si los valores obtenidos no son enteros, entonces se procede al siguiente paso.

    Seleccione un área con valores enteros en estas coordenadas.

    Determina nuevas coordenadas y construye una gráfica.

    Encuentra puntos con valores enteros. variables requeridas, sustituye la función objetivo en la ecuación y encuentra su valor. El máximo de los valores obtenidos de la función objetivo será la solución al problema.




Arriba