#!/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.
