Sei sulla pagina 1di 31

2 GESTIONE DEI RICAVI

Le tecniche di gestione dei ricavi vengono spesso definite come il modo per allocare il giusto
ammontare di capacit, per il giusto cliente, nel momento giusto, imponendo il prezzo giusto, con lo
scopo di massimizzare il profitto derivante.
In questo capitolo esploreremo i principali modelli e i relativi metodi di risoluzione usati nelle
varie tecniche di gestione dei ricavi, ponendo particolare attenzione a quelli cosiddetti iterativi; il
problema che vogliamo risolvere noto come controllo di capacit, ovvero, lallocazione ottimale delle
risorse disponibili.
Partiremo con lanalisi del caso semplice in cui sia presente una sola risorsa, per arrivare a vedere
come si possono adeguare i concetti studiati al caso pi complesso con pi risorse.

2.1 Gestione dei ricavi: principi

Le tecniche per la gestione dei ricavi sono applicabili in settori aventi certe caratteristiche:
- capacit limitata e immediatamente deperibile, ad esempio, un posto su un aereo o una
camera dalbergo;
- le prenotazioni dei clienti devono essere programmate per tempo e questo un aspetto che
permette alle compagnie di poter monitorare preventivamente il bisogno successivo;
- i prezzi cambiano in base allapertura o chiusura di classi predefinite di prezzo-prenotazione,
come succede quando si acquista un biglietto aereo in tempi differenti.
Spesso per analizzare le componenti delle tecniche dei gestione dei ricavi si fa uso della matrice
di Kimes in cui si mettono in evidenza il prezzo e la deperibilit quali criteri di scelta del tipo di modello;
vediamola meglio.

Figura 15 Matrice di Kimes

Le aziende che tipicamente integrano con successo dei processi di gestione dei ricavi si
caratterizzano nel quadrante relativo a prodotti dal prezzo variabile e durata prevedibile; negli ultimi
tempi, per, queste tecniche si stanno pian piano espandendo fino a coprire lintera matrice con buoni
esiti.

45
2.2 Allocazione ottimale di una singola risorsa

Analizziamo come allocare in modo ottimale una certa risorsa fra pi classi di domanda; esempi
tipici sono il controllo della vendita dei biglietti delle diverse classi di un certo volo, o la prenotazione di
camere dalbergo di una certa classe per un certo periodo.
Esistono diversi meccanismi di controllo del prezzo, che si differenziano sostanzialmente per le
soglie impostate e per le modalit di aggiornamento; andiamo a illustrarne alcuni:

Booking limit

Indica le soglie oltre le quali non possibile vendere un particolare bene ai richiedenti, soglie
che limitano, quindi, la capacit di allocazione a una certa classe; spesso la capacit reale eccede il limite
posto ma questo pu essere utilizzato quale tattica con cui prediligere una o laltra classe.
I booking limits possono essere di due tipi:
1) partizionati (partitioned), quando dividono la capacit della risorsa in blocchi distinti per
ogni classe di domanda, e
2) annidati (nested), quando dividono la capacit in blocchi sovrapponibili gerarchicamente,
ovvero, se necessario, la classe superiore pu usufruire delle risorse preventivamente dedicate
a quella inferiore.

Spesso lutilizzo di booking limit del primo tipo appare troppo restrittivo se si considera che le classi
superiori sono quelle pi redditizie, perci, si propende per il secondo tipo.

Protection level

Indica il quantitativo di risorsa da considerarsi dedicato a una certa classe o insieme di classi;
anchessi possono essere di tipo partizionati (partitioned) o annidati (nested) con lo stesso significato
visto sopra.

Bid price

Consiste nel fissare una soglia di prezzo il cui livello dipende da una serie di fattori; una certa
richiesta viene accettata se il ricavo derivante da essa supera questa soglia.
Questa tecnica pi semplice delle precedenti in quanto consiste semplicemente nel fissare una
soglia per ogni tempo e non un insieme di livelli per ogni classe; fissare le soglie in maniera statica pu
diventare, per, dannoso in quanto non si tiene conto delle condizioni reali, perci, una buona soluzione
potrebbe essere esprimere soglie in funzione della capacit residua.
Bid price risulta essere un buon metodo in quei casi in cui possibile discriminare esattamente le
richieste in base ai ricavi.

Formalizzando, definiamo bj il booking limit per una certa classe j; esso equivale alla differenza
fra la capacit e il protection level delle classi j-1 e superiori.
Il processo standard che utilizza i booking limit prende il nome di Standard Nesting e si svolge
nei seguenti passi:
- si ha una capacit iniziale di C unit
- si ricevono delle prenotazioni

46
- una prenotazione per una certa classe j viene accettata se
o se vi della capacit residua
o il numero totale delle prenotazioni accettate per j non eccede il relativo bj.
La capacit destinata a una certa classe viene calcolata basandosi su previsioni del quantitativo
futuro necessario e adeguandola man mano.

Un'altra tecnica meno utilizzata Theft Nesting:


- si basa sul principio che una prenotazione che venga accettata per la classe j riduce sia la
capacit di questa classe che di tutte quelle ad essa inferiori.
Questa tecnica, a differenza della precedente, detta senza memoria perch le quantit riservate
rimangono tali fino alla fine, e non vengono adeguate.

Le due tecniche sono comunque equivalenti solo nel caso poco reale in cui le richieste arrivate
seguano un ordine, ovvero, riguardino gerarchicamente le classi, dalla pi bassa alla pi alta; solitamente,
Standard Nesting la tecnica utilizzata.

Di seguito andremo a vedere i modelli statici.


Occorre fare delle assunzioni esemplificative necessarie per la nostra modellazione:
1. la domanda per le differenti classi arriva in intervalli di tempo non sovrapposti; questo aspetto
poco reale ma rappresenta comunque una buona approssimazione (ad esempio, per quanto
riguarda le prenotazioni aeree spesso arrivano prima quelle a tariffa scontata che quelle a tariffa
piena);
2. per semplicit nei calcoli, le domande per le varie classi si suppongono indipendenti;
3. si suppone che i segmenti siano ben formati in modo tale che un soggetto di una certa classe non
acquisti nella classe inferiore;
4. si assume che un certo quantitativo di richieste arrivi in un certo periodo e che la decisione sia
semplicemente quale porzione di essa accettare, mentre nella realt si assiste anche delle
richieste sequenziali;
5. le richieste di gruppo possono essere parzialmente accettate, ovvero si possono accettare anche
solo le richieste di alcuni clienti;
6. non si considera la presenza di rischi legati alle decisioni.

2.2.1 Modello di Littlewood a 2 classi

Si hanno due classi ognuna con il proprio prezzo p1 > p2


la capacit globale C
si assume che non si possano avere cancellazioni o overbooking nelle prenotazioni
la domanda per la classe j si identifica con Dj e la sua distribuzione con Fj

Posto che la domanda per la classe 2 arriva per prima, il problema quante prenotazioni accettare prima
di sapere quale sar la domanda per la classe 1.

La soluzione potrebbe essere derivata utilizzando unanalisi marginale:


se si suppone di avere x unit residue e di ricevere una richiesta per la classe 2,
se accettiamo, otteniamo un ricavo di p2
se non accettiamo, venderemo le x unit residue a un prezzo p1 se e solo se riceveremo una richiesta per
la classe 1 di un numero pari o maggiore a x, quindi, se e solo se D1 x

47
 quindi il valore atteso dalla vendita dellx-esima unit per la classe 1 dato da
p1 P( D1 x)
e perci, ha senso accettare la richiesta per la classe 2 fino a che il relativo prezzo superiore al
valore atteso sopra detto, ovvero fino a che p 2 ( p1 P( D1 x)) .

Possiamo individuare un protection level ottimale y1* tale che se la capacit residua superiore ad esso,
decidiamo di accettare la richiesta della classe 2; in particolare questo livello tale che:
p 2 < ( p1 P( D1 y1* ))
e
p 2 ( p1 P( D1 y1* + 1))

Se come spesso accade utilizziamo una distribuzione continua per modellare la domanda, il livello
ottimale y1* dato dalla regola di Littlewood:
Littlewood
p2
p 2 = ( p1 P ( D1 > y1* )) o equivalentemente y1* = F11 (1 ).
p1
Perci, impostare un protection level a y1* , oppure un booking limit a b2* = c y1* o ancora, usare un bid
price a ( x) = p1 P( D1 > x) sono scelte ottimali.
La formula permette di ottimizzare la decisione senza applicare effettivamente lalgoritmo prima
visto. Il booking limit, o il protection level se si preferisce, pu essere calcolato partendo dal rapporto fra
le due tariffe. Il protection level ottimale tale che la probabilit che la domanda per la tariffa piena lo
superi uguale al rapporto fra i prezzi.
Si pu pensare che il rapporto tra i due prezzi esprima un tasso di conversione fra il ricavo da un
biglietto pieno e uno scontato, che uguaglia il rischio di non vendere il biglietto pieno per un posto
mantenuto disponibile rifiutando di venderlo prima a prezzo scontato.

2.2.2 Estendiamo il modello di Littlewood a n-classi

Si hanno n classi ognuna con il proprio prezzo pi


la domanda per le classi arriva in n intervalli, in ordine crescente in base al prezzo, ovvero, al tempo n, la
classe n, al tempo n-1 la classe n-1 e cos via.

