From 5f3d5c95ed2f8648a3cb29fbdba86de5f05b2a09 Mon Sep 17 00:00:00 2001 From: ntnt Date: Sun, 18 Jan 2026 17:06:19 +0800 Subject: [PATCH] P3: codes and results --- README.md | 32 +- candidate_pairs.py | 153 ++++++ data/candidate_pairs_k6_cap250.csv | 117 +++++ data/ordered_pairs_allocation_k6_cap250.csv | 233 +++++++++ data/p3_kmin_data.csv | 92 ++++ data/p3_kmin_effectiveness.png | Bin 0 -> 235418 bytes data/p3_kmin_pairs.csv | 27 + data/p3_kmin_sites.csv | 71 +++ p3_kmin.py | 528 ++++++++++++++++++++ two_stop_allocation.py | 185 +++++++ 10 files changed, 1433 insertions(+), 5 deletions(-) create mode 100644 candidate_pairs.py create mode 100644 data/candidate_pairs_k6_cap250.csv create mode 100644 data/ordered_pairs_allocation_k6_cap250.csv create mode 100644 data/p3_kmin_data.csv create mode 100644 data/p3_kmin_effectiveness.png create mode 100644 data/p3_kmin_pairs.csv create mode 100644 data/p3_kmin_sites.csv create mode 100644 p3_kmin.py create mode 100644 two_stop_allocation.py diff --git a/README.md b/README.md index 8c131b0..0e31046 100644 --- a/README.md +++ b/README.md @@ -53,11 +53,10 @@ Optimize a 365-day schedule with at most 2 visits per day and minimum gap constr 其中 `lat0` 可取所有站点纬度均值(单位:英里)。若仅需相对距离,也可用 `|lat_i - lat_j| + |lon_i - lon_j|` 作为无量纲近似。 具体配对流程(可直接脚本化): - - **距离筛选**:对每个站点 `i`,计算与所有 `j != i` 的 `d_ij`,保留 `d_ij <= d_max` - 或取 `k` 个最近邻(如 `k=5~8`),得到近邻集合 `N(i)`。 - - **需求均衡筛选**:对候选 `(i, j)`,要求 - `mu_i / mu_j` 处于区间 `[r_min, r_max]`(如 `[0.5, 2.0]`), - 或 `|mu_i - mu_j| <= delta_mu`,避免极端失衡导致第二站缺货。 + - **距离筛选**:对每个站点 `i`,计算与所有 `j != i` 的 `d_ij`,取 `k` 个最近邻 + (默认 `k=6`),得到近邻集合 `N(i)`。 + - **运载量筛选**:对候选 `(i, j)`,要求 `mu_i + mu_j <= 250` + (将每次访问的平均客户数视为需求均值),确保双站总需求不超过单车载量。 - **波动风险筛选**:若 `sigma_i` 或 `sigma_j` 过大(如 `sigma / mu > 0.5`), 则优先作为第二站(或直接剔除)以降低不确定性风险。 - **最终候选集**:`P = {(i, j) | j in N(i) 且满足需求/波动筛选}`, @@ -97,3 +96,26 @@ Optimize a 365-day schedule with at most 2 visits per day and minimum gap constr - **动态修正**:若某站点连续出现“后站不足”,在后续排程中降低其作为第一站的概率或提高 `q_i` 分位数阈值。 该方案与当前脚本兼容:`kmin_effectiveness.py` 提供需求统计与 Monte Carlo 框架;`scheduling_optimization.py` 的 CP-SAT 可扩展为“单站/双站二选一”的排程模型。 + +### 候选配对生成脚本 + +- `python3 candidate_pairs.py --k 6 --capacity 250` +- 输出:`data/candidate_pairs_k6_cap250.csv` + +### 第一站分配量优化脚本 + +- `python3 two_stop_allocation.py --input data/candidate_pairs_k6_cap250.csv` +- 输出:`data/ordered_pairs_allocation_k6_cap250.csv` +- 说明:对每个无序候选对生成 `(i -> j)` 与 `(j -> i)` 两条有序记录,并用 Monte Carlo + 在 `q_i ∈ [0, C]` 上搜索最优第一站分配量。 + +### Task 3 频次分配(双站合并出车) + +- `python3 p3_kmin.py --input-pairs data/ordered_pairs_allocation_k6_cap250.csv` +- 输出: + - `data/p3_kmin_data.csv`:扫 `k_min` 的有效性/公平性指标 + 出车统计 + - `data/p3_kmin_sites.csv`:每站单独次数/双站次数统计 + - `data/p3_kmin_pairs.csv`:有序双站出车次数 + 第一站上限 `q_opt` + - `data/p3_kmin_effectiveness.png`:Task 3 的 `k_min` 指标曲线图 + +![p3 kmin effectiveness](data/p3_kmin_effectiveness.png) diff --git a/candidate_pairs.py b/candidate_pairs.py new file mode 100644 index 0000000..3811d07 --- /dev/null +++ b/candidate_pairs.py @@ -0,0 +1,153 @@ +""" +Generate candidate two-stop site pairs using k-nearest Manhattan distance +and a capacity filter on average demand. +""" + +from __future__ import annotations + +import argparse +import os +from typing import Dict, List, Tuple + +import numpy as np +import pandas as pd + + +DEFAULT_INPUT = "prob/MFP Regular Sites 2019.xlsx" +DEFAULT_OUTPUT = "data/candidate_pairs_k6_cap250.csv" + + +def _find_col(df: pd.DataFrame, candidates: List[str]) -> str: + for name in candidates: + if name in df.columns: + return name + lower_map = {c.lower(): c for c in df.columns} + for name in candidates: + key = name.lower() + if key in lower_map: + return lower_map[key] + raise ValueError(f"Missing required column. Tried: {candidates}") + + +def _load_sites(path: str) -> pd.DataFrame: + df = pd.read_excel(path) + + col_site = _find_col(df, ["Site Name", "site name", "site"]) + col_lat = _find_col(df, ["latitude", "lat"]) + col_lon = _find_col(df, ["longitude", "lon", "lng"]) + col_mu = _find_col(df, ["Average Demand per Visit", "average demand per visit", "avg demand"]) + col_sigma = _find_col( + df, ["StDev(Demand per Visit)", "stdev(demand per visit)", "stdev", "std"] + ) + + out = df[[col_site, col_lat, col_lon, col_mu, col_sigma]].copy() + out.columns = ["site_name", "latitude", "longitude", "mu", "sigma"] + + out["latitude"] = pd.to_numeric(out["latitude"], errors="coerce") + out["longitude"] = pd.to_numeric(out["longitude"], errors="coerce") + out["mu"] = pd.to_numeric(out["mu"], errors="coerce") + out["sigma"] = pd.to_numeric(out["sigma"], errors="coerce").fillna(0.0) + + if out[["latitude", "longitude", "mu"]].isna().any().any(): + missing = out[out[["latitude", "longitude", "mu"]].isna().any(axis=1)] + raise ValueError(f"Missing lat/lon/mu for {len(missing)} rows.") + + out = out.reset_index(drop=True) + out["site_idx"] = np.arange(1, len(out) + 1, dtype=int) + return out + + +def _manhattan_miles(lat: np.ndarray, lon: np.ndarray) -> np.ndarray: + lat0 = float(np.mean(lat)) + lat_scale = 69.0 + lon_scale = 69.0 * float(np.cos(np.deg2rad(lat0))) + + dlat = np.abs(lat[:, None] - lat[None, :]) * lat_scale + dlon = np.abs(lon[:, None] - lon[None, :]) * lon_scale + dist = dlat + dlon + np.fill_diagonal(dist, np.inf) + return dist + + +def generate_pairs( + df: pd.DataFrame, + *, + k: int, + capacity: float, +) -> pd.DataFrame: + if k <= 0: + raise ValueError("k must be > 0") + + lat = df["latitude"].to_numpy(dtype=float) + lon = df["longitude"].to_numpy(dtype=float) + mu = df["mu"].to_numpy(dtype=float) + sigma = df["sigma"].to_numpy(dtype=float) + + dist = _manhattan_miles(lat, lon) + + pair_rows: List[Dict[str, float]] = [] + seen: set[Tuple[int, int]] = set() + + for i in range(len(df)): + nn_idx = np.argsort(dist[i])[:k] + for j in nn_idx: + if mu[i] + mu[j] > capacity: + continue + a, b = (i, j) if i < j else (j, i) + if (a, b) in seen: + continue + seen.add((a, b)) + + mu_a = float(mu[a]) + mu_b = float(mu[b]) + sigma_a = float(sigma[a]) + sigma_b = float(sigma[b]) + ratio = mu_a / mu_b if mu_b > 0 else np.inf + + pair_rows.append( + { + "site_i_idx": int(df.loc[a, "site_idx"]), + "site_i_name": df.loc[a, "site_name"], + "site_j_idx": int(df.loc[b, "site_idx"]), + "site_j_name": df.loc[b, "site_name"], + "distance_miles": float(dist[a, b]), + "lat_i": float(lat[a]), + "lon_i": float(lon[a]), + "lat_j": float(lat[b]), + "lon_j": float(lon[b]), + "mu_i": mu_a, + "sigma_i": sigma_a, + "mu_j": mu_b, + "sigma_j": sigma_b, + "sum_mu": mu_a + mu_b, + "mu_ratio": ratio, + "sum_sigma": sigma_a + sigma_b, + } + ) + + out = pd.DataFrame(pair_rows) + if len(out) > 0: + out = out.sort_values(["distance_miles", "sum_mu"]).reset_index(drop=True) + return out + + +def main() -> None: + parser = argparse.ArgumentParser( + description="Generate candidate two-stop site pairs from MFP dataset." + ) + parser.add_argument("--input", default=DEFAULT_INPUT) + parser.add_argument("--k", type=int, default=6, help="k nearest neighbors per site.") + parser.add_argument("--capacity", type=float, default=250.0) + parser.add_argument("--output", default=DEFAULT_OUTPUT) + args = parser.parse_args() + + df = _load_sites(args.input) + pairs = generate_pairs(df, k=args.k, capacity=args.capacity) + + os.makedirs(os.path.dirname(args.output), exist_ok=True) + pairs.to_csv(args.output, index=False) + print(f"Saved {len(pairs)} candidate pairs to {args.output}") + + +if __name__ == "__main__": + main() diff --git a/data/candidate_pairs_k6_cap250.csv b/data/candidate_pairs_k6_cap250.csv new file mode 100644 index 0000000..99a6752 --- /dev/null +++ b/data/candidate_pairs_k6_cap250.csv @@ -0,0 +1,117 @@ +site_i_idx,site_i_name,site_j_idx,site_j_name,distance_miles,lat_i,lon_i,lat_j,lon_j,mu_i,sigma_i,mu_j,sigma_j,sum_mu,mu_ratio,sum_sigma +37,MFP Senior - Bragg,38,MFP Senior - Carpenter Apartments,0.26343727419097573,42.0896598,-76.7977954,42.0930065,-76.7984317,66.88888888888889,6.03001750504186,31.09090909090909,6.75950509215793,97.97979797979798,2.151397011046134,12.78952259719979 +19,MFP First Assembly Of God Church,52,MFP Senior - Metro Plaza Apartments,0.26603540683023114,42.1022814,-75.9129518,42.1016977,-75.9085338,146.0,21.6459108042479,56.3,19.9167712689024,202.3,2.5932504440497337,41.5626820731503 +33,MFP Saint Mary Recreation Center,52,MFP Senior - Metro Plaza Apartments,0.41906667521229546,42.0988789,-75.9041391,42.1016977,-75.9085338,148.3,59.8313370140505,56.3,19.9167712689024,204.60000000000002,2.6341030195381885,79.7481082829529 +52,MFP Senior - Metro Plaza Apartments,53,MFP Senior - North Shore Towers,0.44560068880224146,42.1016977,-75.9085338,42.0966132,-75.9103884,56.3,19.9167712689024,58.333333333333336,6.86051504383355,114.63333333333333,0.9651428571428571,26.777286312735953 +50,MFP Senior - Lincoln Court,53,MFP Senior - North Shore Towers,0.4510672532235281,42.090217,-75.910198,42.0966132,-75.9103884,26.0,4.89897948556636,58.333333333333336,6.86051504383355,84.33333333333334,0.4457142857142857,11.759494529399909 +33,MFP Saint Mary Recreation Center,53,MFP Senior - North Shore Towers,0.4756729640145355,42.0988789,-75.9041391,42.0966132,-75.9103884,148.3,59.8313370140505,58.333333333333336,6.86051504383355,206.63333333333335,2.5422857142857143,66.69185205788405 +35,MFP Schuyler Outreach,49,MFP Senior - Jefferson Village,0.4835250933346896,42.3770866,-76.8698425,42.3829923,-76.8713304,138.85714285714286,21.5362374571215,24.818181818181817,2.78633026822672,163.67532467532467,5.59497645211931,24.32256772534822 +19,MFP First Assembly Of God Church,53,MFP Senior - North Shore Towers,0.5220957180283179,42.1022814,-75.9129518,42.0966132,-75.9103884,146.0,21.6459108042479,58.333333333333336,6.86051504383355,204.33333333333334,2.5028571428571427,28.50642584808145 +50,MFP Senior - Lincoln Court,52,MFP Senior - Metro Plaza Apartments,0.8772090355783712,42.090217,-75.910198,42.1016977,-75.9085338,26.0,4.89897948556636,56.3,19.9167712689024,82.3,0.4618117229129663,24.815750754468763 +33,MFP Saint Mary Recreation Center,50,MFP Senior - Lincoln Court,0.9072813107906652,42.0988789,-75.9041391,42.090217,-75.910198,148.3,59.8313370140505,26.0,4.89897948556636,174.3,5.703846153846154,64.73031649961686 +37,MFP Senior - Bragg,47,MFP Senior - Flannery,0.9136830730627137,42.0896598,-76.7977954,42.0819957,-76.8053269,66.88888888888889,6.03001750504186,61.72727272727273,10.1103007778296,128.6161616161616,1.0836197021764031,16.140318282871462 +45,"MFP Senior - Elizabeth Square, Waverly",56,MFP Senior - Springview Apartments,0.9595184075407899,42.001546,-76.541203,42.0100399,-76.533895,29.0,9.67658842962558,27.583333333333332,9.31722094084958,56.58333333333333,1.0513595166163143,18.993809370475162 +19,MFP First Assembly Of God Church,50,MFP Senior - Lincoln Court,0.973162971251846,42.1022814,-75.9129518,42.090217,-75.910198,146.0,21.6459108042479,26.0,4.89897948556636,172.0,5.615384615384615,26.544890289814262 +20,MFP Lamphear Court,59,MFP Senior - Village Square/Manor,1.038358516439775,42.1598551,-77.0711389,42.159804,-77.09139,126.0,40.6803255750109,34.25,6.48249390842192,160.25,3.678832116788321,47.16281948343282 +26,MFP Owego VFW,51,MFP Senior - Long Meadow Senior Housing,1.084296011715769,42.1043411,-76.2615965,42.1135325,-76.2704045,176.25,34.285234033433,34.75,13.0043698949098,211.0,5.071942446043166,47.2896039283428 +38,MFP Senior - Carpenter Apartments,47,MFP Senior - Flannery,1.1120903988719573,42.0930065,-76.7984317,42.0819957,-76.8053269,31.09090909090909,6.75950509215793,61.72727272727273,10.1103007778296,92.81818181818181,0.5036818851251841,16.86980586998753 +12,MFP College Ithaca College,57,MFP Senior - Titus Towers,1.2126342142593374,42.4199351,-76.4969643,42.4317058,-76.504801,138.33333333333334,66.1418929272515,72.8,4.31534728871525,211.13333333333333,1.9001831501831503,70.45724021596675 +20,MFP Lamphear Court,42,MFP Senior - Corning Senior Center,1.2156460766066033,42.1598551,-77.0711389,42.1490255,-77.0619725,126.0,40.6803255750109,75.0,30.9636884107821,201.0,1.68,71.644013985793 +1,MFP American Legion - Binghamton,44,MFP Senior - East Hill Senior Living,1.2264929609690354,42.108036,-75.887779,42.1141777,-75.8720703,200.1818181818182,46.0669473306365,39.833333333333336,2.16724933890169,240.01515151515153,5.02548497527577,48.23419666953819 +21,MFP Lansing,61,MFP Senior - Woodsedge Apartments,1.2874023513887627,42.5183206,-76.5035538,42.535151,-76.501086,181.0,23.2937759927411,17.2,4.23739962188552,198.2,10.523255813953488,27.53117561462662 +48,MFP Senior - Harry L Apartments,60,MFP Senior - Wells Apartments,1.3192042503486914,42.1237339,-75.9567565,42.1076045,-75.9607932,32.833333333333336,6.24232862533419,23.5,4.55216676124922,56.333333333333336,1.397163120567376,10.79449538658341 +42,MFP Senior - Corning Senior Center,43,MFP Senior - Dayspring,1.3231815462029837,42.1490255,-77.0619725,42.1420715,-77.0454685,75.0,30.9636884107821,77.18181818181819,17.9489174148091,152.1818181818182,0.9717314487632508,48.9126058255912 +39,MFP Senior - Cayuga Meadows,41,MFP Senior - Conifer Village,1.366052046263474,42.464569,-76.5409393,42.4511294,-76.5323538,25.88888888888889,3.33333333333333,33.8,10.3794669098819,59.68888888888888,0.7659434582511506,13.71280024321523 +6,MFP Boys and Girls Club,50,MFP Senior - Lincoln Court,1.6176038361456346,42.1053841,-75.9213736,42.090217,-75.910198,210.8,52.3551971313896,26.0,4.89897948556636,236.8,8.107692307692307,57.25417661695596 +5,MFP Birnie Transportation Services,59,MFP Senior - Village Square/Manor,1.8200361709161552,42.172309,-77.1101217,42.159804,-77.09139,213.375,53.4039525021991,34.25,6.48249390842192,247.625,6.2299270072992705,59.88644641062102 +6,MFP Boys and Girls Club,60,MFP Senior - Wells Apartments,2.1675518976919204,42.1053841,-75.9213736,42.1076045,-75.9607932,210.8,52.3551971313896,23.5,4.55216676124922,234.3,8.970212765957447,56.90736389263882 +42,MFP Senior - Corning Senior Center,59,MFP Senior - Village Square/Manor,2.2469527930463364,42.1490255,-77.0619725,42.159804,-77.09139,75.0,30.9636884107821,34.25,6.48249390842192,109.25,2.18978102189781,37.44618231920402 +34,MFP Salvation Army Ithaca,41,MFP Senior - Conifer Village,2.3330238989813528,42.4398066,-76.5019869,42.4511294,-76.5323538,181.1818181818182,39.5848915163808,33.8,10.3794669098819,214.9818181818182,5.360408821947284,49.9643584262627 +34,MFP Salvation Army Ithaca,46,MFP Senior - Ellis Hollow,2.3921824800166336,42.4398066,-76.5019869,42.435955,-76.460374,181.1818181818182,39.5848915163808,24.727272727272727,13.8064543536051,205.9090909090909,7.327205882352942,53.3913458699859 +20,MFP Lamphear Court,43,MFP Senior - Dayspring,2.5388276228095874,42.1598551,-77.0711389,42.1420715,-77.0454685,126.0,40.6803255750109,77.18181818181819,17.9489174148091,203.1818181818182,1.6325088339222613,58.62924298982 +46,MFP Senior - Ellis Hollow,57,MFP Senior - Titus Towers,2.5634175854556234,42.435955,-76.460374,42.4317058,-76.504801,24.727272727272727,13.8064543536051,72.8,4.31534728871525,97.52727272727273,0.33966033966033965,18.12180164232035 +33,MFP Saint Mary Recreation Center,44,MFP Senior - East Hill Senior Living,2.694335107177977,42.0988789,-75.9041391,42.1141777,-75.8720703,148.3,59.8313370140505,39.833333333333336,2.16724933890169,188.13333333333335,3.723012552301255,61.99858635295219 +44,MFP Senior - East Hill Senior Living,52,MFP Senior - Metro Plaza Apartments,2.724407382390271,42.1141777,-75.8720703,42.1016977,-75.9085338,39.833333333333336,2.16724933890169,56.3,19.9167712689024,96.13333333333333,0.7075192421551214,22.084020607804092 +41,MFP Senior - Conifer Village,57,MFP Senior - Titus Towers,2.748178393541912,42.4511294,-76.5323538,42.4317058,-76.504801,33.8,10.3794669098819,72.8,4.31534728871525,106.6,0.46428571428571425,14.69481419859715 +19,MFP First Assembly Of God Church,60,MFP Senior - Wells Apartments,2.8119927625857093,42.1022814,-75.9129518,42.1076045,-75.9607932,146.0,21.6459108042479,23.5,4.55216676124922,169.5,6.212765957446808,26.198077565497123 +19,MFP First Assembly Of God Church,44,MFP Senior - East Hill Senior Living,2.909892189220507,42.1022814,-75.9129518,42.1141777,-75.8720703,146.0,21.6459108042479,39.833333333333336,2.16724933890169,185.83333333333334,3.6652719665271962,23.81316014314959 +12,MFP College Ithaca College,46,MFP Senior - Ellis Hollow,2.9751399711972084,42.4199351,-76.4969643,42.435955,-76.460374,138.33333333333334,66.1418929272515,24.727272727272727,13.8064543536051,163.06060606060606,5.5943627450980395,79.94834728085661 +6,MFP Boys and Girls Club,48,MFP Senior - Harry L Apartments,3.07420484734281,42.1053841,-75.9213736,42.1237339,-75.9567565,210.8,52.3551971313896,32.833333333333336,6.24232862533419,243.63333333333335,6.420304568527919,58.59752575672379 +52,MFP Senior - Metro Plaza Apartments,60,MFP Senior - Wells Apartments,3.07802816941594,42.1016977,-75.9085338,42.1076045,-75.9607932,56.3,19.9167712689024,23.5,4.55216676124922,79.8,2.3957446808510636,24.46893803015162 +44,MFP Senior - East Hill Senior Living,53,MFP Senior - North Shore Towers,3.1700080711925125,42.1141777,-75.8720703,42.0966132,-75.9103884,39.833333333333336,2.16724933890169,58.333333333333336,6.86051504383355,98.16666666666667,0.6828571428571428,9.027764382735239 +53,MFP Senior - North Shore Towers,60,MFP Senior - Wells Apartments,3.334088480614027,42.0966132,-75.9103884,42.1076045,-75.9607932,58.333333333333336,6.86051504383355,23.5,4.55216676124922,81.83333333333334,2.4822695035460995,11.41268180508277 +38,MFP Senior - Carpenter Apartments,58,MFP Senior - Villa Serene,3.413257608083184,42.0930065,-76.7984317,42.1295916,-76.8158267,31.09090909090909,6.75950509215793,69.72727272727273,5.0614406860282,100.81818181818183,0.4458930899608865,11.820945778186129 +47,MFP Senior - Flannery,55,MFP Senior - Park Terrace Congregate Apartments,3.525334028702802,42.0819957,-76.8053269,42.051364,-76.832954,61.72727272727273,10.1103007778296,24.363636363636363,4.41073071662117,86.0909090909091,2.533582089552239,14.52103149445077 +43,MFP Senior - Dayspring,59,MFP Senior - Village Square/Manor,3.57013433924932,42.1420715,-77.0454685,42.159804,-77.09139,77.18181818181819,17.9489174148091,34.25,6.48249390842192,111.43181818181819,2.2534837425348377,24.431411323231018 +37,MFP Senior - Bragg,58,MFP Senior - Villa Serene,3.67669488227416,42.0896598,-76.7977954,42.1295916,-76.8158267,66.88888888888889,6.03001750504186,69.72727272727273,5.0614406860282,136.6161616161616,0.9592930609879761,11.09145819107006 +34,MFP Salvation Army Ithaca,39,MFP Senior - Cayuga Meadows,3.699075945244827,42.4398066,-76.5019869,42.464569,-76.5409393,181.1818181818182,39.5848915163808,25.88888888888889,3.33333333333333,207.07070707070707,6.998439328911432,42.91822484971413 +19,MFP First Assembly Of God Church,48,MFP Senior - Harry L Apartments,3.7186457122365986,42.1022814,-75.9129518,42.1237339,-75.9567565,146.0,21.6459108042479,32.833333333333336,6.24232862533419,178.83333333333334,4.446700507614213,27.888239429582093 +47,MFP Senior - Flannery,58,MFP Senior - Villa Serene,3.820657609211378,42.0819957,-76.8053269,42.1295916,-76.8158267,61.72727272727273,10.1103007778296,69.72727272727273,5.0614406860282,131.45454545454547,0.8852672750977835,15.1717414638578 +12,MFP College Ithaca College,41,MFP Senior - Conifer Village,3.960812607801249,42.4199351,-76.4969643,42.4511294,-76.5323538,138.33333333333334,66.1418929272515,33.8,10.3794669098819,172.13333333333333,4.092702169625247,76.5213598371334 +14,MFP Conklin- Maines Community Center,44,MFP Senior - East Hill Senior Living,3.9695434147851723,42.0870901,-75.8309647,42.1141777,-75.8720703,153.16666666666666,20.1125620325993,39.833333333333336,2.16724933890169,193.0,3.845188284518828,22.27981137150099 +48,MFP Senior - Harry L Apartments,52,MFP Senior - Metro Plaza Apartments,3.98468111906683,42.1237339,-75.9567565,42.1016977,-75.9085338,32.833333333333336,6.24232862533419,56.3,19.9167712689024,89.13333333333333,0.5831853167554767,26.15909989423659 +39,MFP Senior - Cayuga Meadows,57,MFP Senior - Titus Towers,4.114230439805386,42.464569,-76.5409393,42.4317058,-76.504801,25.88888888888889,3.33333333333333,72.8,4.31534728871525,98.68888888888888,0.35561660561660563,7.64868062204858 +14,MFP Conklin- Maines Community Center,50,MFP Senior - Lincoln Court,4.264583232754312,42.0870901,-75.8309647,42.090217,-75.910198,153.16666666666666,20.1125620325993,26.0,4.89897948556636,179.16666666666666,5.8910256410256405,25.01154151816566 +24,MFP Montour Falls-Schuyler County Human Services Complex,49,MFP Senior - Jefferson Village,4.433762697674371,42.3409968,-76.8412703,42.3829923,-76.8713304,149.36363636363637,60.0387753493902,24.818181818181817,2.78633026822672,174.1818181818182,6.018315018315019,62.82510561761692 +37,MFP Senior - Bragg,55,MFP Senior - Park Terrace Congregate Apartments,4.439017101765515,42.0896598,-76.7977954,42.051364,-76.832954,66.88888888888889,6.03001750504186,24.363636363636363,4.41073071662117,91.25252525252525,2.745439469320066,10.440748221663029 +38,MFP Senior - Carpenter Apartments,55,MFP Senior - Park Terrace Congregate Apartments,4.637424427574759,42.0930065,-76.7984317,42.051364,-76.832954,31.09090909090909,6.75950509215793,24.363636363636363,4.41073071662117,55.45454545454545,1.2761194029850746,11.1702358087791 +14,MFP Conklin- Maines Community Center,53,MFP Senior - North Shore Towers,4.71565048597784,42.0870901,-75.8309647,42.0966132,-75.9103884,153.16666666666666,20.1125620325993,58.333333333333336,6.86051504383355,211.5,2.6257142857142854,26.97307707643285 +41,MFP Senior - Conifer Village,46,MFP Senior - Ellis Hollow,4.725206378997987,42.4511294,-76.5323538,42.435955,-76.460374,33.8,10.3794669098819,24.727272727272727,13.8064543536051,58.527272727272724,1.3669117647058824,24.185921263487 +14,MFP Conklin- Maines Community Center,52,MFP Senior - Metro Plaza Apartments,4.971710797175927,42.0870901,-75.8309647,42.1016977,-75.9085338,153.16666666666666,20.1125620325993,56.3,19.9167712689024,209.46666666666664,2.7205447010065127,40.0293333015017 +36,MFP Senior - Addison Place Apartments,64,MFP Tuscarora,5.172850536384525,42.1001876,-77.2371924,42.0522655,-77.2737134,30.09090909090909,5.02900676982135,192.63636363636363,29.8639338576576,222.72727272727272,0.1562057574327513,34.89294062747895 +12,MFP College Ithaca College,39,MFP Senior - Cayuga Meadows,5.326864654064723,42.4199351,-76.4969643,42.464569,-76.5409393,138.33333333333334,66.1418929272515,25.88888888888889,3.33333333333333,164.22222222222223,5.343347639484979,69.47522626058483 +21,MFP Lansing,39,MFP Senior - Cayuga Meadows,5.619262046423938,42.5183206,-76.5035538,42.464569,-76.5409393,181.0,23.2937759927411,25.88888888888889,3.33333333333333,206.88888888888889,6.991416309012876,26.62710932607443 +39,MFP Senior - Cayuga Meadows,46,MFP Senior - Ellis Hollow,6.0912584252614606,42.464569,-76.5409393,42.435955,-76.460374,25.88888888888889,3.33333333333333,24.727272727272727,13.8064543536051,50.61616161616162,1.0469771241830066,17.13978768693843 +21,MFP Lansing,41,MFP Senior - Conifer Village,6.107874800160203,42.5183206,-76.5035538,42.4511294,-76.5323538,181.0,23.2937759927411,33.8,10.3794669098819,214.8,5.355029585798817,33.673242902623 +55,MFP Senior - Park Terrace Congregate Apartments,58,MFP Senior - Villa Serene,6.272910619491075,42.051364,-76.832954,42.1295916,-76.8158267,24.363636363636363,4.41073071662117,69.72727272727273,5.0614406860282,94.0909090909091,0.3494132985658409,9.47217140264937 +34,MFP Salvation Army Ithaca,61,MFP Senior - Woodsedge Apartments,6.624799652567899,42.4398066,-76.5019869,42.535151,-76.501086,181.1818181818182,39.5848915163808,17.2,4.23739962188552,198.38181818181818,10.533826638477802,43.82229113826632 +15,MFP Danby,57,MFP Senior - Titus Towers,6.74907391207574,42.3522565,-76.4800051,42.4317058,-76.504801,160.22222222222223,34.5788149658782,72.8,4.31534728871525,233.02222222222224,2.200854700854701,38.894162254593454 +15,MFP Danby,46,MFP Senior - Ellis Hollow,6.778347073379921,42.3522565,-76.4800051,42.435955,-76.460374,160.22222222222223,34.5788149658782,24.727272727272727,13.8064543536051,184.94949494949495,6.479575163398693,48.3852693194833 +39,MFP Senior - Cayuga Meadows,61,MFP Senior - Woodsedge Apartments,6.9066643978127,42.464569,-76.5409393,42.535151,-76.501086,25.88888888888889,3.33333333333333,17.2,4.23739962188552,43.08888888888889,1.505167958656331,7.570732955218849 +57,MFP Senior - Titus Towers,61,MFP Senior - Woodsedge Apartments,7.327555558006515,42.4317058,-76.504801,42.535151,-76.501086,72.8,4.31534728871525,17.2,4.23739962188552,90.0,4.232558139534884,8.55274691060077 +41,MFP Senior - Conifer Village,61,MFP Senior - Woodsedge Apartments,7.3952771515489655,42.4511294,-76.5323538,42.535151,-76.501086,33.8,10.3794669098819,17.2,4.23739962188552,51.0,1.9651162790697674,14.616866531767421 +12,MFP College Ithaca College,61,MFP Senior - Woodsedge Apartments,8.160516256252258,42.4199351,-76.4969643,42.535151,-76.501086,138.33333333333334,66.1418929272515,17.2,4.23739962188552,155.53333333333333,8.04263565891473,70.37929254913702 +25,MFP Nichols-The Creamery,56,MFP Senior - Springview Apartments,9.179050357986887,42.02302,-76.371793,42.0100399,-76.533895,122.4,26.4253666010521,27.583333333333332,9.31722094084958,149.98333333333335,4.437462235649547,35.742587541901685 +15,MFP Danby,41,MFP Senior - Conifer Village,9.497252305617653,42.3522565,-76.4800051,42.4511294,-76.5323538,160.22222222222223,34.5788149658782,33.8,10.3794669098819,194.02222222222224,4.740302432610125,44.9582818757601 +18,MFP Erin,58,MFP Senior - Villa Serene,9.716358981660893,42.1788978,-76.6922607,42.1295916,-76.8158267,173.9090909090909,27.3219858189501,69.72727272727273,5.0614406860282,243.63636363636363,2.494132985658409,32.3834265049783 +23,MFP Millport,49,MFP Senior - Jefferson Village,9.727694899522636,42.267172,-76.837356,42.3829923,-76.8713304,166.0,36.4996194805127,24.818181818181817,2.78633026822672,190.8181818181818,6.688644688644689,39.28594974873942 +29,MFP Reach for Christ Church Freeville,46,MFP Senior - Ellis Hollow,9.796449039452579,42.4919905,-76.3443272,42.435955,-76.460374,220.0,22.6175939382498,24.727272727272727,13.8064543536051,244.72727272727272,8.897058823529411,36.4240482918549 +25,MFP Nichols-The Creamery,45,"MFP Senior - Elizabeth Square, Waverly",10.138568765527676,42.02302,-76.371793,42.001546,-76.541203,122.4,26.4253666010521,29.0,9.67658842962558,151.4,4.220689655172414,36.10195503067768 +8,MFP Campbell,59,MFP Senior - Village Square/Manor,10.226626433666802,42.2314129,-77.1948265,42.159804,-77.09139,168.5,40.968946111104,34.25,6.48249390842192,202.75,4.91970802919708,47.451440019525926 +36,MFP Senior - Addison Place Apartments,70,MFP Woodhull,10.292202989934541,42.1001876,-77.2371924,42.0798397,-77.4111295,30.09090909090909,5.02900676982135,176.0,63.5438288256081,206.0909090909091,0.1709710743801653,68.57283559542945 +23,MFP Millport,58,MFP Senior - Villa Serene,10.593196325210428,42.267172,-76.837356,42.1295916,-76.8158267,166.0,36.4996194805127,69.72727272727273,5.0614406860282,235.72727272727275,2.380704041720991,41.5610601665409 +15,MFP Danby,39,MFP Senior - Cayuga Meadows,10.863304351881126,42.3522565,-76.4800051,42.464569,-76.5409393,160.22222222222223,34.5788149658782,25.88888888888889,3.33333333333333,186.11111111111111,6.1888412017167385,37.91214829921153 +29,MFP Reach for Christ Church Freeville,61,MFP Senior - Woodsedge Apartments,10.988460066901554,42.4919905,-76.3443272,42.535151,-76.501086,220.0,22.6175939382498,17.2,4.23739962188552,237.2,12.790697674418606,26.85499356013532 +8,MFP Campbell,36,MFP Senior - Addison Place Apartments,11.219446132312399,42.2314129,-77.1948265,42.1001876,-77.2371924,168.5,40.968946111104,30.09090909090909,5.02900676982135,198.5909090909091,5.599697885196375,45.997952880925354 +18,MFP Erin,38,MFP Senior - Carpenter Apartments,11.351845173577209,42.1788978,-76.6922607,42.0930065,-76.7984317,173.9090909090909,27.3219858189501,31.09090909090909,6.75950509215793,205.0,5.593567251461988,34.081490911108034 +25,MFP Nichols-The Creamery,51,MFP Senior - Long Meadow Senior Housing,11.42632189143268,42.02302,-76.371793,42.1135325,-76.2704045,122.4,26.4253666010521,34.75,13.0043698949098,157.15,3.5223021582733813,39.429736495961905 +18,MFP Erin,37,MFP Senior - Bragg,11.550252499386453,42.1788978,-76.6922607,42.0896598,-76.7977954,173.9090909090909,27.3219858189501,66.88888888888889,6.03001750504186,240.7979797979798,2.599969797644216,33.35200332399196 +7,MFP Bradford,40,MFP Senior - CFS Lakeview,11.76921918626308,42.3691309,-77.1081064,42.3488781,-77.3110763,122.27272727272727,29.7425315300864,112.0,15.563490039905,234.27272727272725,1.0917207792207793,45.3060215699914 +29,MFP Reach for Christ Church Freeville,39,MFP Senior - Cayuga Meadows,11.938975464714387,42.4919905,-76.3443272,42.464569,-76.5409393,220.0,22.6175939382498,25.88888888888889,3.33333333333333,245.88888888888889,8.49785407725322,25.95092727158313 +18,MFP Erin,47,MFP Senior - Flannery,12.463935572449167,42.1788978,-76.6922607,42.0819957,-76.8053269,173.9090909090909,27.3219858189501,61.72727272727273,10.1103007778296,235.63636363636363,2.817378497790869,37.432286596779704 +8,MFP Campbell,42,MFP Senior - Corning Senior Center,12.473579226713138,42.2314129,-77.1948265,42.1490255,-77.0619725,168.5,40.968946111104,75.0,30.9636884107821,243.5,2.2466666666666666,71.9326345218861 +4,MFP Beaver Dams,43,MFP Senior - Dayspring,12.753912404588453,42.2606415,-76.9559856,42.1420715,-77.0454685,170.7,28.7906234736241,77.18181818181819,17.9489174148091,247.88181818181818,2.2116607773851586,46.7395408884332 +4,MFP Beaver Dams,49,MFP Senior - Jefferson Village,12.768091799305061,42.2606415,-76.9559856,42.3829923,-76.8713304,170.7,28.7906234736241,24.818181818181817,2.78633026822672,195.5181818181818,6.8780219780219785,31.57695374185082 +7,MFP Bradford,49,MFP Senior - Jefferson Village,13.055706644096546,42.3691309,-77.1081064,42.3829923,-76.8713304,122.27272727272727,29.7425315300864,24.818181818181817,2.78633026822672,147.0909090909091,4.926739926739927,32.528861798313116 +44,MFP Senior - East Hill Senior Living,69,MFP Windsor,14.215724264291934,42.1141777,-75.8720703,42.0779615,-75.6427789,39.833333333333336,2.16724933890169,200.9090909090909,34.8954281975578,240.74242424242425,0.19826546003016593,37.06267753645949 +50,MFP Senior - Lincoln Court,69,MFP Windsor,14.510764082261073,42.090217,-75.910198,42.0779615,-75.6427789,26.0,4.89897948556636,200.9090909090909,34.8954281975578,226.9090909090909,0.12941176470588237,39.794407683124156 +48,MFP Senior - Harry L Apartments,54,"MFP Senior - Northern Broome Senior Center, Whitney Point",14.58591429542938,42.1237339,-75.9567565,42.3269618,-75.9677778,32.833333333333336,6.24232862533419,50.90909090909091,21.9565687002981,83.74242424242425,0.6449404761904762,28.198897325632288 +23,MFP Millport,55,MFP Senior - Park Terrace Congregate Apartments,15.115694505719103,42.267172,-76.837356,42.051364,-76.832954,166.0,36.4996194805127,24.363636363636363,4.41073071662117,190.36363636363637,6.813432835820896,40.910350197133866 +54,"MFP Senior - Northern Broome Senior Center, Whitney Point",60,MFP Senior - Wells Apartments,15.492567245080268,42.3269618,-75.9677778,42.1076045,-75.9607932,50.90909090909091,21.9565687002981,23.5,4.55216676124922,74.4090909090909,2.1663442940038684,26.508735461547317 +26,MFP Owego VFW,60,MFP Senior - Wells Apartments,15.596244120794326,42.1043411,-76.2615965,42.1076045,-75.9607932,176.25,34.285234033433,23.5,4.55216676124922,199.75,7.5,38.83740079468222 +48,MFP Senior - Harry L Apartments,68,MFP Whitney Point,15.96939470304803,42.1237339,-75.9567565,42.3405329,-75.9765268,32.833333333333336,6.24232862533419,202.54545454545453,30.4478690103713,235.37878787878788,0.16210353081986836,36.69019763570549 +56,MFP Senior - Springview Apartments,65,MFP Van Etten,15.987684260739819,42.0100399,-76.533895,42.2080409,-76.579406,27.583333333333332,9.31722094084958,213.7,19.9613515463145,241.28333333333333,0.12907502729683357,29.27857248716408 +45,"MFP Senior - Elizabeth Square, Waverly",65,MFP Van Etten,16.200324053199697,42.001546,-76.541203,42.2080409,-76.579406,29.0,9.67658842962558,213.7,19.9613515463145,242.7,0.1357042583060365,29.63793997594008 +51,MFP Senior - Long Meadow Senior Housing,60,MFP Senior - Wells Apartments,16.230190932509878,42.1135325,-76.2704045,42.1076045,-75.9607932,34.75,13.0043698949098,23.5,4.55216676124922,58.25,1.4787234042553192,17.556536656159018 +48,MFP Senior - Harry L Apartments,51,MFP Senior - Long Meadow Senior Housing,16.731331182858945,42.1237339,-75.9567565,42.1135325,-76.2704045,32.833333333333336,6.24232862533419,34.75,13.0043698949098,67.58333333333334,0.9448441247002399,19.24669852024399 +60,MFP Senior - Wells Apartments,68,MFP Whitney Point,16.87604765269892,42.1076045,-75.9607932,42.3405329,-75.9765268,23.5,4.55216676124922,202.54545454545453,30.4478690103713,226.04545454545453,0.1160233393177738,35.00003577162052 +26,MFP Owego VFW,48,MFP Senior - Harry L Apartments,16.915448371143015,42.1043411,-76.2615965,42.1237339,-75.9567565,176.25,34.285234033433,32.833333333333336,6.24232862533419,209.08333333333334,5.368020304568527,40.52756265876719 +10,MFP Colesville,44,MFP Senior - East Hill Senior Living,17.05151590904141,42.1841905,-75.6329193,42.1141777,-75.8720703,197.33333333333334,66.2589044902074,39.833333333333336,2.16724933890169,237.16666666666669,4.953974895397489,68.42615382910908 +55,MFP Senior - Park Terrace Congregate Apartments,56,MFP Senior - Springview Apartments,18.133298569652425,42.051364,-76.832954,42.0100399,-76.533895,24.363636363636363,4.41073071662117,27.583333333333332,9.31722094084958,51.946969696969695,0.8832738258720132,13.72795165747075 +45,"MFP Senior - Elizabeth Square, Waverly",55,MFP Senior - Park Terrace Congregate Apartments,18.3459383621123,42.001546,-76.541203,42.051364,-76.832954,29.0,9.67658842962558,24.363636363636363,4.41073071662117,53.36363636363636,1.1902985074626866,14.087319146246749 +6,MFP Boys and Girls Club,51,MFP Senior - Long Meadow Senior Housing,18.397742830201796,42.1053841,-75.9213736,42.1135325,-76.2704045,210.8,52.3551971313896,34.75,13.0043698949098,245.55,6.066187050359712,65.3595670262994 +47,MFP Senior - Flannery,56,MFP Senior - Springview Apartments,18.83513914094972,42.0819957,-76.8053269,42.0100399,-76.533895,61.72727272727273,10.1103007778296,27.583333333333332,9.31722094084958,89.31060606060606,2.2378467453996156,19.42752171867918 +45,"MFP Senior - Elizabeth Square, Waverly",47,MFP Senior - Flannery,19.047778933409596,42.001546,-76.541203,42.0819957,-76.8053269,29.0,9.67658842962558,61.72727272727273,10.1103007778296,90.72727272727272,0.4698085419734904,19.786889207455182 +36,MFP Senior - Addison Place Apartments,63,MFP Troupsburg,19.69026681157269,42.1001876,-77.2371924,42.0432505,-77.5456383,30.09090909090909,5.02900676982135,148.71428571428572,50.2484304422015,178.80519480519482,0.20234040695135794,55.27743721202285 +16,MFP Deposit,44,MFP Senior - East Hill Senior Living,26.546392170166833,42.0625771,-75.422248,42.1141777,-75.8720703,156.58333333333334,56.545168322378,39.833333333333336,2.16724933890169,196.41666666666669,3.930962343096234,58.71241766127969 +16,MFP Deposit,50,MFP Senior - Lincoln Court,26.84143198813597,42.0625771,-75.422248,42.090217,-75.910198,156.58333333333334,56.545168322378,26.0,4.89897948556636,182.58333333333334,6.022435897435898,61.444147807944354 diff --git a/data/ordered_pairs_allocation_k6_cap250.csv b/data/ordered_pairs_allocation_k6_cap250.csv new file mode 100644 index 0000000..001ac90 --- /dev/null +++ b/data/ordered_pairs_allocation_k6_cap250.csv @@ -0,0 +1,233 @@ +site_i_idx,site_i_name,site_j_idx,site_j_name,distance_miles,mu_i,sigma_i,mu_j,sigma_j,q_opt,score_mean,served_i_mean,served_j_mean,served_total_mean,unmet_mean,waste_mean,ratio_i_mean,ratio_j_mean,fairness_mean +1,MFP American Legion - Binghamton,44,MFP Senior - East Hill Senior Living,1.2264929609690354,200.1818181818182,46.0669473306365,39.833333333333336,2.16724933890169,218.0,0.9076916879119182,189.64189395688896,36.834715559218765,226.47660951610771,0.045930999813104945,0.09409356193556909,0.9590566364451305,0.9270570130555649,0.04125701131999791 +4,MFP Beaver Dams,43,MFP Senior - Dayspring,12.753912404588451,170.7,28.7906234736241,77.18181818181819,17.9489174148091,222.0,0.9213082404806847,169.38076586924691,65.82608186501915,235.2068477342661,0.04178577356670505,0.05917260906293571,0.9981329689452986,0.8664082391636959,0.13176073559218776 +4,MFP Beaver Dams,49,MFP Senior - Jefferson Village,12.76809179930506,170.7,28.7906234736241,24.818181818181817,2.78633026822672,232.0,0.954000502934162,170.00948955299742,24.62246455435106,194.63195410734852,0.0010656627198230492,0.22147218357060602,0.9994281099354286,0.9943761803588563,0.005102235172355691 +5,MFP Birnie Transportation Services,59,MFP Senior - Village Square/Manor,1.8200361709161552,213.375,53.4039525021991,34.25,6.48249390842192,241.0,0.8795125938031572,203.4360404959719,24.589854880699217,228.02589537667112,0.06431757656136228,0.08789641849331556,0.9649204062391686,0.7189184293067638,0.24607542516028993 +6,MFP Boys and Girls Club,48,MFP Senior - Harry L Apartments,3.07420484734281,210.8,52.3551971313896,32.833333333333336,6.24232862533419,239.0,0.892399246103388,200.7949830864558,24.66787394962242,225.46285703607822,0.05498189970342165,0.09814857185568707,0.968756220309243,0.7651150831551522,0.2037863766810612 +6,MFP Boys and Girls Club,50,MFP Senior - Lincoln Court,1.6176038361456346,210.8,52.3551971313896,26.0,4.89897948556636,240.0,0.8993626808196025,201.55059591156535,20.396398629186457,221.9469945407518,0.048871821758124344,0.11221202183699282,0.9680641564849471,0.7914870869562642,0.17681128414003552 +6,MFP Boys and Girls Club,51,MFP Senior - Long Meadow Senior Housing,18.397742830201796,210.8,52.3551971313896,34.75,13.0043698949098,249.0,0.8782157521635565,204.81916101475764,22.09955847145334,226.91871948621096,0.06457451464088262,0.09232512205515608,0.9750334679024825,0.6514970276905242,0.3235364402119582 +6,MFP Boys and Girls Club,60,MFP Senior - Wells Apartments,2.1675518976919204,210.8,52.3551971313896,23.5,4.55216676124922,240.0,0.9028500509733773,200.62355997338392,19.00243932780315,219.62599930118708,0.04553171779223268,0.12149600279525166,0.9679003089658942,0.8136093923385961,0.15433506805843383 +7,MFP Bradford,40,MFP Senior - CFS Lakeview,11.76921918626308,122.27272727272728,29.7425315300864,112.0,15.563490039905,184.0,0.9428869758435677,122.25498527814786,105.3741322184006,227.62911749654845,0.024510198846044388,0.08948353001380621,0.9990972042500004,0.9441164351469573,0.05505858603761611 +7,MFP Bradford,49,MFP Senior - Jefferson Village,13.055706644096546,122.27272727272728,29.7425315300864,24.818181818181817,2.78633026822672,228.0,0.9185946110575463,123.5551082242641,24.746410687248552,148.30151891151266,2.9127544789943305e-05,0.4067939243539494,0.9999876348450154,0.9998238227962103,0.0001638120488050504 +8,MFP Campbell,36,MFP Senior - Addison Place Apartments,11.2194461323124,168.5,40.968946111104,30.09090909090909,5.02900676982135,232.0,0.9448016628001836,167.7230928097312,28.88657125821306,196.6096640679442,0.007803792783857342,0.21356134372822305,0.9956735992305155,0.9660083686158929,0.029741383980146068 +8,MFP Campbell,42,MFP Senior - Corning Senior Center,12.473579226713138,168.5,40.968946111104,75.0,30.9636884107821,248.0,0.8940926170580517,166.40521210206353,59.56367058819695,225.96888269026047,0.054176555683848,0.096124469238958,0.9984274250036133,0.817411946946492,0.18101547805712126 +8,MFP Campbell,59,MFP Senior - Village Square/Manor,10.226626433666802,168.5,40.968946111104,34.25,6.48249390842192,232.0,0.9451685542727916,168.0863770865769,32.742213591302,200.82859067787888,0.009683948918444773,0.19668563728848448,0.9957414761049685,0.956172515189619,0.03966354245159542 +10,MFP Colesville,44,MFP Senior - East Hill Senior Living,17.05151590904141,197.33333333333337,66.2589044902074,39.833333333333336,2.16724933890169,216.0,0.8699716425215174,177.68690495085536,37.535447713128946,215.22235266398434,0.0638788997560438,0.1391105893440627,0.9346237514656086,0.9420964858492877,0.04081793509513079 +12,MFP College Ithaca College,39,MFP Senior - Cayuga Meadows,5.326864654064723,138.33333333333334,66.1418929272515,25.88888888888889,3.33333333333333,234.0,0.9127523640151164,137.354497543239,24.97134605274027,162.32584359597928,0.010692694288541848,0.3506966256160829,0.9745005805995437,0.9664647912786183,0.04300122422697849 +12,MFP College Ithaca College,41,MFP Senior - Conifer Village,3.960812607801249,138.33333333333334,66.1418929272515,33.8,10.3794669098819,241.0,0.9104847698649855,137.5150720773743,31.086322329429404,168.6013944068037,0.015247716037785913,0.32559442237278524,0.9710814627858873,0.926440821155676,0.08924470739974813 +12,MFP College Ithaca College,46,MFP Senior - Ellis Hollow,2.9751399711972084,138.33333333333334,66.1418929272515,24.727272727272727,13.8064543536051,250.0,0.9107393637474336,138.43325840643172,22.943951870677104,161.37721027710882,0.010851502796408383,0.35449115889156474,0.9754624239688535,0.8898112094367245,0.12380161411369103 +12,MFP College Ithaca College,57,MFP Senior - Titus Towers,1.2126342142593374,138.33333333333334,66.1418929272515,72.8,4.31534728871525,190.0,0.904261273027411,129.00922137833865,69.92074038505893,198.9299617633976,0.03430168523956696,0.20428015294640964,0.954272473919421,0.9597518986042567,0.03974427387921178 +12,MFP College Ithaca College,61,MFP Senior - Woodsedge Apartments,8.160516256252258,138.33333333333334,66.1418929272515,17.2,4.23739962188552,246.0,0.9095963628247209,136.65591657003773,16.425970287542782,153.0818868575805,0.008043216663339717,0.3876724525696779,0.9733445037688507,0.9520598859871465,0.06399335904140643 +14,MFP Conklin- Maines Community Center,44,MFP Senior - East Hill Senior Living,3.969543414785172,153.16666666666666,20.1125620325993,39.833333333333336,2.16724933890169,213.0,0.9546072453572061,153.50497076800713,39.834476580702976,193.33944734871008,4.019532610125289e-05,0.22664221060515954,0.9999681480420629,0.999914835110471,6.756933735085025e-05 +14,MFP Conklin- Maines Community Center,50,MFP Senior - Lincoln Court,4.264583232754312,153.16666666666666,20.1125620325993,26.0,4.89897948556636,222.0,0.9432913604350304,153.16580340095715,25.948397142830764,179.11420054378792,0.0,0.2835431978248483,1.0,1.0,0.0 +14,MFP Conklin- Maines Community Center,52,MFP Senior - Metro Plaza Apartments,4.971710797175927,153.16666666666666,20.1125620325993,56.3,19.9167712689024,212.0,0.9606771014925984,153.85284691640337,54.89896052039646,208.75180743679982,0.003952715285525919,0.1649927702528007,0.9999552075987247,0.9853587902354928,0.014596417363232007 +14,MFP Conklin- Maines Community Center,53,MFP Senior - North Shore Towers,4.71565048597784,153.16666666666666,20.1125620325993,58.333333333333336,6.86051504383355,202.0,0.9673232176127321,153.16748725169143,58.222339029392096,211.38982628108351,0.0011179021325842078,0.15444069487566592,0.9997651519565478,0.9962419469840803,0.003572490917959506 +15,MFP Danby,39,MFP Senior - Cayuga Meadows,10.863304351881126,160.22222222222223,34.5788149658782,25.88888888888889,3.33333333333333,235.0,0.9455831007192662,160.19857945995946,25.4939307222559,185.6925101822154,0.0018568171415662498,0.25722995927113845,0.9991634385332259,0.9889676315483619,0.010195806984864164 +15,MFP Danby,41,MFP Senior - Conifer Village,9.497252305617652,160.22222222222223,34.5788149658782,33.8,10.3794669098819,241.0,0.9488742384334137,159.29126012554119,32.57749862536899,191.86875875091016,0.0028879803545715475,0.23252496499635938,0.9996272801254767,0.9815013277372591,0.0181259523882177 +15,MFP Danby,46,MFP Senior - Ellis Hollow,6.778347073379921,160.22222222222223,34.5788149658782,24.727272727272727,13.8064543536051,250.0,0.9427180325465487,159.43297699024188,24.372066743724478,183.80504373396636,0.0027037515253902334,0.26477982506413467,0.9997180241844811,0.9370499350781432,0.0626680891063382 +15,MFP Danby,57,MFP Senior - Titus Towers,6.74907391207574,160.22222222222223,34.5788149658782,72.8,4.31534728871525,190.0,0.9386917705052576,156.90304496212124,69.19779172023146,226.10083668235268,0.026368061775390392,0.09559665327058929,0.9819261875976929,0.9524403721601727,0.03238289475592244 +16,MFP Deposit,44,MFP Senior - East Hill Senior Living,26.546392170166833,156.58333333333334,56.545168322378,39.833333333333336,2.16724933890169,217.0,0.9257452096889515,152.13952261283453,38.71173378387466,190.85125639670918,0.01683487214275996,0.23659497441316327,0.9838678840459515,0.9721218178032724,0.018560181072153605 +16,MFP Deposit,50,MFP Senior - Lincoln Court,26.84143198813597,156.58333333333334,56.545168322378,26.0,4.89897948556636,236.0,0.9255364577642545,153.76072391158505,24.855213722996407,178.61593763458146,0.010847682714631603,0.28553624946167416,0.9877537841154094,0.9566258601047426,0.041203313768873075 +18,MFP Erin,37,MFP Senior - Bragg,11.550252499386453,173.9090909090909,27.3219858189501,66.88888888888889,6.03001750504186,201.0,0.9457820858175549,171.4753383144834,61.88515598728526,233.36049430176865,0.025566443514912576,0.06655802279292537,0.9897139944969792,0.9297695333623885,0.060330348957278956 +18,MFP Erin,38,MFP Senior - Carpenter Apartments,11.351845173577209,173.9090909090909,27.3219858189501,31.09090909090909,6.75950509215793,232.0,0.9596543054737808,174.75971286597905,30.63486464514537,205.39457751112442,0.0029133478344492507,0.1784216899555023,0.9991448032866024,0.9833982853535616,0.015787688992074545 +18,MFP Erin,47,MFP Senior - Flannery,12.463935572449168,173.9090909090909,27.3219858189501,61.72727272727273,10.1103007778296,215.0,0.9518261130996397,173.78074383378473,56.36340452390987,230.14414835769463,0.02018075349157241,0.07942340656922162,0.9967743078990587,0.9264515396633294,0.07048091349358046 +18,MFP Erin,58,MFP Senior - Villa Serene,9.716358981660893,173.9090909090909,27.3219858189501,69.72727272727273,5.0614406860282,195.0,0.9419878158051813,169.7459073027099,65.17965222179345,234.92555952450334,0.028720394884013414,0.06029776190198663,0.9839530957513088,0.9363048103373215,0.048721757375764126 +19,MFP First Assembly Of God Church,44,MFP Senior - East Hill Senior Living,2.909892189220507,146.0,21.6459108042479,39.833333333333336,2.16724933890169,213.0,0.9487649930999985,146.1592916414775,39.86564413193418,186.0249357734117,3.434719920681324e-05,0.2559002569063532,0.999979440137201,0.9998999328210343,8.305258300460189e-05 +19,MFP First Assembly Of God Church,48,MFP Senior - Harry L Apartments,3.7186457122365986,146.0,21.6459108042479,32.833333333333336,6.24232862533419,215.0,0.9435176376476938,146.4583427189074,32.954298458705615,179.412641177613,7.797058997799003e-06,0.2823494352895481,1.0,0.9999492272311782,5.0772768821853384e-05 +19,MFP First Assembly Of God Church,50,MFP Senior - Lincoln Court,0.973162971251846,146.0,21.6459108042479,26.0,4.89897948556636,221.0,0.9373611114847463,145.70562225838734,26.068123489083487,171.77374574747083,3.617819576893856e-05,0.3129050170101167,0.999980914815686,0.9998576351489288,0.00012327966675712375 +19,MFP First Assembly Of God Church,52,MFP Senior - Metro Plaza Apartments,0.2660354068302311,146.0,21.6459108042479,56.3,19.9167712689024,208.0,0.9564994656923202,146.01424475032007,54.985832752129774,201.00007750244987,0.0026878726935247385,0.1959996899902005,0.9999815970962013,0.9896153638072829,0.010366233288918395 +19,MFP First Assembly Of God Church,53,MFP Senior - North Shore Towers,0.5220957180283179,146.0,21.6459108042479,58.333333333333336,6.86051504383355,201.0,0.9625420516175291,146.3596023863901,58.03038823760345,204.38999062399355,0.0006062130510410495,0.1824400375040258,0.9998809734713545,0.9979092489869449,0.0019717244844096446 +19,MFP First Assembly Of God Church,60,MFP Senior - Wells Apartments,2.8119927625857093,146.0,21.6459108042479,23.5,4.55216676124922,217.0,0.9355427430443758,145.95658251458482,23.471846290884898,169.42842880546976,0.0,0.322286284778121,1.0,1.0,0.0 +20,MFP Lamphear Court,42,MFP Senior - Corning Senior Center,1.2156460766066033,126.0,40.6803255750109,75.0,30.9636884107821,227.0,0.9302798578553,127.56628346264213,70.70067791416179,198.2669613768039,0.01770856952883946,0.20693215449278438,0.9986662140788031,0.9409016797571023,0.059335580738799264 +20,MFP Lamphear Court,43,MFP Senior - Dayspring,2.5388276228095874,126.0,40.6803255750109,77.18181818181819,17.9489174148091,209.0,0.9417319305889975,125.2536380858632,73.67629766238196,198.92993574824516,0.010882511255999077,0.20428025700701932,0.9975753346750716,0.96892092605832,0.03070464765920665 +20,MFP Lamphear Court,59,MFP Senior - Village Square/Manor,1.038358516439775,126.0,40.6803255750109,34.25,6.48249390842192,226.0,0.9262649314751051,125.30130338357917,34.13069177831543,159.4319951618946,0.0008004154090065908,0.3622720193524216,0.9991587995687785,0.9964998339794799,0.0036782738491397196 +21,MFP Lansing,39,MFP Senior - Cayuga Meadows,5.619262046423938,181.0,23.2937759927411,25.88888888888889,3.33333333333333,234.0,0.9632424199444167,180.910898646557,25.636436636448472,206.54733528300548,0.0012471551762423107,0.17381065886797809,0.9996879283011278,0.9908340036885477,0.008853924612580352 +21,MFP Lansing,41,MFP Senior - Conifer Village,6.107874800160203,181.0,23.2937759927411,33.8,10.3794669098819,233.0,0.9651881002957399,180.59999851592787,32.66221052848747,213.26220904441536,0.0033885418373702696,0.14695116382233858,0.9997629580990872,0.9799437603770594,0.01984599710430551 +21,MFP Lansing,61,MFP Senior - Woodsedge Apartments,1.2874023513887627,181.0,23.2937759927411,17.2,4.23739962188552,241.0,0.9571903573940116,180.72498188368826,17.029663088655152,197.7546449723434,0.0006333491149144955,0.20898142011062634,0.9998384832563243,0.9939716887236656,0.005886885720801468 +23,MFP Millport,49,MFP Senior - Jefferson Village,9.727694899522636,166.0,36.4996194805127,24.818181818181817,2.78633026822672,234.0,0.9467621807094303,164.4728897388206,24.388425907596737,188.86131564641732,0.0027042948798147465,0.24455473741433065,0.998490475790719,0.9861840517553558,0.012431371010983383 +23,MFP Millport,55,MFP Senior - Park Terrace Congregate Apartments,15.115694505719103,166.0,36.4996194805127,24.363636363636363,4.41073071662117,239.0,0.948162717900407,166.58653630344105,23.67680631426951,190.26334261771052,0.002529972621100995,0.23894662952915785,0.9990836602507631,0.9816929211140459,0.01740390501958927 +23,MFP Millport,58,MFP Senior - Villa Serene,10.593196325210428,166.0,36.4996194805127,69.72727272727273,5.0614406860282,194.0,0.9318355370091744,161.15633915642178,65.88224559828005,227.03858475470182,0.031122081746616844,0.09184566098119266,0.978166674045486,0.9438233455558811,0.038469353908204953 +24,MFP Montour Falls-Schuyler County Human Services Complex,49,MFP Senior - Jefferson Village,4.433762697674371,149.36363636363637,60.0387753493902,24.818181818181817,2.78633026822672,233.0,0.9212077480397017,146.56024257251153,24.090118470265082,170.65036104277658,0.009570337996574665,0.31739855582889365,0.984696018809527,0.9733723206167312,0.026660044152371797 +25,MFP Nichols-The Creamery,45,"MFP Senior - Elizabeth Square, Waverly",10.138568765527676,122.4,26.4253666010521,29.0,9.67658842962558,212.0,0.9201070311479234,121.3478181779974,28.785970756906966,150.13378893490432,0.0,0.39946484426038265,1.0,0.9998187224090636,0.0001812775909364812 +25,MFP Nichols-The Creamery,51,MFP Senior - Long Meadow Senior Housing,11.42632189143268,122.4,26.4253666010521,34.75,13.0043698949098,212.0,0.9254843313990551,122.19023199722395,34.665182251594885,156.85541424881885,0.0,0.3725783430047246,1.0,0.9955340910266149,0.0044659089733850195 +25,MFP Nichols-The Creamery,56,MFP Senior - Springview Apartments,9.179050357986888,122.4,26.4253666010521,27.583333333333332,9.31722094084958,210.0,0.9203302610166295,122.68620735540006,27.73520068723258,150.4214080426326,4.290885922909427e-06,0.3983143678294695,1.0,0.9988614177517227,0.0011385822482773227 +26,MFP Owego VFW,48,MFP Senior - Harry L Apartments,16.915448371143015,176.25,34.285234033433,32.833333333333336,6.24232862533419,235.0,0.9529469686331824,175.65757309293303,31.374335477855293,207.03190857078835,0.00792409888965515,0.17187236571684666,0.9975157699526355,0.9556718035748117,0.041964176047360524 +26,MFP Owego VFW,51,MFP Senior - Long Meadow Senior Housing,1.084296011715769,176.25,34.285234033433,34.75,13.0043698949098,249.0,0.9519174094223091,175.972203613584,32.84657982249788,208.8187834360819,0.009461010829097777,0.1647248662556724,0.9994002830847503,0.9355871593829644,0.06381312370178585 +26,MFP Owego VFW,60,MFP Senior - Wells Apartments,15.596244120794326,176.25,34.285234033433,23.5,4.55216676124922,240.0,0.9525062560423728,176.69706922841073,22.588277358631302,199.28534658704203,0.00432626326703802,0.2028586136518319,0.9983454443205477,0.9698207762618037,0.028594076720749043 +29,MFP Reach for Christ Church Freeville,39,MFP Senior - Cayuga Meadows,11.938975464714389,220.0,22.6175939382498,25.88888888888889,3.33333333333333,234.0,0.950629534948421,215.98171993749114,22.55338998480063,238.53510992229178,0.025124095618382723,0.045859560310832874,0.9862967996227717,0.8730592198050864,0.11324237292643542 +29,MFP Reach for Christ Church Freeville,46,MFP Senior - Ellis Hollow,9.79644903945258,220.0,22.6175939382498,24.727272727272727,13.8064543536051,250.0,0.9416923070748863,218.8112985874378,17.551837783297625,236.36313637073542,0.02962387626356382,0.05454745451705833,0.996163081824017,0.7280385539525601,0.26812452787145685 +29,MFP Reach for Christ Church Freeville,61,MFP Senior - Woodsedge Apartments,10.988460066901554,220.0,22.6175939382498,17.2,4.23739962188552,244.0,0.962586600279761,217.59971016858316,14.787948793888864,232.387658962472,0.014577204306385358,0.07044936415011206,0.993904404447825,0.871430362462156,0.12247404198566907 +33,MFP Saint Mary Recreation Center,44,MFP Senior - East Hill Senior Living,2.694335107177977,148.3,59.8313370140505,39.833333333333336,2.16724933890169,217.0,0.922133392609499,144.86563256162114,38.86020309000904,183.72583565163018,0.015529547444878293,0.2650966573934793,0.9780047323529,0.9775754867413929,0.020947057643149095 +33,MFP Saint Mary Recreation Center,50,MFP Senior - Lincoln Court,0.9072813107906652,148.3,59.8313370140505,26.0,4.89897948556636,241.0,0.9231397477959274,149.9028230081814,24.52933457378506,174.43215758196644,0.010253736418528548,0.3022713696721342,0.9867884007435708,0.9458782413593531,0.05623630614132844 +33,MFP Saint Mary Recreation Center,52,MFP Senior - Metro Plaza Apartments,0.4190666752122954,148.3,59.8313370140505,56.3,19.9167712689024,237.0,0.9116875193410305,146.2421133902556,49.495426638401845,195.73754002865743,0.02806407042618469,0.21704983988537022,0.9875266587936937,0.8883332607256507,0.11129274540385768 +33,MFP Saint Mary Recreation Center,53,MFP Senior - North Shore Towers,0.4756729640145355,148.3,59.8313370140505,58.333333333333336,6.86051504383355,214.0,0.9145855822251376,146.08422904878773,54.03511800898833,200.11934705777603,0.028443684638176998,0.19952261176889585,0.9779965227377279,0.9263681201962933,0.06395028437223008 +34,MFP Salvation Army Ithaca,39,MFP Senior - Cayuga Meadows,3.699075945244827,181.1818181818182,39.5848915163808,25.88888888888889,3.33333333333333,234.0,0.9479516411026961,179.95065740375,24.656047475818017,204.606704879568,0.009833576750598942,0.18157318048172796,0.9937723230721938,0.957473502083155,0.036298820989038784 +34,MFP Salvation Army Ithaca,41,MFP Senior - Conifer Village,2.3330238989813528,181.1818181818182,39.5848915163808,33.8,10.3794669098819,246.0,0.944630200576508,177.78244868593995,30.347353483272904,208.12980216921284,0.01367102572428895,0.16748079132314858,0.9970633784926484,0.912531992995514,0.08461953003341238 +34,MFP Salvation Army Ithaca,46,MFP Senior - Ellis Hollow,2.3921824800166336,181.1818181818182,39.5848915163808,24.727272727272727,13.8064543536051,250.0,0.9441317028639936,180.2991516513942,22.85470107457625,203.15385272597044,0.01149461207298922,0.1873845890961182,0.9973876213388251,0.8734128603537162,0.12397476098510882 +34,MFP Salvation Army Ithaca,61,MFP Senior - Woodsedge Apartments,6.624799652567899,181.1818181818182,39.5848915163808,17.2,4.23739962188552,243.0,0.9473543057176131,181.3950946552491,16.308727818057243,197.70382247330636,0.006755470163144965,0.2091847101067746,0.9962679371286173,0.9527701687865492,0.0434977683420681 +35,MFP Schuyler Outreach,49,MFP Senior - Jefferson Village,0.4835250933346896,138.85714285714286,21.5362374571215,24.818181818181817,2.78633026822672,216.0,0.9314144403389621,139.39897597687565,24.86907444682688,164.26805042370248,0.0,0.34292779830519005,1.0,1.0,0.0 +36,MFP Senior - Addison Place Apartments,8,MFP Campbell,11.2194461323124,30.09090909090909,5.02900676982135,168.5,40.968946111104,46.0,0.9457593251395936,30.076547619694416,165.64544849160856,195.72199611130293,0.006761419843405591,0.21711201555478818,1.0,0.992412030360839,0.0075879696391610305 +36,MFP Senior - Addison Place Apartments,63,MFP Troupsburg,19.69026681157269,30.09090909090909,5.02900676982135,148.71428571428572,50.2484304422015,48.0,0.9288906695926177,30.044651619144787,144.33916083694405,174.38381245608883,0.006635237732658418,0.3024647501756446,1.0,0.9895452292966367,0.01045477070336343 +36,MFP Senior - Addison Place Apartments,64,MFP Tuscarora,5.172850536384525,30.09090909090909,5.02900676982135,192.63636363636363,29.8639338576576,48.0,0.9570370972522737,29.987718310219154,189.2485413607691,219.23625967098826,0.011469944052823085,0.12305496131604696,1.0,0.9870996558688718,0.012900344131128146 +36,MFP Senior - Addison Place Apartments,70,MFP Woodhull,10.29220298993454,30.09090909090909,5.02900676982135,176.0,63.5438288256081,51.0,0.9104648633418764,30.131997468927636,166.6128504889785,196.7448479579061,0.029331884390280324,0.21302060816837554,1.0,0.9648402631449817,0.03515973685501833 +37,MFP Senior - Bragg,18,MFP Erin,11.550252499386453,66.88888888888889,6.03001750504186,173.9090909090909,27.3219858189501,86.0,0.9453496899428082,66.79883368460483,166.76752104774818,233.56635473235306,0.02593962115192134,0.06573458107058781,0.9999827909639569,0.9655694687690591,0.03441332219489794 +37,MFP Senior - Bragg,38,MFP Senior - Carpenter Apartments,0.2634372741909757,66.88888888888889,6.03001750504186,31.09090909090909,6.75950509215793,87.0,0.8783147196438295,66.78324885772722,31.11015069705952,97.89339955478674,0.0,0.6084264017808529,1.0,1.0,0.0 +37,MFP Senior - Bragg,47,MFP Senior - Flannery,0.9136830730627136,66.88888888888889,6.03001750504186,61.72727272727273,10.1103007778296,89.0,0.902795735769781,66.94370184478032,61.55096786744603,128.49466971222637,0.0,0.48602132115109453,1.0,1.0,0.0 +37,MFP Senior - Bragg,55,MFP Senior - Park Terrace Congregate Apartments,4.439017101765515,66.88888888888889,6.03001750504186,24.363636363636363,4.41073071662117,90.0,0.8730351137671815,66.9790941115903,24.314798097386596,91.29389220897687,0.0,0.6348244311640924,1.0,1.0,0.0 +37,MFP Senior - Bragg,58,MFP Senior - Villa Serene,3.67669488227416,66.88888888888889,6.03001750504186,69.72727272727273,5.0614406860282,88.0,0.9092182257392413,66.7780126148811,69.7447695591704,136.5227821740515,0.0,0.453908871303794,1.0,1.0,0.0 +38,MFP Senior - Carpenter Apartments,18,MFP Erin,11.351845173577209,31.09090909090909,6.75950509215793,173.9090909090909,27.3219858189501,55.0,0.9595602108419315,30.816569725812275,173.22014854740362,204.0367182732159,0.0022932273604007237,0.18385312690713643,1.0,0.9973685240246086,0.00263147597539131 +38,MFP Senior - Carpenter Apartments,37,MFP Senior - Bragg,0.2634372741909757,31.09090909090909,6.75950509215793,66.88888888888889,6.03001750504186,53.0,0.8781735296393239,30.966406156656863,66.75050589249815,97.71691204915503,0.0,0.60913235180338,1.0,1.0,0.0 +38,MFP Senior - Carpenter Apartments,47,MFP Senior - Flannery,1.1120903988719573,31.09090909090909,6.75950509215793,61.72727272727273,10.1103007778296,57.0,0.8742593054192478,31.022405494299715,61.80172627976006,92.8241317740598,0.0,0.6287034729037608,1.0,1.0,0.0 +38,MFP Senior - Carpenter Apartments,55,MFP Senior - Park Terrace Congregate Apartments,4.637424427574759,31.09090909090909,6.75950509215793,24.363636363636363,4.41073071662117,56.0,0.8438751745268569,30.788173544679438,24.055794613891738,54.84396815857118,0.0,0.7806241273657153,1.0,1.0,0.0 +38,MFP Senior - Carpenter Apartments,58,MFP Senior - Villa Serene,3.413257608083184,31.09090909090909,6.75950509215793,69.72727272727273,5.0614406860282,52.0,0.8806873095107269,31.08110189593318,69.77803499247548,100.85913688840866,0.0,0.5965634524463653,1.0,1.0,0.0 +39,MFP Senior - Cayuga Meadows,12,MFP College Ithaca College,5.326864654064723,25.88888888888889,3.33333333333333,138.33333333333334,66.1418929272515,36.0,0.9122231553548927,25.75217694492372,136.5004945476971,162.25267149262078,0.010986863649502493,0.3509893140295169,1.0,0.9659931907695977,0.03400680923040233 +39,MFP Senior - Cayuga Meadows,15,MFP Danby,10.863304351881126,25.88888888888889,3.33333333333333,160.22222222222223,34.5788149658782,37.0,0.9461558562506889,25.910570236421204,159.67422087684744,185.58479111326866,0.0014449853999537962,0.2576608355469253,1.0,0.9983937142673733,0.0016062857326266501 +39,MFP Senior - Cayuga Meadows,21,MFP Lansing,5.619262046423938,25.88888888888889,3.33333333333333,181.0,23.2937759927411,38.0,0.9635822985614684,25.940284344595877,180.6618705898014,206.60215493439725,0.001062140866280889,0.17359138026241097,1.0,0.9988153083219709,0.001184691678029074 +39,MFP Senior - Cayuga Meadows,29,MFP Reach for Christ Church Freeville,11.938975464714389,25.88888888888889,3.33333333333333,220.0,22.6175939382498,38.0,0.9495769147007114,25.96079855409688,212.62689737658502,238.5876959306819,0.025808276277396295,0.04564921627727236,0.9999935766572019,0.971398118952175,0.028595457705026812 +39,MFP Senior - Cayuga Meadows,34,MFP Salvation Army Ithaca,3.699075945244827,25.88888888888889,3.33333333333333,181.1818181818182,39.5848915163808,37.0,0.9467121319511724,26.008790217443465,178.44702737582287,204.45581759326632,0.01053282632715042,0.18217672962693468,1.0,0.9883601048497603,0.011639895150239792 +39,MFP Senior - Cayuga Meadows,41,MFP Senior - Conifer Village,1.366052046263474,25.88888888888889,3.33333333333333,33.8,10.3794669098819,37.0,0.8481508614633982,25.970785282386345,34.21779154686141,60.18857682924775,0.0,0.7592456926830091,1.0,1.0,0.0 +39,MFP Senior - Cayuga Meadows,46,MFP Senior - Ellis Hollow,6.0912584252614606,25.88888888888889,3.33333333333333,24.727272727272727,13.8064543536051,38.0,0.8400389709009328,25.86018450217753,24.188529123988477,50.048713626166005,0.0,0.799805145495336,1.0,0.9615071687136776,0.03849283128632236 +39,MFP Senior - Cayuga Meadows,57,MFP Senior - Titus Towers,4.114230439805386,25.88888888888889,3.33333333333333,72.8,4.31534728871525,39.0,0.8789661290465096,25.917500164280167,72.79016114385698,98.70766130813715,0.0,0.6051693547674515,1.0,1.0,0.0 +39,MFP Senior - Cayuga Meadows,61,MFP Senior - Woodsedge Apartments,6.9066643978127,25.88888888888889,3.33333333333333,17.2,4.23739962188552,38.0,0.834333144767865,25.849764890750944,17.066666069080355,42.916430959831295,0.0,0.8283342761606748,1.0,1.0,0.0 +40,MFP Senior - CFS Lakeview,7,MFP Bradford,11.76921918626308,112.0,15.563490039905,122.27272727272728,29.7425315300864,159.0,0.9427058289387816,111.6332015799329,115.65641089389015,227.28961247382304,0.024453663150172996,0.09084155010470782,1.0,0.9565100710332918,0.04348992896670824 +41,MFP Senior - Conifer Village,12,MFP College Ithaca College,3.960812607801249,33.8,10.3794669098819,138.33333333333334,66.1418929272515,66.0,0.9116797876291791,33.68367535895418,135.5957301912743,169.2794055502285,0.014839835506877294,0.322882377799086,1.0,0.9583290288652075,0.04167097113479249 +41,MFP Senior - Conifer Village,15,MFP Danby,9.497252305617652,33.8,10.3794669098819,160.22222222222223,34.5788149658782,64.0,0.9491271177257241,33.792778654513775,159.28818408051524,193.08096273502903,0.0033360327889369085,0.22767614905988387,0.9995,0.996096908326348,0.004403091673651985 +41,MFP Senior - Conifer Village,21,MFP Lansing,6.107874800160203,33.8,10.3794669098819,181.0,23.2937759927411,67.0,0.964910960142488,34.00979160088637,179.24792880291136,213.25772040379772,0.0035595101128439418,0.14696911838480906,0.9995,0.995741979756016,0.004758020243984025 +41,MFP Senior - Conifer Village,34,MFP Salvation Army Ithaca,2.3330238989813528,33.8,10.3794669098819,181.1818181818182,39.5848915163808,69.0,0.94301809320968,33.18527145619351,176.87835335331235,210.06362480950588,0.015645504148702926,0.15974550076197647,0.998697794300437,0.9820041523664355,0.019257867764276484 +41,MFP Senior - Conifer Village,39,MFP Senior - Cayuga Meadows,1.366052046263474,33.8,10.3794669098819,25.88888888888889,3.33333333333333,76.0,0.8477946312662283,33.940416404348476,25.80287267843698,59.74328908278546,0.0,0.7610268436688582,0.9995,1.0,0.0005 +41,MFP Senior - Conifer Village,46,MFP Senior - Ellis Hollow,4.725206378997987,33.8,10.3794669098819,24.727272727272727,13.8064543536051,73.0,0.8467738468173023,34.231188288068275,24.2361202335595,58.467308521627785,0.0,0.7661307659134888,0.998987087200854,0.9592696720306687,0.041743240768477255 +41,MFP Senior - Conifer Village,57,MFP Senior - Titus Towers,2.748178393541912,33.8,10.3794669098819,72.8,4.31534728871525,73.0,0.8851335805200321,33.711529062775575,72.70544658726445,106.41697565004002,0.0,0.5743320973998399,0.999,1.0,0.001 +41,MFP Senior - Conifer Village,61,MFP Senior - Woodsedge Apartments,7.395277151548965,33.8,10.3794669098819,17.2,4.23739962188552,69.0,0.8411846071243511,34.13894237662277,17.341816528816175,51.48075890543895,0.0,0.7940769643782443,0.9985043327979458,1.0,0.0014956672020541894 +42,MFP Senior - Corning Senior Center,8,MFP Campbell,12.473579226713138,75.0,30.9636884107821,168.5,40.968946111104,172.0,0.8894519492506825,74.11010533413926,152.015046799968,226.12515213410725,0.057155107785377066,0.09549939146357105,0.9910360402421368,0.915747482246796,0.09307112706566609 +42,MFP Senior - Corning Senior Center,20,MFP Lamphear Court,1.2156460766066033,75.0,30.9636884107821,126.0,40.6803255750109,170.0,0.9294506975178515,74.78499738900017,120.71895778605914,195.50395517505933,0.016845291638872453,0.21798417929976277,0.993,0.9717192118386294,0.03528078816137045 +42,MFP Senior - Corning Senior Center,43,MFP Senior - Dayspring,1.3231815462029837,75.0,30.9636884107821,77.18181818181819,17.9489174148091,161.0,0.9216718450305098,75.10698421261439,77.32048727665344,152.42747148926784,0.00016883260056531918,0.39029011404292874,0.994955017430137,0.9996821589553199,0.00527285847481704 +42,MFP Senior - Corning Senior Center,59,MFP Senior - Village Square/Manor,2.2469527930463364,75.0,30.9636884107821,34.25,6.48249390842192,168.0,0.8877931849966899,75.60263269439167,34.13884855147076,109.74148124586243,0.0,0.5610340750165502,0.9954890125268903,1.0,0.004510987473109786 +43,MFP Senior - Dayspring,4,MFP Beaver Dams,12.753912404588451,77.18181818181819,17.9489174148091,170.7,28.7906234736241,123.0,0.9226034498778233,76.61920553210992,158.44470418778906,235.06390971989904,0.04090479868630993,0.05974436112040394,0.9998529835184264,0.9405751892183717,0.05927779430005481 +43,MFP Senior - Dayspring,20,MFP Lamphear Court,2.5388276228095874,77.18181818181819,17.9489174148091,126.0,40.6803255750109,141.0,0.9408573767962026,76.38487029412194,122.92108379132692,199.30595408544886,0.011617116545097766,0.2027761836582046,1.0,0.980805999834957,0.019194000165043097 +43,MFP Senior - Dayspring,42,MFP Senior - Corning Senior Center,1.3231815462029837,77.18181818181819,17.9489174148091,75.0,30.9636884107821,137.0,0.9204454349197772,77.23851016521442,73.48458464176609,150.72309480698053,8.315057862953249e-05,0.3971076207720779,1.0,0.9900183660449204,0.009981633955079621 +43,MFP Senior - Dayspring,59,MFP Senior - Village Square/Manor,3.57013433924932,77.18181818181819,17.9489174148091,34.25,6.48249390842192,150.0,0.8889839709239535,77.01257171222328,34.21739194271862,111.22996365494188,0.0,0.5550801453802323,1.0,1.0,0.0 +44,MFP Senior - East Hill Senior Living,1,MFP American Legion - Binghamton,1.2264929609690354,39.833333333333336,2.16724933890169,200.1818181818182,46.0669473306365,47.0,0.9086065032578287,39.80241660156709,185.8621152312336,225.6645318328007,0.04495320138025745,0.09734187266879733,1.0,0.9481118503611236,0.051888149638876425 +44,MFP Senior - East Hill Senior Living,10,MFP Colesville,17.05151590904141,39.833333333333336,2.16724933890169,197.33333333333337,66.2589044902074,48.0,0.8775160584238801,39.7663246091889,176.16375353730155,215.93007814649047,0.05951750255832012,0.13627968741403806,1.0,0.9308550877625597,0.06914491223744033 +44,MFP Senior - East Hill Senior Living,14,MFP Conklin- Maines Community Center,3.969543414785172,39.833333333333336,2.16724933890169,153.16666666666666,20.1125620325993,47.0,0.9535846908565183,39.7662914512261,152.38045205923203,192.1467435104581,8.293996990504902e-05,0.23141302595816754,1.0,0.9999019115199594,9.808848004053483e-05 +44,MFP Senior - East Hill Senior Living,16,MFP Deposit,26.546392170166833,39.833333333333336,2.16724933890169,156.58333333333334,56.545168322378,47.0,0.9237216415783767,39.82356374381338,152.44273254235844,192.26629628617184,0.018807122156600464,0.23093481485531267,1.0,0.9772428522398265,0.02275714776017348 +44,MFP Senior - East Hill Senior Living,19,MFP First Assembly Of God Church,2.909892189220507,39.833333333333336,2.16724933890169,146.0,21.6459108042479,48.0,0.948494279319603,39.83978225770908,145.7917098832599,185.631492140969,6.821495732633938e-06,0.2574740314361241,1.0,0.9999919067732405,8.093226759586569e-06 +44,MFP Senior - East Hill Senior Living,33,MFP Saint Mary Recreation Center,2.694335107177977,39.833333333333336,2.16724933890169,148.3,59.8313370140505,46.0,0.9232495753078674,39.82497915151681,144.12822406705158,183.95320321856838,0.014945617041867124,0.2641871871257265,0.9999933196501914,0.9787315303406399,0.021261789309551554 +44,MFP Senior - East Hill Senior Living,52,MFP Senior - Metro Plaza Apartments,2.724407382390271,39.833333333333336,2.16724933890169,56.3,19.9167712689024,48.0,0.8770023478575545,39.862689106833926,56.390245715109295,96.25293482194323,0.0,0.6149882607122272,1.0,0.9985,0.0015 +44,MFP Senior - East Hill Senior Living,53,MFP Senior - North Shore Towers,3.1700080711925125,39.833333333333336,2.16724933890169,58.333333333333336,6.86051504383355,48.0,0.8787102113759582,39.811326814564104,58.57643740538357,98.38776421994768,0.0,0.6064489431202092,1.0,1.0,0.0 +44,MFP Senior - East Hill Senior Living,69,MFP Windsor,14.215724264291934,39.833333333333336,2.16724933890169,200.9090909090909,34.8954281975578,47.0,0.9315803699121217,39.742044726677655,190.9112885611214,230.65333328779903,0.033088935448823464,0.07738666684880374,0.9999970343865616,0.9615588164562936,0.03843821793026807 +45,"MFP Senior - Elizabeth Square, Waverly",25,MFP Nichols-The Creamery,10.138568765527676,29.0,9.67658842962558,122.4,26.4253666010521,59.0,0.9206789658119094,28.937176942341488,121.91153032254542,150.84870726488688,0.0,0.39660517094045245,0.997,1.0,0.003 +45,"MFP Senior - Elizabeth Square, Waverly",47,MFP Senior - Flannery,19.047778933409596,29.0,9.67658842962558,61.72727272727273,10.1103007778296,62.0,0.8726691193035772,29.201822235322958,61.63457689414858,90.83639912947154,0.0,0.6366544034821138,0.9995,1.0,0.0005 +45,"MFP Senior - Elizabeth Square, Waverly",55,MFP Senior - Park Terrace Congregate Apartments,18.3459383621123,29.0,9.67658842962558,24.363636363636363,4.41073071662117,63.0,0.8426787693325484,28.889006941715955,24.4594547239697,53.348461665685655,0.0,0.7866061533372574,0.9985,1.0,0.0015 +45,"MFP Senior - Elizabeth Square, Waverly",56,MFP Senior - Springview Apartments,0.95951840754079,29.0,9.67658842962558,27.583333333333332,9.31722094084958,66.0,0.8451098800297587,28.754347032706495,27.63300300449193,56.38735003719842,0.0,0.7744505998512063,0.998360256274488,0.9986065161361063,0.003033227589405838 +45,"MFP Senior - Elizabeth Square, Waverly",65,MFP Van Etten,16.200324053199697,29.0,9.67658842962558,213.7,19.9613515463145,57.0,0.9575306805051936,28.932857648259986,207.86708464280986,236.79994229106984,0.01994329582978879,0.05280023083572064,0.9994172881088079,0.9771252086948627,0.023368568690720765 +46,MFP Senior - Ellis Hollow,12,MFP College Ithaca College,2.9751399711972084,24.727272727272727,13.8064543536051,138.33333333333334,66.1418929272515,77.0,0.9104732948648702,25.04432473516569,135.81834120038482,160.86266593555052,0.010448023677231437,0.3565493362577979,0.956998086287528,0.9734325786440103,0.06601498656039914 +46,MFP Senior - Ellis Hollow,15,MFP Danby,6.778347073379921,24.727272727272727,13.8064543536051,160.22222222222223,34.5788149658782,75.0,0.9431661955372309,24.7761240604192,158.55592102470547,183.33204508512466,0.002187150331792987,0.26667181965950126,0.9588213517811425,0.9974466469414204,0.043732001277437246 +46,MFP Senior - Ellis Hollow,29,MFP Reach for Christ Church Freeville,9.79644903945258,24.727272727272727,13.8064543536051,220.0,22.6175939382498,63.0,0.942242321593566,25.592672772448196,211.71282199278033,237.30549476522853,0.02975129638663549,0.05077802093908578,0.9623558337721096,0.9660398190022788,0.07120969742513787 +46,MFP Senior - Ellis Hollow,34,MFP Salvation Army Ithaca,2.3921824800166336,24.727272727272727,13.8064543536051,181.1818181818182,39.5848915163808,69.0,0.9461425904751966,24.60395402465814,177.22230271238274,201.82625673704086,0.009574009321522631,0.19269497305183653,0.9559781794865209,0.9891674250122044,0.05475372836443934 +46,MFP Senior - Ellis Hollow,39,MFP Senior - Cayuga Meadows,6.0912584252614606,24.727272727272727,13.8064543536051,25.88888888888889,3.33333333333333,67.0,0.840776681364033,25.146171951310578,25.824679753730663,50.97085170504125,0.0,0.7961165931798351,0.958153250270563,1.0,0.04184674972943706 +46,MFP Senior - Ellis Hollow,41,MFP Senior - Conifer Village,4.725206378997987,24.727272727272727,13.8064543536051,33.8,10.3794669098819,70.0,0.8468802315872725,24.677185776729427,33.92310370736128,58.60028948409071,0.0,0.7655988420636373,0.9665326280261993,0.999,0.03446737197380071 +46,MFP Senior - Ellis Hollow,57,MFP Senior - Titus Towers,2.5634175854556234,24.727272727272727,13.8064543536051,72.8,4.31534728871525,69.0,0.87795963191651,24.75316132664113,72.6963785689964,97.44953989563753,0.0,0.6102018404174498,0.9560298168360287,1.0,0.04397018316397123 +47,MFP Senior - Flannery,18,MFP Erin,12.463935572449168,61.72727272727273,10.1103007778296,173.9090909090909,27.3219858189501,99.0,0.9510402492977993,61.86877068428495,168.18276140374064,230.0515320880256,0.02062561023288823,0.07979387164789764,1.0,0.9727388464667481,0.02726115353325178 +47,MFP Senior - Flannery,37,MFP Senior - Bragg,0.9136830730627136,61.72727272727273,10.1103007778296,66.88888888888889,6.03001750504186,99.0,0.9028897915279447,61.641667869309266,66.97057154062155,128.6122394099308,0.0,0.48555104236027674,1.0,1.0,0.0 +47,MFP Senior - Flannery,38,MFP Senior - Carpenter Apartments,1.1120903988719573,61.72727272727273,10.1103007778296,31.09090909090909,6.75950509215793,96.0,0.8744558000139027,61.84133600340808,31.228414013970237,93.06975001737833,0.0,0.6277209999304867,1.0,1.0,0.0 +47,MFP Senior - Flannery,45,"MFP Senior - Elizabeth Square, Waverly",19.047778933409596,61.72727272727273,10.1103007778296,29.0,9.67658842962558,90.0,0.8730186859576109,61.909873789514066,29.363483657499536,91.27335744701361,0.0,0.6349065702119455,1.0,0.997502277347739,0.0024977226522610715 +47,MFP Senior - Flannery,55,MFP Senior - Park Terrace Congregate Apartments,3.525334028702802,61.72727272727273,10.1103007778296,24.363636363636363,4.41073071662117,100.0,0.8689525136265764,61.652767751830645,24.537874281389975,86.19064203322061,0.0,0.6552374318671175,1.0,1.0,0.0 +47,MFP Senior - Flannery,56,MFP Senior - Springview Apartments,18.83513914094972,61.72727272727273,10.1103007778296,27.583333333333332,9.31722094084958,99.0,0.8713227233857037,61.712825370188,27.440578861941713,89.15340423212973,0.0,0.6433863830714811,1.0,0.998,0.002 +47,MFP Senior - Flannery,58,MFP Senior - Villa Serene,3.820657609211378,61.72727272727273,10.1103007778296,69.72727272727273,5.0614406860282,96.0,0.9049874266452896,61.40411251829729,69.83017078831463,131.23428330661193,0.0,0.4750628667735523,1.0,1.0,0.0 +48,MFP Senior - Harry L Apartments,6,MFP Boys and Girls Club,3.07420484734281,32.833333333333336,6.24232862533419,210.8,52.3551971313896,54.0,0.8857852257896607,32.76068443921264,192.43878966867732,225.19947410788993,0.05898397093540708,0.09920210356844025,0.9999804223148453,0.9337126337050967,0.06626778860974863 +48,MFP Senior - Harry L Apartments,19,MFP First Assembly Of God Church,3.7186457122365986,32.833333333333336,6.24232862533419,146.0,21.6459108042479,58.0,0.9434285145183958,32.94471860952175,146.38082571482158,179.32554432434333,1.9950588174235913e-05,0.2826978227026268,1.0,0.999977018125536,2.2981874463996466e-05 +48,MFP Senior - Harry L Apartments,26,MFP Owego VFW,16.915448371143015,32.833333333333336,6.24232862533419,176.25,34.285234033433,51.0,0.9557506491221163,32.967065793811216,175.59195315480338,208.5590189486146,0.006935353772984646,0.1657639242055417,1.0,0.9920687776161624,0.007931222383837632 +48,MFP Senior - Harry L Apartments,51,MFP Senior - Long Meadow Senior Housing,16.731331182858945,32.833333333333336,6.24232862533419,34.75,13.0043698949098,53.0,0.8539102175715496,32.616098535167026,34.77167342926997,67.38777196443701,0.0,0.730448912142252,1.0,0.9968924962036553,0.003107503796344723 +48,MFP Senior - Harry L Apartments,52,MFP Senior - Metro Plaza Apartments,3.98468111906683,32.833333333333336,6.24232862533419,56.3,19.9167712689024,55.0,0.8715895596201708,32.83427560374961,56.65267392146398,89.48694952521359,0.0,0.6420522018991457,1.0,0.9985,0.0015 +48,MFP Senior - Harry L Apartments,54,"MFP Senior - Northern Broome Senior Center, Whitney Point",14.58591429542938,32.833333333333336,6.24232862533419,50.90909090909091,21.9565687002981,53.0,0.866840414809825,32.907008633981135,50.64350987830012,83.55051851228127,0.0,0.665797925950875,1.0,0.9893339210665472,0.010666078933452823 +48,MFP Senior - Harry L Apartments,60,MFP Senior - Wells Apartments,1.3192042503486914,32.833333333333336,6.24232862533419,23.5,4.55216676124922,55.0,0.8450039510836872,32.66692178116868,23.588017073440326,56.254938854609016,0.0,0.774980244581564,1.0,1.0,0.0 +48,MFP Senior - Harry L Apartments,68,MFP Whitney Point,15.96939470304803,32.833333333333336,6.24232862533419,202.54545454545453,30.4478690103713,54.0,0.9435898653470001,32.71641733144388,195.7820904536888,228.4985077851327,0.024505588050691297,0.08600596885946933,0.9999865548198668,0.9720825975426278,0.027903957277239027 +49,MFP Senior - Jefferson Village,4,MFP Beaver Dams,12.76809179930506,24.818181818181817,2.78633026822672,170.7,28.7906234736241,35.0,0.9541130470769167,24.876624785335387,170.89326699128202,195.76989177661744,0.0015642914652357499,0.2169204328935303,1.0,0.9982673733666095,0.001732626633390555 +49,MFP Senior - Jefferson Village,7,MFP Bradford,13.055706644096546,24.818181818181817,2.78633026822672,122.27272727272728,29.7425315300864,35.0,0.9183170068980401,24.800831624850275,123.0954269976999,147.89625862255016,0.0,0.4084149655097992,1.0,1.0,0.0 +49,MFP Senior - Jefferson Village,23,MFP Millport,9.727694899522636,24.818181818181817,2.78633026822672,166.0,36.4996194805127,35.0,0.9483307431611822,24.922133210940554,165.30998600247702,190.23211921341758,0.0024093451309700063,0.23907152314632965,1.0,0.9973434595267302,0.0026565404732699274 +49,MFP Senior - Jefferson Village,24,MFP Montour Falls-Schuyler County Human Services Complex,4.433762697674371,24.818181818181817,2.78633026822672,149.36363636363637,60.0387753493902,33.0,0.9187656382832033,24.83145441098687,143.1627141272326,167.9941685382194,0.009768560342107671,0.3280233258471223,0.9999925946089513,0.9828245050597423,0.017168089549209134 +49,MFP Senior - Jefferson Village,35,MFP Schuyler Outreach,0.4835250933346896,24.818181818181817,2.78633026822672,138.85714285714286,21.5362374571215,36.0,0.9308359878396211,24.907676377065364,138.637308422461,163.54498479952636,0.0,0.34582006080189454,1.0,1.0,0.0 +50,MFP Senior - Lincoln Court,6,MFP Boys and Girls Club,1.6176038361456346,26.0,4.89897948556636,210.8,52.3551971313896,43.0,0.8964940398967124,25.95351428515129,196.35179713810712,222.3053114232584,0.05084388077618397,0.11077875430696635,1.0,0.9442859569072346,0.05571404309276544 +50,MFP Senior - Lincoln Court,14,MFP Conklin- Maines Community Center,4.264583232754312,26.0,4.89897948556636,153.16666666666666,20.1125620325993,42.0,0.943682628410739,25.97720589365366,153.66209977292792,179.63930566658155,1.801007657891957e-05,0.2814427773336738,1.0,0.9999798050940635,2.019490593651363e-05 +50,MFP Senior - Lincoln Court,16,MFP Deposit,26.84143198813597,26.0,4.89897948556636,156.58333333333334,56.545168322378,42.0,0.9249915747940385,26.121729584670216,152.98407516330678,179.10580474797698,0.011433168127714461,0.283576781008092,1.0,0.9859289924814113,0.01407100751858862 +50,MFP Senior - Lincoln Court,19,MFP First Assembly Of God Church,0.973162971251846,26.0,4.89897948556636,146.0,21.6459108042479,44.0,0.9372186960759207,26.160911414485724,145.36245868041505,171.52337009490077,0.0,0.3139065196203969,1.0,1.0,0.0 +50,MFP Senior - Lincoln Court,33,MFP Saint Mary Recreation Center,0.9072813107906652,26.0,4.89897948556636,148.3,59.8313370140505,42.0,0.922358574805745,26.000919755057506,145.2702338133836,171.2711535684411,0.009161467530629939,0.3149153857262355,1.0,0.9819117449433578,0.01808825505664219 +50,MFP Senior - Lincoln Court,52,MFP Senior - Metro Plaza Apartments,0.8772090355783712,26.0,4.89897948556636,56.3,19.9167712689024,43.0,0.8661038143148505,26.114122856844293,56.515645036718794,82.62976789356308,0.0,0.6694809284257476,1.0,0.995112728618511,0.004887271381489109 +50,MFP Senior - Lincoln Court,53,MFP Senior - North Shore Towers,0.4510672532235281,26.0,4.89897948556636,58.333333333333336,6.86051504383355,43.0,0.8674236042176697,26.113826185326747,58.165679086760456,84.2795052720872,0.0,0.6628819789116512,1.0,1.0,0.0 +50,MFP Senior - Lincoln Court,69,MFP Windsor,14.510764082261073,26.0,4.89897948556636,200.9090909090909,34.8954281975578,42.0,0.9456726291804917,26.030319995749654,195.5577931920765,221.5881131878261,0.019748663356105776,0.11364754724869545,0.9999941260131213,0.9781816212596834,0.021812504753437947 +51,MFP Senior - Long Meadow Senior Housing,6,MFP Boys and Girls Club,18.397742830201796,34.75,13.0043698949098,210.8,52.3551971313896,71.0,0.8715704617386206,34.8794294573394,192.9712779883952,227.8507074457346,0.06919381513622934,0.08859717021706164,0.9959173727296845,0.9210717125787228,0.08294376476001716 +51,MFP Senior - Long Meadow Senior Housing,25,MFP Nichols-The Creamery,11.42632189143268,34.75,13.0043698949098,122.4,26.4253666010521,75.0,0.925878192363591,34.83617913975692,122.59048797156883,157.4266671113257,3.946332841848229e-05,0.370293331554697,0.9968339263903601,0.9999487591251854,0.003217314484454472 +51,MFP Senior - Long Meadow Senior Housing,26,MFP Owego VFW,1.084296011715769,34.75,13.0043698949098,176.25,34.285234033433,75.0,0.9519792196656197,34.48286887986591,172.9413445528889,207.4242134327548,0.008725094425365107,0.1703031462689808,0.9963411468595392,0.9895484339730172,0.014110419167443539 +51,MFP Senior - Long Meadow Senior Housing,48,MFP Senior - Harry L Apartments,16.731331182858945,34.75,13.0043698949098,32.833333333333336,6.24232862533419,79.0,0.8542054473628178,35.04287488605271,32.71393431746958,67.75680920352228,0.0,0.728972763185911,0.9973082360537114,1.0,0.002691763946288526 +51,MFP Senior - Long Meadow Senior Housing,60,MFP Senior - Wells Apartments,16.230190932509878,34.75,13.0043698949098,23.5,4.55216676124922,87.0,0.8467391742723328,34.80240488503061,23.621562955385254,58.42396784041587,0.0,0.7663041286383365,0.99649426915564,1.0,0.003505730844359984 +52,MFP Senior - Metro Plaza Apartments,14,MFP Conklin- Maines Community Center,4.971710797175927,56.3,19.9167712689024,153.16666666666666,20.1125620325993,114.0,0.9614448925652858,56.134920404051805,151.73568494851176,207.8706053525636,0.0030322448229782714,0.16851757858974564,0.9953519426123021,0.9955147715494261,0.009093366275166808 +52,MFP Senior - Metro Plaza Apartments,19,MFP First Assembly Of God Church,0.2660354068302311,56.3,19.9167712689024,146.0,21.6459108042479,126.0,0.9568398060344661,56.831339522837204,145.21866545851418,202.0500049813514,0.0030001237191344065,0.19179998007459437,0.997,0.9955327157006175,0.007467284299382516 +52,MFP Senior - Metro Plaza Apartments,33,MFP Saint Mary Recreation Center,0.4190666752122954,56.3,19.9167712689024,148.3,59.8313370140505,125.0,0.9102046826005051,57.12793558442053,137.78816333423936,194.91609891865988,0.028580122834014187,0.22033560432536042,0.9978438244202061,0.9569614734521639,0.04519470212762995 +52,MFP Senior - Metro Plaza Apartments,44,MFP Senior - East Hill Senior Living,2.724407382390271,56.3,19.9167712689024,39.833333333333336,2.16724933890169,121.0,0.8769771693333425,56.37981219495795,39.84164947172013,96.2214616666781,0.0,0.6151141533332878,0.9977565920142397,1.0,0.002243407985760301 +52,MFP Senior - Metro Plaza Apartments,48,MFP Senior - Harry L Apartments,3.98468111906683,56.3,19.9167712689024,32.833333333333336,6.24232862533419,115.0,0.8715883241984678,56.60691581657072,32.878489431514026,89.48540524808473,0.0,0.6420583790076609,0.9965,1.0,0.0035 +52,MFP Senior - Metro Plaza Apartments,50,MFP Senior - Lincoln Court,0.8772090355783712,56.3,19.9167712689024,26.0,4.89897948556636,120.0,0.8656901519584083,56.27203623075791,25.840653717252497,82.11268994801041,0.0,0.6715492402079583,0.998,1.0,0.002 +52,MFP Senior - Metro Plaza Apartments,53,MFP Senior - North Shore Towers,0.4456006888022414,56.3,19.9167712689024,58.333333333333336,6.86051504383355,125.0,0.8914394153039292,56.0102761133084,58.28899301660314,114.29926912991154,0.0,0.5428029234803537,0.9965529433627016,1.0,0.003447056637298348 +52,MFP Senior - Metro Plaza Apartments,60,MFP Senior - Wells Apartments,3.07802816941594,56.3,19.9167712689024,23.5,4.55216676124922,129.0,0.8638478044035528,56.26110129743483,23.548654207006233,79.80975550444106,0.0,0.6807609779822358,0.9989046171309841,1.0,0.0010953828690159165 +53,MFP Senior - North Shore Towers,14,MFP Conklin- Maines Community Center,4.71565048597784,58.333333333333336,6.86051504383355,153.16666666666666,20.1125620325993,81.0,0.9671612707121308,58.15717523677041,153.09272564808333,211.24990088485373,0.0011491562473450788,0.15500039646058503,1.0,0.9984825541992525,0.0015174458007475174 +53,MFP Senior - North Shore Towers,19,MFP First Assembly Of God Church,0.5220957180283179,58.333333333333336,6.86051504383355,146.0,21.6459108042479,90.0,0.962485707875553,58.599940211582584,145.78765599991183,204.38759621149444,0.0006402306835266476,0.18244961515402222,1.0,0.9991609164791477,0.0008390835208521582 +53,MFP Senior - North Shore Towers,33,MFP Saint Mary Recreation Center,0.4756729640145355,58.333333333333336,6.86051504383355,148.3,59.8313370140505,79.0,0.9152867778904358,58.3483288475185,141.7335980392195,200.081926886738,0.027986727261846627,0.19967229245304807,1.0,0.9592008578801036,0.04079914211989653 +53,MFP Senior - North Shore Towers,44,MFP Senior - East Hill Senior Living,3.1700080711925125,58.333333333333336,6.86051504383355,39.833333333333336,2.16724933890169,82.0,0.878456740931582,58.197420637357794,39.87350552711964,98.07092616447743,0.0,0.6077162953420903,1.0,1.0,0.0 +53,MFP Senior - North Shore Towers,50,MFP Senior - Lincoln Court,0.4510672532235281,58.333333333333336,6.86051504383355,26.0,4.89897948556636,81.0,0.8676239029320432,58.55798807006764,25.971890594986245,84.52987866505387,0.0,0.6618804853397845,1.0,1.0,0.0 +53,MFP Senior - North Shore Towers,52,MFP Senior - Metro Plaza Apartments,0.4456006888022414,58.333333333333336,6.86051504383355,56.3,19.9167712689024,81.0,0.8915450572576351,58.16626996861192,56.26505160343195,114.43132157204387,0.0,0.5422747137118245,1.0,0.9965,0.0035 +53,MFP Senior - North Shore Towers,60,MFP Senior - Wells Apartments,3.334088480614027,58.333333333333336,6.86051504383355,23.5,4.55216676124922,85.0,0.865261521081359,58.21543954469859,23.361461807000214,81.57690135169881,0.0,0.6736923945932048,1.0,1.0,0.0 +54,"MFP Senior - Northern Broome Senior Center, Whitney Point",48,MFP Senior - Harry L Apartments,14.58591429542938,50.90909090909091,21.9565687002981,32.833333333333336,6.24232862533419,131.0,0.8676801995905857,51.86009459742323,32.74015489080899,84.60024948823222,0.0,0.661599002047071,0.9881712076937169,1.0,0.01182879230628308 +54,"MFP Senior - Northern Broome Senior Center, Whitney Point",60,MFP Senior - Wells Apartments,15.492567245080268,50.90909090909091,21.9565687002981,23.5,4.55216676124922,125.0,0.8595280752273122,51.09808046942431,23.312013564716064,74.41009403414037,0.0,0.7023596238634385,0.9898633124891646,1.0,0.010136687510835431 +55,MFP Senior - Park Terrace Congregate Apartments,23,MFP Millport,15.115694505719103,24.363636363636363,4.41073071662117,166.0,36.4996194805127,39.0,0.9469858109726231,24.352236831357025,165.5048835788935,189.85712041025053,0.0030624283472357895,0.24057151835899787,1.0,0.9966287273769971,0.003371272623002902 +55,MFP Senior - Park Terrace Congregate Apartments,37,MFP Senior - Bragg,4.439017101765515,24.363636363636363,4.41073071662117,66.88888888888889,6.03001750504186,38.0,0.8728140319832637,24.258717849490306,66.75882212958928,91.01753997907959,0.0,0.6359298400836817,1.0,1.0,0.0 +55,MFP Senior - Park Terrace Congregate Apartments,38,MFP Senior - Carpenter Apartments,4.637424427574759,24.363636363636363,4.41073071662117,31.09090909090909,6.75950509215793,41.0,0.844512689192702,24.575447640276963,31.065413850600546,55.64086149087751,0.0,0.7774365540364899,1.0,1.0,0.0 +55,MFP Senior - Park Terrace Congregate Apartments,45,"MFP Senior - Elizabeth Square, Waverly",18.3459383621123,24.363636363636363,4.41073071662117,29.0,9.67658842962558,40.0,0.8424799816882705,24.40213151251581,28.697845597822443,53.09997711033825,0.0,0.787600091558647,1.0,0.999370959320926,0.0006290406790739741 +55,MFP Senior - Park Terrace Congregate Apartments,47,MFP Senior - Flannery,3.525334028702802,24.363636363636363,4.41073071662117,61.72727272727273,10.1103007778296,42.0,0.8684223787828409,24.166729310261452,61.36124416828981,85.52797347855126,0.0,0.6578881060857951,1.0,1.0,0.0 +55,MFP Senior - Park Terrace Congregate Apartments,56,MFP Senior - Springview Apartments,18.133298569652425,24.363636363636363,4.41073071662117,27.583333333333332,9.31722094084958,38.0,0.8416585833783983,24.363022797976143,27.71020642502173,52.07322922299787,0.0,0.7917070831080085,1.0,0.9990789391085075,0.00092106089149251 +55,MFP Senior - Park Terrace Congregate Apartments,58,MFP Senior - Villa Serene,6.272910619491075,24.363636363636363,4.41073071662117,69.72727272727273,5.0614406860282,39.0,0.8751622883924661,24.391343221929624,69.56151726865313,93.95286049058275,0.0,0.624188558037669,1.0,1.0,0.0 +56,MFP Senior - Springview Apartments,25,MFP Nichols-The Creamery,9.179050357986888,27.583333333333332,9.31722094084958,122.4,26.4253666010521,56.0,0.9199155157574925,27.482898887975033,122.41149580889073,149.89439469686576,0.0,0.40042242121253696,0.9987899658745628,1.0,0.001210034125437247 +56,MFP Senior - Springview Apartments,45,"MFP Senior - Elizabeth Square, Waverly",0.95951840754079,27.583333333333332,9.31722094084958,29.0,9.67658842962558,57.0,0.8451901882218795,27.448669591731203,29.03906568561827,56.48773527734947,0.0,0.7740490588906022,0.9974162554122631,0.999,0.0035837445877369015 +56,MFP Senior - Springview Apartments,47,MFP Senior - Flannery,18.83513914094972,27.583333333333332,9.31722094084958,61.72727272727273,10.1103007778296,63.0,0.8719746119220965,28.110808124851612,61.85745677776894,89.96826490262055,0.0,0.6401269403895178,0.9989518777138876,1.0,0.001048122286112433 +56,MFP Senior - Springview Apartments,55,MFP Senior - Park Terrace Congregate Apartments,18.133298569652425,27.583333333333332,9.31722094084958,24.363636363636363,4.41073071662117,56.0,0.8417255616400382,27.903896438107783,24.253055611939942,52.15695205004772,0.0,0.7913721917998091,0.9985441898101756,1.0,0.0014558101898244523 +56,MFP Senior - Springview Apartments,65,MFP Van Etten,15.98768426073982,27.583333333333332,9.31722094084958,213.7,19.9613515463145,60.0,0.9599482535843799,27.729904255502117,208.38933412497505,236.11923838047716,0.01809196070000119,0.05552304647809137,0.9970284582045988,0.9793270372969494,0.023644504498451773 +57,MFP Senior - Titus Towers,12,MFP College Ithaca College,1.2126342142593374,72.8,4.31534728871525,138.33333333333334,66.1418929272515,88.0,0.9008230566304617,72.73455890158925,125.6592746911061,198.39383359269533,0.03618250640230918,0.20642466562921863,0.9999936859004108,0.9286795617092478,0.07131412419116308 +57,MFP Senior - Titus Towers,15,MFP Danby,6.74907391207574,72.8,4.31534728871525,160.22222222222223,34.5788149658782,87.0,0.9383601913390792,72.84793518758134,152.7522149197674,225.60015010734875,0.026324955466749927,0.09759939957060501,0.9999937110976516,0.9644240910123928,0.0355696200852588 +57,MFP Senior - Titus Towers,39,MFP Senior - Cayuga Meadows,4.114230439805386,72.8,4.31534728871525,25.88888888888889,3.33333333333333,89.0,0.8790001750299977,72.97345268135278,25.776766106144503,98.75021878749729,0.0,0.6049991248500107,1.0,1.0,0.0 +57,MFP Senior - Titus Towers,41,MFP Senior - Conifer Village,2.748178393541912,72.8,4.31534728871525,33.8,10.3794669098819,92.0,0.8852106929697038,72.75702829972273,33.756337912406984,106.51336621212971,0.0,0.5739465351514812,1.0,0.9995,0.0005 +57,MFP Senior - Titus Towers,46,MFP Senior - Ellis Hollow,2.5634175854556234,72.8,4.31534728871525,24.727272727272727,13.8064543536051,87.0,0.8779659815240826,72.78292203210017,24.674554873002982,97.45747690510316,0.0,0.6101700923795872,1.0,0.9654036783921354,0.034596321607864744 +57,MFP Senior - Titus Towers,61,MFP Senior - Woodsedge Apartments,7.327555558006515,72.8,4.31534728871525,17.2,4.23739962188552,91.0,0.8720803643235101,72.75371431691624,17.34674108747144,90.1004554043877,0.0,0.6395981783824493,1.0,1.0,0.0 +58,MFP Senior - Villa Serene,18,MFP Erin,9.716358981660893,69.72727272727273,5.0614406860282,173.9090909090909,27.3219858189501,85.0,0.9404152952522107,69.72033414624839,165.59723827593297,235.31757242218134,0.029899226678459023,0.058729710311274635,0.9999952909959839,0.9599551803734838,0.04004011062250012 +58,MFP Senior - Villa Serene,23,MFP Millport,10.593196325210428,69.72727272727273,5.0614406860282,166.0,36.4996194805127,84.0,0.9338181981409592,69.66185187329195,158.19618676472925,227.8580386380212,0.030292645480911092,0.08856784544791524,0.999954529189803,0.9597122187620403,0.04024231042776258 +58,MFP Senior - Villa Serene,37,MFP Senior - Bragg,3.67669488227416,69.72727272727273,5.0614406860282,66.88888888888889,6.03001750504186,86.0,0.909275467058799,69.68713469939236,66.90719912410641,136.59433382349877,0.0,0.45362266470600493,1.0,1.0,0.0 +58,MFP Senior - Villa Serene,38,MFP Senior - Carpenter Apartments,3.413257608083184,69.72727272727273,5.0614406860282,31.09090909090909,6.75950509215793,86.0,0.8805242377162789,69.60495593203053,31.05034121331813,100.65529714534865,0.0,0.5973788114186053,1.0,1.0,0.0 +58,MFP Senior - Villa Serene,47,MFP Senior - Flannery,3.820657609211378,69.72727272727273,5.0614406860282,61.72727272727273,10.1103007778296,85.0,0.9046912798600322,69.74769037549608,61.116409449544165,130.86409982504023,0.0,0.476543600699839,1.0,1.0,0.0 +58,MFP Senior - Villa Serene,55,MFP Senior - Park Terrace Congregate Apartments,6.272910619491075,69.72727272727273,5.0614406860282,24.363636363636363,4.41073071662117,89.0,0.8752966157117071,69.84872221985832,24.272047419775603,94.12076963963392,0.0,0.6235169214414643,1.0,1.0,0.0 +59,MFP Senior - Village Square/Manor,5,MFP Birnie Transportation Services,1.8200361709161552,34.25,6.48249390842192,213.375,53.4039525021991,56.0,0.8732745135144439,34.219704243325815,193.77307097510976,227.99277521843555,0.06819981666269036,0.08802889912625775,0.9999909181921229,0.9230337576540534,0.07695716053806956 +59,MFP Senior - Village Square/Manor,8,MFP Campbell,10.226626433666802,34.25,6.48249390842192,168.5,40.968946111104,57.0,0.945434723392738,34.31957766684849,166.005020895597,200.3245985624455,0.009265597160761386,0.1987016057502181,1.0,0.98938499203219,0.010615007967810043 +59,MFP Senior - Village Square/Manor,20,MFP Lamphear Court,1.038358516439775,34.25,6.48249390842192,126.0,40.6803255750109,60.0,0.9274887641165321,34.307964265329794,126.39403994374261,160.70200420907238,0.0006705245317035836,0.3571919831637104,1.0,0.9982188177480523,0.0017811822519477512 +59,MFP Senior - Village Square/Manor,42,MFP Senior - Corning Senior Center,2.2469527930463364,34.25,6.48249390842192,75.0,30.9636884107821,56.0,0.8879986709221097,34.17134039314509,75.82699825949202,109.9983386526371,0.0,0.5600066453894516,1.0,0.9928114484431176,0.007188551556882286 +59,MFP Senior - Village Square/Manor,43,MFP Senior - Dayspring,3.57013433924932,34.25,6.48249390842192,77.18181818181819,17.9489174148091,54.0,0.8895937792380911,34.28922843434001,77.70299561327384,111.99222404761386,0.0,0.5520311038095447,1.0,1.0,0.0 +60,MFP Senior - Wells Apartments,6,MFP Boys and Girls Club,2.1675518976919204,23.5,4.55216676124922,210.8,52.3551971313896,37.0,0.9042215025639603,23.609377538051618,196.61213160500387,220.22150914305547,0.044972315469052566,0.11911396342777804,0.9999547675794881,0.9510661992388971,0.048888568340591 +60,MFP Senior - Wells Apartments,19,MFP First Assembly Of God Church,2.8119927625857093,23.5,4.55216676124922,146.0,21.6459108042479,39.0,0.9349581636029229,23.562485070588714,145.13639163414052,168.69887670472923,5.861005377902381e-07,0.3252044931810831,1.0,0.9999993522362653,6.477637345948528e-07 +60,MFP Senior - Wells Apartments,26,MFP Owego VFW,15.596244120794326,23.5,4.55216676124922,176.25,34.285234033433,40.0,0.9518625360672258,23.40625651110142,173.8050327357391,197.21128924684052,0.003691559581404151,0.21115484301263787,1.0,0.9959487614961372,0.004051238503862869 +60,MFP Senior - Wells Apartments,48,MFP Senior - Harry L Apartments,1.3192042503486914,23.5,4.55216676124922,32.833333333333336,6.24232862533419,38.0,0.844803637931177,23.411883680228684,32.59266373374254,56.00454741397122,0.0,0.7759818103441151,1.0,1.0,0.0 +60,MFP Senior - Wells Apartments,51,MFP Senior - Long Meadow Senior Housing,16.230190932509878,23.5,4.55216676124922,34.75,13.0043698949098,40.0,0.8469453421700119,23.570829914680044,35.11084779783486,58.681677712514904,0.0,0.7652732891499404,1.0,0.9935,0.0065 +60,MFP Senior - Wells Apartments,52,MFP Senior - Metro Plaza Apartments,3.07802816941594,23.5,4.55216676124922,56.3,19.9167712689024,42.0,0.8638678575824226,23.26673215138383,56.56808982664431,79.83482197802813,0.0,0.6806607120878874,1.0,0.998,0.002 +60,MFP Senior - Wells Apartments,53,MFP Senior - North Shore Towers,3.334088480614027,23.5,4.55216676124922,58.333333333333336,6.86051504383355,38.0,0.8651509912955719,23.401564246051027,58.03717487341376,81.4387391194648,0.0,0.6742450435221408,1.0,1.0,0.0 +60,MFP Senior - Wells Apartments,54,"MFP Senior - Northern Broome Senior Center, Whitney Point",15.492567245080268,23.5,4.55216676124922,50.90909090909091,21.9565687002981,41.0,0.8594771964524667,23.476017544068643,50.87047802151482,74.34649556558347,0.0,0.7026140177376662,1.0,0.9927983738829036,0.0072016261170964845 +60,MFP Senior - Wells Apartments,68,MFP Whitney Point,16.87604765269892,23.5,4.55216676124922,202.54545454545453,30.4478690103713,38.0,0.9560834562544471,23.41129022986761,198.46644039988945,221.87773062975708,0.013386705155849053,0.11248907748097173,0.9999987155600728,0.9853066981188102,0.01469201744126261 +61,MFP Senior - Woodsedge Apartments,12,MFP College Ithaca College,8.160516256252258,17.2,4.23739962188552,138.33333333333334,66.1418929272515,32.0,0.9096069577370417,17.351507881669903,134.66267402373987,152.01418190540977,0.0075027423670538124,0.39194327237836096,1.0,0.9720116355726981,0.027988364427301928 +61,MFP Senior - Woodsedge Apartments,21,MFP Lansing,1.2874023513887627,17.2,4.23739962188552,181.0,23.2937759927411,36.0,0.9585834942698038,17.266528001822255,181.64201297579268,198.90854097761493,0.00033958657018011407,0.20436583608954023,1.0,0.9996316958971263,0.00036830410287369124 +61,MFP Senior - Woodsedge Apartments,29,MFP Reach for Christ Church Freeville,10.988460066901554,17.2,4.23739962188552,220.0,22.6175939382498,30.0,0.9618826602498192,17.26547018760898,215.6962065041302,232.96167669173917,0.0153041756897326,0.06815329323304331,1.0,0.9835630775076599,0.01643692249234009 +61,MFP Senior - Woodsedge Apartments,34,MFP Salvation Army Ithaca,6.624799652567899,17.2,4.23739962188552,181.1818181818182,39.5848915163808,32.0,0.9464822322600581,17.255930046754205,178.59627136313696,195.85220140989117,0.006374705542409233,0.2165911943604354,1.0,0.993190921718,0.006809078282000051 +61,MFP Senior - Woodsedge Apartments,39,MFP Senior - Cayuga Meadows,6.9066643978127,17.2,4.23739962188552,25.88888888888889,3.33333333333333,33.0,0.8345697902621839,17.298712769062817,25.913525058667098,43.212237827729915,0.0,0.8271510486890803,1.0,1.0,0.0 +61,MFP Senior - Woodsedge Apartments,41,MFP Senior - Conifer Village,7.395277151548965,17.2,4.23739962188552,33.8,10.3794669098819,31.0,0.8406191934831686,17.319804352735122,33.45418750122565,50.773991853960766,0.0,0.796904032584157,1.0,0.9995956269956981,0.0004043730043018437 +61,MFP Senior - Woodsedge Apartments,57,MFP Senior - Titus Towers,7.327555558006515,17.2,4.23739962188552,72.8,4.31534728871525,33.0,0.8720960060867253,17.28426479233024,72.8357428160764,90.12000760840665,0.0,0.6395199695663735,1.0,1.0,0.0 +63,MFP Troupsburg,36,MFP Senior - Addison Place Apartments,19.69026681157269,148.71428571428572,50.2484304422015,30.09090909090909,5.02900676982135,234.0,0.9309722887130849,147.51828350289423,29.335270421308937,176.85355392420314,0.0065690965164235445,0.2925857843031873,0.994543343042548,0.9732034972812899,0.024519686214199674 +64,MFP Tuscarora,36,MFP Senior - Addison Place Apartments,5.172850536384525,192.63636363636363,29.8639338576576,30.09090909090909,5.02900676982135,233.0,0.9571630445210271,192.53996336018574,28.1110239281017,220.65098728828744,0.01209859081850181,0.11739605084685031,0.9945384553527563,0.9379297361035529,0.05660871924920332 +65,MFP Van Etten,45,"MFP Senior - Elizabeth Square, Waverly",16.200324053199697,213.7,19.9613515463145,29.0,9.67658842962558,243.0,0.9553637296875132,213.77304492189603,24.04242426660649,237.81546918850253,0.021805403539555623,0.04873812324598987,0.9974915615658203,0.8423502360032453,0.1551413255625752 +65,MFP Van Etten,56,MFP Senior - Springview Apartments,15.98768426073982,213.7,19.9613515463145,27.583333333333332,9.31722094084958,247.0,0.9581645171559209,212.95299781895358,22.623845200296387,235.57684301924996,0.018935598287174425,0.057692627923000166,0.9986222978697614,0.8463159292093841,0.15230636866037725 +68,MFP Whitney Point,48,MFP Senior - Harry L Apartments,15.96939470304803,202.54545454545453,30.4478690103713,32.833333333333336,6.24232862533419,234.0,0.9450987467980008,200.7959988535992,28.63058462086558,229.42658347446476,0.024026574988481878,0.08229366610214091,0.9905398626351604,0.8772059865507436,0.1135088641807078 +68,MFP Whitney Point,60,MFP Senior - Wells Apartments,16.87604765269892,202.54545454545453,30.4478690103713,23.5,4.55216676124922,238.0,0.9571221984285616,200.05055395051318,21.74456459228217,221.7951185427954,0.012696185253546667,0.11281952582881852,0.9934789092932628,0.9275456911378226,0.06593321815544015 +69,MFP Windsor,44,MFP Senior - East Hill Senior Living,14.215724264291934,200.9090909090909,34.8954281975578,39.833333333333336,2.16724933890169,219.0,0.9297187954680582,193.7656511167687,36.72787763560192,230.49352875237062,0.03417251720864884,0.07802588499051753,0.9733930209424343,0.9231313390179732,0.051422858892545546 +69,MFP Windsor,50,MFP Senior - Lincoln Court,14.510764082261073,200.9090909090909,34.8954281975578,26.0,4.89897948556636,237.0,0.9464011221716473,197.9911686202582,23.27842987046033,221.26959849071855,0.019134097888079713,0.11492160603712574,0.9895414756554091,0.9030310460987526,0.08657066430333085 +70,MFP Woodhull,36,MFP Senior - Addison Place Apartments,10.29220298993454,176.0,63.5438288256081,30.09090909090909,5.02900676982135,234.0,0.9100952066649615,169.5550680322242,27.037657163839626,196.5927251960638,0.02948685843243099,0.21362909921574477,0.9769248549678711,0.9072260834148612,0.07300481595935156 diff --git a/data/p3_kmin_data.csv b/data/p3_kmin_data.csv new file mode 100644 index 0000000..db60790 --- /dev/null +++ b/data/p3_kmin_data.csv @@ -0,0 +1,92 @@ +k_min,effectiveness,min_eff,bottom10_eff,gini_eff,std_eff,unmet,waste,total_served,total_demand,serve_ratio,total_visits_allocated,pair_trips,total_trips,n_total_guess +1.0,0.6740723786885516,0.0,0.0,0.3217202192552402,0.43656031934945183,6020.289385111637,36176.24303967647,147723.2768683165,102473.0,1.4415824350640314,838,108,730,838 +1.1,0.6722177485654618,0.0,0.0,0.3237898270037862,0.4381964050059289,6134.933288588227,36010.11976628754,147945.03797284796,102473.0,1.4437465280888426,836,106,730,836 +1.2000000000000002,0.6704958056643757,0.0,0.0,0.3252720980781685,0.43767064228245295,6134.628433322902,35851.698318827875,148087.79720977912,102473.0,1.445139668105541,836,106,730,836 +1.3000000000000003,0.6695095925793307,0.0,0.0,0.3265198171690131,0.4390762580089967,6194.792025406361,35791.54530474273,148141.2688314323,102473.0,1.4456614799160004,835,105,730,835 +1.4000000000000004,0.6694339654873941,0.0,0.0,0.3265802483202278,0.43905148544927036,6228.20708270612,36000.81452945016,147931.99960672486,102473.0,1.4436192910007988,834,104,730,834 +1.5000000000000004,0.6636484657996786,0.0,0.0,0.3326203421528935,0.4436320259876694,6356.091273608803,36333.108762277174,147589.4830348685,102473.0,1.440276785444639,832,102,730,832 +1.6000000000000005,0.6674208779059524,0.0,0.0,0.3293309386901855,0.4449673364402397,6234.590067200417,36320.201836248496,147631.90110044152,102473.0,1.4406907292695785,833,103,730,833 +1.7000000000000006,0.677206085721042,0.0,0.0,0.3193836926435514,0.43808481522067905,5912.781858506872,36354.762090768185,147728.00500309057,102473.0,1.4416285753621985,838,108,730,838 +1.8000000000000007,0.6853909571528494,0.0,0.0,0.31023826446319225,0.4308742949819052,5630.1359189478335,36483.523227618854,147537.6525628842,102473.0,1.4397709890691617,842,112,730,842 +1.9000000000000008,0.6890401314655326,0.0,0.0,0.3062024543978086,0.427646944020185,5393.962361226006,36534.7334051381,147536.0728234961,102473.0,1.4397555729167302,848,118,730,848 +2.000000000000001,0.6916342987650869,0.0,0.0,0.30285566345045,0.4237753393873303,5226.963307492039,36417.396480255346,147694.8974979497,102473.0,1.4413054902066857,855,125,730,855 +2.100000000000001,0.6916342987650869,0.0,0.0,0.30285566345045,0.4237753393873303,5226.963307492039,36243.39825347202,147868.89572473304,102473.0,1.443003481158286,855,125,730,855 +2.200000000000001,0.6916342987650869,0.0,0.0,0.30285566345045,0.4237753393873303,5241.751256285928,36282.267759646194,147821.23826976496,102473.0,1.4425384078709997,854,124,730,854 +2.300000000000001,0.689742345332021,0.0,0.0,0.3052835506806135,0.42655395722447487,5274.6871545285085,36319.739718309014,147783.79747865337,102473.0,1.442173035615756,853,123,730,853 +2.4000000000000012,0.688248360925854,0.0,0.0,0.30553469184828663,0.4221237318113932,5366.086641321199,36189.79208030942,147634.20280955738,102473.0,1.440713190884988,853,124,729,854 +2.5000000000000013,0.6848290989216977,0.0,0.0,0.3093208490891366,0.42515345580679914,5472.22950054102,36281.72441598971,147799.44228348258,102473.0,1.442325708074152,854,124,730,854 +2.6000000000000014,0.6896535071313614,0.0,0.0,0.305304325597086,0.4270116708887982,5352.72050226549,36516.254106924214,147594.42373209246,102473.0,1.440325000069213,855,125,730,855 +2.7000000000000015,0.6985110166730488,0.0,0.0,0.29670683697586453,0.4221335041512494,5025.3870274202345,36686.51116283028,147477.51989743143,102473.0,1.4391841743428164,858,128,730,858 +2.8000000000000016,0.7100761581874693,0.0,0.0,0.2831113409660537,0.40856678154890197,4742.678752758735,36978.4427807813,147188.4850911636,102473.0,1.4363635795884144,862,132,730,862 +2.9000000000000017,0.7198705386798687,0.0,0.0,0.271575294485249,0.39776035729469933,4506.474027485676,36974.56304216336,147242.02643546386,102473.0,1.4368860717990481,868,138,730,868 +3.0000000000000018,0.7314298778470564,0.0,0.033766076722152795,0.25638144882241276,0.3805459043648514,4339.474973751709,36857.22611728063,147400.8511099175,102473.0,1.438435989089004,875,145,730,875 +3.100000000000002,0.7252752990058506,0.0,0.017169732492595333,0.26395202440891885,0.388378191123884,4464.487061818893,36567.79239401148,147629.21302946407,102473.0,1.4406644972769809,871,141,730,871 +3.200000000000002,0.7204285472205735,0.0,0.017169732492595333,0.2689724725768716,0.3922194812375008,4497.631473754569,36589.067808291344,147607.9376151842,102473.0,1.4404568775695472,870,140,730,870 +3.300000000000002,0.7242550778657342,0.0,0.017169732492595333,0.2646652350651417,0.3877456740629719,4449.8452916156375,36632.053513103245,147573.77102671744,102473.0,1.4401234571713275,872,142,730,872 +3.400000000000002,0.7177542121976923,0.0,0.017169732492595333,0.27143994765260526,0.3938203358062794,4631.229278882666,36563.57373724476,147632.99067575324,102473.0,1.440701362073456,871,141,730,871 +3.500000000000002,0.7177542121976923,0.0,0.017169732492595333,0.27143994765260526,0.3938203358062794,4631.229278882666,36720.63542345697,147475.92898954102,102473.0,1.4391686492006774,871,141,730,871 +3.6000000000000023,0.7187617714834224,0.0,0.007007234874695632,0.2719009177667593,0.3979241974558004,4602.763774059581,37000.92013243452,147216.36747131392,102473.0,1.4366356744831703,870,140,730,870 +3.7000000000000024,0.7273028122198695,0.0,0.0,0.26475321252765904,0.3954021490716001,4295.125219300304,37256.261168024226,147100.47854168684,102473.0,1.4355047528781908,873,143,730,873 +3.8000000000000025,0.7390472617564016,0.0,0.017169732492595333,0.25118008620036325,0.38163389437899137,4027.204893432692,37595.756262237905,146755.09231036244,102473.0,1.4321342432676163,876,146,730,876 +3.9000000000000026,0.7540293018072356,0.0,0.04731511280749442,0.23409057177925274,0.36509407900062024,3791.000168159633,37683.34018197474,146983.84876694123,102473.0,1.4343666016115584,883,152,731,882 +4.000000000000003,0.7685014722164484,0.0,0.09773300593223486,0.21604381186712707,0.3437213966754365,3623.9575213643493,37558.28893264284,147150.38776584403,102473.0,1.4359918004337147,890,159,731,889 +4.100000000000003,0.7693787970682873,0.08580453583003264,0.11027751619063263,0.214422421135964,0.34125675879485917,3620.3065798964253,37060.58980645669,147416.73783349807,102473.0,1.4385910223522105,890,160,730,890 +4.200000000000003,0.7583063449505908,0.0,0.09773300593223486,0.22450364811434498,0.3480286798472576,3870.914606123618,37191.316644841485,147274.42086249572,102473.0,1.4372021982619394,886,156,730,886 +4.3000000000000025,0.7613841665242425,0.08580453583003264,0.10685164245791927,0.2218590487710259,0.3462916785749853,3846.39442834506,36960.97265607414,147466.7024217918,102473.0,1.4390786101879693,887,157,730,887 +4.400000000000003,0.7613269409178632,0.08580453583003264,0.10685164245791927,0.22191116016014,0.34633610179754637,3851.3981612466637,36939.98098086362,147487.69409700233,102473.0,1.4392834609799883,888,158,730,888 +4.5000000000000036,0.7592468472390332,0.08580453583003264,0.10214873974979818,0.22457416019921816,0.34976586136098775,3875.118560622251,37178.74741098417,147236.25086056747,102473.0,1.436829709880334,887,157,730,887 +4.600000000000003,0.7589806105177003,0.0,0.0847137765296161,0.22636463945492125,0.3542417265451027,3822.32682950495,37399.49386433039,147045.01554676561,102473.0,1.4349635079168719,887,157,730,887 +4.700000000000003,0.7617608488270767,0.0,0.06572328094203966,0.22635980549379564,0.35942010924932244,3567.6249940327316,37761.768346579614,146804.61727289128,102473.0,1.4326175409414312,887,157,730,887 +4.800000000000003,0.7781921610034352,0.0,0.07007397305625625,0.20947583678434456,0.3426573389160954,3251.9496535774197,37932.03874846048,146887.24368269357,102473.0,1.4334238646540414,893,162,731,892 +4.900000000000004,0.7905533262386106,0.0,0.1140453817749449,0.19482523529477258,0.3232459377222856,3072.945088414577,37802.57166889043,147114.05094684858,102473.0,1.4356372014759848,900,169,731,899 +5.0000000000000036,0.8063524174616191,0.0878115718087844,0.19629873813053836,0.17656566834083787,0.2996060193495954,2906.7048363821605,37677.52041955852,147280.5899457514,102473.0,1.437262400298141,907,176,731,906 +5.100000000000003,0.8083175933810728,0.13969065669623595,0.21595049732507504,0.17379113571015115,0.29530682472249453,2891.916887588272,37471.22489073447,147282.245371764,102473.0,1.4372785550512233,907,177,730,907 +5.200000000000004,0.8067111746070708,0.13969065669623595,0.21595049732507504,0.17496077561101275,0.29581010319036494,2954.4561779246887,37577.63413353803,147133.29683862402,102473.0,1.4358250157468213,906,176,730,906 +5.300000000000004,0.8048048676551554,0.13969065669623595,0.21595049732507504,0.17687897256580087,0.29840831627421716,2994.321822056623,37459.88846701144,147211.604912624,102473.0,1.4365891982534327,905,175,730,905 +5.400000000000004,0.8001843293019237,0.13969065669623595,0.21595049732507504,0.1806239013248363,0.30141068072479216,3131.74958339343,37340.8478087531,147320.30322509888,102473.0,1.4376499490119239,904,174,730,904 +5.5000000000000036,0.8001843293019237,0.13969065669623595,0.21595049732507504,0.1806239013248363,0.30141068072479216,3131.74958339343,37565.616225893405,146845.53480795858,102473.0,1.433016841587136,903,174,729,904 +5.600000000000004,0.8006660544756361,0.13969065669623595,0.21595049732507504,0.18024152397150406,0.3011104384379928,3115.608843165862,37802.80782982654,145887.8543435698,102473.0,1.4236711557539041,900,174,726,904 +5.700000000000005,0.8085043708763061,0.0878115718087844,0.19629873813053836,0.17566182129872776,0.3021532217248958,2813.0271898563856,37992.70712775607,146819.83125401512,102473.0,1.4327660091342609,908,178,730,908 +5.800000000000004,0.8233002201989894,0.13969065669623595,0.22186454748544399,0.160882611226824,0.28422107953713327,2509.6240719584775,38063.97438959663,146701.4958484458,102473.0,1.4316112131824559,913,183,730,913 +5.900000000000004,0.8356354619761441,0.13969065669623595,0.2677345280655274,0.14782744454080232,0.2648939166362586,2330.7019037034606,37932.98223127127,146929.79702380486,102473.0,1.4338391285880656,920,190,730,920 +6.000000000000004,0.8493853546559438,0.2844197980177543,0.35432079558183843,0.1322419622096782,0.2400711810795258,2196.644632937205,37807.93098193936,147096.33602270763,102473.0,1.4354643274102215,927,197,730,927 +6.100000000000005,0.8493853546559438,0.2844197980177543,0.35432079558183843,0.1322419622096782,0.2400711810795258,2196.644632937205,37750.491952534365,147150.97286828895,102473.0,1.4359975102543008,926,196,730,926 +6.200000000000005,0.8452475636118361,0.22537388617054127,0.3346690363873018,0.13613605006405027,0.24457978884807166,2280.630373451326,37683.99513966863,147199.48394064052,102473.0,1.4364709137103484,924,194,730,924 +6.300000000000004,0.8452475636118361,0.22537388617054127,0.3346690363873018,0.13613605006405027,0.24457978884807166,2280.630373451326,37729.24732693835,147117.65980497614,102473.0,1.435672419124805,924,194,730,924 +6.400000000000005,0.8394059021948915,0.22537388617054127,0.3202455310980886,0.14171278586749914,0.2519176464415909,2333.5934857336033,38063.08344497489,146832.80085900193,102473.0,1.4328925752051949,921,191,730,921 +6.500000000000005,0.8313909490784981,0.22537388617054127,0.2842756263641339,0.1500663274324241,0.2637651054213871,2482.39997848706,38321.968817794914,146497.5647498637,102473.0,1.4296211172685849,917,187,730,917 +6.600000000000005,0.8384742278728325,0.22537388617054127,0.3100824304823972,0.14253873319452137,0.25239561361599877,2400.2996923537567,38379.09227011349,146489.9754315522,102473.0,1.429547055629797,921,191,730,921 +6.700000000000005,0.8464288776153129,0.22537388617054127,0.3100824304823972,0.1375251693120152,0.2531838008876674,2128.655344278889,38151.12439147372,146789.8857307061,102473.0,1.4324737807101002,926,196,730,926 +6.800000000000005,0.8572396492452687,0.2307258469995803,0.33531378930542327,0.127465676345206,0.24027825495576688,1966.0829456649788,38308.49979583387,146373.86701966915,102473.0,1.4284139921703196,929,199,730,929 +6.900000000000006,0.8694766253125472,0.2844197980177543,0.38906166074655557,0.11492378882473853,0.21926084592904796,1787.1564581158805,38142.244695321184,146607.24500555737,102473.0,1.4306914504850778,936,206,730,936 +7.000000000000005,0.8823020879874417,0.364767680258805,0.46751062730617027,0.1014886955901122,0.19563957609799948,1652.7458770897342,38013.53338217175,146777.4440682777,102473.0,1.4323523666553892,943,213,730,943 +7.100000000000005,0.8802654930016758,0.364767680258805,0.46751062730617027,0.10316666884165282,0.19840502200845703,1684.280913220463,37596.922522595334,146996.26699034407,102473.0,1.4344877869325976,941,211,730,941 +7.2000000000000055,0.8781414862386119,0.364767680258805,0.448560352831529,0.10557600414027557,0.20277359612941548,1717.301403641385,37390.95470114173,147192.01247276829,102473.0,1.436398002134887,939,209,730,939 +7.300000000000006,0.8781667280009705,0.364767680258805,0.4483517369146842,0.10557109995590874,0.2028222208179023,1702.1396147154946,37664.600666481776,146780.99064745405,102473.0,1.4323869765445927,938,208,730,938 +7.400000000000006,0.8744009599469025,0.364767680258805,0.4483517369146842,0.10780768806855878,0.20254949938231437,1798.2968915278636,37904.73585573689,146890.32671691084,102473.0,1.4334539509618225,939,209,730,939 +7.500000000000005,0.8724059917322737,0.36293620053229814,0.4286999777201475,0.1101117507764644,0.20678066404172663,1812.4137040290675,38027.73491387723,146758.53970997658,102473.0,1.4321678852963862,938,208,730,938 +7.600000000000006,0.8742437763973652,0.364767680258805,0.448560352831529,0.10788263860748004,0.20248333708526917,1801.6505368351038,38164.14610000826,146853.53838077962,102473.0,1.4330949457982065,940,210,730,940 +7.700000000000006,0.8831754808484038,0.364767680258805,0.448560352831529,0.10239976996100886,0.2028232306361744,1514.671081666199,38012.89928803379,146648.32976003454,102473.0,1.4310923829695095,943,213,730,943 +7.800000000000006,0.8951090775668794,0.364767680258805,0.45522357907817856,0.09287036908073443,0.19124978727774095,1292.9680492915168,38139.15303686369,146317.7153291883,102473.0,1.4278660264575869,946,216,730,946 +7.900000000000006,0.9069990898180242,0.4291489393392728,0.5125267743885675,0.0811089486239982,0.16859253018922998,1118.1205559269174,37959.84437211777,146550.0661784029,102473.0,1.4301334612864158,953,223,730,953 +8.000000000000007,0.9190762963107236,0.49799810876464895,0.5864881092912383,0.06951534424276873,0.14641352252882384,987.0112644017943,38083.49686054857,146467.90143954303,102473.0,1.4293316428673215,959,229,730,959 +8.100000000000007,0.9190762963107236,0.49799810876464895,0.5864881092912383,0.06951534424276873,0.14641352252882384,987.0112644017943,37729.65365211102,146321.74464798055,102473.0,1.4279053472424985,957,229,728,959 +8.200000000000006,0.9169170517572199,0.49799810876464895,0.5668363500967015,0.0717322084637051,0.1510420655989019,1005.1861075554783,37815.870993188066,146726.73935810965,102473.0,1.431857556215878,958,228,730,958 +8.300000000000006,0.9165292275999608,0.49836778301281837,0.5863337994744384,0.0711345380812054,0.14711522481193245,1063.0270429524007,37734.738634345194,146831.52675038922,102473.0,1.4328801416020729,958,228,730,958 +8.400000000000006,0.9121447362660413,0.49836778301281837,0.5479008362442345,0.07550358327540274,0.15568570853899102,1145.0561367703046,37990.07750571951,146928.29458521598,102473.0,1.4338244667884805,958,228,730,958 +8.500000000000007,0.9123225999808005,0.48565026807438816,0.5486543907389779,0.07539595914881692,0.15570007374268066,1160.3982478225657,37937.74247261302,146766.7956589762,102473.0,1.4322484523628292,957,227,730,957 +8.600000000000007,0.9121690660740657,0.48565026807438816,0.5486015801320966,0.07549409899666193,0.15571945197450124,1164.7720203883007,38291.842274589835,146659.82481271515,102473.0,1.4312045593738365,959,229,730,959 +8.700000000000006,0.9153834239714527,0.48565026807438816,0.5289498209375599,0.07428739840823728,0.15996185164021415,1037.1901800554754,38230.6662221282,146384.1050621949,102473.0,1.4285139018297004,960,230,730,960 +8.800000000000008,0.926567275724005,0.49799810876464895,0.5864881092912383,0.06443472728477384,0.1433075882204532,858.078237769703,38634.264436292986,145981.92633840605,102473.0,1.424589173132494,964,234,730,964 +8.900000000000007,0.9380464987394858,0.5738780806607914,0.6318959098267288,0.05401584720209618,0.12254122329078738,683.2687389515884,38653.607527383,146005.61233552406,102473.0,1.424820316917862,970,240,730,970 +9.000000000000007,0.947530186726669,0.6208373869044782,0.6651578258489953,0.0458964124705743,0.10818973566911046,579.827945053232,38766.05325597971,145925.8664077044,102473.0,1.4240421028729948,975,245,730,975 +9.100000000000007,0.9473183925162697,0.6208373869044782,0.6651578258489953,0.046050398729643005,0.10837968512832687,579.74234019446,38590.59258551186,146101.3270781722,102473.0,1.425754365327181,974,244,730,974 +9.200000000000006,0.9469914974140063,0.6208373869044782,0.6651578258489953,0.046222315813837955,0.10802088638301069,580.3705946643179,38421.242518954496,146270.67714472956,102473.0,1.4274069964256884,974,244,730,974 +9.300000000000008,0.9450484275084066,0.6179377009729412,0.6611825372870416,0.047855433199638364,0.11067147449405357,620.9471786101155,38693.752143827856,145970.79482814873,102473.0,1.4244805444180295,970,240,730,970 +9.400000000000007,0.9452856824232523,0.6179377009729412,0.6612416404096987,0.047687152984716485,0.1104864004637672,626.1874474090306,38693.58420043615,146481.08637094568,102473.0,1.4294603102372887,974,242,732,972 +9.500000000000007,0.9477566261585413,0.6208373869044782,0.6789226882897211,0.04546550639241187,0.10576972009654512,610.6758470808943,38510.110583921174,146168.604451017,102473.0,1.4264109028819005,975,245,730,975 +9.600000000000009,0.9442748717498353,0.6193875439387098,0.6614021495228591,0.048275760829639136,0.11017815617813613,635.6388295179536,38644.65524949006,146304.52236946733,102473.0,1.4277372807419255,975,244,731,974 +9.700000000000008,0.9437662966588594,0.5004985148940551,0.6417503903283225,0.049524815495458174,0.1168002856957197,617.2476123646618,39066.366294806234,145633.2211670775,102473.0,1.4211862750878526,974,244,730,974 +9.800000000000008,0.9466719562454651,0.5004985148940551,0.665316256538013,0.04690996405545245,0.11159293668906929,553.4964046993778,39541.132641578566,145121.05027116384,102473.0,1.416188169285215,975,245,730,975 +9.900000000000007,0.9589678423879959,0.5004985148940551,0.7178027992406258,0.036413858658215004,0.09365152180828752,382.69953266702566,39448.39835467144,145026.06438831924,102473.0,1.4152612335768373,981,252,729,982 +10.000000000000007,0.9686787026271481,0.638060829255812,0.77246983431715,0.027849769046894846,0.07373783517888713,284.44793034421787,39587.12965084927,145168.54241184186,102473.0,1.4166516293252063,987,257,730,987 diff --git a/data/p3_kmin_effectiveness.png b/data/p3_kmin_effectiveness.png new file mode 100644 index 0000000000000000000000000000000000000000..d1e397e7c04ba6a2627ca7743ffbd8380180edc1 GIT binary patch literal 235418 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

