を最小値を決定する必要があります。は、私は簡単に見えたが、かなり速い頭痛になった何かにこだわっているリストに
public class LocumJobDistanceDifferenceObject {
public LocumJobDistanceDifferenceObject(Int64 ALocumID, Int64 AJobID, Decimal ADistanceMiles, Int32 ARateDifference, Boolean AIsDistanceUnderMax) {
LocumID = ALocumID;
JobID = AJobID;
DistanceMiles = ADistanceMiles;
RateDifference = ARateDifference;
IsDistanceUnderMax = AIsDistanceUnderMax;
}
public Int64 LocumID {
get;
set;
}
public Int64 JobID {
get;
set;
}
public Decimal DistanceMiles {
get;
set;
}
public Int32 RateDifference {
get;
set;
}
public Boolean IsDistanceUnderMax {
get;
set;
}
}
を:ここで
は、私が使用している構造を表すクラスです。
私はリストを作成して情報の行列を格納します。ロカムは労働者であり、彼はジョブに配置する必要があります。私は50のJobsと75のLocumsを持っていると言います。私はLocums + JobID + JobID + LocumとJob + Detromineの間にDistanceMilesを格納するLocums x Jobs algoを実行して行列を構築します。Jobが支払う/時間を求め、Locumは時間を求めます+ JobへのdostanceはLocumの最大距離を超えます旅行
したがって、基本的には、それはマトリックスのLocums(75)x Jobs(50)の数です。私は自分自身を説明願ってい
foreach (LocumJobDistanceDifferenceObject LocumJobDistanceDifferenceItem in MindMapTier01.OrderBy(order=>order.JobID)) {
/**
* Build a list (KeyValuePair<JobID, LocumID>) such that for each unique JobID,
* I can assign the Locum closest to that Job. I need to keep in mind that
* once a job is assigned, I dont want that JobID or LocumID for the next iteration
**/
}
:
は今、私は私のマトリックス上のループ(foreachの)を(私はMindMapTier01それを呼び出す)、次のように実行する必要があります。私は1時間か2時間以内にこれを乗り越える必要があります。助けてください。
よろしくお願いいたします。
私はあなたの提案を行った後に結果を得ることができました。ありがとう。 – DoomerDGR8