Questo problema pu essere risolto utilizzando la tecnica della programmazione dinamica,


dinamica ponendo ogni
intervallo come uno stato.
Supponendo di conoscere a priori tutte le domande Dj di ogni stato, sintetizziamo una serie di passi:
allinterno dello stato j arrivano delle richieste, quindi, si ha una domanda Dj
occorre decidere lammontare della quantit u da accettare in modo che sia inferiore alla capacit
residua x
la quantit ottimale u* sar in funzione dello stato, della domanda e della capacit residua
u * = u * ( j , x, D j )
il ricavo derivante dato da p j u e la capacit residuale per lo stato successivo sar x u .

Una buona formalizzazione ottenibile anche senza supporre di avere completa conoscenza delle
domande, e calcolando la quantit u non in funzione di Dj ma del valore che si vuole massimizzare.

48
Posta Vj(x) la funzione del valore allinizio dello stato j, una volta rilevata la quantit Dj possibile
calcolare u* in modo che la massimizzi,
perci, Vj(x) altro non che il valore ottimale atteso con una domanda pari a Dj,
e utilizziamo lequazione
equazione di Bellman per descriverla:
V j ( x) = E[max 0u min{D j , x}{ p j u + V j 1 ( x u )}]
V0 ( x) = 0
x = 0,1,...C

Approfondiamo il concetto di programmazione dinamica:

*
Definiamo V ( xt ) = e( xt ) + V ( xt ) come unapprossimazione iniziale al tempo t
formata dal valore ottimale ( V * ( xt ) ) e da un fattore di errore ( e( xt ) ).
*
Attuando una qualche azione si passa a V ( xt +1 ) = e( xt +1 ) + V ( xt +1 ) .

Tra le due equazioni esiste una semplice relazione definita dallequazione di Bellman:
V * ( xt ) = e( xt ) + V * ( xt +1 )
dove rappresenta un fattore di sconto usato per deprezzare o incrementare il contributo degli stati
futuri.

Se definiamo una politica


la funzione del valore V per questa politica rappresenta il costo e ricavo derivante dallapplicazione
della politica partendo da uno stato s.
Cerchiamo il valore ottimale V*.

V ( s ) = C ( s, ( s)) + T ( s ) ( s' | s)V ( s' )


Il valore applicando la politica sar: s 'S

[0,1]


V * ( s ) = min aA( s ) C ( s, a ) + Ta ( s ' | s )V * ( s ' )
quindi, quello ottimale: s 'S
[0,1]

dove A(s) linsieme delle azioni applicabili.

Analizziamo nello specifico il caso in cui si hanno domanda e capacit discrete

Definiamo il valore marginale atteso della capacit nello stato j come lincremento dato dalla x-esima
unit di capacit: V j ( x ) V j ( x ) V j ( x 1) ;
esso gode di due propriet:
1) x, j : V j ( x + 1) V j ( x )
2) x, j : V j +1 ( x ) V j ( x )

49
ovvero per un certo stato j il valore marginale decrescente al crescere della capacit residua e
per una certa capacit x il valore marginale crescente al crescere degli stati rimanenti.

Consideriamo il valore atteso ottimale allo stato j+1, sfruttando V j (x ) possiamo scrivere:
u
V j +1 ( x ) = V j ( x ) + E[max 0u min{ D j +1 , x} { ( p j +1u V j ( x + 1 z ))}]
z =1

Dalla propriet 1) sappiamo che V j (x ) decrescente in x, perci la sommatoria dellequazione sopra


sar decrescente in z;
ma allora conviene aumentare u fintanto che il termine della sommatoria [ p j +1u V j ( x + 1 z ) ]
diventi negativo, o fino a che la condizione di minimo [ min{D j +1 , x} ] sia raggiunta.

y *j max{x : p j +1 < V j ( x)}


Individuiamo, un protection level ottimale come
j = 1,..., n 1
* * +
e la quantit ottimale accettata sar u ( j + 1, x, D j +1 ) = min{( x y j ) , D j +1 }
indicando con z + = max{0, x} .
* +
In questo modo ( x y j ) identifica la capacit residua che possibile vendere alla classe j+1.

Figura 16 Il protection level ottimale nel modello statico

Dalla propriet 2) discende che y1* y 2* ... y n* , aspetto facilmente rilevabile anche graficamente dalla
*
figura sopra: al crescere di j, pj+1 decresce e la curva V j (x ) decresce, perci il valore ottimale y j
decresce anchesso.

Lo stesso controllo a cui siamo giunti con questi passaggi ottenibile anche utilizzando i booking limit.

50
b *j C y *j
Definiamo j = 2,..., n
b1* = C
* +
e u ( j + 1, x, D j +1 ) = min{b j +1 (C x)) , D j +1}
+
dove (C x ) la capacit totale residua e [b j +1 (C x)) ] la capacit residua per la classe j+1.

Infine, vediamo come sia possibile utilizzare anche il sistema con bid price.
Se definiamo j +1 ( x) V j ( x ) allora

0 p j +1 < j +1 ( x )


*
u ( j + 1, x, D j +1 ) =
max{z : p j +1 j +1 ( x z )} altrimenti

ovvero, si decide di accettare la z-esima richiesta nello stato j+1 se il prezzo pj+1 superiore al valore
j +1 ( x z ) , in poche parole, per ogni prodotto si confrontano prezzo e valore della capacit residua.

Analizziamo ora il caso in cui domanda e capacit seguono


seguono una distribuzione continua

La modellazione di poco pi complessa rispetto alla precedente; la pi importante differenza il calcolo



del valore marginale che ora si ottiene derivando V j (x ) rispetto a x: V j (x ) .
x
La strategia ottimale per lo stato j+1 consiste nellaumentare u fintanto che

p j +1 V j ( x u ) o la domanda Dj+1 sia soddisfatta.
x

Come in precedenza, possiamo esprimere una regola ottimale usando i protection level:

y *j max{x : p j +1 < V j ( x)}
x
j = 1,..., n 1

Dobbiamo individuare un vettore Y ottimale di protection level per il vettore D delle domande
(D1,,Dn) definendo n-1 eventi che descrivono che la domanda superiore al relativo protection level:
B j ( y, D) {D1 > y1 , D1 + D2 > y 2 ,..., D1 + ... + D j > y j }
j = 1,..., n 1

Una condizione necessaria e sufficiente affinch il vettore Y* sia ottimale che soddisfi le n-1 equazioni
p j +1
P( B j ( y * , D)) =
descritte da: p1
j = 1,..., n 1

51
2.2.3 Un algoritmo adattivo

Guardando alla vera e propria implementazione, abbiamo due possibilit di azione: un


procedimento iterativo sfruttando la programmazione dinamica, oppure lintegrazione con un metodo
Monte Carlo.
Per quanto riguarda lapproccio iterativo si integra la formula della quantit ottimale u*
nellequazione di Bellman ottenendo:
V j ( x) = E[ p j min{D j , ( x y *j 1 ) + } + V j 1 ( x min{D j , ( x y *j 1 ) + })] .

Il secondo approccio meglio si adatta al caso continuo, si basa sullidea di simulare un grande
numero k di vettori di domanda, cercando di arrivare a selezionare quello che meglio approssima quello
ottimale.
Di seguito riportiamo uno pseudo-codice che ne descrive il funzionamento:

passo 0: si generano causalmente K vettori di domanda d k = ( d 1k , d 2k ,..., d nk )


foreach k=1, , K e j=1, , n-1
k k k k
calcolo delle somme parziali S j = d1 + d 2 + ... + d n
si forma il vettore S k = ( S1k , S 2k ,..., S nk )
si inizializza una lista K={1, , K} e un contatore j=1

passo 1: si ordinano i vettori Sk a seconda del valore della j-esima componente Sjk

p j +1
passo 2: calcoliamo l * = come indice di posizione nella lista K
p j
* 1 * *
impostiamo y j = ( S lj + S lj +1 )
2

passo 3: K {k K : S kj > y j }
j j +1

IF j=n-1 STOP
ELSE GOTO passo1

Pur non essendo particolarmente complessa limplementazione, spesso si preferisce comunque


utilizzare delle euristiche per il calcolo dei booking limits e dei protection level; due sono i fondamentali
motivi che portano a questa scelta:
- le prime applicazioni delle tecniche di gestione dei ricavi risalgono agli anni 70 nel campo
delle prenotazioni aeree; in quegli anni la formulazione ottimale ancora non era stata
formalizzata e lunico modello a disposizione era quello a 2-classi di Littlewood. Ecco perch si
modellarono e si cominciarono ad utilizzare euristiche.
- Inoltre, le euristiche vengono spesso preferite perch sono facili da codificare, veloci da
eseguire e di norma producono risultati molto vicini a quelli ottimali.
Di seguito analizzeremo due euristiche molto note, entrambe attribuite a Belobaba, basate sul
modello statico di allocazione di ununica risorsa su n-classi; inoltre, in ambo i casi si assume che le
funzioni che descrivono capacit e domanda siano continue.

