Algoritmi esatti. La teoria ci dice che per problemi difficili (come il

Documenti analoghi
Branch-and-bound per KNAPSACK

Branch-and-bound per TSP

3.4 Metodo di Branch and Bound

Parte V: Rilassamento Lagrangiano

Figura 1: 1) Si scriva la formulazione del problema come problema di PLI (con un numero minimo di vincoli) e la matrice dei vincoli.

Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities

Algoritmo di Branch & Bound

i completi l'esecuzione dell'algoritmo di programmazione dinamica per questo problema restituendo il valore ottimo e una soluzione ottima del problema

Possibile applicazione

Problema del trasporto

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04

METODI DELLA RICERCA OPERATIVA

Macchine parallele M 1 M 2 M 3 J 1 J 2 LAVORI J 3 J 4

Parte III: Algoritmo di Branch-and-Bound

Programmazione a numeri interi: il metodo del Branch and Bound

Programmazione Lineare Intera. Programmazione Lineare Intera p. 1/4

Rilassamento Lagrangiano

Ottimizzazione su grafi: massimo flusso (parte 1) Ottimizzazione su grafi:massimo flusso (parte 1) p. 1/33

Problemi di flusso a costo minimo

Rilassamento Lagrangiano

Gestione della produzione e della supply chain Logistica distributiva

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI

Soluzione dei problemi di Programmazione Lineare Intera

5.5 Metodi generali per la soluzione di problemi

Il problema del commesso viaggiatore

5.3 Metodo dei piani di taglio

Programmazione Matematica: VI Estensioni dell algoritmo del Simplesso

COMPITO DI RICERCA OPERATIVA. max x 1 + x 2 x 1 2x 2 + x 3 = 4 x 1 x 2 x 3 = 3 x 2 + 2x 3 = 1 x 1, x 2, x 3 0

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I

Il metodo dei Piani di Taglio (Cutting Planes Method)

Il metodo del simplesso. Il metodo del simplesso p. 1/8

Tecniche euristiche Ricerca Locale

Flusso a Costo Minimo

Risoluzione di problemi di programmazione lineare tramite generazione di colonne

Programmazione Lineare Intera: Piani di Taglio

COMPITO DI RICERCA OPERATIVA. (5 punti) Sia dato il seguente problema di PL: min x 1 + x 2 x 1 + x 2 3 x 1 + x 2 2 2x 1 + x 2 3.

Soluzione dei problemi di Programmazione Lineare Intera

LA PROGRAMMAZIONE MATEMATICA (p.m.)

Geometria della programmazione lineare

COME CALCOLARE LA COMBINAZIONE DI MINIMO COSTO DEI FATTORI

Problemi di localizzazione di servizi (Facility Location Problems)

Esame di Ricerca Operativa del 07/09/2016

Ricerca Operativa. Ricerca Operativa p. 1/6

Ottimizzazione Combinatoria e Reti (a.a. 2007/08)

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013

OTTIMIZZAZIONE LINEARE MULTICRITERIO

Metodi e Modelli per l Ottimizzazione Combinatoria Metodi Risolutivi per la Programmazione Lineare Intera

Problemi, istanze, soluzioni

Teoria della Programmazione Lineare Intera

Introduzione al Metodo del Simplesso. 1 Soluzioni di base e problemi in forma standard

5.4.5 Struttura dell algoritmo ed esempi

3.6 Metodi basati sui piani di taglio

Massimi e minimi vincolati

Esercizi sulla Programmazione Lineare Intera

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 5

Grafi e reti di flusso

Università Ca Foscari Venezia

RICERCA OPERATIVA. Tema d esame del 04/03/2008 (Simulazione)

Teoria della Programmazione Lineare Intera

x 1 x 2 x 3 x 5 La base iniziale è B 0 = I e risulta x B 0 = , x N 0 = Iterazione 0. Calcolo dei costi ridotti. γ 0 = c N 0 (N 0 ) T c B 0 =

Esame di Ricerca Operativa del 08/01/13. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Programmazione Non Lineare

Domande d esame. Ricerca Operativa. G. Liuzzi. Giovedí 14 Maggio Istituto di Analisi dei Sistemi ed Informatica IASI - CNR

Problemi di Flusso: Il modello del Trasporto

Esercizi su ottimizzazione vincolata

