#!/usr/bin/perl -w use strict; my @x = qw(8 4 3 7 8); my @y = qw(1 8 5 4 8); my @vol= qw(2000 4000 2500 1000 2500); # Peso, volumen o número de unidades (de o hacia) my @cost_u = qw(10 12 10 50 10); # coste de transporte por unidad my $N = @x; my ($i, $tmp, $sum_denom, $x_cdg, $y_cdg, $dist, $cost, $totalcost); for $i (0..$N-1){ $tmp = $vol[$i]*$cost_u[$i]; $sum_denom += $tmp; $x_cdg += $x[$i]*$tmp; $y_cdg += $y[$i]*$tmp; } $x_cdg /= $sum_denom; $y_cdg /= $sum_denom; print "Coordenadas del centro de gravedad: X=$x_cdg Y=$y_cdg\n"; for $i (0..$N-1){ $dist = sqrt(($x[$i]-$x_cdg)**2 + ($y[$i]-$y_cdg)**2); $cost = $dist * $vol[$i] * $cost_u[$i]; $totalcost += $cost; print "punto $i dist = $dist cost = $cost\n"; } print "Coste total del transporte = $totalcost\n"; __END__ Problema de localización entre fábricas y demandas dado el volumen de transporte. Opcionalmente, se pueden multiplicar distancias y costes por el coeficiente de paso por carretera.