52
Expected Marginal Seat Revenue version A (EMSR-
(EMSR-a)

Consideriamo lo stato j+1 nel quale la domanda per la classe j+1 arriva con prezzo pj+1
Ci che vogliamo calcolare quanta capacit riservare per le rimanenti classi j, j-1, , 1, ovvero il
protection level per le classi j e superiori;
consideriamo una classe k far le rimanenti e confrontiamo solo questa con la j+1, possiamo utilizzare la
p j +1
regola di Littlewood e riservare una capacit y kj +1 in modo tale che P ( Dk > y kj +1 )= ;
pk
ripetendo il confronto per ogni altra classe rimanente possiamo calcolare quanta capacit riservare per
ogni classe k considerata isolatamente.
Lidea di questa euristica quindi, quella di sommare queste quantit per approssimare il protection level
j
totale ottenendo y j =
k =1
y kj +1 .

EMSR-a un procedimento molto semplice e intuitivo ma spesso genera risultati troppo spartani,
conservativi, ovvero, spesso vengono determinati dei livelli eccessivi rispetto alleffettivo fabbisogno.
Questo problema lo si incontra soprattutto quando si hanno pi classi i cui ricavi sono uguali; per un
corretto calcolo queste dovrebbero essere aggregate ed , perci, sbagliato considerare un singolo
addendo per ognuna di esse.

Expected Marginal Seat Revenue version B (EMSR-


(EMSR-b)

A differenza della versione A, questa euristica tiene conto delle domande aggregate, e non dei protection
level aggregati.
Consideriamo lo stato j+1 per il quale vogliamo determinare il protection level yj
j
Definiamo la domanda aggregata per le classi future j, j-1, , 1 come S j = D
k =1
k

p
k =1
k E[ Dk ]
e aggiungiamo il concetto di ricavo medio pesato calcolandolo come p j = j

E[ D
k =1
k ]

A questo punto il protection level per la classe j e superiori individuato utilizzando la regola di
p j +1
Littlewood ma con p j come P ( S j > y j )= .
pj

Uno studio condotto dallo stesso Belobaba sullo stesso insieme di dati, volto a confrontare le due
euristiche ha messo in luce come EMSR-b produca risultati pi vicini a quelli ottimali rispetto a EMSR-a;
uno studio pi recente effettuato sui dati della compagnia aerea Lufthansa ha, invece, mostrato come un
uso combinato delle due versioni sia ancora pi efficiente.

53
Metodi adattivi

I metodi adattivi normalmente si configurano su tre passi:


1) si analizzano i dati storici della domanda per poterne individuare ed esaminare la distribuzione;
2) si applicano delle tecniche predittive per modellare i parametri della distribuzione;
3) i dati ricavati nelle due precedenti fasi vengono passati a un solutore che individua il vettore
ottimale y*.
I risultati di questo processo vengono, quindi, utilizzati per decidere se accettare o rifiutare una richiesta.
Facciamo riferimento a:
B j ( y, D) {D1 > y1 , D1 + D2 > y 2 ,..., D1 + ... + D j > y j }
j = 1,..., n 1
e alla condizione di ottimalit:
p j +1
P( B j ( y * , D)) =
p1
j = 1,..., n 1

Per lalgoritmo ci necessario definire anche:


p j +1
H j ( y, D) = 1B j ( y, D)
p1
j = 1,..., n 1

dove 1(E) una funzione che assume valore 1 se levento E occorre, 0, altrimenti.

La quantit cos definita assume valore negativo se il j-esimo evento occore, positivo, altrimenti; questo

perch, se con un evento si raggiunge il protection level, ci suggerisce che questo debba essere

modificato.
Perci, H j ( y , D ) pu essere interpretato come una direzione di aggiustamento per il protection level
il cui corrispondente vettore sar H ( y, D ) = ( H 1 ( y, D ),..., H n1 ( y, D )) .

p j +1
h j ( y) = P( B j ( y, D)) = E[ H j ( y, D)]
Definendo anche h( y ) = (h1 ( y ),..., hn1 ( y )) con p1
j = 1,..., n 1

-h(y) pu essere considerato come il vettore degli aggiustamenti atteso

Possiamo, quindi, concludere che il vettore ottimale y* tale per cui per tutti i protection level
laggiustamento atteso nullo, h(y*)=0.

54
2.2.4 Arrivo di gruppi

Il concetto di gruppo legato alla richiesta simultanea di pi unit di capacit, richiesta che per
essere soddisfatta deve esserlo in totale.
Una semplificazione si ha quando la richiesta di gruppo di m quantit pu comunque essere
soddisfatta parzialmente; in questo caso possibile vendere una quantit u compresa fra 0 e m.
Il caso pi drastico , invece, quello in cui la richiesta di Dj quantit del gruppo deve essere
soddisfatta in totale, quindi, possibile vendere u tale che 0 u min{D j , x} dove x la capacit
totale disponibile.
Questo aspetto complica parecchio il modello descritto finora; occorre conoscere la distribuzione
della domanda e la grandezza del gruppo, ma la vera differenza sta nel fatto che la funzione del valore
per il gruppo non concava, ovvero il valore marginale della capacit crescente, perci luso dei
modelli finora descritti che lavorano con protection level, booking limit e bid price non possono essere
ottimali.
In generale la risoluzione di questo modello si avvale di calcoli combinatori; ma nella maggior
parte dei casi si tratta di gruppi piccoli e la capacit molto grande, perci si riesce comunque ad
utilizzare i modelli prima descritti ed a ottenere una buona approssimazione.

2.2.5 I modelli dinamici

I modelli dinamici presuppongono che larrivo delle domande non sia arbitrario ma che segua un
ordine gerarchico dalla pi bassa alla pi alta, in particolare, si ipotizza che la domanda sia descritta da
una distribuzione di Poisson; questo aspetto se da una parte semplifica la gestione della variabilit della
domanda, dallaltro uno dei principali limiti allutilizzo dei modelli dinamici. Inoltre, questo tipo di
modelli richiede una previsione delle sequenze di arrivo, cio, una previsione dei tipi di domande in
arrivo, e questo aspetto non sempre reperibile facilmente.
Tutte le ipotesi fatte per i modelli statici continuano a valere anche per i modelli dinamici:
- la domanda indipendente tra le classi, dal tempo e dal controllo di capacit utilizzato
- il modello esente dai rischi.

Formalizziamo il modello.

Ci sono n classi con associato un prezzo p1 p 2 ... p n


Si hanno T periodi
A differenza del modello statico, si utilizzano due diversi indici: j per le classe e t per i periodi.
Per ogni periodo si suppone ci sia un solo arrivo, e la probabilit che ci sia un arrivo nella classe j nel
n
periodo t data da j (t ) ; proprio per il fatto che ci possa essere solo un arrivo si ha che
j =1
j (t ) 1 .

I periodi dovrebbero avere la solita durata, perci si procede anche con degli aggiustamenti: nel caso in
cui la domanda sia scarsa, si stabiliscono dei periodi piuttosto lunghi, mentre, se al contrario la domanda
ha un picco, si definiscono periodi brevi, anche di ore.

55
Programmazione dinamica

Definiamo x la capacit residua e Vt (x) la funzione del valore in t


Sia R(t) una variabile casuale con R(t)=pj se una domanda per la classe j arriva nel periodo t e 0
altrimenti, quindi P(R(t)=pj) = j (t ) .
Definiamo la variabile u con valore 1 se si accetta larrivo e 0 altrimenti,
si vuole massimizzare la somma dei ricavi attuali e futuri R (t )u + Vt +1 ( x u ) .

Lequazione di Bellman :
Vt ( x ) = E[max u{0,1} {R (t )u + Vt +1 ( x u )}] = Vt +1 ( x ) + E[max u{0 ,1} {( R (t ) Vt +1 ( x))u}]
dove Vt +1 ( x) = Vt +1 ( x) Vt +1 ( x 1) il valore atteso marginale della capacit nel periodo t+1.

Le condizioni da rispettare sono:


VT +1 ( x) = 0 con x=0, 1, , C
e Vt (0) = 0 con t=1, , T

Politica ottimale

Se arriva una richiesta per la classe j, allora sappiamo che R(t)=pj


perci ottimale accettare la richiesta se e solo se p j Vt +1 ( x ) .

Allora, il controllo ottimale pu essere implementato impostando un bid price al valore marginale
t ( x) = Vt +1 ( x) ; i ricavi che eccedono questa soglia vengono accettati, gli altri no.

Lincremento Vt (x) della funzione del valore Vt(x) gode di due propriet:
1) Vt ( x + 1) Vt ( x) , il valore marginale di ogni unit di capacit aggiuntiva decrescente
2) Vt +1 ( x) Vt ( x) , il valore marginale decresce con lavanzare del tempo perch diminuisce la
possibilit di vendita.

Cos, possiamo definire un protection level ottimale in funzione del tempo:


y *j (t ) = max{x : p j +1 < Vt +1 ( x)} con j=1, 2, , n-1
ovvero la capacit da riservare per ogni classe j.
Perci, y1* (t ) y 2* (t ) ... y n*1 (t ) rappresenta una scelta ottimale accettare la richiesta per la classe j se
*
e solo se la capacit residua eccede y j1 (t ) .

Possiamo definire anche un booking limit ottimale dipendente dal tempo:


b *j (t ) C y *j 1 (t ) con j=1, 2, , n