v7qi4CLI=zMFlBp0mI>nYbhrWvx5!1X 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

F=Sft1PpUjzis}(EBuT+DPpxx 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 literal 0 HcmV?d00001 diff --git a/data/p3_kmin_pairs.csv b/data/p3_kmin_pairs.csv new file mode 100644 index 0000000..0b45184 --- /dev/null +++ b/data/p3_kmin_pairs.csv @@ -0,0 +1,27 @@ +site_i_idx,site_i_name,site_j_idx,site_j_name,distance_miles,mu_i,sigma_i,mu_j,sigma_j,q_opt,score_mean,served_i_mean,served_j_mean,served_total_mean,unmet_mean,waste_mean,ratio_i_mean,ratio_j_mean,fairness_mean,pair_count +7,MFP Bradford,40,MFP Senior - CFS Lakeview,11.76921918626308,122.27272727272728,29.7425315300864,112.0,15.563490039905,184.0,0.9428869758435676,122.25498527814786,105.3741322184006,227.62911749654845,0.0245101988460443,0.0894835300138062,0.9990972042500004,0.9441164351469572,0.0550585860376161,11 +20,MFP Lamphear Court,43,MFP Senior - Dayspring,2.5388276228095874,126.0,40.6803255750109,77.18181818181819,17.9489174148091,209.0,0.9417319305889976,125.2536380858632,73.67629766238196,198.92993574824516,0.010882511255999,0.2042802570070193,0.9975753346750716,0.96892092605832,0.0307046476592066,10 +15,MFP Danby,57,MFP Senior - Titus Towers,6.74907391207574,160.22222222222223,34.5788149658782,72.8,4.31534728871525,190.0,0.9386917705052576,156.90304496212124,69.19779172023146,226.10083668235268,0.0263680617753903,0.0955966532705892,0.9819261875976928,0.9524403721601729,0.0323828947559224,9 +58,MFP Senior - Villa Serene,23,MFP Millport,10.593196325210428,69.72727272727273,5.0614406860282,166.0,36.4996194805127,84.0,0.9338181981409592,69.66185187329195,158.19618676472925,227.8580386380212,0.030292645480911,0.0885678454479152,0.999954529189803,0.9597122187620404,0.0402423104277625,9 +52,MFP Senior - Metro Plaza Apartments,14,MFP Conklin- Maines Community Center,4.971710797175927,56.3,19.9167712689024,153.16666666666666,20.1125620325993,114.0,0.9614448925652858,56.134920404051805,151.73568494851176,207.8706053525636,0.0030322448229782,0.1685175785897456,0.995351942612302,0.995514771549426,0.0090933662751668,8 +18,MFP Erin,47,MFP Senior - Flannery,12.463935572449168,173.9090909090909,27.3219858189501,61.72727272727273,10.1103007778296,215.0,0.9518261130996396,173.78074383378473,56.36340452390987,230.14414835769463,0.0201807534915724,0.0794234065692216,0.9967743078990589,0.9264515396633294,0.0704809134935804,8 +19,MFP First Assembly Of God Church,44,MFP Senior - East Hill Senior Living,2.909892189220507,146.0,21.6459108042479,39.833333333333336,2.16724933890169,213.0,0.9487649930999984,146.1592916414775,39.86564413193418,186.0249357734117,3.434719920681324e-05,0.2559002569063532,0.999979440137201,0.9998999328210344,8.305258300460189e-05,8 +14,MFP Conklin- Maines Community Center,53,MFP Senior - North Shore Towers,4.71565048597784,153.16666666666666,20.1125620325993,58.333333333333336,6.86051504383355,202.0,0.967323217612732,153.16748725169143,58.222339029392096,211.38982628108351,0.0011179021325842,0.1544406948756659,0.9997651519565478,0.9962419469840804,0.0035724909179595,7 +21,MFP Lansing,41,MFP Senior - Conifer Village,6.107874800160203,181.0,23.2937759927411,33.8,10.3794669098819,233.0,0.96518810029574,180.5999985159279,32.66221052848747,213.26220904441536,0.0033885418373702,0.1469511638223385,0.9997629580990872,0.9799437603770594,0.0198459971043055,7 +56,MFP Senior - Springview Apartments,65,MFP Van Etten,15.98768426073982,27.583333333333332,9.31722094084958,213.7,19.9613515463145,60.0,0.95994825358438,27.729904255502117,208.38933412497505,236.11923838047716,0.0180919607000011,0.0555230464780913,0.9970284582045988,0.9793270372969494,0.0236445044984517,7 +18,MFP Erin,38,MFP Senior - Carpenter Apartments,11.351845173577209,173.9090909090909,27.3219858189501,31.09090909090909,6.75950509215793,232.0,0.9596543054737808,174.75971286597905,30.63486464514537,205.3945775111244,0.0029133478344492,0.1784216899555023,0.9991448032866024,0.9833982853535616,0.0157876889920745,7 +45,"MFP Senior - Elizabeth Square, Waverly",65,MFP Van Etten,16.200324053199697,29.0,9.67658842962558,213.7,19.9613515463145,57.0,0.9575306805051936,28.932857648259983,207.86708464280983,236.79994229106984,0.0199432958297887,0.0528002308357206,0.999417288108808,0.9771252086948627,0.0233685686907207,7 +64,MFP Tuscarora,36,MFP Senior - Addison Place Apartments,5.172850536384525,192.63636363636363,29.8639338576576,30.09090909090909,5.02900676982135,233.0,0.9571630445210272,192.53996336018577,28.1110239281017,220.65098728828744,0.0120985908185018,0.1173960508468503,0.9945384553527564,0.9379297361035528,0.0566087192492033,7 +51,MFP Senior - Long Meadow Senior Housing,26,MFP Owego VFW,1.084296011715769,34.75,13.0043698949098,176.25,34.285234033433,75.0,0.9519792196656196,34.48286887986591,172.9413445528889,207.4242134327548,0.0087250944253651,0.1703031462689808,0.9963411468595392,0.9895484339730172,0.0141104191674435,7 +59,MFP Senior - Village Square/Manor,8,MFP Campbell,10.226626433666802,34.25,6.48249390842192,168.5,40.968946111104,57.0,0.945434723392738,34.31957766684849,166.005020895597,200.3245985624455,0.0092655971607613,0.1987016057502181,1.0,0.98938499203219,0.01061500796781,7 +8,MFP Campbell,42,MFP Senior - Corning Senior Center,12.473579226713138,168.5,40.968946111104,75.0,30.9636884107821,248.0,0.8940926170580517,166.40521210206353,59.56367058819695,225.96888269026047,0.054176555683848,0.096124469238958,0.9984274250036131,0.817411946946492,0.1810154780571212,7 +49,MFP Senior - Jefferson Village,4,MFP Beaver Dams,12.76809179930506,24.818181818181817,2.78633026822672,170.7,28.7906234736241,35.0,0.9541130470769168,24.876624785335387,170.89326699128202,195.76989177661744,0.0015642914652357,0.2169204328935303,1.0,0.9982673733666096,0.0017326266333905,6 +39,MFP Senior - Cayuga Meadows,21,MFP Lansing,5.619262046423938,25.88888888888889,3.33333333333333,181.0,23.2937759927411,38.0,0.9635822985614684,25.940284344595877,180.6618705898014,206.60215493439725,0.0010621408662808,0.1735913802624109,1.0,0.9988153083219709,0.001184691678029,5 +68,MFP Whitney Point,60,MFP Senior - Wells Apartments,16.87604765269892,202.54545454545453,30.4478690103713,23.5,4.55216676124922,238.0,0.9571221984285616,200.0505539505132,21.74456459228217,221.7951185427954,0.0126961852535466,0.1128195258288185,0.9934789092932628,0.9275456911378226,0.0659332181554401,5 +48,MFP Senior - Harry L Apartments,26,MFP Owego VFW,16.915448371143015,32.833333333333336,6.24232862533419,176.25,34.285234033433,51.0,0.9557506491221164,32.967065793811216,175.59195315480338,208.5590189486146,0.0069353537729846,0.1657639242055417,1.0,0.9920687776161624,0.0079312223838376,5 +23,MFP Millport,55,MFP Senior - Park Terrace Congregate Apartments,15.115694505719103,166.0,36.4996194805127,24.363636363636363,4.41073071662117,239.0,0.948162717900407,166.58653630344105,23.67680631426951,190.26334261771052,0.0025299726211009,0.2389466295291578,0.9990836602507632,0.981692921114046,0.0174039050195892,5 +69,MFP Windsor,50,MFP Senior - Lincoln Court,14.510764082261073,200.9090909090909,34.8954281975578,26.0,4.89897948556636,237.0,0.9464011221716472,197.9911686202582,23.27842987046033,221.26959849071855,0.0191340978880797,0.1149216060371257,0.9895414756554092,0.9030310460987526,0.0865706643033308,5 +46,MFP Senior - Ellis Hollow,34,MFP Salvation Army Ithaca,2.3921824800166336,24.727272727272727,13.8064543536051,181.1818181818182,39.5848915163808,69.0,0.9461425904751966,24.60395402465814,177.22230271238274,201.8262567370409,0.0095740093215226,0.1926949730518365,0.9559781794865208,0.9891674250122044,0.0547537283644393,5 +29,MFP Reach for Christ Church Freeville,61,MFP Senior - Woodsedge Apartments,10.988460066901554,220.0,22.6175939382498,17.2,4.23739962188552,244.0,0.962586600279761,217.59971016858316,14.787948793888864,232.387658962472,0.0145772043063853,0.070449364150112,0.993904404447825,0.871430362462156,0.122474041985669,4 +20,MFP Lamphear Court,42,MFP Senior - Corning Senior Center,1.2156460766066033,126.0,40.6803255750109,75.0,30.9636884107821,227.0,0.9302798578553,127.56628346264212,70.70067791416179,198.2669613768039,0.0177085695288394,0.2069321544927843,0.9986662140788032,0.9409016797571024,0.0593355807387992,2 +47,MFP Senior - Flannery,37,MFP Senior - Bragg,0.9136830730627136,61.72727272727273,10.1103007778296,66.88888888888889,6.03001750504186,99.0,0.9028897915279448,61.641667869309266,66.97057154062155,128.6122394099308,0.0,0.4855510423602767,1.0,1.0,0.0,1 diff --git a/data/p3_kmin_sites.csv b/data/p3_kmin_sites.csv new file mode 100644 index 0000000..fe6826d --- /dev/null +++ b/data/p3_kmin_sites.csv @@ -0,0 +1,71 @@ +site_idx,site_name,total_visits_allocated,single_visits,paired_first,paired_second,paired_total +1,MFP American Legion - Binghamton,17,17,0,0,0 +2,MFP Avoca,26,26,0,0,0 +3,MFP Bath,22,22,0,0,0 +4,MFP Beaver Dams,14,8,0,6,6 +5,MFP Birnie Transportation Services,14,14,0,0,0 +6,MFP Boys and Girls Club,16,16,0,0,0 +7,MFP Bradford,12,1,11,0,11 +8,MFP Campbell,16,2,7,7,14 +9,MFP Canisteo,15,15,0,0,0 +10,MFP Colesville,18,18,0,0,0 +11,MFP College Corning Community College,13,13,0,0,0 +12,MFP College Ithaca College,12,12,0,0,0 +13,MFP College TC3 -College,14,14,0,0,0 +14,MFP Conklin- Maines Community Center,15,0,7,8,15 +15,MFP Danby,13,4,9,0,9 +16,MFP Deposit,15,15,0,0,0 +17,MFP Endwell United Methodist Church,24,24,0,0,0 +18,MFP Erin,15,0,15,0,15 +19,MFP First Assembly Of God Church,15,7,8,0,8 +20,MFP Lamphear Court,12,0,12,0,12 +21,MFP Lansing,16,4,7,5,12 +22,MFP Lindley,18,18,0,0,0 +23,MFP Millport,14,0,5,9,14 +24,MFP Montour Falls-Schuyler County Human Services Complex,14,14,0,0,0 +25,MFP Nichols-The Creamery,8,8,0,0,0 +26,MFP Owego VFW,16,4,0,12,12 +27,MFP Prattsburgh,14,14,0,0,0 +28,MFP Rathbone,21,21,0,0,0 +29,MFP Reach for Christ Church Freeville,17,13,4,0,4 +30,MFP Redeemer Lutheran Church,18,18,0,0,0 +31,MFP Rehoboth Deliverance Ministry,18,18,0,0,0 +32,MFP Richford,21,21,0,0,0 +33,MFP Saint Mary Recreation Center,13,13,0,0,0 +34,MFP Salvation Army Ithaca,16,11,0,5,5 +35,MFP Schuyler Outreach,10,10,0,0,0 +36,MFP Senior - Addison Place Apartments,7,0,0,7,7 +37,MFP Senior - Bragg,8,7,0,1,1 +38,MFP Senior - Carpenter Apartments,7,0,0,7,7 +39,MFP Senior - Cayuga Meadows,5,0,5,0,5 +40,MFP Senior - CFS Lakeview,11,0,0,11,11 +41,MFP Senior - Conifer Village,7,0,0,7,7 +42,MFP Senior - Corning Senior Center,9,0,0,9,9 +43,MFP Senior - Dayspring,10,0,0,10,10 +44,MFP Senior - East Hill Senior Living,8,0,0,8,8 +45,"MFP Senior - Elizabeth Square, Waverly",7,0,7,0,7 +46,MFP Senior - Ellis Hollow,5,0,5,0,5 +47,MFP Senior - Flannery,9,0,1,8,9 +48,MFP Senior - Harry L Apartments,5,0,5,0,5 +49,MFP Senior - Jefferson Village,6,0,6,0,6 +50,MFP Senior - Lincoln Court,5,0,0,5,5 +51,MFP Senior - Long Meadow Senior Housing,7,0,7,0,7 +52,MFP Senior - Metro Plaza Apartments,8,0,8,0,8 +53,MFP Senior - North Shore Towers,7,0,0,7,7 +54,"MFP Senior - Northern Broome Senior Center, Whitney Point",8,8,0,0,0 +55,MFP Senior - Park Terrace Congregate Apartments,5,0,0,5,5 +56,MFP Senior - Springview Apartments,7,0,7,0,7 +57,MFP Senior - Titus Towers,9,0,0,9,9 +58,MFP Senior - Villa Serene,9,0,9,0,9 +59,MFP Senior - Village Square/Manor,7,0,7,0,7 +60,MFP Senior - Wells Apartments,5,0,0,5,5 +61,MFP Senior - Woodsedge Apartments,4,0,0,4,4 +62,MFP The Love Church,22,22,0,0,0 +63,MFP Troupsburg,11,11,0,0,0 +64,MFP Tuscarora,17,10,7,0,7 +65,MFP Van Etten,17,3,0,14,14 +66,MFP Waverly,29,29,0,0,0 +67,MFP Wayland,17,17,0,0,0 +68,MFP Whitney Point,17,12,5,0,5 +69,MFP Windsor,17,12,5,0,5 +70,MFP Woodhull,16,16,0,0,0 diff --git a/p3_kmin.py b/p3_kmin.py new file mode 100644 index 0000000..c3d0dc0 --- /dev/null +++ b/p3_kmin.py @@ -0,0 +1,528 @@ +""" +Task 3: k-min allocation with ordered two-stop pairing. + +- Uses 2019 data to allocate visit frequencies. +- Pairs are drawn from ordered_pairs_allocation_k6_cap250.csv (ordered i->j). +- Total annual trips (paired + single) are fixed to N_TARGET via fixed-point adjustment. +""" + +from __future__ import annotations + +import argparse +import os +import math +from typing import Dict, List, Tuple + +import numpy as np +import pandas as pd + +try: + import matplotlib + + matplotlib.use("Agg") + import matplotlib.pyplot as plt + + _HAS_MPL = True +except ModuleNotFoundError: + plt = None + _HAS_MPL = False + + +INPUT_XLSX = "prob/MFP Regular Sites 2019.xlsx" +INPUT_PAIRS = "data/ordered_pairs_allocation_k6_cap250.csv" +OUTPUT_DIR = "data" + +C_OPT = 250 +N_TARGET = 730 +ALPHA = 0.6 +BETA = 0.2 +N_SIMS = 2000 +RANDOM_SEED = 606 + + +def gini_coefficient(values: np.ndarray) -> float: + x = np.asarray(values, dtype=float) + x = x[np.isfinite(x)] + if x.size == 0: + return 0.0 + x = np.clip(x, 0, None) + total = x.sum() + if total <= 0: + return 0.0 + + x_sorted = np.sort(x) + n = x_sorted.size + idx = np.arange(1, n + 1, dtype=float) + return float((2.0 * (idx * x_sorted).sum()) / (n * total) - (n + 1.0) / n) + + +def _norm_pdf(z): + return np.exp(-0.5 * z * z) / np.sqrt(2.0 * np.pi) + + +def _norm_cdf(z): + z = np.asarray(z, dtype=float) + erf_vec = np.vectorize(math.erf, otypes=[float]) + return 0.5 * (1.0 + erf_vec(z / np.sqrt(2.0))) + + +def expected_clipped_normal(mu, sigma, lower=0.0, upper=1.0): + mu = np.asarray(mu, dtype=float) + sigma = np.asarray(sigma, dtype=float) + lower = float(lower) + upper = float(upper) + + if lower > upper: + raise ValueError("lower must be <= upper") + + out = np.empty_like(mu, dtype=float) + mask = sigma > 0 + out[~mask] = np.clip(mu[~mask], lower, upper) + + if np.any(mask): + m = mu[mask] + s = sigma[mask] + + z_u = (upper - m) / s + z_l = (lower - m) / s + + Phi_u = _norm_cdf(z_u) + Phi_l = _norm_cdf(z_l) + phi_u = _norm_pdf(z_u) + phi_l = _norm_pdf(z_l) + + ex_le_u = m * Phi_u - s * phi_u + ex_le_l = m * Phi_l - s * phi_l + + p_le_l = Phi_l + p_gt_u = 1.0 - Phi_u + + out[mask] = lower * p_le_l + (ex_le_u - ex_le_l) + upper * p_gt_u + + return out + + +def _find_col(df: pd.DataFrame, candidates: List[str]) -> str: + for name in candidates: + if name in df.columns: + return name + lower_map = {c.lower(): c for c in df.columns} + for name in candidates: + key = name.lower() + if key in lower_map: + return lower_map[key] + raise ValueError(f"Missing required column. Tried: {candidates}") + + +def load_sites(path: str) -> pd.DataFrame: + df = pd.read_excel(path) + + col_site = _find_col(df, ["Site Name", "site name", "site"]) + col_mu = _find_col(df, ["Average Demand per Visit", "average demand per visit", "avg demand"]) + col_sigma = _find_col(df, ["StDev(Demand per Visit)", "stdev(demand per visit)", "stdev", "std"]) + col_visits = _find_col(df, ["Number of Visits in 2019", "number of visits in 2019", "visits"]) + + out = df[[col_site, col_mu, col_sigma, col_visits]].copy() + out.columns = ["site_name", "mu", "sigma", "visits_2019"] + out["mu"] = pd.to_numeric(out["mu"], errors="coerce") + out["sigma"] = pd.to_numeric(out["sigma"], errors="coerce").fillna(0.0) + out["visits_2019"] = pd.to_numeric(out["visits_2019"], errors="coerce") + if out[["mu", "visits_2019"]].isna().any().any(): + missing = out[out[["mu", "visits_2019"]].isna().any(axis=1)] + raise ValueError(f"Missing mu/visits_2019 for {len(missing)} rows.") + + out = out.reset_index(drop=True) + out["site_idx"] = np.arange(1, len(out) + 1, dtype=int) + out["TotalDemand"] = out["mu"] * out["visits_2019"] + return out + + +def allocate_visits(df: pd.DataFrame, k_min_real: float, n_total: int) -> np.ndarray: + df_sorted = df.sort_values("TotalDemand").reset_index(drop=False) + n = len(df_sorted) + + k_floor = int(np.floor(k_min_real)) + k_ceil = int(np.ceil(k_min_real)) + frac = k_min_real - k_floor + + n_ceil = int(round(n * frac)) + n_floor = n - n_ceil + + k_base = np.array([k_floor] * n_floor + [k_ceil] * n_ceil, dtype=int) + + n_reserved = int(k_base.sum()) + n_free = int(n_total - n_reserved) + if n_free < 0: + return None + + weights = df_sorted["TotalDemand"] / df_sorted["TotalDemand"].sum() + allocated = (k_base + n_free * weights.values).round().astype(int) + allocated = np.maximum(allocated, k_base) + + diff = int(n_total - allocated.sum()) + if diff != 0: + sorted_idx = weights.sort_values(ascending=(diff < 0)).index.tolist() + for idx in sorted_idx[:abs(diff)]: + allocated[idx] += int(np.sign(diff)) + + alloc_sorted = df_sorted[["site_idx"]].copy() + alloc_sorted["AllocatedVisits"] = allocated + alloc = alloc_sorted.sort_values("site_idx")["AllocatedVisits"].to_numpy(dtype=int) + return alloc + + +def assign_pairs(pairs_df: pd.DataFrame, visits: np.ndarray) -> Tuple[pd.DataFrame, np.ndarray]: + remaining = visits.astype(int).copy() + pair_counts = np.zeros(len(pairs_df), dtype=int) + + for idx, row in pairs_df.iterrows(): + i = int(row["site_i_idx"]) - 1 + j = int(row["site_j_idx"]) - 1 + if remaining[i] <= 0 or remaining[j] <= 0: + continue + t = int(min(remaining[i], remaining[j])) + if t <= 0: + continue + pair_counts[idx] = t + remaining[i] -= t + remaining[j] -= t + + out = pairs_df.copy() + out["pair_count"] = pair_counts + return out, remaining + + +def _compute_metrics( + sites: pd.DataFrame, + visits: np.ndarray, + pairs_with_counts: pd.DataFrame, + singles: np.ndarray, + *, + alpha: float, + beta: float, + capacity: float, +) -> Dict[str, float]: + n = len(sites) + mu = sites["mu"].to_numpy(dtype=float) + sigma = sites["sigma"].to_numpy(dtype=float) + demand = sites["TotalDemand"].to_numpy(dtype=float) + + eff_single = expected_clipped_normal(mu, sigma, lower=0.0, upper=capacity) + served_single = singles * eff_single + cap_single = singles * capacity + + pair_first = np.zeros(n, dtype=float) + pair_second = np.zeros(n, dtype=float) + served_first = np.zeros(n, dtype=float) + served_second = np.zeros(n, dtype=float) + cap_first = np.zeros(n, dtype=float) + cap_second = np.zeros(n, dtype=float) + + for _, row in pairs_with_counts.iterrows(): + count = int(row["pair_count"]) + if count <= 0: + continue + i = int(row["site_i_idx"]) - 1 + j = int(row["site_j_idx"]) - 1 + q_opt = float(row["q_opt"]) + served_i = float(row["served_i_mean"]) + served_j = float(row["served_j_mean"]) + + pair_first[i] += count + pair_second[j] += count + served_first[i] += count * served_i + served_second[j] += count * served_j + cap_first[i] += count * q_opt + cap_second[j] += count * (capacity - q_opt) + + annual_eff = served_single + served_first + served_second + cap_total = cap_single + cap_first + cap_second + + with np.errstate(divide="ignore", invalid="ignore"): + base = np.where(demand > 0, annual_eff / demand, 0.0) + unmet = np.where(demand > 0, np.maximum(0.0, demand - annual_eff) / demand, 0.0) + waste = np.where(cap_total > 0, np.maximum(0.0, cap_total - annual_eff) / cap_total, 0.0) + + score = np.clip(base - alpha * unmet - beta * waste, 0.0, 1.0) + bottom_n = max(1, int(np.ceil(n * 0.10))) + + total_served = float(annual_eff.sum()) + total_demand = float(demand.sum()) + total_unmet = float(np.maximum(0.0, demand - annual_eff).sum()) + total_waste = float(np.maximum(0.0, cap_total - annual_eff).sum()) + + return { + "effectiveness": float(score.mean()), + "min_eff": float(score.min()), + "bottom10_eff": float(np.sort(score)[:bottom_n].mean()), + "gini_eff": float(gini_coefficient(score)), + "std_eff": float(score.std()), + "total_unmet": total_unmet, + "total_waste": total_waste, + "total_served": total_served, + "total_demand": total_demand, + "serve_ratio": float(total_served / total_demand) if total_demand > 0 else 0.0, + "score_per_site": score, + "annual_eff": annual_eff, + "pair_first": pair_first, + "pair_second": pair_second, + } + + +def allocate_with_pairs( + sites: pd.DataFrame, + pairs_df: pd.DataFrame, + k_min: float, + *, + n_target: int, + capacity: float, + max_iter: int = 30, +) -> Tuple[np.ndarray, np.ndarray, pd.DataFrame, int]: + n_total_guess = int(n_target) + + for _ in range(max_iter): + visits = allocate_visits(sites, k_min, n_total_guess) + if visits is None: + return None, None, None, None + + pairs_with_counts, singles = assign_pairs(pairs_df, visits) + pair_total = int(pairs_with_counts["pair_count"].sum()) + new_guess = int(n_target + pair_total) + if new_guess == n_total_guess: + return visits, singles, pairs_with_counts, n_total_guess + n_total_guess = new_guess + + return visits, singles, pairs_with_counts, n_total_guess + + +def select_kmin(results: pd.DataFrame) -> float: + gini_candidates = results.loc[results["gini_eff"] < 0.2, "k_min"] + if len(gini_candidates) > 0: + return float(gini_candidates.iloc[0]) + idx = results["effectiveness"].idxmax() + return float(results.loc[idx, "k_min"]) + + +def plot_results(results: pd.DataFrame, output_dir: str) -> float: + if not _HAS_MPL: + raise RuntimeError("缺少依赖: matplotlib(无法绘图)。请先安装 matplotlib 再运行绘图部分。") + + fig, axes = plt.subplots(4, 2, figsize=(12, 13)) + + selected_k = select_kmin(results) + selected_idx = (results["k_min"] - selected_k).abs().idxmin() + selected_eff = float(results.loc[selected_idx, "effectiveness"]) + selected_label = f"Selected k_min={selected_k:.1f}" + + ax = axes[0, 0] + ax.plot(results["k_min"], results["effectiveness"], "b-", lw=2) + ax.axvline(selected_k, color="r", ls="--", label=selected_label) + ax.scatter([selected_k], [selected_eff], c="r", s=100, zorder=5) + ax.set_xlabel("k_min") + ax.set_ylabel("Mean Effectiveness") + ax.set_title("Mean Effectiveness vs k_min") + ax.legend() + ax.grid(True, alpha=0.3) + + ax = axes[0, 1] + ax.plot(results["k_min"], results["bottom10_eff"], "m-", lw=2) + ax.axvline(selected_k, color="r", ls="--") + ax.set_xlabel("k_min") + ax.set_ylabel("Bottom 10% Mean Effectiveness") + ax.set_title("Bottom 10% Mean Effectiveness vs k_min") + ax.grid(True, alpha=0.3) + + ax = axes[1, 0] + ax.plot(results["k_min"], results["total_served"] / 1000, "c-", lw=2) + ax.axhline(results["total_demand"].iloc[0] / 1000, color="gray", ls=":", label="Total Demand") + ax.axvline(selected_k, color="r", ls="--") + ax.set_xlabel("k_min") + ax.set_ylabel("Served Families (×1000)") + ax.set_title("Total Served vs k_min") + ax.legend() + ax.grid(True, alpha=0.3) + + ax = axes[1, 1] + ax.plot(results["k_min"], results["min_eff"], "g-", lw=2) + ax.axvline(selected_k, color="r", ls="--") + ax.set_xlabel("k_min") + ax.set_ylabel("Min Effectiveness") + ax.set_title("Worst Site Effectiveness vs k_min") + ax.grid(True, alpha=0.3) + + ax = axes[2, 0] + ax.plot(results["k_min"], results["unmet"] / 1000, "r-", lw=2, label="Unmet") + ax.plot(results["k_min"], results["waste"] / 1000, "b-", lw=2, label="Waste") + ax.axvline(selected_k, color="gray", ls="--") + ax.set_xlabel("k_min") + ax.set_ylabel("Families (×1000)") + ax.set_title("Unmet Demand vs Wasted Capacity") + ax.legend() + ax.grid(True, alpha=0.3) + + ax = axes[2, 1] + ax.plot(results["k_min"], results["std_eff"], color="tab:orange", lw=2) + ax.axvline(selected_k, color="gray", ls="--") + ax.set_xlabel("k_min") + ax.set_ylabel("Std Effectiveness") + ax.set_title("Effectiveness Std vs k_min") + ax.grid(True, alpha=0.3) + + ax = axes[3, 0] + ax.plot(results["k_min"], results["gini_eff"], color="tab:purple", lw=2) + ax.axhline(0.2, color="gray", ls=":", lw=1) + ax.axvline(selected_k, color="r", ls="--") + ax.set_xlabel("k_min") + ax.set_ylabel("Gini Coefficient") + ax.set_title("Gini (Effectiveness) vs k_min") + ax.grid(True, alpha=0.3) + + axes[3, 1].axis("off") + + plt.tight_layout() + os.makedirs(output_dir, exist_ok=True) + plt.savefig(os.path.join(output_dir, "p3_kmin_effectiveness.png"), dpi=150) + plt.close(fig) + + return selected_k + + +def main() -> None: + parser = argparse.ArgumentParser(description="Task 3 k-min allocation with two-stop pairing.") + parser.add_argument("--input-xlsx", default=INPUT_XLSX) + parser.add_argument("--input-pairs", default=INPUT_PAIRS) + parser.add_argument("--output-dir", default=OUTPUT_DIR) + parser.add_argument("--kmin-start", type=float, default=1.0) + parser.add_argument("--kmin-end", type=float, default=10.0) + parser.add_argument("--kmin-step", type=float, default=0.1) + parser.add_argument("--capacity", type=float, default=C_OPT) + parser.add_argument("--n-target", type=int, default=N_TARGET) + parser.add_argument("--alpha", type=float, default=ALPHA) + parser.add_argument("--beta", type=float, default=BETA) + args = parser.parse_args() + + sites = load_sites(args.input_xlsx) + pairs = pd.read_csv(args.input_pairs) + required_cols = { + "site_i_idx", + "site_j_idx", + "score_mean", + "q_opt", + "served_i_mean", + "served_j_mean", + "distance_miles", + } + missing = required_cols.difference(pairs.columns) + if missing: + raise ValueError(f"Missing columns in pairs CSV: {sorted(missing)}") + + pairs = pairs.sort_values( + ["score_mean", "distance_miles"], ascending=[False, True] + ).reset_index(drop=True) + + k_range = np.arange(args.kmin_start, args.kmin_end + 1e-9, args.kmin_step) + results = [] + + for k_min in k_range: + visits, singles, pairs_with_counts, n_total_guess = allocate_with_pairs( + sites, + pairs, + float(k_min), + n_target=args.n_target, + capacity=args.capacity, + ) + if visits is None: + continue + + metrics = _compute_metrics( + sites, + visits, + pairs_with_counts, + singles, + alpha=args.alpha, + beta=args.beta, + capacity=args.capacity, + ) + + pair_total = int(pairs_with_counts["pair_count"].sum()) + total_trips = int(visits.sum() - pair_total) + row = { + "k_min": float(k_min), + "effectiveness": metrics["effectiveness"], + "min_eff": metrics["min_eff"], + "bottom10_eff": metrics["bottom10_eff"], + "gini_eff": metrics["gini_eff"], + "std_eff": metrics["std_eff"], + "unmet": metrics["total_unmet"], + "waste": metrics["total_waste"], + "total_served": metrics["total_served"], + "total_demand": metrics["total_demand"], + "serve_ratio": metrics["serve_ratio"], + "total_visits_allocated": int(visits.sum()), + "pair_trips": pair_total, + "total_trips": total_trips, + "n_total_guess": int(n_total_guess), + } + results.append(row) + + results_df = pd.DataFrame(results) + if len(results_df) == 0: + raise RuntimeError("No feasible k_min values found.") + + best_k = select_kmin(results_df) + best_idx = (results_df["k_min"] - best_k).abs().idxmin() + + visits, singles, pairs_with_counts, n_total_guess = allocate_with_pairs( + sites, + pairs, + float(best_k), + n_target=args.n_target, + capacity=args.capacity, + ) + metrics = _compute_metrics( + sites, + visits, + pairs_with_counts, + singles, + alpha=args.alpha, + beta=args.beta, + capacity=args.capacity, + ) + + pair_total = int(pairs_with_counts["pair_count"].sum()) + total_trips = int(visits.sum() - pair_total) + + site_rows = pd.DataFrame( + { + "site_idx": sites["site_idx"], + "site_name": sites["site_name"], + "total_visits_allocated": visits, + "single_visits": singles, + "paired_first": metrics["pair_first"].astype(int), + "paired_second": metrics["pair_second"].astype(int), + "paired_total": (metrics["pair_first"] + metrics["pair_second"]).astype(int), + } + ) + + pairs_out = pairs_with_counts.loc[pairs_with_counts["pair_count"] > 0].copy() + pairs_out = pairs_out.sort_values(["pair_count", "score_mean"], ascending=[False, False]) + + os.makedirs(args.output_dir, exist_ok=True) + results_df.to_csv(os.path.join(args.output_dir, "p3_kmin_data.csv"), index=False) + site_rows.to_csv(os.path.join(args.output_dir, "p3_kmin_sites.csv"), index=False) + pairs_out.to_csv(os.path.join(args.output_dir, "p3_kmin_pairs.csv"), index=False) + + if _HAS_MPL: + plot_results(results_df, args.output_dir) + else: + print("未检测到 matplotlib,跳过绘图(仍会保存CSV结果)。") + + print(f"Best k_min={best_k:.1f} (total_trips={total_trips}, pair_trips={pair_total})") + print( + "Saved: data/p3_kmin_data.csv, data/p3_kmin_sites.csv, " + "data/p3_kmin_pairs.csv, data/p3_kmin_effectiveness.png" + ) + + +if __name__ == "__main__": + main() diff --git a/two_stop_allocation.py b/two_stop_allocation.py new file mode 100644 index 0000000..cfc0859 --- /dev/null +++ b/two_stop_allocation.py @@ -0,0 +1,185 @@ +""" +Optimize first-stop allocation for ordered two-stop pairs using Monte Carlo. +""" + +from __future__ import annotations + +import argparse +import os +from typing import Dict, Tuple + +import numpy as np +import pandas as pd + + +DEFAULT_INPUT = "data/candidate_pairs_k6_cap250.csv" +DEFAULT_OUTPUT = "data/ordered_pairs_allocation_k6_cap250.csv" + +ALPHA = 0.6 +BETA = 0.2 +GAMMA = 0.0 +N_SIMS = 2000 +RANDOM_SEED = 606 + + +def _simulate_pair( + mu_i: float, + sigma_i: float, + mu_j: float, + sigma_j: float, + *, + capacity: float, + alpha: float, + beta: float, + gamma: float, + step: int, + n_sims: int, + seed: int, +) -> Dict[str, float]: + rng = np.random.default_rng(seed) + d_i = rng.normal(mu_i, sigma_i, size=n_sims) + d_j = rng.normal(mu_j, sigma_j, size=n_sims) + d_i = np.clip(d_i, 0, None) + d_j = np.clip(d_j, 0, None) + + total_d = d_i + d_j + total_d_safe = np.maximum(total_d, 1.0) + d_i_safe = np.maximum(d_i, 1.0) + d_j_safe = np.maximum(d_j, 1.0) + + best_q = 0 + best_score = -1e9 + best_metrics: Tuple[float, ...] = () + + for q in range(0, int(capacity) + 1, step): + s_i = np.minimum(d_i, float(q)) + remaining = capacity - s_i + s_j = np.minimum(d_j, remaining) + served = s_i + s_j + + base = served / total_d_safe + unmet = np.maximum(0.0, total_d - served) / total_d_safe + waste = (capacity - served) / capacity + + ratio_i = s_i / d_i_safe + ratio_j = s_j / d_j_safe + fairness = np.abs(ratio_i - ratio_j) + + score = base - alpha * unmet - beta * waste - gamma * fairness + score_mean = float(np.mean(score)) + + if score_mean > best_score: + best_score = score_mean + best_q = q + best_metrics = ( + float(np.mean(s_i)), + float(np.mean(s_j)), + float(np.mean(served)), + float(np.mean(unmet)), + float(np.mean(waste)), + float(np.mean(ratio_i)), + float(np.mean(ratio_j)), + float(np.mean(fairness)), + ) + + return { + "q_opt": float(best_q), + "score_mean": float(best_score), + "served_i_mean": best_metrics[0], + "served_j_mean": best_metrics[1], + "served_total_mean": best_metrics[2], + "unmet_mean": best_metrics[3], + "waste_mean": best_metrics[4], + "ratio_i_mean": best_metrics[5], + "ratio_j_mean": best_metrics[6], + "fairness_mean": best_metrics[7], + } + + +def _directional_row(row: pd.Series, forward: bool) -> Dict[str, float]: + if forward: + return { + "site_i_idx": int(row["site_i_idx"]), + "site_i_name": row["site_i_name"], + "site_j_idx": int(row["site_j_idx"]), + "site_j_name": row["site_j_name"], + "distance_miles": float(row["distance_miles"]), + "mu_i": float(row["mu_i"]), + "sigma_i": float(row["sigma_i"]), + "mu_j": float(row["mu_j"]), + "sigma_j": float(row["sigma_j"]), + } + return { + "site_i_idx": int(row["site_j_idx"]), + "site_i_name": row["site_j_name"], + "site_j_idx": int(row["site_i_idx"]), + "site_j_name": row["site_i_name"], + "distance_miles": float(row["distance_miles"]), + "mu_i": float(row["mu_j"]), + "sigma_i": float(row["sigma_j"]), + "mu_j": float(row["mu_i"]), + "sigma_j": float(row["sigma_i"]), + } + + +def main() -> None: + parser = argparse.ArgumentParser( + description="Optimize first-stop allocation for ordered two-stop pairs." + ) + parser.add_argument("--input", default=DEFAULT_INPUT) + parser.add_argument("--output", default=DEFAULT_OUTPUT) + parser.add_argument("--capacity", type=float, default=250.0) + parser.add_argument("--alpha", type=float, default=ALPHA) + parser.add_argument("--beta", type=float, default=BETA) + parser.add_argument("--gamma", type=float, default=GAMMA) + parser.add_argument("--step", type=int, default=1, help="Grid step for q in [0, C].") + parser.add_argument("--n-sims", type=int, default=N_SIMS) + parser.add_argument("--seed", type=int, default=RANDOM_SEED) + args = parser.parse_args() + + df = pd.read_csv(args.input) + required = { + "site_i_idx", + "site_i_name", + "site_j_idx", + "site_j_name", + "distance_miles", + "mu_i", + "sigma_i", + "mu_j", + "sigma_j", + } + missing = required.difference(df.columns) + if missing: + raise ValueError(f"Missing columns in input: {sorted(missing)}") + + rows = [] + for idx, row in df.iterrows(): + for forward in (True, False): + base = _directional_row(row, forward) + seed = int(args.seed) + int(idx) * 2 + (0 if forward else 1) + metrics = _simulate_pair( + base["mu_i"], + base["sigma_i"], + base["mu_j"], + base["sigma_j"], + capacity=args.capacity, + alpha=args.alpha, + beta=args.beta, + gamma=args.gamma, + step=args.step, + n_sims=args.n_sims, + seed=seed, + ) + rows.append({**base, **metrics}) + + out = pd.DataFrame(rows) + out = out.sort_values(["site_i_idx", "site_j_idx"]).reset_index(drop=True) + + os.makedirs(os.path.dirname(args.output), exist_ok=True) + out.to_csv(args.output, index=False) + print(f"Saved {len(out)} ordered pairs to {args.output}") + + +if __name__ == "__main__": + main()