Red de conocimiento informático - Aprendizaje de programación - Programación de software Lingo, ¡los expertos pueden ayudar!

Programación de software Lingo, ¡los expertos pueden ayudar!

1. En primer lugar: ¿ch9505 está enfermo? Recuerdo que hice una pregunta la última vez y él la copió directamente.

2. Entonces comencé a ayudarte a responder esta pregunta:

Todos los códigos son originales y me tomó alrededor de una mañana ayudarte a resolverlo. Aunque esta pregunta no es demasiado difícil, los datos son un poco engorrosos. Hay muchas declaraciones de cobro con diferentes dimensiones. Espero que pueda ayudarte.

Parte del programa:

MODELO:

CONJUNTOS:

program/1..4/;! Definir cuatro proyectos;

p>

factory/1, 2/: totaltime;! Definir dos talleres Nota: En este programa, acordamos que el comienzo de q representa la cantidad y el comienzo de c representa el costo. > almacén/1, 2, 3/;! Defina tres almacenes;

acero/A, B, C, D/;! Defina cuatro materiales de acero (el cuarto material de acero de la colección son puertas de acero de plástico y ventanas);

componente/1, 2/;! Definir dos componentes;

linka (acero, almacén): qlinka;! Tabla 2.1== Inventario de acero en el almacén;

linkb (componente, acero): qlinkb;! Tabla 2.2== Cantidad de acero requerida por unidad de componente;

linkc (fábrica, componente): tiempo, costo, qlinkc;! Tabla 2.3 2.4== Costo de producción del taller (amp; Consume tiempo);

linkd(programa, componente): cpdemand;! Tabla 2.5, cpdemand significa "demanda de componentes"

<; p> linke(programa, acero): stdemand;! Tabla 2.5, stdemand para "demanda de acero" Demanda de acero

linkf (fábrica, acero): qlinkf

deepa (fábrica); , programa, componente): qdeepa; !2*4*2=16 cantidades;

deepb(almacén, programa, acero): qdeepb;!3*4*4=48 cantidades;

deepc(acero, almacén, fábrica): qdeepc;! 4*3*2=24;

!deepd (fábrica, componente, acero): qdeepd;! ;

transa (fábrica, programa): qtransa, ctransa;! Transporte entre esta colección y las dos siguientes colecciones, almacén, taller y proyecto.

Tabla 2.6;

transb(almacén, programa): qtransb, ctransb;

transc(almacén, fábrica): qtransc, ctransc

ENDSETS

DATOS:

qlinka=

4000 4000 6000

3000 3500 2500

3000 5000 5000

200 250 100;

qlinkb=

15 10 20 0

20 10 15 0;

tiempo total= 35000 60000;

tiempo=100 200

200 100

costo=6600 7800

6500

cpdemanda; =

50 100

30 60

100 200

50 80

demanda estándar=

100 70 0 100

50 80 0 120

30 90 0 80

70 60 0 200;

ctransa =

100 150 80 70

50 60 80 90;

ctransb=

40 20 30 50

60 40 80 100

50 60 75 85;

ctransc=

40 80

100 20

80 40;

ENDDATA

MIN=@sum(linkc:coste*qlinkc) @sum(transa:qtransa*ctransa) @sum(transb:qtransb*ctransb) @sum (transc: qtransc*ctransc);

!1. Restricciones de requisitos de componentes

@for(linkd(i,j):@sum(factory(k):qdeepa(k) , i, j)) = cpdemand (i, j));

!2. Restricciones de demanda de acero

@for(linke(i, j): @sum(warehouse; (k): qdeepb(k, i, j)) = stdemand (i, j));

!3. Restricciones de horas de trabajo del taller

@for(factory(i); ) :@sum(component(j):time(i,j)*qlinkc(i,j))lt;=totaltime(i));

!4. p >

@for(linka(i,j):@sum(programa(k):qdeepb(j,k,i)) @sum(factory(m):qdeepc(i,j,m))lt ; =qlinka(i,j));

!5. Balanza de producción y envío;

@for(linkc(i,j):@sum(program(k):qdeepa(i,k,j))=qlinkc(i,j));

!6. Restricciones de cantidad;

@for(linkf(i, k): qlinkf(i, k)=@sum(component(j): qlinkc(i, j)*qlinkb(j, k))) ;

!7. Restricciones de volumen de transporte;

@for(transa(i, j): qtransa=@sum(component(k): qdeepa(i, j, k ) ));

