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.
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.
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.
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.
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.
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.
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
*
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.
[0,1]
V * ( s ) = min aA( s ) C ( s, a ) + Ta ( s ' | s )V * ( s ' )
quindi, quello ottimale: s 'S
[0,1]
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 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.
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
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 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
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.
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
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
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.
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.
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
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.
Politica ottimale
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.
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
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
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
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.
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.
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
}
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
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.
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.
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.
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.
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.
Vt PNLP
( x) = max p j z jd P( D j d )
j =1 d =1
Mj
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.
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.
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.
m
La funzione totale viene approssimata utilizzando: Vt ( x ) = V
i =1
t
Mi
( xi )
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)
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.
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.
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 .
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.
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.
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
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.
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 ),
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)
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.
(k )
Indichiamo il prezzo di offerta alliterazione k nellalgoritmo.
Passo 0 - Inizializzazione:
k=1
(k )
inizializza ad un valore arbitrario iniziale, ad esempio zero
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)
k=k+1
GOTO passo1
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
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.
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.
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.
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 , ) .
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.
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