Il fatto che il protection level e il booking limit siano definiti in funzione del tempo giustificato dal
fatto che la domanda varia nel tempo; perci, considerato che la funzione del valore non varia
rapidamente nel breve periodo, fissare il protection level e il booking limit e aggiornandone il valore
periodicamente, una tecnica molto vicina allottimalit.

56
Quindi, riassumendo, in un modello dinamico, il controllo ottimale pu essere implementato come
protection level in funzione del tempo, come booking limit in funzione del tempo o come soglia per un
bid price.

Lassunzione che la domanda per una classe sia totalmente indipendente da quali altre classi siano
ancora disponibili chiaramente irrealistica; si pensi alla richiesta di prodotti a prezzo pieno se e quando
ancora sono disponibili quelli a prezzo scontato.
Andiamo ad analizzare una serie di modelli in cui si tiene conto anche di questa dipendenza.

Il fattore buy-
buy-up

Questo modello si basa su quello statico a 2 classi e utilizza la regola di Littlewood in modo che
una domanda per la classe 2 sar accettata se e solo se p 2 p1 P( D1 > x) dove x la capacit residua,
ovvero se e solo se il ricavo derivante sar maggiore del valore marginale derivante dallunit aggiuntiva.

Supponiamo poi che ci sia una probabilit q che un cliente della classe 2 acquisti ununit della
classe 1 nel momento in cui la 2 sia chiusa; perci il profitto netto dato da p1 p1 P( D1 > x) ,
ovvero il ricavo derivante dalla classe 1 decurtato dai costi marginali.
In base a questa definizione, accettare una richiesta per la classe 2 ottimale se:
p 2 p1 p1 P( D1 > x) qp1 (1 P( D1 > x))

p 2 (1 q) p1 P( D1 > x) + qp1

Lo svantaggio di questo modello che non pu essere utilizzato con pi di 2 classi; una soluzione
spesso attuata lintegrazione di questo fattore allinterno dei vari modelli visti precedentemente, ad
esempio nelle euristiche EMSR trattate nella sezione 2.2.3 nel calcolo dei protection level.

Modello discreto

Un altro modo per evitare i problemi del buy-up sono i modelli discreti; vediamone una possibile
formulazione.

Il tempo discreto scandito da t in ogni periodo pu arrivare al pi una richiesta con probabilit
Si hanno n classi: = {1,..., n} e per ognuna di esse definito un prezzo pj

In ogni periodo il venditore sceglie un sottoinsieme S di classi da offrire S t la cui probabilit di


essere scelto da un cliente Pj ( S t )
 La probabilit che nel periodo t sia effettuato un acquisto Pj ( S t )

Sia C la capacit totale e T la durata del periodo


e x la capacit residua

il massimo ricavo atteso ottenibile Vt (x)


calcolato come:

57

Vt ( x) = max S Pj ( S )( p j + Vt +1 ( x 1)) + (P0 ( S ) + 1 )Vt +1 ( x)
jS

