private void retractPreviousStandstill(Cliente cliente) {
   Parada paradaAnterior = cliente.getParadaAnterior();
   if (paradaAnterior != null) {
     // Score constraint distanceToPreviousStandstill
     softScore += cliente.getMilliDistanceToPreviousStandstill();
   }
 }
 private void retractNextCustomer(Cliente cliente) {
   Vehiculo vehicle = cliente.getVehiculo();
   if (vehicle != null) {
     if (cliente.getSiguienteCliente() == null) {
       // Score constraint distanceFromLastCustomerToDepot
       softScore += vehicle.getUbicacion().getDistanciaMetros(cliente.getUbicacion());
     }
   }
 }
 private void retractMilliArrivalTime(Cliente cliente) {
   Integer horaLlegadaSegundos = cliente.getHoraLlegadaSegundos();
   if (horaLlegadaSegundos != null) {
     int horaFinSegundos = cliente.getHoraFinSegundos();
     if (horaFinSegundos < horaLlegadaSegundos) {
       // Score constraint arrivalAfterDueTime
       hardScore += (horaLlegadaSegundos - horaFinSegundos);
     }
   }
 }
 private void insertMilliArrivalTime(Cliente cliente) {
   Integer horaLlegadaSegundos = cliente.getHoraLlegadaSegundos();
   if (horaLlegadaSegundos != null) {
     int horaFinSegundos = cliente.getHoraFinSegundos();
     if (horaFinSegundos < horaLlegadaSegundos) {
       // Score constraint arrivalAfterDueTime
       hardScore -= (horaLlegadaSegundos - horaFinSegundos);
     }
   }
   // Score constraint arrivalAfterDueTimeAtDepot is a build-in hard constraint in
   // VehicleRoutingImporter
 }
 private void retractVehicle(Cliente cliente) {
   Vehiculo vehiculo = cliente.getVehiculo();
   if (vehiculo != null) {
     // Score constraint vehicleCapacity
     int capacidad = vehiculo.getCapacidad();
     int demandaAntigua = mapaDemandaVehiculo.get(vehiculo);
     int demandaNueva = demandaAntigua - cliente.getDemanda();
     hardScore += Math.min(capacidad - demandaNueva, 0) - Math.min(capacidad - demandaAntigua, 0);
     mapaDemandaVehiculo.put(vehiculo, demandaNueva);
     if (cliente.getSiguienteCliente() == null) {
       // Score constraint distanceFromLastCustomerToDepot
       softScore += vehiculo.getUbicacion().getDistanciaMetros(cliente.getUbicacion());
     }
   }
 }