u(ax b) = Consideriamo il generico moltiplicatore u i 0. Se la corrispondente quantità n

TEORIA della DUALITÀ. Una piccola introduzione. Ricerca Operativa. Prof. R. Tadei. Politecnico di Torino. Teoria della Dualità / 1.

2.3.3 Cammini ottimi nei grafi senza circuiti

2. ALGORITMO DEL SIMPLESSO

AMPL Problemi su Reti

Esame di Ricerca Operativa del 16/06/2015

Algoritmo del Simplesso

Per formalizzare il concetto sono necessarie alcune nozioni relative ai poliedri e alla loro descrizione.

Introduzione ai grafi

Metodi generali per la soluzione di problemi di PLI

Esame di Ricerca Operativa del 15/01/2015

Algoritmo per A. !(x) Istanza di B

Il metodo del simplesso. Il metodo del simplesso p. 1/12

Esercizi di Programmazione Lineare - Dualità

PROGRAMMAZIONE LINEARE E DUALITA'

Makespan con set-up dipendenti dalla sequenza. 1/s jk /C max

Esercizi sulla Programmazione Lineare. min. cx Ax b x 0

5.5 Metodi dei piani di taglio

2.6 Calcolo degli equilibri di Nash

Il problema del commesso viaggiatore e problemi di vehicle routing

Teoria della Programmazione Lineare. Teoria della Programmazione Lineare p. 1/8

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I)

Indice. 1 Introduzione... 1

1 Il polinomio minimo.

Problemi di localizzazione

Contenuto e scopo presentazione. Modelli Lineari Interi/Misti. Piani di taglio. Piani di taglio. Piani di taglio Versione 31/08/

Ottimizzazione e Controllo 2015/2016 ESERCITAZIONE

Il modello duale. Capitolo settimo. Introduzione

Programmazione Lineare Intera

4. METODI DUALI DEL SIMPLESSO

Claudio Arbib Università di L Aquila. Ricerca Operativa. Reti di flusso

L ALGORITMO DEL SIMPLESSO REVISIONATO

Introduzione alla programmazione lineare

Transcript:

p. 1/4 Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP ) i tempi di risoluzione delle istanze, calcolati tramite analisi worst-case, tendono a crescere in modo esponenziale rispetto alla loro dimensione. Tuttavia questo non vuol dire che si deve sempre rinunciare a risolvere le istanze di tali problemi in modo esatto. Esistono per essi algoritmi esatti in grado di risolvere anche istanze di dimensioni tutt altro che banali. Ad esempio, con algoritmi particolarmente sofisticati e con una elevata potenza di calcolo si sono risolti anche problemi TSP con 15.000 nodi.

p. 2/4 Enumerazione implicita Molti algoritmi esatti si basano sul concetto di enumerazione implicita delle soluzioni. Questa consiste nello scartare, tramite opportune tecniche, sottinsiemi di elementi della regione ammissibile senza dover valutare esplicitamente per ciascuno di essi la funzione obiettivo, avendo stabilito che in tali sottinsiemi non vi possono essere soluzioni migliori rispetto alla miglior soluzione nota. L enumerazione implicita si contrappone alla già citata enumerazione esplicita dove la funzione obiettivo viene valutata in ogni elemento della regione ammissibile.

p. 3/4 Approcci esatti che vedremo In questo capitolo vedremo due classi di algoritmi esatti: algoritmi branch-and-bound; algoritmi di programmazione dinamica. Per illustrare tali algoritmi, mostreremo un algoritmo branch-and-bound applicato al problema KN AP SACK e uno applicato al problema TSP, mentre per la programmazione dinamica mostreremo un esempio applicato al problema KN AP SACK.