= max S Pj ( S )( p j Vt +1 ( x) + Vt +1 ( x)
jS

Vt +1 ( x) = Vt +1 ( x) Vt +1 ( x 1)
P (S ) + P
jS
j 0 (S ) = 1

V T +1( x) = 0 x = 0,1,..., C
Vt (0) = 0Mt = 1,...,T

2.3 Allocazione ottimale di pi risorse network capacity control

Il nostro problema riuscire ad allocare un insieme di risorse connesse fra loro, tenendo conto
che una richiesta pu essere soddisfatta se e solo se queste sono tutte disponibili, cio, lassenza di
disponibilit di una delle risorse allinterno del pacchetto (mix) limita la vendita di tutto il pacchetto; i
settori interessati a questo tipo di argomento sono il settore aereo, ferroviario, i sistemi di noleggio, gli
hotel e in generale tutti i settori in cui i consumatori comprano pacchetti di prodotti sotto diversi termini
e condizioni.
In particolare, nel settore aereo il problema chiamato passenger-mix problem o controllo O&D
(origine
origine-
origine-destinazione),
destinazione la gestione della capacit di un insieme di voli, dove i voli sono un mix tra
connessioni e traffico locale; in questo caso un prodotto la combinazione di diversi percorsi origine-
destinazione noti nel linguaggio di settore come origin-destination itinerary fare class combination -
ODIF.
Mentre, nel caso degli hotel il problema chiamato controllo della durata del soggiorno (length-
of-stay control), quello di gestire la capacit delle camere, quando i clienti restano per giorni
consecutivi in hotel, quando i clienti stanno per periodi di diversa durata e condividono la capacit
durante questi giorni.
Lapplicazione di modelli di gestione dei ricavi per questo tipo di problemi, apporta reali benefici
dal punto di vista economico, ma allo stesso tempo impone alcuni cambiamenti metodologici e proprio
per questo occorre seguire delle buone tecniche.
Dal punto di vista implementativo, aumentano la complessit e il volume dei dati che devono
essere raccolti e gestiti rendendo pi difficili e dispendiose le transazioni di ogni singola risorsa.
E importante tenere a mente che ogni singola risorsa allinterno del mix importante, la perdita
di ricavi in un solo punto potrebbe essere dovuto a qualsiasi altro punto di esso.
Per quanto riguarda le previsioni, anche queste si fanno pi complesse, si deve prevedere la
domanda per ogni singolo prodotto del mix in ogni punto nel processo di prenotazione e ci non
facilitato dalla radezza dei dati. Inoltre, considerato che il processo di ottimizzazione molto complesso,
per questioni pratiche impossibile ottenere delle stime corrette e pertanto i metodi di ottimizzazione
usano approssimazioni di diversi tipi.
Uno degli obiettivi , quindi, riuscire a trovare il giusto compromesso tra la buona qualit
dellapprossimazione e lefficienza dei risultati degli algoritmi.
Analogamente al problema di allocazione della singola risorsa, anche in questo caso si hanno a
disposizione diversi meccanismi di controllo del prezzo.

58
Partitioned
Booking Limit Partitioned

E unestensione di quello definito per una singola risorsa.


Nel caso multi-risorsa, si alloca un ammontare fisso di capacit di ogni risorsa per ogni prodotto
offerto e la domanda di un prodotto ha accesso esclusivo alla sua capacit che gli altri prodotti non
possono usare.
Tuttavia anche in questo caso questo tipo di controllo risente di alcuni difetti: lallocazione di un
ammontare fisso di capacit implica dividere la capacit di ogni risorsa in un tante piccole parti e questa
frammentazione pu risultare molto inefficiente quando la domanda stocastica.
Proprio per questo motivo i booking limit partitioned vengono usati raramente in pratica anche
se giocano unimportante ruolo dal punto di vista teorico e computazionale.

Virtual Nesting Control

I booking limit nested visti per il problema a risorsa singola sono difficilmente applicabili a
quello multi-risorsa per due diversi motivi: lordinamento delle classi pu essere differente da risorsa a
risorsa e la diversa capacit delle risorse coinvolte rende difficile specificare dei protection level coerenti
con il mix.
Si introduce, allora, il Virtual Nesting Control che utilizza al suo interno una serie di controlli
singoli per ogni risorsa del mix:
le classi fra cui si allocano le risorse sono virtuali,
i prodotti sono assegnati a classi virtuali attraverso un processo conosciuto come indicizzazione,
che essenzialmente fornisce una tabella che mappa ogni prodotto in una classe virtuale su ogni
risorsa. Questa indicizzazione viene modificata periodicamente in base ai cambiamenti nella
domanda.

Per decidere se accettare una richiesta per un prodotto, il sistema controlla la disponibilit della
classe virtuale di appartenenza di ogni risorsa; se tutte le classi sono disponibili, la richiesta viene
accettata, se anche una sola di esse non la , la richiesta viene rifiutata.
Lutilizzo di questo controllo apporta vantaggi e svantaggi.
Da una parte, lindicizzazione richiede maggiore complessit computazionale e pu creare
potenziali difficolt nellorganizzazione dei dati e nelle previsioni introducendo rumore e confusione,
causando delle variazioni scorrette nelle statistiche di domanda sulle classi virtuali in corrispondenza di
variazioni della domanda.
Dallaltra, Virtual Nesting Control non richiedono molti cambiamenti infrastrutturali,
permettono ad un sistema di gestione dei ricavi di incorporare le informazioni del mix fornendo un
compromesso accettabile tra singole risorse e pieno controllo e sono molto efficaci e ben accettati dal
punto di vista pratico, specialmente nel settore aereo.

Bid-
Bid-Price

Anche questo tipo di controllo una semplice estensione di quello visto per il modello a risorsa
singola.
In questo caso si imposta una soglia di prezzo detta bid-price per ogni risorsa del mix;
generalmente si usa come stima il costo marginale del consumo di ununit incrementale della capacit di
risorse.

59
Quando arriva la richiesta per un prodotto, il ricavo viene confrontato con la somma dei bid-
price delle risorse necessarie; se il ricavo eccede questa somma la richiesta viene accettata, altrimenti
viene rifiutata.

Molti sono i vantaggi legati alluso di questo controllo:


- la struttura semplice, occorre specificare solo un singolo valore per ogni risorsa, quindi il
numero di parametri coinvolti minimo;
- la valutazione di una richiesta per un prodotto richiede solo un semplice confronto, quindi
lesecuzione risulta veloce;
- le soglie dei bid price hanno uninterpretazione economica naturale;
- se implementato correttamente, questo tipo di controllo fornisce buone performance di
ricavi e dal punto di vista teorico, si avvicina allottimo.

I sistemi di prenotazione alberghieri che non devono sottostare a pi complesse regole di carico
come quelle del settore aereo, sono nella migliore posizione per adottare questo tipo di controllo.

Modelli di base del problema

Il mix si compone di m risorse e le aziende vendono n prodotti.


1 se la risorsa i usata da un prodotto j
Definiamo a i , j =
0 altrimenti

Definiamo la matrice di incidenza A=[aij] in cui:


la j-esima colonna Aj il vettore di incidenza per il prodotto j
la i-esima riga, detta Ai, ha valore 1 in corrispondenza della colonna j , ovvero del prodotto j che usa
la risorsa i.

Aj denota linsieme di risorse usate dal prodotto j e Ai linsieme di prodotti che usano la risorsa i
perci: i A j indica che la risorsa i usata dal prodotto j
e j Ai indica che il prodotto j usa la risorsa i.
Lo stato del sistema:
E descritto da un vettore X = (x1, . , xm) delle capacit delle risorse.
Se il prodotto j viene venduto, lo stato del network cambia in X Aj.
Per semplificare la nostra analisi ignoreremo le cancellazioni e la possibilit di richieste di
prenotazione multiple.

60
Il tempo:
E discreto, ci sono T periodi, e lindice t rappresenta il tempo corrente.
Allinterno di ogni periodo t assumiamo che ci sia al massimo una richiesta per un prodotto; per tale
motivo necessaria una discretizzazione del tempo in modo che la probabilit di avere pi di una
richiesta risulti insignificante.
La domanda al tempo t:
E modellata attraverso un vettore riempito casualmente P(t) = (P1(t), , Pn(t)) in cui:
Pj(t) = pj > 0 indica che c un richiesta per il prodotto j e che a questa associato il prezzo pj
Pj(t) = 0 indica che non ci sono richieste per il prodotto j
P(t) = 0 indica che non ci sono richieste per nessun prodotto al tempo t.
Ad esempio se si hanno 3 prodotti P(t)=(0,0,0) indica che non ci sono richieste, P(t)=(120,0,0) indica
una richiesta per il prodotto 1 al prezzo di 120, mentre un P(t)=(0,70,0) indica che c una richiesta
per il prodotto 2 di 70.
La domanda indipendente dal tempo.
I prezzi:
P = (p1,,pn).

Ci che vogliamo decidere data la capacit rimanente X al tempo t accettiamo o rifiutiamo le richieste
correnti P(t)?
Consideriamo il vettore n-dimensionale u(t) delle decisioni, dove:
uj(t) = 1 se accettiamo la richiesta per il prodotto j al periodo t
uj(t) = 0 altrimenti.
La decisione di accettare, quindi, il valore di uj(t), in funzione del vettore delle capacit rimanenti X e
del prezzo pj del prodotto j : uj(t) = uj(t,X,pj) da cui deriviamo la regola generale per cui u(t) = u(T,X,P).

Inoltre, poich secondo le nostre ipotesi viene accettata al pi una richiesta in un periodo e non possono
essere vendute risorse in pi, se linventario corrente X, allora u(t) corrisponde a
{
U ( X ) = u {0,1} : Au x .
n
}

Passiamo al calcolo della politica ottimale u * (t , x , p )

Definiamo il ricavo atteso massimo Vt (x) , dato dalla capacit X rimanente nel periodo t;
dovr soddisfare lequazione di Bellman:
{
max P(t ) T u (t , x, p) + Vt +1 ( x Au )
Vt ( x) =
}

u U ( x)
VT +1 ( x) = 0, x

Un controllo ottimale u * (.) soddisfa la seguente propriet:


1 se p j Vt +1 ( x) Vt +1 ( x A j ) e Aj x
u j * (t , x, p j ) =
0 altrimenti
ovvero, si accetta una richiesta per il prodotto j se e solo se esiste sufficiente capacit e il suo prezzo pj
eccede il costo-opportunit dato dalla riduzione della capacit di risorse utilizzate per soddisfare la
richiesta.
In altre parole un bid price control specifica un insieme di prezzi di offerta per ogni risorsa, in ogni
istante di tempo, e per ogni livello di capacit, in modo che una richiesta per un particolare prodotto

61
possa essere accettata se e solo se c capacit disponibile e se il prezzo eccede la somma dei bid price per
tutte le risorse usate dal prodotto.

Ma non sempre utilizzare i bid price control una forma ottimale di controllo. Vediamo un esempio in
cui ne mostriamo la non-ottimalit.

Si considera un mix composto da 2 risorse e 2 periodi di tempo.

In tabella riportiamo i dati dei prodotti:

periodo (t) Prodotto Aj Prezzo Probabilit


1 1 (1 0) 250,00 0,3
2 (0 1) 250,00 0,3
3 (1 1) 500,00 0,4
2 3 (1 1) 500,00 0,8
Nessuna richiesta 0,2

Nel primo periodo possono arrivare domande per tutti e tre i prodotti, per il prodotto 1 e 2 con
probabilit 0,3 e prezzo 250,00 e per il prodotto 3 con probabilit 0,4 e prezzo 500,00.
Nel secondo periodo c una domanda solo per il prodotto 3 sempre del prezzo di 500,00 ma con una
probabilit di 0,8.
Le probabilit sono esclusive, cio in ogni periodo pu essere domandato un solo prodotto.

Una politica ottimale sarebbe quella di non accettare le domande per il prodotto 1 e 2 nel primo periodo
ma di accettare la domanda del prodotto 3 in entrambi i periodi; questo vero perch accettando la
richiesta 1 o 2 nel periodo 1 si guadagnano 250,00 ma perdiamo lopportunit di accettare il prodotto 3
nel periodo 2 che risulta avere un costo opportunit di 400$(0,8*500$), quindi sarebbe opportuno non
accettare le richieste di prodotto 1 e 2 del primo periodo. Chiaramente vogliamo accettare il prodotto 3
del primo periodo perch comunque non possiamo guadagnare pi di 500$ nel periodo 2.

Questo implica che i prezzi di offerta, 1 e 2 nel primo periodo devono soddisfare 1 >250,
2 >250 e 1 + 2 <=500, che ovviamente impossibile. Perci nessuna politica di prezzo di offerta
produce una decisione ottimale nel periodo 1.
Infatti non difficile dimostrare che in questo esempio la politica ottimale sarebbe quella di rigettare
tutte le richieste del periodo 1 e accettare solo quella del periodo 3 (se arriva) nel periodo 2 guadagno
400$ (500$*0,8)di ricavo atteso. La politica ottimale al contrario genera un ricavo di 440$ pi del 10%
del ricavo atteso.

Due sono i fondamentali motivi per cui la politica dei bid price control pu fallire:
1) grandi cambiamenti simultanei sulle capacit di risorse diverse non possono produrre lo stesso
ricavo derivato della somma dei cambiamenti individuali;
2) i ricavi futuri possono dipendere in modo non lineare dallo spostamento di capacit, ovvero il
costo-opportunit legato alluso di una singola risorsa pu eguagliare esattamente il costo-
opportunit di usare entrambe le risorse simultaneamente.
Tuttavia, vedremo di seguito una serie di casi in cui sotto particolari condizioni, i bid price contol
sono ottimali.

62
Per ogni mix realistico molto difficile calcolare esattamente il valore della funzione Vt(x) in
quanto spesso le grandi dimensioni dello spazio rendono questo calcolo difficile; basti pensare ad un
ambiente in cui ci siano 20 risorse e 100 capacit per ogni risorsa, in esso esistono 100^20 stati.

Quello che realmente si pu fare sono delle approssimazioni di vario tipo:


tipo
1. il primo metodo a cui faremo riferimento quello che utilizza un semplice mix;
2. la seconda strategia riguarda la decomposizione del problema in un insieme di sotto-
problemi a risorsa singola.
I criteri importanti per giudicare un metodo di approssimazione sono laccuratezza e la velocit.
M
Vt (x)
Dato un metodo di approssimazione M che ricava una stima della funzione , possiamo
approssimare il costo riferito al fatto di accettare la richiesta del prodotto j utilizzando:
M M M
Vt ( x) Vt ( x A j ) (Vt ( x)) T A j
M M
Vt (x) Vt (x)
dove il gradiente della funzione , assumendo che il gradiente esista.
M
I bid price sono definiti secondo la seguente formula: iM (t , x ) = Vt ( x )
x i
M
V (x)
Se il gradiente non esiste, allora t tipicamente viene sostituito da un subgradiente.
Lobiettivo di un metodo di approssimazione quello di produrre una buona stima della funzione di
valore e, ancora pi importante, quello di produrre una buona stima del costo e dei prezzi di offerta.

2.3.1 Metodi di approssimazione utilizzo di mix semplici

Il modello di programmazione lineare deterministico (DLP)

Posta Dj la domanda aggregata per il prodotto j, nei periodi t, t+1, T con media j .
D = (D1, . Dn) e = E[D ] sono i vettori delle domande e delle medie delle domande, rispettivamente.

Il metodo di programmazione lineare deterministico usa la seguente approssimazione:


