cerca
Ricerca Operativa - PNL - Atomi - 24.07.07
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Ricerca Operativa - PNL - Atomi - 24.07.07

Torna alla pagina di Ricerca Operativa


 :: Ricerca Operativa - PNL - Atomi - 24.07.07 ::

Testo del problema

Nell’intorno di un atomo l’energia di interazione tra l’atomo stesso e un altro atomo “sonda” che gli viene avvicinato è dato dalla formula

dove A e B sono parametri caratteristici dell’atomo mentre r è la distanza Euclidea tra l’atomo e la sonda. E’ data una configurazione tridimensionale di alcuni atomi, supposti puntiformi e si vuole trovare il punto di minima energia a cui la sonda (anch’essa supposta puntiforme) tende a stabilizzarsi per effetto delle interazioni con gli atomi stessi. Formulare il problema, classificarlo e risolverlo con i dati del file ATOMI.TXT.

Dati

Gli atomi sono 10.
Le posizioni degli atomi sono le seguenti:

Atomo		 x	 y	 z
 1		3.2 	2.5	4.8
 2		2.1	3.7 	8.4
 3		7.5 	2.5 	5.0
 4		6.6 	1.2 	4.5
 5		0.8 	5.1 	5.6
 6		6.3 	8.8 	3.5
 7		2.4 	1.0 	3.1
 8		1.2 	4.6 	9.0
 9		8.5 	7.8 	1.5
10		4.1 	9.3 	0.9

I valori dei parametri A e B sono i seguenti:

Atomo   1   2   3   4   5   6   7   8   9  10
  A    1.0 1.1 2.1 3.0 0.5 0.2 0.8 1.1 1.5 1.7
  B    200 400 320 250 400 200 120 300 100 500

Formulazione del problema

Dati

  • atomi = 10 (numero di atomi)
  • assi = 3 (numero di assi che compongono una coordinata)
  • coordij (coordinata dell'atomo i=1..10 sull'asse j=1..3)
  • parAi (valore del parametro A per l'atomo i=1..10)
  • parBi (valore del parametro B per l'atomo i=1..10)

Variabili

  • xj (coordinate della sonda sugli assi indicati da j=1..3)

La variabile è libera.

Funzione obiettivo

Vogliamo minimizzare l'energia a cui la sonda tende a stabilizzarsi. Questo valore si calcola come la somma dei contributi dati all'energia da tutte le interazioni con gli atomi.

min (somma)i [(parAi / r12i) – (parBi / r6i)]

Notare che abbiamo introdotto le due variabili ausiliarie r12 ed r6, che definiremo poi come vincoli di uguaglianza.

Vincoli

  • vincolo per definire r12 come la distanza euclidea tra l'atomo i e la sonda:
    '''r12 = [(somma)j (xj – coordij)2]6 (per ogni i)
  • vincolo per definire r6 come la distanza euclidea tra l'atomo i e la sonda:
    '''r6 = [(somma)j (xj – coordij)2]3 (per ogni i)

Linghizzazione del problema

! problema - Atomi;

model:

sets:
atomo /1..10/: parA, parB, r12, r6;
assi /1..3/: x;
posizione (atomo,assi): coord;
endsets

data: 
parA = 1.0 1.1 2.1 3.0 0.5 0.2 0.8 1.1 1.5 1.7;
parB = 200 400 320 250 400 200 120 300 100 500;
coord =	3.2 2.5 4.8
	2.1 3.7 8.4
    	7.5 2.5 5.0
    	6.6 1.2 4.5
    	0.8 5.1 5.6
    	6.3 8.8 3.5
    	2.4 1.0 3.1
    	1.2 4.6 9.0
    	8.5 7.8 1.5
    	4.1 9.3 0.9;
enddata

! funzione obiettivo;
min = @sum(atomo(i): (parA(i)/r12(i)) - (parB(i)/r6(i)));

! vincolo per definire r12;
@for(atomo(i): r12(i) = (@sum(assi(j): (x(j)-coord(i,j))^2))^6);

! vincolo per definire r6;
@for(atomo(i): r6(i) = (@sum(assi(j): (x(j)-coord(i,j))^2))^3);

! dichiarazione variabile libera x;
@for(assi(j): @free(x(j)));

end

Torna alla pagina di Ricerca Operativa