p. 4/4 Modello KNAPSACK - variabili Associamo ad ogni oggetto i una variabile binaria x i tale che { 1 se l oggetto i viene messo nello zaino x i = 0 altrimenti Si avrà dunque x i {0, 1}.

p. 5/4 Modello- il vincolo L unico vincolo nel problema KNAPSACK è quello che il peso complessivo degli oggetti inseriti nello zaino non deve superare la capacità dello zaino e quindi: n i=1 p i x i b.

p. 6/4 Modello matematico - l obiettivo Il valore contenuto nello zaino è dato da: n i=1 v i x i, e tale valore è da massimizzare.

p. 7/4 Modello matematico per il KNAPSACK max n i=1 v ix i n i=1 p ix i b x i {0, 1} i {1,...,n} Si noti l estrema semplicità del modello per il problema di KNAPSACK dove appare un solo vincolo, che fa da contrasto con la difficoltà del problema stesso.

p. 8/4 Esempio Istanza con b = 16 e: i 1 2 3 4 v i 8 6 10 1 p i 7 7 13 4 Modello: max 8x 1 + 6x 2 + 10x 3 + x 4 7x 1 + 7x 2 + 13x 3 + 4x 4 16 x 1,x 2,x 3,x 4 {0, 1}

p. 9/4 Modello matematico TSP - variabili Dato il grafo completo orientato G = (V,A), associamo ad ogni arco (i,j) A una variabile { 1 se l arco (i, j) fa parte del circuito hamiltoniano x ij = 0 altrimenti Quindi x ij {0, 1}.

p. 10/4 Modello matematico - i vincoli Dal momento che la regione ammissibile del problema TSP è formata da circuiti hamiltoniani, dovremo: introdurre vincoli che siano soddisfatti da tutti e soli gli assegnamenti di valori alle variabili coincidenti con circuiti hamiltoniani.

Vincoli I Per ogni circuito hamiltoniano si ha che in ogni vertice c è esattamente un arco entrante nel vertice ed esattamente uno che esce dal vertice: Per ogni vertice j V : i V, i j x ij = 1, (uno ed un solo arco entrante in j). Per ogni vertice j V : i V, i j x ji = 1, (uno ed un solo arco uscente da j). p. 11/4

p. 12/4 Esempio Grafo orientato completo con 4 nodi e questa tabella di distanze: 1 2 3 4 1 1 6 7 2 1 3 6 3 2 4 5 4 5 3 6

p. 13/4 Vincoli su archi uscenti Nodo 1: Nodo 2: Nodo 3: Nodo 4: x 12 + x 13 + x 14 = 1 x 21 + x 23 + x 24 = 1 x 31 + x 32 + x 34 = 1 x 41 + x 42 + x 43 = 1

p. 14/4 Vincoli su archi entranti Nodo 1: Nodo 2: Nodo 3: Nodo 4: x 21 + x 31 + x 41 = 1 x 12 + x 32 + x 42 = 1 x 13 + x 23 + x 43 = 1 x 14 + x 24 + x 34 = 1

p. 15/4 Ma...... questi vincoli non sono sufficienti. Infatti, se è vero che sono soddisfatti da tutti i circuiti hamiltoniani, è anche vero che sono sodisfatti anche da soluzioni contenenti sottocircuiti. Quindi...... sarà necessario introdurre una nuova classe di vincoli che siano sempre soddisfatti da tutti i circuiti hamiltoniani ma che non siano soddisfatti da tali soluzioni corrispondenti a sottocircuiti.

p. 16/4 Nell esempio Il seguente assegnamento di valori alle variabili: x 12 = x 21 = x 34 = x 43 = 1 con tutte le altre variabili = 0, soddisfa i vincoli ma non rappresenta un circuito hamiltoniano (rappresenta i due sottocircuiti 1 2 1 e 3 4 3).

p. 17/4 Vincoli II Per eliminare la formazione di sottocircuiti possiamo usare questi vincoli: U V : 2 U V 2 x ij 1, i U, j V \U che richiedono che per ogni possibile partizione di V in due sottinsiemi (ciascuno di cardinalità almeno pari a 2), deve esserci almeno un arco che va da un sottinsieme all altro. Questo esclude tutti i possibili sottocircuiti.

p. 18/4 Nell esempio U = {1, 2} x 13 + x 14 + x 23 + x 24 1 (in particolare, questo vincolo esclude l assegnamento di variabili precedente) U = {1, 3} x 12 + x 14 + x 32 + x 34 1 U = {1, 4} x 12 + x 13 + x 42 + x 43 1 U = {2, 3} x 21 + x 24 + x 31 + x 34 1 U = {2, 4} x 21 + x 23 + x 41 + x 43 1 U = {3, 4} x 31 + x 32 + x 41 + x 42 1

p. 19/4 In realtà...... metà di questi vincoli è ridondante: dati due sottinsiemi tra loro complemementari, è sufficiente mettere il vincolo relativo ad uno solo di essi (ad esempio possiamo mettere uno solo dei due vincoli relativi a U = {1, 2} e U = {3, 4}).

p. 20/4 Riassumendo...... l insieme di vincoli che definisce tutti e soli i circuiti hamiltoniani è il seguente: i V, i j x ij = 1 j V i V, i j x ji = 1 j V i U, j V \U x ij 1 U V : 2 U V 2 x ij {0, 1} i,j {1,...,n}, i j

p. 21/4 Obiettivo Tra tutti i circuiti hamiltoniani noi cerchiamo quello con valore minimo e quindi l obiettivo del problema sarà il seguente: v ij x ij. Nell esempio: i,j V, i j min x 12 + 6x 13 + 7x 14 + x 21 + 3x 23 + 6x 24 + 2x 31 + 4x 32 + 5x 34 + 5x 41 + 3x 42 + 6x 43

p. 22/4 Modello matematico TSP min i,j V, i j v ijx ij i V, i j x ij = 1 j V i V, i j x ji = 1 j V i U, j V \U x ij 1 U V : 2 U V 2 x ij {0, 1} i,j {1,...,n}, i j

p. 23/4 Branch-and-bound Tra le tecniche di risoluzione esatte per problemi difficili una molto popolare è quella denominata branch-and-bound. Ne daremo una descrizione generale e ne vedremo poi un esempio applicato al problema KNAPSACK e uno applicato al problema TSP. Descriveremo l algoritmo generico di branch-and-bound per problemi di massimo. Di seguito segnaleremo le piccole variazioni che vanno introdotte per problemi di minimo.

p. 24/4 Componenti algoritmo:upper bound Sia data la regione ammissibile S e la funzione obiettivo f dell istanza di un problema di ottimizzazione. Si consideri un sottinsieme T S della regione ammissibile. Una limitazione superiore o upper bound per T è un valore U(T) con la seguente proprietà U(T) f(x) x T.

p. 25/4 Il calcolo dell upper bound Il valore U(T) viene calcolato tramite una procedura che deve cercare di soddisfare queste due proprietà in conflitto tra loro: i tempi di esecuzione della procedura devono essere brevi (in particolare, il calcolo degli upper bound deve richiedere un tempo molto inferiore rispetto al tempo necessario per risolvere l intero problema); il valore U(T) deve essere il più vicino possibile al massimo valore di f su T. Spesso la scelta di una procedura per il calcolo dell upper bound è fortemente legata al particolare problema che si sta risolvendo. Inoltre, non esiste un unica procedura per un dato problema.

p. 26/4 Upper bound e rilassamento Un modo comunemente utilizzato per determinare un upper bound U(T) è quello di determinare la soluzione di un suo rilassamento. Indichiamo con: α(f,t) = max x T f(x), il valore ottimo della funzione f sull insieme T. Si definisce rilassamento del problema, un problema: α(f,t ) = max x T f (x) dove: T T e f (x) f(x) x T.

Osservazione Si ha che: α(f,t ) α(f,t). Dimostrazione Sia x T una soluzione ottima del problema su T, cioè: f(x ) = α(f,t), e sia x T una soluzione ottima del rilassamento, cioè: f (x ) = α(f,t ). Si ha che x T implica x T. Inoltre, si ha: f (x ) f(x ). Infine, l ottimalità di x implica f (x ) f (x ) e quindi: α(f,t ) = f (x ) f (x ) f(x ) = α(f,t), p. 27/4

p. 28/4 Un rilassamento già noto Esistono molti possibili rilassamenti di un problema. Tra questi, uno che è già stato incontrato è il rilassamento lineare per problemi di PLI. Sia dato il generico problema di PLI: max cx Ax b x 0 x Z n.

p. 29/4 Questo è un particolare problema di ottimizzazione combinatoria con: f(x) = cx T = {x Z n : Ax b, x 0}. Il rilassamento lineare di tale problema è un particolare rilassamento con: f (x) f(x) T = {x R n : Ax b, x 0},

p. 30/4 Il rilassamento lineare coincide con questo problema di PL: max cx Ax b x 0 NB: come richiesto, il rilassamento lineare, essendo un problema di PL, è risolvibile in tempi molto più rapidi dell originario problema di PLI.

p. 31/4 Il rilassamento lagrangiano Supponiamo che il nostro problema sia formulato come problema di PLI: max cx Ax b Cx d x 0 x Z n. Quindi con: f(x) = cx, T = {x Z n : Ax b, Cx d, x 0}.

p. 32/4 Ipotesi Supponiamo che i vincoli Ax b siano "facili" (ad esempio, A è TU e b è a coordinate tutte intere). Qunidi eliminando i vincoli "difficili" Cx d resta un problema di PLI facile da risolvere (basta risolverne il rilassamento lineare). Per eliminarli li spostiamo nell obiettivo.

p. 33/4 Continua Dato un vettore λ 0, detto vettore dei moltiplicatori di Lagrange, delle stesse dimensioni di d, il rilassamento lagrangiano è il seguente: u(λ) = max cx + λ(d Cx) Ax b x 0 x Z n. con e f (x) = cx + λ(d Cx) T = {x Z n : Ax b, x 0}.

p. 34/4 Continua Ovviamente, T T. Inoltre, per ogni x T si ha che: Cx d λ 0 : λ(d Cx) 0 f (x) f(x). Quindi sono soddisfatte le due condizioni che devono essere soddisfatte da un rilassamento.

p. 35/4 Infine...... notiamo che nel rilassamento lagrangiano rimangono solo i vincoli "facili" e quindi esso può essere risolto in tempo polinomiale, come viene richiesto per il calcolo di un upper bound. Notiamo anche che ad ogni λ 0 distinto corisponde un diverso upper bound u(λ). Per ottenere il miglior upper bound possibile (ovvero il più piccolo), possiamo risolvere questo ulteriore problema: detto duale lagrangiano. min u(λ) λ 0

p. 36/4 Caso particolare Scegliendo λ = 0 abbiamo un caso particolare di rilassamento lagrangiano in cui i vincoli "difficili" del problema vengono semplicemente eliminati.

p. 37/4 Osservazione In alcuni casi i vincoli "difficili" del problema sono vincoli di uguaglianza Cx = d. In tal caso, il rilassamento lagrangiano si definisce nello stesso modo ma i moltiplicatori di Lagrange relativi ai vincoli di uguaglianza non sono vincolati ad assumere solo valori non negativi ma possono assumere anche valori negativi.

p. 38/4 Lower bound Un limite inferiore o lower bound per il valore ottimo del nostro problema è un valore LB che soddisfa la seguente proprietà: LB f(x ) = max x S f(x).

p. 39/4 Come si calcola? Se prendiamo un qualsiasi elemento x S e valutiamo in esso la funzione f, il valore f(x) è già un lower bound, dal momento che f(x) f(x ). Durante l esecuzione di un algoritmo branch-and-bound la funzione f viene valutata per molti elementi y 1,...,y h S e per ognuno di essi si ha f(y i ) f(x ) i = 1,...,h. A noi interessa un valore LB il più possibile vicino al valore ottimo del problema. Quindi, poniamo LB = max{f(y i ) : i = 1,...,h} f(x ).

Ma...... da dove ricaviamo gli elementi di S in cui valutare la funzione f durante l esecuzione dell algoritmo? Se si ha a disposizione un euristica è buona norma valutare f nel risultato di tale euristica; durante lo stesso calcolo degli upper bound si possono individuare uno o più elementi di S e valutare in essi f. Ad esempio, se si calcola l upper bound U(T) tramite un rilassamento, nei casi in cui per la soluzione x T T valga anche x T, allora si ha anche x S e si può valutare f in x. In altri casi non si ha x T ma con opportune operazioni (quali arrotondamenti o approssimazioni per eccesso/difetto di valori di variabili) si può determinare partendo da x T una soluzione x T (un esempio di ciò lo incontreremo nell algoritmo branch-and-bound per il problema dello zaino). p. 40/4

p. 41/4 Branching L operazione di branching consiste nel rimpiazzare un insieme T S con una sua partizione T 1,...,T m. Si ricordi che T 1,...,T m formano una partizione di T se T = m i=1t i T i T j = i j. La partizione può essere rappresentata tramite una struttura ad albero: l insieme T è un nodo dell albero da cui partono i rami (da qui il nome branching) verso i nodi della partizione, che vengono anche detti nodi successori o nodi figli del nodo T.

p. 42/4 Cancellazione di sottinsiemi Il punto chiave degli algoritmi di branch-and-bound è la cancellazione di sottinsiemi. Supponiamo che per un dato sottinsieme, T 2 ad esempio, si abbia U(T 2 ) LB. Ma questo vuol dire che x T 2 f(x) U(T 2 ) LB, e cioè tra tutti gli elementi in T 2 non ne possiamo trovare alcuno con valore di f superiore a LB, ovvero al miglior valore di f osservato fino a questo momento. A questo punto posso cancellare il sottinsieme T 2.

p. 43/4 Cancellazione ed enumerazione implicita La cancellazione equivale ad una enumerazione implicita: il confronto tra upper bound U(T 2 ) del sottinsieme e lower bound LB ci consente di scartare tutti gli elementi in T 2 senza dover calcolare la funzione f in essi. La regola di cancellazione appena introdotta ci fa capire perché vogliamo un valore di upper bound U(T 2 ) il più vicino possibile al valore ottimo di f sul sottinsieme T 2 e un valore LB il più possibile vicino al valore ottimo del problema: in questo modo è più semplice cancellare il sottinsieme tramite la condizione U(T 2 ) LB.

L algoritmo branch-and-bound Passo 1 Si ponga C = {S} e Q = (l insieme C conterrà sempre i sottinsiemi ancora da tenere in considerazione e inizialmente contiene l intero insieme S, mentre l insieme Q, inizialmente vuoto, conterrà tutti i sottinsiemi cancellati). Si ponga k = 1. Si calcoli U(S) e si calcoli un valore per LB (eventualmente utilizzando anche i risultati di un euristica, se disponibile). Se non si dispone di soluzioni ammissibili, si ponga LB =. Passo 2 (Selezione di un sottinsieme) Si selezioni un sottinsieme T C. Tra le varie regole di selezione citiamo qui quella di selezionare il sottinsieme T in C con il valore di upper bound più elevato, cioè U(T) = max Q C U(Q). p. 44/4

p. 45/4 Passo 3 (Branching) Si sostituisca l insieme T in C con la sua partizione in m k sottinsiemi T 1,...,T mk, ovvero C = C {T 1,...,T mk } \ {T }. Passo 4 (Upper bounding) Si calcoli un upper bound U(T i ), i = 1,...,m k per ogni sottinsieme della partizione. Passo 5 (Lower bounding) Si aggiorni, eventualmente, il valore LB (si ricordi che il valore LB corrisponde sempre al massimo dei valori di f osservati durante l esecuzione dell algoritmo).

p. 46/4 Passo 6 (Cancellazione sottinsiemi) Si escludano da C tutti i sottinsiemi Q per cui U(Q) LB, ovvero C = C \ {Q : U(Q) LB}. e si trasferiscano tali sottinsiemi in Q, cioè: Q = Q {Q : U(Q) LB}. Passo 7 Se C = : stop, il valore LB coincide con il valore ottimo f(x ). Altrimenti si ponga k = k + 1 e si ritorni al Passo 2.

p. 47/4 Osservazione Se C =, LB è il valore ottimo del nostro problema (se è pari a, allora S = ). Questa affermazione è una conseguenza del fatto che, nel momento in cui C =, tutti i sottinsiemi cancellati fino a quel momento, cioè la collezione Q di sottinsiemi, formano una partizione dell intero insieme S. Quindi tra di essi ve ne è certamente uno, indicato con T Q, che contiene x. Ma poiché T è stato cancellato si dovrà avere f(x ) U(T ) LB f(x ), da cui segue immediatamente che LB = f(x ).

Modifiche per problemi di minimo ad un sottinsieme Q S dovrà essere associato un valore di lower bound L(Q); al posto del valore LB avremo un valore UB con la proprietà UB f(x ) = min x S f(x). Il valore UB sarà il minimo tra i valori osservati della funzione obiettivo in punti della regione ammissibile S. Il sottinsieme Q viene cancellato se è vero che L(Q) UB. Al Passo 2 della procedura di branch-and-bound si seleziona un nodo con lower bound più piccolo, ovvero un nodo T tale che L(T) = min Q C L(Q). p. 48/4