Vt DLP ( x) = max p T y
con Ay x e 0 y
Le variabili di decisione y = ( y1 ,....., y n ) rappresentano lallocazione di capacit divisa fra gli n prodotti.

In pratica lapprossimazione tratta la domanda come se fosse deterministica e uguale alla sua
media e di conseguenza crea unallocazione partizionata ottimale. Spesso le allocazioni generate dalla
risoluzione primale vengono tralasciate e si utilizzano quelle duali DLP ; se la soluzione ottimale non
degenere e i vincoli in corrispondenza di essa sono linearmente indipendenti, allora il gradiente
DLP
Vt (x) esiste e corrisponde al vettore DLP ; al contrario, se la soluzione degenere, si avranno pi
vettori duali, ognuno dei quali solo un sub-gradiente della funzione.
Il vantaggio principale del modello DLP, che esso risulta computazionalmente efficiente,
semplice e veloce e pertanto molto popolare. Lunica debolezza che presenta che considera solo la
domanda media ignorando qualsiasi incertezza di previsione; alcuni ricercatori hanno comunque

63
mostrato che con frequenti ri-ottimizzazioni, i risultati del DLP possono migliorare e si ottengono ricavi
pi alti di quelli ottenuti con modelli di programmazione non lineare probabilistici.
Generalmente la performance del modello DLP dipende dal tipo di mix, dalla varianza nelle
previsioni di domanda, dallordine con cui le richieste di prodotto arrivano e dalla frequenza della ri-
ottimizzazione.

Il modello di programmazione non lineare probabilistico (PNLP)

Questo modello usa la seguente approssimazione:


n
Vt PNLP
( x ) = max p j E[min{D j , y j }]
j =1

con Ay x e y0
dove Dj e pj sono definiti analogamente a prima.

Come nel DLP la variabile di decisione yj rappresenta unallocazione di capacit partizionata del
prodotto j, mentre il termine E[min{D j , y j }] sono le vendite attese del prodotto j.
Se la domanda discreta, il modello si pu convertire in modello di programmazione lineare,
anche se con pi variabili; questo si pu ottenere assegnando una variabile e ununit di capacit per ogni
prodotto.

Definiamo la variabile z jd come la d-esima unit di capacit allocata al prodotto j.


Il modello PNLP pu essere scritto nel seguente modo:
n Mj

Vt PNLP
( x) = max p j z jd P( D j d )
j =1 d =1
Mj

con y j = z jd e Ay x e 0 z jd 1 j = 1,2,..., n d = 1,..., M j


d =1

dove M j rappresenta il limite superiore alla capacit allocata del prodotto j, ovvero la capacit minima
rimanente tra le risorse usate dal prodotto j.

Se i vincoli sono linearmente indipendenti in corrispondenza della soluzione ottimale, allora


PNLP
Vt (x) esiste ed dato dallunico vettore dei prezzi duali; al contrario, se c dipendenza fra i
vincoli, esisteranno pi vettori, ognuno dei quali un sub-gradiente della funzione.
Lapprossimazione PNLP appare migliore dellapprossimazione DLP, in quanto il termine
E[min{D j , y j }] nella funzione obiettivo cattura la casualit nella domanda, mentre il DLP presuppone
che la domanda sia deterministica; il prezzo della risorsa pu essere positivo persino quando la domanda
media per la risorsa strettamente inferiore alla capacit.
Gli studi hanno comunque confermato che dal modello PNLP risultano ricavi inferiori rispetto a
quelli del DLP.

Il modello di programmazione
programmazione lineare randomizzato (RLP)

Si tratta di un ulteriore approccio per incorporare linformazione stocastica nel modello DLP; si
fa riferimento alla formulazione vista per il DLP e si rimpiazza il vettore D randomizzato nel vincolo:

64
H t ( x, D ) = max p T y
con Ay x e 0 y D
Il valore ottimale H t ( x, D ) una variabile casuale.
Lapprossimazione RLP richiede un metodo per computare efficientemente V x E[ H t ( x, D)] .
Si simulano k campioni indipendenti di vettori di domanda D (1) ,...., D ( k ) e risolviamo il modello di cui
sopra ognuno di essi.
1 k
Quindi, stimiamo il gradiente usando: RLP = ( x, D ( i ) )
k i =1
che rappresenta la semplice media dei prezzi duali di k soluzioni di allocazione ad informazione perfetta
su domande generate casualmente.
Il metodo RLP:
- una semplice modifica del metodo DLP, quindi esso pu essere incorporato facilmente nei
sistemi di gestione dei ricavi basati su quello;
- modella con flessibilit anche distribuzioni di domanda generale;
- la qualit e la complessit del modello possono essere controllati semplicemente variando il
numero di campioni k;
- diversamente dal DLP, incorpora informazioni di distribuzione della domanda.

2.3.2 Metodi di approssimazione decomposizione del problema

Unaltra strategia per generare i controlli del mix quella di decomporre il problema in m sotto-
problemi a risorsa singola, ognuno dei quali incorpora informazioni generali ma viene risolto in modo
indipendente.

Un metodo di approssimazione decompone il problema in m sotto-problemi a risorsa singola


e applica un metodo a risorsa singola M i su ogni risorsa i,
Mi
con funzioni Vt ( xi ) che dipendono dal tempo t e dalla capacit rimanente xi della risorsa i.

m
La funzione totale viene approssimata utilizzando: Vt ( x ) = V
i =1
t
Mi
( xi )

da cui possiamo ricavare bid price nella forma:


i (t , x) = Vt M ( xi )
i
i = 1,..., m
Mi Mi Mi
con Vt ( x i ) = Vt ( x i ) Vt ( x i 1)
Mi
dove Vt ( xi ) il valore marginale atteso prodotto dallapplicazione del metodo a singola risorsa alla
risorsa i.

Diversi sono i vantaggi che derivano dallutilizzo dei modelli con decomposizione:
- si basano su modelli a singola risorsa, il trasferimento dei costo e i prezzi di offerta sono
tipicamente dinamici, variano in funzione della capacit del tempo e possono essere
rappresentati con una tabella (nel caso dei modelli di programmazione dinamica) o con
semplici formule (nel caso delle approssimazioni EMSR); perci semplice determinare
leffetto dei cambiamenti sia nel tempo rimanente che nella capacit rimanente sui prezzi di
offerta.

65
- I modelli a risorsa singola utilizzati permettono di prendere decisioni sequenziali lungo il
tempo.
Di contro, lo svantaggio principale riguarda il processo di separazione dei problemi che pu
generare la perdita di informazioni circa il mix; tuttavia, si tende ad utilizzare versioni ibride dei due
approcci per provare ad ottenere maggiori benefici rispetto allapplicazione singola delluno o dellaltro.

Modello Origin-
Origin-Destination Factors (ODF)

Si tratta di un semplice metodo di approssimazione con decomposizione; si risolvono problemi a


risorsa singola per ogni risorsa i senza operare aggiustamenti a priori dei dati in ingresso.

ODF
Indichiamo le funzioni valore con il problema sulla risorsa i come Vt ( xi ) .
Quando valutiamo una richiesta per un prodotto j su una risorsa i, il prezzo pj viene confrontato con il
bid price calcolato come: Vt
ODFi
( xi ) + V
iA j ,l i
t
ODFl
( xl )

ODFi
dove Vt ( xi ) il valore marginale derivante dal metodo i
e il fattore OD globale, tipicamente avente valore <1, calcolato con una simulazione.
Lutilizzo del fattore OD ( ) motivato dal fatto che i problemi a risorsa-singola tendono a sovra-
stimare i costi.

 Se pj eccede il fattore OD, allora il prodotto j accettato sulla risorsa i.

Un calcolo simile viene fatto su tutte le risorse usate dal prodotto j, perci il prodotto j viene
accettato se accettato su tutte le risorse; in altre parole pj, dovrebbe essere maggiore o uguale al
massimo dei bid price sulle risorse che consuma.
Da notare che se il prodotto j utilizza soltanto la risorsa i, allora il risultato corrisponde a quello
che otterremmo con un modello a risorsa singola, ma se viceversa, il prodotto utilizza pi risorse, allora il
bid price sar pi alto perch si deve tener conto dellutilizzo delle altre l risorse.
Supponendo di avere a disposizione i risultati derivanti dai modelli a risorsa-singola, ODF
fornisce un buon metodo per convertirli in stime dei costi dellintero mix con il vantaggio di non dover
richiedere nuove modellazioni o stime.

EMSR Distribuito (Prorated EMSR - PEMSR)

Si tratta di un metodo pi sofisticato di decomposizione; la prima formulazione fu ad opera di


Williamson, che integr leuristica EMSR nel modello multi-risorsa.
Lo schema PEMSR alloca una porzione di ricavi di ogni prodotto alle risorse usate dal prodotto.

Si risolvono m problemi a risorsa singola usando leuristica EMSR e i valori marginali risultanti da ogni
risorsa sono usati come bid price.
In particolare, siano = ( 1 ,..., m ) vettori reali non negativi.
Per ogni prodotto j si definiscono i nuovi ricavi, uno per ogni risorsa i usata dal prodotto, usando:
i
p ij = pj i Aj
l
l A j

