Un'industria produce due prodotti A e B e utilizza due macchinari P e Q. Per ogni kg di A sono necessarie 1 ora e mezza di P e 3 ore di Q, per ogni kg di B sono necessarie 2 ore di P e 2 ore e mezza di Q. Inoltre A non può essere prodotto in più di 17 kg alla settimana, la macchina P non può lavorare per più di 38 ore alla settimana, mentre Q per non più di 55.  Sia m l'unità di misura monetaria in vigore.  Determinare qual è la combinazione produttiva più conveniente, sapendo che ogni kg di A viene venduto a 10000 m e ogni kg di B a 11000 m, nell'ipotesi che ogni quantità prodotta sia venduta, e che i costi di produzione siano sostanzialmente indipendenti dalla scelta operata.

Schema risolutivo

  A    B  Ore
 disponibili 
 x = quantità di A
 y = quantità di B
 z = funzione obiettivo = ricavo 
 P 1.5238
Q32.555

Risolviamo il problema con R usando ( "a scatola nera") la funzione simplex.     
max  z = 10000 x + 11000 y 
1.5x + 2y ≤ 38
3x + 2.5y ≤ 55
  x +  0y ≤ 17
  x +  0y ≥ 0
 0x +   y ≥ 0

library(boot) # Carico la libreria contenente "simplex":
# I vincoli:
A11 <- c(1.5,2); b11 <- 38  # quelli ≤
A12 <- c(3,2.5); b12 <- 55
A13 <- c(1,0);   b13 <- 17
A21 <- c(1,0); b21 <- 0     # quelli ≥
A22 <- c(0,1); b22 <- 0
# Il probl. da massimizzare:
a1 <- c(10e3, 11e3)
simplex(A1=rbind(A11,A12,A13), A2=rbind(A21,A22), a=a1,
b1=c(b11,b12,b13), b2=c(b21,b22), maxi=TRUE)
Optimal solution has the following values
       x1        x2 
 6.666667 14.000000
The optimal value of the objective  function is 220666.67

    Conviene produrre 6.667 kg di A e 14.000 kg di B.

    Ecco la rappresentazione (e la soluzione) grafica del problema:

source("http://macosa.dima.unige.it/r.R")
P <- function(x,y) (1.5*x+2*y<= 38) & (3*x+2.5*y<= 55) & (0<= x) & (x<= 17) & (0<= y)
HF <- 3; BF <- 3
# La scelta della porzione di piano  (eventualmente poi
# ritraccio dopo la rappresentazione delle rette)
boxS(-0.5,22, -0.5,22)
diseq2(P,0, "grey")  # Dove P > 0 ovvero P = 1
diseq2(P,0, "grey")
f1 <- function(x,y) 1.5*x+2*y - 38; f2 <- function(x,y) 3*x+2.5*y - 55
f3 <- function(x,y) x; f4 <- function(x,y) y; f5 <- function(x,y) x-17
curva(f1,"red"); curva(f2,"green"); curva(f3,"orange")
curva(f4,"blue"); curva(f5,"violet")
F <- function(x,y) 10000*x + 11000*y - M
M <- 0; cur(F,"black")
M <- 1e5; cur(F,"black")
# intersezione tra rossa (f1) e verde (f2)
frazio(sistema(c(1.5,2,38, 3,2.5, 55)))
#   6.666667  14.000000
#   20/3      14
punto(20/3, 14,  "blue")
M <- 0; F(20/3,14)
#   220666.7
M <-ultimo(); cur(F,"black")

Avrei ottenuto la stessa risposta con WolframAlpha mettendo
maximize[10000x+11000y, {1.5x+2y<=38 && 3x+2.5y<=55 && x<=17 && y>=0 && x>=0} ]

Approfondimenti in: Programmazione lineare neGli Oggetti Matematici.