// TODO(ross): this should take in a list of who we are comparing againt, not just use the current pool...
public static ExchangeUnitAuxiliaryInputStatistics getAuxiliaryStatisticsWithVPra(KepProblemData<ExchangeUnit,DonorEdge> kepProblemData){
		AuxiliaryInputStatistics<ExchangeUnit,DonorEdge> regular = getAuxiliaryStatistics(kepProblemData);
		List<Donor> donors = new ArrayList<Donor>();
		List<Receiver> receivers = new ArrayList<Receiver>();
		for(ExchangeUnit unit: kepProblemData.getGraph().getVertices()){
			for(Donor donor: unit.getDonor()){
				donors.add(donor);
			}
			if(!kepProblemData.getRootNodes().contains(unit)){
				receivers.add(unit.getReceiver());
			}
		}		
		ImmutableMap.Builder<Receiver,Double> builder = ImmutableMap.<Receiver,Double>builder();
		for(Receiver receiver: receivers){
			int count = 0;
			for(Donor donor: donors){
				if(!receiver.getTissueTypeSensitivity().isCompatible(donor.getTissueType())){
					count++;
				}
			}
			builder.put(receiver, 100*count/(double)donors.size());
		}
		return new ExchangeUnitAuxiliaryInputStatistics(
				regular.getDonorPowerPostPreference(), 
				regular.getReceiverPowerPostPreference(),
				builder.build()) ;
	}
public static ExchangeUnitAuxiliaryInputStatistics getAuxiliaryStatisticsWithVPra(KepProblemData<ExchangeUnit,DonorEdge> kepProblemData){
AuxiliaryInputStatistics<ExchangeUnit,DonorEdge> regular = getAuxiliaryStatistics(kepProblemData);
List<Donor> donors = new ArrayList<Donor>();
List<Receiver> receivers = new ArrayList<Receiver>();
for(ExchangeUnit unit: kepProblemData.getGraph().getVertices()){
for(Donor donor: unit.getDonor()){
donors.add(donor);
}
if(!kepProblemData.getRootNodes().contains(unit)){
receivers.add(unit.getReceiver());
}
}
ImmutableMap.Builder<Receiver,Double> builder = ImmutableMap.<Receiver,Double>builder();
for(Receiver receiver: receivers){
int count = 0;
for(Donor donor: donors){
if(!receiver.getTissueTypeSensitivity().isCompatible(donor.getTissueType())){
count++;
}
}
builder.put(receiver, 100*count/(double)donors.size());
}
return new ExchangeUnitAuxiliaryInputStatistics(
regular.getDonorPowerPostPreference(),
regular.getReceiverPowerPostPreference(),
builder.build()) ;
}
public static ExchangeUnitAuxiliaryInputStatistics getAuxiliaryStatisticsWithVPra(KepProblemData<ExchangeUnit,DonorEdge> kepProblemData){
AuxiliaryInputStatistics<ExchangeUnit,DonorEdge> regular = getAuxiliaryStatistics(kepProblemData);
List<Donor> donors = new ArrayList<Donor>();
List<Receiver> receivers = new ArrayList<Receiver>();
for(ExchangeUnit unit: kepProblemData.getGraph().getVertices()){
for(Donor donor: unit.getDonor()){
donors.add(donor);
}
if(!kepProblemData.getRootNodes().contains(unit)){
receivers.add(unit.getReceiver());
}
}
ImmutableMap.Builder<Receiver,Double> builder = ImmutableMap.<Receiver,Double>builder();
for(Receiver receiver: receivers){
int count = 0;
for(Donor donor: donors){
if(!receiver.getTissueTypeSensitivity().isCompatible(donor.getTissueType())){
count++;
}
}
builder.put(receiver, 100*count/(double)donors.size());
}
return new ExchangeUnitAuxiliaryInputStatistics(
regular.getDonorPowerPostPreference(),
regular.getReceiverPowerPostPreference(),
builder.build()) ;
}
public static ExchangeUnitAuxiliaryInputStatistics getAuxiliaryStatisticsWithVPra(KepProblemData<ExchangeUnit,DonorEdge> kepProblemData){
AuxiliaryInputStatistics<ExchangeUnit,DonorEdge> regular = getAuxiliaryStatistics(kepProblemData);
List<Donor> donors = new ArrayList<Donor>();
List<Receiver> receivers = new ArrayList<Receiver>();
for(ExchangeUnit unit: kepProblemData.getGraph().getVertices()){
for(Donor donor: unit.getDonor()){
donors.add(donor);
}
if(!kepProblemData.getRootNodes().contains(unit)){
receivers.add(unit.getReceiver());
}
}
ImmutableMap.Builder<Receiver,Double> builder = ImmutableMap.<Receiver,Double>builder();
for(Receiver receiver: receivers){
int count = 0;
for(Donor donor: donors){
if(!receiver.getTissueTypeSensitivity().isCompatible(donor.getTissueType())){
count++;
}
}
builder.put(receiver, 100*count/(double)donors.size());
}
return new ExchangeUnitAuxiliaryInputStatistics(
regular.getDonorPowerPostPreference(),
regular.getReceiverPowerPostPreference(),
builder.build()) ;
}