private void AddToResults(KSItem curItem) { if (curItem != null) { Solution.Add(curItem); Result.Value += curItem.Value; Result.Weight += curItem.Weight; Result.Volume += curItem.Volume; } }
public bool TryAddItem(KSItem curItem) { if (CanAddItem(curItem)) { AddToResults(curItem); return(true); } return(false); }
private bool CanAddItem(KSItem curItem) { if (curItem != null) { int testWeight = curItem.Weight + Result.Weight; int testVolume = curItem.Volume + Result.Volume; //Verify adding the next item does NOT violate a constraint //then add it to the current solution if (testWeight <= TM.MaxWeight && (TM.MaxVolume == null || (testVolume <= TM.MaxVolume))) { return(true); } } return(false); }