OPS > Knapsack

PREMESSA

Si consideri, ad esempio, la tabella seguente che si riferisce ad un magazzino di minerali: riporta la sigla il peso e il valore di ogni esemplare presente nel magazzino.

Il contenuto della tabella può essere descritto con dei termini; ogni termine è così definito:

minerale(<sigla>,<peso in chili>,<valore in euro>)

La definizione mostra il nome del termine, il numero degli argomenti e il loro significato.
Nel caso delle tabelle il nome del termine è il nome della tabella, il numero degli argomenti è il numero delle colonne e il significato di ogni termine è l’intestazione della colonna.

Il contenuto della tabella può essere così descritto:

minerale(m1,30,213), minerale(m2,35,200), minerale(m3,38,230)

In generale, in problemi di questo tipo, occorre considerare tutte le possibili combinazioni di minerali diversi; occorre per ognuna determinare il valore, il peso e il carrello più “piccolo” che la può trasportare.

N.B. Le combinazioni corrispondono ai sottoinsiemi: cioè sono indipendenti dall’ordine; per esempio la combinazione “m1, m2, m3” è uguale alla combinazione “m3, m2, m1”. Quindi per elencarle tutte (una sola volta) conviene costruirle sotto forma di liste i cui elementi sono ordinati come richiesto dal problema.


PROBLEMA 1

In un deposito di minerali esistono esemplari di vario peso e valore individuati da sigle di riconoscimento.

Ciascun minerale è descritto da una sigla che contiene le seguenti informazioni:

tab(<sigla del minerale>, <valore in euro>, <peso in Kg>).

Il deposito contiene i seguenti minerali:

tab(m1,15,35), tab(m2,19,46), tab(m3,14,25), tab(m4,10,12).

Disponendo di un piccolo motocarro con portata massima di 59 Kg trovare la lista L delle sigle di due minerali diversi che siano trasportabili contemporaneamente con questo mezzo e che abbiano il massimo valore complessivo; calcolare inoltre questo valore V.

N.B. Nella lista, elencare le sigle in ordine (lessicale) crescente; per le sigle usate si ha il seguente ordine: m1<m2<m3< … .


PROBLEMA 2

In un deposito di minerali esistono esemplari di vario peso e valore individuati da sigle di ricono-scimento.

Ciascun minerale è descritto da un termine che contiene le seguenti informazioni:

minerale(<sigla minerale >,<valore>,<peso> ).

Il deposito contiene i seguenti minerali:

minerale(m1,39,58), minerale(m2,42,64), minerale(m3,40,65), minerale(m4,38,59), minerale(m5,37,61), minerale(m6,42,62).

I minerali possono essere spostati con carrelli di diversa portata su cui si possono mettere tre esemplari (diversi).

  • Disponendo di un carrello con portata massima di 180 Kg, trovare la lista L1 delle sigle di tre minerali diversi che siano trasportabili contemporaneamente e che abbiano il massimo valore complessivo.
  • Disponendo di un carrello con portata massima di 185 Kg, trovare la lista L2 delle sigle di tre minerali diversi che siano trasportabili contemporaneamente e che abbiano il massimo valore complessivo.
  • Disponendo di un carrello con portata massima di 200 Kg, trovare la lista L1 delle sigle di tre minerali diversi che siano trasportabili contemporaneamente e che abbiano il massimo valore complessivo.

N.B. Nella lista, elencare le sigle in ordine (lessicale) crescente; per le sigle usate si ha il seguente ordine: m1<m2<m3< …


PROBLEMA 3

In un deposito di minerali esistono esemplari di vario peso e valore individuati da sigle di riconoscimento.

Ciascun minerale è descritto da un termine che contiene le seguenti informazioni:

minerale(<sigla del minerale>, <valore in euro>, <peso in Kg>).

Il deposito contiene i seguenti minerali:

minerale(m1,591,899), minerale(m2,536,864), minerale(m3,587,833), minerale(m4,562,858), minerale(m5,545,825), minerale(m6,558,842).

Disponendo di un autocarro con portata massima di 1700 Kg, trovare la lista L1 delle sigle di 2 minerali diversi trasportabili con questo autocarro che consente di trasportare il massimo valore possibile.

Disponendo di un autocarro con portata massima di 1800 Kg, trovare la lista L2 delle sigle di 2 minerali diversi trasportabili con questo autocarro che consente di trasportare il massimo valore possibile.

N.B. Nelle liste, elencare le sigle in ordine crescente; per le sigle si ha il seguente ordine: m1<m2<… <m9.