@for(transb(i, j): qtransb=@sum(acero(k): qdeepb(i, j, k))); (transc(i,j):qtransc=@sum(steel(k):qdeepc(k,i,j)));

@for(linkf(i,j):qlinkf(i, j)=@sum(warehouse(k):qdeepc(j,k,i)));

END

Resultados parciales:

Solución óptima global encontrado en la iteración: 80

Valor objetivo: 5770900.

Valor variable Costo reducido

TOTALTIME( 1) 35000.00 0.000000

TOTALTIME (

QLINKA( B, 1) 3000.000 0.000000

QLINKA( B, 2) 3500.000 0.000000

QLINKA( B, 3) 2500.000 0.000000

QLINKA(C, 1) 3000.000 0.000000

QLINKA(C, 2) 5000.000 0.000000

p>

QLINKA( C, 3) 5000.000 0.000000

QLINKA( D, 1) 200.0000 0.000000

QLINKA( D, 2) 250.0000 0.000000

QLINKB( D, 3) 100.0000 0.000000

QLINKB( 1, A) 15.00000 0.000000

QLINKB( 1, B) 10.00000 0.000000

QLINKB( 1, C ) 20,00000 0,000000

QLINKB( 1, D) 0,000000 0,000000

QLINKB( 2, A) 20,00000 0,000000

QLINKB( 2, B) 10,00000 0,000000

QLINKB( 2, C) 15.00000 0.000000

QLINKB( 2, D) 0.000000 0.000000

TIEMPO( 1, 1) 100.0000 0.000000

TIEMPO( 1, 2) 200.0000 0.000000

TIEMPO( 2, 1) 200.0000 0.000000

TIEMPO( 2, 2) 100.0000 0.000000

COSTO( 1, 1 ) 6600.000 0.000000

COSTO( 1, 2) 7800.000 0.000000

COSTO( 2, 1) 6500.000 0.00

0000

COSTO( 2, 2) 7300.000 0.000000

QLINKC( 1, 1) 150.0000 0.000000

QLINKC( 1, 2) 0.000000 17.50000

QLINKC( 2, 1) 80.00000 0.000000

QLINKC( 2, 2) 440.0000 0.000000

CPDEMAND( 1, 1) 50.00000 0.000000

CPDEMAND( 1, 2) 100.0000 0.000000

CPDEMAND( 2, 1) 30.00000 0.000000

CPDEMAND( 2, 2) 60.00000 0.000000

CPDEMAND( 3, 1) 100.0000 0.000000

CPDEMAND( 3, 2) 200.0000 0.000000

CPDEMAND( 4, 1) 50.00000 0.000000

CPDEMAND( 4, 2) 80.00000 0.000000

DEMAND EST (1, A) 100,0000 0,000000

DEMAND EST (1, B) 70,00000 0,000000

DEMAND EST (1, C) 0,000000 0,000000

DEMAND EST ( 1, D) 100,0000 0,000000

DEMANDA ESTÁNDAR( 2, A) 50,00000 0,000000

DEMANDA ESTÁNDAR( 2, B) 80,00000

0,000000

DEMANDA ESTÁNDAR( 2, C) 0,000000 0,000000

DEMAND ESTÁNDAR( 2, D) 120,0000 0,000000

DEMAND ESTÁNDAR( 3, A) 30,00000 0,000000

DEMAND EST (3, B) 90,00000 0,000000

DEMAND EST (3, C) 0,000000 0,000000

DEMAND EST (3, D) 80,00000 0,000000

DEMAND EST ( 4, A) 70.00000 0.000000

DEMAND ESTÁNDAR( 4, B) 60.00000 0.000000

DEMAND ESTÁNDAR( 4, C) 0.000000 0.000000

DEMAND ESTÁNDAR( 4, D) 200.0000 0,000000

QLINKF(1, A) 2250,000 0,000000

QLINKF(1, B) 1500,000 0,000000

QLINKF(1, C) 3000,000 0,000000

QLINKF( 1, D) 0.000000 0.000000

QLINKF( 2, A) 10000.00 0.000000

QLINKF( 2, B) 5200.000 0.000000

QLINKF( 2, C) 8200.000 0.000000

QLINKF( 2, D) 0.000000 0.000000

QDEEPA( 1, 1, 1) 0.000000

0.000000

QDEEPA( 1, 1, 2) 0.000000 70.00000

QDEEPA( 1, 2, 1) 0.000000 40.00000

QDEEPA( 1, 2, 2) 0.000000 110.0000

QDEEPA( 1, 3, 1) 100.0000 0.000000

QDEEPA( 1, 3, 2) 0.000000 20.00000

QDEEPA( 1, 4, 1 ) 50.00000 0.000000

QDEEPA( 1, 4, 2) 0.000000 0.000000

QDEEPA( 2, 1, 1) 50.00000 0.000000

QDEEPA( 2, 1, 2) 100.0000 0.000000

QDEEPA( 2, 2, 1) 30.00000 0.000000

QDEEPA( 2, 2, 2) 60.00000 0.000000

QDEEPA( 2, 3 , 1) 0.000000 50.00000

QDEEPA( 2, 3, 2) 200.0000 0.000000

QDEEPA( 2, 4, 1) 0.000000 70.00000

QDEEPA( 2, 4, 2) 80.00000 0.000000

QDEEPB( 1, 1, A) 100.0000 0.000000

QDEEPB( 1, 1, B) 70.00000 0.000000

QDEEPB( 1 , 1, C) 0,000000 62,50000

QDEEPB(1, 1, D) 0,0000

00 25.00000

QDEEPB( 1, 2, A) 50.00000 0.000000

QDEEPB( 1, 2, B) 80.00000 0.000000

QDEEPB( 1, 2, C ) 0.000000 42.50000

QDEEPB( 1, 2, D) 0.000000 25.00000

QDEEPB( 1, 3, A) 30.00000 0.000000

QDEEPB( 1, 3, B) 90.00000 0.000000

QDEEPB( 1, 3, C) 0.000000 52.50000

QDEEPB( 1, 3, D) 80.00000 0.000000

QDEEPB( 1, 4 , A) 70.00000 0.000000

QDEEPB( 1, 4, B) 60.00000 0.000000

QDEEPB( 1, 4, C) 0.000000 72.50000

QDEEPB( 1, 4, D) 120.0000 0.000000

QDEEPB( 2, 1, A) 0.000000 80.00000

QDEEPB( 2, 1, B) 0.000000 40.00000

QDEEPB( 2 , 1, C) 0.000000 80.00000

QDEEPB( 2, 1, D) 80.00000 0.000000

QDEEPB( 2, 2, A) 0.000000 80.00000

QDEEPB( 2, 2, B) 0,000000 40,00000

QDEEPB(2, 2, C)

0.000000 60.00000

QDEEPB(2, 2, D) 120.0000 0.000000

QDEEPB(2, 3, A) 0.000000 110.0000

QDEEPB(2, 3, B ) 0.000000 70.00000

QDEEPB( 2, 3, C) 0.000000 100.0000

QDEEPB( 2, 3, D) 0.000000 5.000000

QDEEPB( 2, 4, A) 0.000000 110.0000

QDEEPB( 2, 4, B) 0.000000 70.00000

QDEEPB( 2, 4, C) 0.000000 120.0000

QDEEPB( 2, 4 , D) 0.000000 5.000000

QDEEPB( 3, 1, A) 0.000000 50.00000

QDEEPB( 3, 1, B) 0.000000 10.00000

QDEEPB( 3, 1, C) 0.000000 50.00000

QDEEPB( 3, 1, D) 20.00000 0.000000

QDEEPB( 3, 2, A) 0.000000 80.00000

QDEEPB( 3 , 2, B) 0.000000 40.00000

QDEEPB( 3, 2, C) 0.000000 60.00000

QDEEPB( 3, 2, D) 0.000000 30.00000

QDEEPB( 3, 3, A) 0,000000 85,00000

QDEEPB(3, 3, B)

0.000000 45.00000

QDEEPB( 3, 3, C) 0.000000 75.00000

QDEEPB( 3, 3, D) 0.000000 10.00000

QDEEPB( 3, 4, A ) 0.000000 75.00000

QDEEPB( 3, 4, B) 0.000000 35.00000

QDEEPB( 3, 4, C) 0.000000 85.00000

QDEEPB( 3, 4, D) 80.00000 0.000000

QDEEPC( A, 1, 1) 2250.000 0.000000

QDEEPC( A, 1, 2) 0.000000 0.000000

QDEEPC( A, 2 , 1) 0.000000 120.0000

QDEEPC( A, 2, 2) 4000.000 0.000000

QDEEPC( A, 3, 1) 0.000000 80.00000

QDEEPC( A, 3, 2) 6000.000 0.000000

QDEEPC( B, 1, 1) 1500.000 0.000000

QDEEPC( B, 1, 2) 0.000000 40.00000

QDEEPC( B , 2, 1) 0.000000 80.00000

QDEEPC( B, 2, 2) 3500.000 0.000000

QDEEPC( B, 3, 1) 0.000000 40.00000

QDEEPC( B, 3, 2) 1700.000 0.000000

QDEEPC(C, 1

, 1) 3000.000 0.000000

QDEEPC( C, 1, 2) 0.000000 62.50000

QDEEPC( C, 2, 1) 0.000000 57.50000

QDEEPC( C, 2, 2) 5000.000 0.000000

QDEEPC( C, 3, 1) 0.000000 17.50000

QDEEPC( C, 3, 2) 3200.000 0.000000

QDEEPC( D , 1, 1) 0.000000 85.00000

QDEEPC( D, 1, 2) 0.000000 125.0000

QDEEPC( D, 2, 1) 0.000000 100.0000

QDEEPC( D, 2, 2) 0.000000 20.00000

QDEEPC(D, 3, 1) 0.000000 90.00000

QDEEPC(D, 3, 2) 0.000000 50.00000

( 1, 1) 0,000000 0,000000

QTRANSA( 1, 2) 0,000000 0,000000

QTRANSA( 1, 3) 100,0000 0,000000

QTRANSA( 1, 4) 50,00000 0,000000

QTRANSA(2, 1) 150,0000 0,000000

QTRANSA(2, 2) 90,00000 0,000000

QTRANSA(2, 3) 200,0000 0,000000

QTRA

NSA( 2, 4) 80.00000 0.000000

CTRANSA( 1, 1) 100.0000 0.000000

CTRANSA( 1, 2) 150.0000 0.000000

CTRANSA( 1, 3 ) 80.00000 0.000000

CTRANSA( 1, 4) 70.00000 0.000000

CTRANSA( 2, 1) 50.00000 0.000000

CTRANSA( 2, 2) 60.00000 0.000000

CTRANSA( 2, 3) 80.00000 0.000000

CTRANSA( 2, 4) 90.00000 0.000000

QTRANSB( 1, 1) 170.0000 0.000000

QTRANSB( 1, 2) 130,0000 0,000000

QTRANSB( 1, 3) 200,0000 0,000000

QTRANSB( 1, 4) 250,0000 0,000000

QTRANSB( 2, 1 ) 80.00000 0.000000

QTRANSB( 2, 2) 120.0000 0.000000

QTRANSB( 2, 3) 0.000000 0.000000

QTRANSB( 2, 4) 0.000000 0.00000 < / p>

QTRANSB( 3, 1) 20.00000 0.000000

QTRANSB( 3, 2) 0.000000 0.000000

QTRANSB( 3, 3) 0,000000 0,000000

QTRANSB( 3, 4) 80,00000 0,000000

CTRANSB( 1, 1) 40,00000 0,000000

CTRANSB( 1, 2 ) 20.00000 0.000000

CTRANSB( 1, 3) 30.00000 0.000000

CTRANSB( 1, 4) 50.00000 0.000000

CTRANSB( 2, 1) 60.00000 0.000000

CTRANSB( 2, 2) 40.00000 0.000000

CTRANSB( 2, 3) 80.00000 0.000000

CTRANSB( 2, 4) 100.0000 0.000000

CTRANSB( 3, 1) 50.00000 0.000000

CTRANSB( 3, 2) 60.00000 0.000000

CTRANSB( 3, 3) 75.00000 0.000000

CTRANSB( 3, 4 ) 85.00000 0.000000

QTRANSC( 1, 1) 6750.000 0.000000

QTRANSC( 1, 2) 0.000000 0.000000

0

QTRANSC( 2, 2) 12500,00 0,000000

QTRANSC( 3, 1) 0,000000 0,000000

QTRANSC( 3, 2) 10900.00 0.000000

CTRANSC( 1, 1) 40.00000 0.000000

CTRANSC( 1, 2) 80.00000 0.000000

CTRANSC( 2, 1 ) 100.0000 0.000000

CTRANSC( 2, 2) 20.00000 0.000000

CTRANSC( 3, 1) 80.00000 0.000000

CTRANSC( 3, 2) 40.00000 0.000000

Finalmente: acabo de verificar la demanda de los resultados y descubrí que son satisfactorios. Si encuentra algún problema, puede informarme y lo ajustaré. Además, hay algunas partes en mi declaración de colección que puedes modificar si te resultan engorrosas. Información de contacto: 511757449@qq.com, o deje un mensaje directamente en Baidu HI.