66
Successivamente si tratta ogni risorsa i indipendentemente, come se avessimo ricevuto una domanda D j
ma con ricavo ridotto p ij , e si risolve il problema EMSR corrispondente.
m
Lapprossimazione della funzione sar: V t PEMSR ( x ) = Vi =1
t
PEMSR i
( xi , )
EMSRi
dove Vt ( xi , ) indica il ricavo atteso del problema i con lallocazione .

Williamson ha effettuato molte sperimentazioni volte a determinare i pesi da applicare nei


problemi del settore aereo, considerando anche il numero delle risorse e il relativo valore del ricavo della
domanda per ogni risorsa; la conclusione che nessuna delle allocazioni fissate in generale risulta
abbastanza robusta.

Displacement-
Displacement-Adjusted Virtual Nesting (DAVN)

Il metodo Displacement-Adjusted Virtual Nesting inizia con un insieme di bid price statici che
indichiamo con = ( 1 ,..., m ) , stime che possiamo aver ottenuto da uno dei modelli di euristiche
presentati nella sezione precedentemente.

Dato un prezzo di offerta , la risoluzione del singolo sotto-problema il seguente:


passo 1:
Per tutti i prodotti j che usano i, il displacement-adjusted revenue pij calcolato come
pij = p j
l A j , l i
l

passo 2:
Il ricavo del prodotto j sulla risorsa i ridotto dal valore del bid price delle altre risorse usate dal
prodotto, per poter approssimare il beneficio netto rispetto alla risorsa i derivante dallaccettare il
prodotto j.

passo 3:
Si esegue un clustering dei valori dei ricavi su ogni risorsa partizionandoli in un numero specifico
c + 1 di classi virtuali, tipicamente una decina.
Lindicizzazione dal prodotto j alla classe virtuale c su ogni risorsa pu essere fatta utilizzando
diversi algoritmi; tutti i prodotti con ricavi nel primo intervallo saranno di classe virtuale 1,
quelli del secondo intervallo di classe virtuale 2 e cos via.
Uno svantaggio del cluster che il partizionamento non fatto in tempo reale, ma solo
periodicamente.

Vediamo un esempio:
consideriamo una risorsa i,
per facilitare lesposizione, assumiamo che i ricavi siano ordinati in modo che
pi1 p i 2 ... pin ;
j indica la domanda media per il prodotto j.

Vogliamo partizionare questi prodotti in c + 1 classi virtuali.


Assumiamo che le partizioni siano contigue cos che e per ognuna di esse calcoliamo il quadrato
della deviazione del ricavo allinterno:

67
Data una partizione (l , k ) con l k
k

k j p ij
clk = j ( p ij m kl ) 2 j =1
dove mkl = k
j =1
j =1
j

dove mkl la media pesata del ricavo.


Adesso dobbiamo trovare c + 1 partizioni contigue che minimizzano la somma totale dei
quadrati delle deviazioni; risolviamo con un problema di programmazione lineare come segue:
Vc (k ) indica il minimo quadrato della deviazione possibile quando si partizionano i prodotti
1,2,,k in c gruppi contigui, quindi, il modello sar:
Vc (k ) = min 1l k {clk + Vc 1 (l 1)}

Vc (0) = 0 c = 0,1,..., c + 1
Vc (k ) = 0 c = k , k + 1,..., c + 1
V1 (k ) = c1k k = 1,..., c + 1

Iniziamo con c=1 gruppi e risolviamo lequazione sopra per i valori incrementali di c fino a
che non otteniamo c = c + 1 ; Vc+1 ( n ) da il minimo totale del quadrato della deviazione e
ripercorrendo allindietro la ricorsione otteniamo le partizioni ottimali corrispondenti. La
complessit del DP ( n 2 ) , che molto pi efficiente dellenumerazione completa.

passo 4:
Calcoliamo la distribuzione della domanda aggregata delle classi virtuali aggiungendo medie e
varianze della domanda per tutti i prodotti che sono indicizzati nella classe.

passo 5:
Risolviamo un problema a risorsa singola basato su quanto modellato nei passi precedenti per
determinare i c protection level su ogni risorsa.

La strategia di controllo procede nel seguente modo:


la richiesta per un prodotto j viene convertita in una richiesta per la classe virtuale corrispondente
per ogni risorsa i richiesta dal prodotto usando lo schema di indicizzazione;
se la classe virtuale su ogni risorsa disponibile la richiesta viene accettata;
se la classe virtuale su una o pi risorse non disponibile, la richiesta viene rifiutata.

Definiamo Ric con cui indicare il valore rappresentativo del ricavo per la classe virtuale c sulla
risorsa i. Se lindicizzazione ben fatta, ogni prodotto j mappato in una classe virtuale su una risorsa i
dovrebbe avere un ricavo in Ric , quindi p ij Ric ;
sostituendo questa approssimazione e usando la definizione vista sopra ( pij = p j
l A j , l i
l ),

otteniamo approssimativamente: p j Vt DAVN i ( xi ) +


l A j ,l i
l .

DAVNi
dove Vt ( xi ) lapprossimazione dinamica del costo legato alla risorsa i

68
e i valori l sono le approssimazioni statiche del costo legato alle altre risorse l i, l A j .

In sostanza, per accettare un prodotto j nella classe virtuale c per la risorsa i, occorre confrontare il suo
ricavo pj con la somma dei costi legati a tutte le risorse che usa.

Decomposizione
Decomposizione della programmazione dinamica (DPD)

La decomposizione della programmazione dinamica basato su principi simili a quelli del


modello DAVN visto prima, in cui si usano i ricavi per decomporre il problema in una serie di sotto-
problemi a livello risorsa. Lunica differenza che mentre DAVN prende i ricavi e li aggrega in un certo
numero di classi virtuali, in DPD il ricavo e la domanda rimangono disaggregati.

Supponiamo che la domanda per il prodotto j arrivi nel periodo t con una probabilit pari a j (t ) .
Iniziamo la decomposizione come in DAVN con un vettore statico di bid price , realizzato seguendo
uno dei metodi di approssimazione su mix semplici, illustrati precedentemente.
Per ogni prodotto j che utilizza la risorsa i risolviamo un programma dinamico a risorsa singola per
ottenere i ricavi: pij = p j
l A j , l i
l

Adesso formuliamo il problema dinamico per la risorsa i includendo i tassi di arrivo j (t ) e i ricavi p ij .
DPDi
Indichiamo la funzione risultante con Vt ( xi ) , lapprossimazione del valore totale :
m
( x) = Vt DPDi ( xi )
DPDi
Vt
i =1
DPD DPDi
e i bid price sono dati da: i (t , x) = Vt ( xi ) i = 1,..., m
DPDi
dove, analogamente a prima, Vt ( xi ) il valore marginale del problema per la risorsa i.

Poich la decomposizione del modello DPD simile a quella di DAVN, la scelta di quale fra i due
adottare guidata dalla strategia di controllo che si vuole seguire: se lobiettivo costruire controlli
virtuali annidati, allora aggregando e indicizzando come in DAVN si avr una corrispondenza con la
strategia di controllo; se, invece, si preferisce utilizzare i bid price, allora DPD sar pi adeguato e fornir
approssimazioni pi accurate.

69
Metodi di decomposizione iterativi

Anche questi metodi sono simili al DAVN; furono inizialmente formulati utilizzando le
euristiche EMSR per i problemi a risorsa singola, ma diverse sono le varianti applicabili a tutti i modelli.
Vediamo due versioni base che differiscono per il modo in cui convertono i ricavi dei prodotti in
ricavi di risorsa.

DAVN Iterativo

Il modello DAVN iterativo essenzialmente permette di calcolare i bid price usati da DAVN.
Supponiamo, invece, che rappresenti il vettore dei costi marginali; una volta risolto DAVN dovremmo
avere: i = iDAVN (t , x) i = 1,..., m
dove iDAVN (t , x ) = Vt DAVN i ( xi ) il valore marginale generato dal problema i al tempo corrente t,
ovvero, i costi marginali prodotti dalla decomposizione DAVN.

Che cosa succede se iDAVN (t , x ) i ?


Se queste stime non corrispondono, il DAVN iterativo utilizza iDAVN (t , x ) come nuovi dati e
procede ricalcolando.

(k )
Indichiamo il prezzo di offerta alliterazione k nellalgoritmo.

Lalgoritmo procede nel seguente modo:

Passo 0 - Inizializzazione:
k=1
(k )
inizializza ad un valore arbitrario iniziale, ad esempio zero

Passo 1 - Calcola i nuovi ricavi:


for j=1,, n DO:

(k )
calcola i ricavi per ogni prodotto j sulla risorsa i A j usando pij = p j l i Aj
l A j , l i

for i = 1, , m DO:
clusterizza i prodotti in classi virtuali in base alla risorsa i
risolve un problema a singola risorsa per generare le stime della funzione dei valori marginali
Vt DAVN i ( xi ) = Vt DAVN i ( xi ) Vt DAVN i ( xi 1)

Passo 2 - Controlla per convergenza:


DAVNi (k )
IF ( Vt ( xi ). i < ) for i=1,,m STOP
( k +1) DAVNi
ELSE i = Vt ( xi ) i = 1,..., m

k=k+1
GOTO passo1

La convergenza di questo metodo non sempre garantita.

70
EMSR prorated iterativo (IEMSR)

