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 40 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 15000 m e ogni kg di B a 9000 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.5240
Q32.555

Risolviamo il problema con R usando ( "a scatola nera") la funzione simplex.     
max  z = 15000 x + 9000 y 
1.5x + 2y ≤ 40
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 <- 40  # 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(15e3, 9e3)
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 
17.0  1.6 
The optimal value of the objective  function is 269400

    Conviene produrre 17 kg di A e 1.6 kg di B.

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

source("http://macosa.dima.unige.it/r.R")
P <- function(x,y) (1.5*x+2*y<= 40) & (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)
Piano(-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 - 40; 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) 15000*x + 9000*y - M
M <- 0; cur(F,"black")
M <- 1e5; cur(F,"black")
# intersezione tra viola (f5) e verde (f2)
sistema(c(1,0,17, 3,2.5, 55))
#   17.0   1.6
PUNTO(17, 1.6,  "red")
M <- 0; F(17,1.6)
#  269400
M <-ultimo(); cur(F,"black")

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

Approfondimenti in: Programmazione lineare neGli Oggetti Matematici.