Questo metodo anchesso simile a DAVN iterato eccetto per il fatto che utilizza il calcolo dei
ricavi di PEMSR; occorre modificare solo il passo 1 dellalgoritmo precedente.

Passo 1 (modificato):
FOR j =1,,n DO:
i( k )
calcola i ricavi prorated su ogni risorsa i usata dal prodotto j come: pij = p j i Aj
l(k ) lA j

FOR i=1,,m DO:


clusterizza i prodotti in classi virtuali e usa il metodo EMSR-b per la decomposizione per
IEMSRi i
generare le stime della funzione-valore Vt ( xi ) e le stime del valore marginale
IEMSRi i
Vt ( xi )

Questa versione dellalgoritmo converge sempre.

Metodi con gradiente stocastico

Unaltra classe di metodi per il controllo della capacit del network usa la simulazione per
ottimizzare.
Come primo passo necessario fissare uno schema di indicizzazione e un ordine di annidamento
su ogni risorsa ad esempio, usando DAVN, e poi impostare i livelli di protezione annidati o i booking
limit per ogni risorsa basata su questo ordine di annidamento.
Usando una simulazione si possono generare campioni di domanda e stimarne il rumore; queste
informazioni possono essere utilizzate da un algoritmo per cercare le impostazioni ottimali dei
parametri.

Modelli continui con gradienti stimati

Una versione di questo approccio si basa su una funzione di domanda continua.


Assumiamo che le domande e le capacit siano continue.
Realizziamo un semplice insieme campione della domanda (path), indicato con , definito come una
sequenza di richieste da parte dei clienti = {( jt , q t ) : t = 1,..., N } , dove N rappresenta il numero di
clienti totale nella sequenza, t indicizza i singoli clienti in ordine di arrivo, jt il prodotto richiesto dal
cliente t, e qt la quantit di prodotto jt richiesta.
Generalmente qt una quantit non negativa.
Generiamo questi campioni usando un qualsiasi modello di domanda senza restrizioni sulle distribuzioni;
questo livello di generalit uno dei principali vantaggi di questi metodi di ottimizzazione.

Assumiamo che ci siano c + 1 classi virtuali su ogni risorsa.


yic il livello di protezione per la classe virtuale c e il pi alto sulla risorsa i.
( )
y = y11 ,..., y1c ,..., y m1 ,..., y m c il vettore di tutti i livelli di protezione mc .
Quindi, si richiede che: 0 y i1 u i 2 ... y i c x i , i = 1,..., m dove xi la capacit della risorsa i.

71
Consideriamo che linsieme y soddisfi questi vincoli indicati con .
Una richiesta per il prodotto j viene mappata in una classe virtuale ci ( j ) su ogni risorsa i usata dal
prodotto j secondo lo schema di indicizzazione fissato.

La richiesta t per una quantit q t = q di prodotto jt = j viene eseguita come segue:


- x(t) indica il vettore delle capacit rimanenti al tempo t in cui arriva la richiesta.
- (
+
La capacit disponibile per il prodotto j su ogni risorsa i A j xi (t ) y ci ( j )1 , ovvero, )
corrisponde alla differenza fra la capacit rimanente x i (t ) su i e il protection level, oppure zero
se questa differenza negativa.
- La somma delle richieste accettate, indicata con u j ( x(t ), y , q ) data dalla minima capacit tra
tutte le risorse richieste dal prodotto j o q se ci sono almeno q unit di capacit su tutte queste
risorse: u j ( x(t ), y, q ) = min{q, ( xi (t ) y i ,ci ( j )1 )
+
i Aj }

Da notare che in questo caso permesso che il sistema accetti richieste anche parzialmente se la
disponibilit di capacit positiva ma minore della quantit q richiesta, assunzione necessaria per
costruire il ricavo sul campione, indicato.
Il nostro obiettivo massimizzare il ricavo atteso, E[ R ( y , )] impostando degli adeguati protection
level : max y E[ R ( y , )]

Un metodo per risolvere questo problema usare un modello di proiezione con gradiente iterativo della
( k +1)
forma: y = P r o j ( y ( k ) + k y E[ R( y ( k ) , )])
dove P r o j (x) indica la proiezione del punto x sullinsieme
y [ R ( y , )] il gradiente di E[ R ( y , )]
e y k lampiezza del passo opportunamente selezionata.

La difficolt sta nel calcolare y [ R ( y , )] ma possiamo approssimare cos:


y [ R ( y , )] = [ y R ( y , )] , ovvero, possiamo approssimare il gradiente con un gradiente stocastico
del ricavo rispetto a y sul campione singolo , calcolato casualmente.
Potremmo usare anche una semplice media del campione di cui i gradienti stocastici sono una stima, o
un campione singolo.

Calcolo del gradiente del


del path campione

Ovviamente dobbiamo essere in grado di calcolare il gradiente del path campione y R ( y , ) in


modo efficiente; possiamo utilizzare un calcolo ricorsivo.
Definiamo Rt ( x (t ), y , ) come il ricavo generato dagli arrivi t,t+1,,N
e inizializziamo un vettore x(t) di capacit rimanenti e protection level y.

Le equazioni necessarie per determinare i ricavi sono:

72
Rt ( x(t ), y, ) = p yt u jt ( x(t ), y, qt ) + Rt +1 ( x(t + 1), y, )
x(t + 1) = x(t ) A jt u jt ( x(t ), y, )
t = 1,..., N
x(1) = x R N +1 ( x, y, ) = 0
Il ricavo del path campione dato da R( y, ) = R1 ( x, y, ) e calcolando le derivate troviamo il
gradiente y R ( y , ) .

Il vantaggio principale di questo approccio di ottimizzazione basato sulla simulazione che i


gradienti risultanti stimano accuratamente i veri effetti delle modifiche dei protection level y sul ricavo.
Inoltre la procedura converge localmente, quindi, con dei buoni valori di partenza si pu trovare
linsieme dei livelli di protezione virtuali annidati ottimali del network.
Lo svantaggio di questo approccio che pu diventare inefficiente a livello computazionale.

Modelli discreti con prime differenze stimate

Questi modelli si basano su una domanda e una capacit discrete; in essi si assume che ogni
richiesta sia fatta per singola unit di capacit (qt=1 t ) e che le richieste sono interamente accettate o
rifiutate. Anche i livelli di protezione y sono discreti.
Il modello risultante pi realistico ma non permette di calcolare il gradiente in maniera
efficiente come nel modello continuo, quindi, si utilizzano le prime differenze stimate. Inoltre, poich
un problema discreto, non garantita nemmeno la convergenza locale.

Definiamo R ( y, ) come il ricavo derivante dal path campione e Rt ( x(t ), y, ) come il ricavo che
proviene dalle richieste t,t+1,,N e inizializziamo un vettore x(t) di capacit rimanenti e protection
level y.

Le equazioni ricorsive per il calcolo dei ricavi sono:


Rt ( x(t ), y, ) = p yt u jt ( x(t ), y ) + Rt +1 ( x(t + 1), y, )
x(t + 1) = x(t ) A jt u jt ( x(t ), y, )
u jt ( x(t ), y ) (0,1)
Come si detto, poich il modello discreto, occorre considerare le stime della prima differenza della
sensibilit: y ic R( x(t ), y, ) = R( x(t ), y + eic , ) R( x(t ), y, ) .

A differenza del modello continuo, la propagazione dei cambiamenti usando la ricorsione non
pu essere fatta in parallelo su tutti i parametri y; bisogna tenere traccia dei cambiamenti su ogni
parametro y ic in calcoli separati. Poich questo in pratica risulta complesso, si possono approssimare gli
effetti del cambiamento discreto simulando un piccolo numero di arrivi s e usare unapprossimazione
Rt ( x (t ), y , ) per stimare gli effetti del ricavo.
Si potrebbe anche approssimare la funzione lineare del ricavo, calcolando ricorsivamente le stime
delle prime differenze stocastiche in periodi successivi; questo richiederebbe di dividere il problema in
periodi ma i test effettuati mostrano che questi metodi risultano gestibili dal punto di vista
computazionale e migliorano la performance dei ricavi.

73
2.4 Conclusioni

In questo capitolo abbiamo analizzato le tecniche di gestione dei ricavi focalizzandoci sui modelli
matematici e sulla loro risoluzione.
In particolare ci siamo concentrati su uno degli aspetti che maggiormente interessa le aziende, il
controllo dellallocazione di una certa capacit di risorse o prodotti: partendo dal caso semplice mono-
risorsa, siamo arrivati al modello multi-risorsa pi complesso.
Abbiamo illustrato come i metodi che ben risolvono il caso semplice possano essere adeguati
anche per il caso complesso evidenziando le possibili approssimazioni necessarie e alcune delle tecniche
di decomposizione sotto-problemi.
Da ultimo abbiamo mostrato come sia possibile implementare i modelli visti ricorrendo a dei
metodi iterativi che in maniera efficiente e con poche istruzioni ottengono una soluzione nella maggior
parte dei casi ottimale.
Nel prossimo capitolo tralasceremo laspetto teorico e ci focalizzeremo sugli aspetti economici
che rappresentano i principi su cui si basano queste tecniche e sugli aspetti sociali, intesi come le
percezioni e le considerazioni dei consumatori.

74
75