Files
mcm-mfp/task3/__pycache__/07_sensitivity.cpython-313.pyc

130 lines
18 KiB
Plaintext
Raw Normal View History

2026-01-19 15:05:55 +08:00
<EFBFBD>
<04>mi27<00> <00><> <00>SrSSKrSSKrSSKJr SSKJr SSK
r
SSK r SSK J r \
R"S5 \ RR!S5 /SQ\ R"S'S \ R"S
'S rS rS rSrSrSrSxSjrSySjrSrS\R6S\R84SjrSzSjr\"S5 \"S5 \"S5 \ "\ 5RC5RDr#\#RDS- S- r$\#S- r%\#S - S!- r&\&RDROS"S"S#9 \RP"\$5r)\"S$\*"\)5S%35 \"\)5r+Sr,Sr-Sr.Sr/\"\)\+\,\-\.\/5r0\"S&\0S'S(S)\0S*S+35 \Rb"\Rd"S,S-S.5S/5\Rd"S0S1S2\3S39\Rd"S4S5S6\3S39\Rb"\Rd"S,S7S.5S/5S8.r4/r5\"S95 \"S:5 \4S;H5r6\"\)\+\,\-\.\65r7\7RqS;\6S<.5 \5Rs\75 M7 \"S=5 \4S>H5r6\"\)\+\6\-\.\/5r7\7RqS>\6S<.5 \5Rs\75 M7 \"S?5 \4S@H5r6\"\)\+\,\6\.\/5r7\7RqS@\6S<.5 \5Rs\75 M7 \"SA5 \4SBH5r6\"\)\+\,\-\6\/5r7\7RqSB\6S<.5 \5Rs\75 M7 \R6"\55r:\"SC5 \ Rv"S/S/SDSE9ur<r=\<R}SFSGSHSI9 SJSKSLSMS8.r?/S8Qr@\A"\@5GHnurBrC\=\BS/-\BS/-4rD\:\:SN\C:HR<>SO5rF\DR<44>\FSO\FS'SPSQSRSS9urH\DR<44>\FSO\FSTSUSQSVSWSX9urI\DR<44>\?\CS5 \DR<44>SY5 \DR<44>5rM\MR<4D>\FSO\FS*SZSQS[SS9urN\MR<4D>S\S]S^9 \MR<4D>S_S]S`9 \CS;:Xa\/rPO\CS>:Xa\,rPO\CS@:Xa\-rPO\CSB:Xa\.rP\DR<44>\PSaSbSSc9 \H\I\N/rR\RVs/sHoR<>5PM snrT\DR<44>\R\TSdS"Se9 \DR<44>Sf\?\CS35 \DR<44>S"SgSh9 GMq \ R<>"/SiQSj9 \ R<>"\&SkSl9 \"Sm\&35 \R<>"\%SnSo9r[\:R<>\[SpS Sq9 /r]\@H<>rC\:\:SN\C:Hr^\]Rs\C\^S'R<>5S(Sr\^S'R<>5S(3\^S'R<>5\^S'R<>5-
\0S'- Ss-\^STR<>5S(Sr\^STR<>5S(3\^STR<>5\^STR<>5-
\0ST- Ss-\^S*R<>5S+Sr\^S*R<>5S+3St.5 GM \R6"\]5R<>\[SuS Sq9 SSS5 \"Sv\%35 \"Sw5 gs snf!,(df  N'=f){u<>
Task 3 - Step 7: 敏感性分析 (Refined)
=====================================
分析以下参数对模型输出的影响 (高分辨率扫描):
1. 合并比例 r_merge: 0.1 ~ 0.9 (步长 0.01)
2. 距离阈值 l_max: 10 ~ 100 miles (步长 1)
3. 容量上限 μ_sum_max: 350 ~ 550 (步长 5)
4. CV阈值: 0.1 ~ 1.0 (步长 0.01)
输出:
- 07_sensitivity.xlsx (详细数据)
- figures/fig3_sensitivity.png (敏感性曲线图)
<EFBFBD>N)<01>stats)<01>Path<74>ignorezseaborn-v0_8-whitegrid)zArial Unicode MS<4D>SimHeiz DejaVu Sanszfont.sans-serifFzaxes.unicode_minus<75><73><00><><><E79A99><EFBFBD><EFBFBD><EFBFBD>?c<00>8<00>US:<3A>a[S[U- 5$S$)Nr<00><00>?)<02>min<69>QUALITY_THRESHOLD)<01>mu_totals <20>task3/07_sensitivity.py<70>quality_factorr&s <00><00>5=<3D><01>\<5C>3<EFBFBD>s<EFBFBD>%<25><08>0<> 1<>J<>s<EFBFBD>J<>c<00><00>US:Xa [X5$X-
U- nU[RRU5-U[RR U5--
US[RRU5-
--$<00>Nr<00>)r r<00>norm<72>cdf<64>pdf)<04>q<>mu<6D>sigma<6D>zs r<00>expected_servicer)sk<00><00> <0C><01>z<EFBFBD><12>2<EFBFBD>z<EFBFBD><19>
<EFBFBD><16>5<EFBFBD><18>A<EFBFBD> <0A><05>
<EFBFBD>
<EFBFBD><0E><0E>q<EFBFBD>!<21> !<21>E<EFBFBD>E<EFBFBD>J<EFBFBD>J<EFBFBD>N<EFBFBD>N<EFBFBD>1<EFBFBD>,=<3D>$=<3D> =<3D><01>Q<EFBFBD><15><1A><1A><1E><1E>XY<58>IZ<49>EZ<45>@[<5B> [<5B>[rc<00><><00>[R"U5nU[R"U5)n[U5S:Xag[R"U5n[U5n[R
"U5nUSS:<3A>aHS[R "[R"SUS-5U-5-US-US--
XS-- $S$)Nr<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>r)<08>np<6E>array<61>isnan<61>len<65>sort<72>cumsum<75>sum<75>arange)<03>values<65>nr%s r<00>gini_coefficientr*/s<><00><00> <0F>X<EFBFBD>X<EFBFBD>f<EFBFBD> <1D>F<EFBFBD> <13>R<EFBFBD>X<EFBFBD>X<EFBFBD>f<EFBFBD>%<25>%<25> &<26>F<EFBFBD>
<EFBFBD>6<EFBFBD>{<7B>a<EFBFBD><17><10> <0F>W<EFBFBD>W<EFBFBD>V<EFBFBD>_<EFBFBD>F<EFBFBD> <0B>F<EFBFBD> <0B>A<EFBFBD> <0F>Y<EFBFBD>Y<EFBFBD>v<EFBFBD> <1E>F<EFBFBD>ek<65>ln<6C>eo<65>rs<72>es<65>A<EFBFBD><02><06><06><02> <09> <09>!<21>Q<EFBFBD><11>U<EFBFBD>+<2B>f<EFBFBD>4<>6<> 6<>!<21>a<EFBFBD>%<25>6<EFBFBD>"<22>:<3A>9M<39> M<>RS<52>]_<>V`<60>R`<60> a<>z<>yz<79>zrc<00>|<00>US:Xa XU-:<3A>aS$S$X- nS[RRXA-
U- 5-
$r)rrr)rrr<00> threshold<6C>critical_demands r<00>shortfall_probabilityr.9sD<00><00> <0C><01>z<EFBFBD><15>i<EFBFBD><1E>'<27>q<EFBFBD>.<2E>Q<EFBFBD>.<2E><17>m<EFBFBD>O<EFBFBD> <0C>u<EFBFBD>z<EFBFBD>z<EFBFBD>~<7E>~<7E><EFBFBD>3<>u<EFBFBD><<3C>=<3D> =<3D>=rc<00>8<00>X-S:XaU$X0-XU-
--X-- $)Nr<00>)<05>mu_i<5F>sigma_i<5F>mu_j<5F>sigma_j<5F>Qs r<00>optimal_allocationr6?s.<00><00><0E><18>A<EFBFBD><1D><13> <0B> <13>N<EFBFBD>W<EFBFBD>D<EFBFBD><08>1<> 1<>g<EFBFBD>6G<36> H<>Hrc<00><><00>X-S- n[R"U5nX-
nX-
nS[R"US-[R"U5U-S--5-$)Nr<00>@Q@)r <00>radians<6E>sqrt<72>cos)<08>lat1<74>lon1<6E>lat2<74>lon2<6E>lat_avg<76> lat_avg_rad<61> delta_lat<61> delta_lons r<00> calc_distancerDDsZ<00><00><13>{<7B>a<EFBFBD><1F>G<EFBFBD><14>*<2A>*<2A>W<EFBFBD>%<25>K<EFBFBD><14> <0B>I<EFBFBD><14> <0B>I<EFBFBD> <0F>"<22>'<27>'<27>)<29>Q<EFBFBD>,<2C>"<22>&<26>&<26><1B>*=<3D> <09>*I<>A<EFBFBD>)M<>M<>N<> N<>Nr<00>sites_df<64>returnc<00><><00>USR[S9nUSR[S9nUSS2S4USSS24-S- n[R"U5nUSS2S4USSS24-
nUSS2S4USSS24-
nS[R"US-[R
"U5U-S--5-n[R "US5 U$)N<>lat<61><01>dtype<70>long@r8rg)<07>to_numpy<70>floatr r9r:r;<00> fill_diagonal)rErHrKr@rArBrC<00>dists r<00>compute_distance_matrixrPKs<><00><00>
<12>5<EFBFBD>/<2F>
"<22>
"<22><15>
"<22>
/<2F>C<EFBFBD>
<12>5<EFBFBD>/<2F>
"<22>
"<22><15>
"<22>
/<2F>C<EFBFBD><12>1<EFBFBD>d<EFBFBD>7<EFBFBD>|<7C>c<EFBFBD>$<24><01>'<27>l<EFBFBD>*<2A>c<EFBFBD>1<>G<EFBFBD><14>*<2A>*<2A>W<EFBFBD>%<25>K<EFBFBD><13>A<EFBFBD>t<EFBFBD>G<EFBFBD> <0C>s<EFBFBD>4<EFBFBD><11>7<EFBFBD>|<7C>+<2B>I<EFBFBD><13>A<EFBFBD>t<EFBFBD>G<EFBFBD> <0C>s<EFBFBD>4<EFBFBD><11>7<EFBFBD>|<7C>+<2B>I<EFBFBD> <0F>"<22>'<27>'<27>)<29>Q<EFBFBD>,<2C>"<22>&<26>&<26><1B>*=<3D> <09>*I<>A<EFBFBD>)M<>M<>N<> N<>D<EFBFBD><06><14><14>T<EFBFBD>3<EFBFBD><1F> <0F>Kr<00>2<00><><00><00>?c<00><> <00>UR5nUSUS- US'[U5n/n[U5H<>n [U S-U5H<>n
URU n URU
n [ XU
45n X<>:<3A>aM7U SU S-nX<>:<3A>aMIU SU:<3A>d U SU:<3A>aM]U SS-U SS--nSU-[
- SU -U- -
SU-US-- -
nUR X<>U S U S U U SU SU SU SU S
U S
U S U S US .5 M<> M<> [U5S :Xa<>US
US-R5n[US
USR[5-US-5nUR5VVs/sHunnUS
US-US - PM nnn[U5n[U5nS S UUUUS S S.$[R"U5RSSS9n/n[!5nUR5HcunnUSU;dMUSU;dMUR UR#55 UR%US5 UR%US5 Me UHhn['USUSUSUS[
5nUUS'[)UUSUS5US'[)[
U-
USUS5US'USUS-US'Mj US
R5US'0nUH<>nUSUSnn[+[UU5U-5n U [UU5:<3A>a[UU5S-
n U S:aS n USUSn"n!UU -
UR,U!S4'UU -
UR,U"S4'U UUSUS 4'M<> USR5n#[UR/55n$S!U#U$--
n%U%S :<3A>a<>US R5n&U%US -U&- R[0R25R5[*5US"'U%US"R5-
n'U'S :<3A>aNU%US -U&- US"-
n(U(R7[+U'55R8n)UR,U)S"4==S- ss'USUS"-US#'OUSUS#'US#US-R5nUH(nUR;USUS 4S 5n UU US-- nM* [US#USR[5-US-5nUHAnUR;USUS 4S 5n USUS-n[U5n*UU U*-US-- nMC 0n+UR5H*un,nUS S :<3A>aUS#US-US - OS n-U-U+US 'M, UHonUR;USUS 4S 5n US$S :<3A>aU US-US$- OS n.US%S :<3A>aU US-US%- OS n/U+US==U.- ss'U+US ==U/- ss'Mq [=U+R/55n[U5nU(a [U5OS n/n0UHRnUSn1[?U1USUS5n2[?[
U1-
USUS5n3U0R SSU2-
SU3-
--
5 MT U0(a[0R@"U05OS n4U$S!- n5[U5U$UUUUU4U5S.$s snnf)&u5
运行完整的Task 3流水线返回评估指标
rr<00>cvrrr <00>333333<33>?rS<00>site_id<69>k<>mu_tilde)<0E>idx_i<5F>idx_j<5F> site_i_id<69> site_j_id<69>distancer1r3r2r4<00>k_i<5F>k_j<5F>
mu_tilde_i<EFBFBD>
mu_tilde_j<EFBFBD>valuer)<08> num_pairs<72>num_dual_visits<74>E1<45>E2<45>F1<46>F2<46>R1<52>RSrcF)<01> ascendingrZr[r1r2r3r4<00>q_final<61>E_Si<53>E_Sj<53>E_total<61>k_singler_r`r\r]i<><00>k_extra<72>k_single_finalrarb)!<21>copyr#<00>range<67>ilocrMr5<00>appendr&<00>applyr<00>iterrowsr*r <00>pd<70> DataFrame<6D> sort_values<65>set<65>to_dict<63>addr6r<00>int<6E>locr(r <00>floor<6F>astype<70>nlargest<73>index<65>get<65>listr.<00>mean)6rE<00>distance_matrix<69>l_max<61>
mu_sum_max<EFBFBD>cv_max<61> merge_ratio<69>sitesr)<00>
candidates<EFBFBD>i<>j<>site_i<5F>site_jrO<00>mu_sum<75> sigma_sq_sumrcrfrg<00>_<>row<6F>ratesrhri<00>df_cand<6E>selected<65>used<65>pair<69>q_star<61>pair_kr_r`<00>k_ijrZr[<00> total_single<6C>
total_dual<EFBFBD>delta_N<5F> total_demand<6E> remainder<65>
fractional<EFBFBD>top_idx<64>q_factor<6F>site_satisfaction<6F>idx<64>r<>r_i<5F>r_j<5F>shortfall_probsr<00>p_i<5F>p_jrjrks6 r<00> run_pipeliner<65>[s<><00><00> <15>M<EFBFBD>M<EFBFBD>O<EFBFBD>E<EFBFBD><17><07>.<2E>5<EFBFBD><14>;<3B>.<2E>E<EFBFBD>$<24>K<EFBFBD> <0B>E<EFBFBD>
<EFBFBD>A<EFBFBD><14>J<EFBFBD> <12>1<EFBFBD>X<EFBFBD><01><16>q<EFBFBD>1<EFBFBD>u<EFBFBD>a<EFBFBD><1F>A<EFBFBD><1A>Z<EFBFBD>Z<EFBFBD><01>]<5D>F<EFBFBD><1A>Z<EFBFBD>Z<EFBFBD><01>]<5D>F<EFBFBD><18><1F>A<EFBFBD><14>.<2E>/<2F>D<EFBFBD><13>|<7C><18><1B>D<EFBFBD>\<5C>F<EFBFBD>4<EFBFBD>L<EFBFBD>0<>F<EFBFBD><15>"<22><18><15>d<EFBFBD>|<7C>f<EFBFBD>$<24><06>t<EFBFBD> <0C>v<EFBFBD>(=<3D><18>!<21>'<27>?<3F>A<EFBFBD>-<2D><06>w<EFBFBD><0F><11>0B<30>B<>L<EFBFBD><18>6<EFBFBD>\<5C>A<EFBFBD>%<25><03>d<EFBFBD>
<EFBFBD>U<EFBFBD>(:<3A>:<3A>S<EFBFBD><<3C>=O<>RX<52>Z[<5B>R[<5B>=[<5B>[<5B>E<EFBFBD> <16> <1D> <1D><1A>#<23>I<EFBFBD>.<2E>V<EFBFBD>I<EFBFBD>=N<> <20><1E>t<EFBFBD> <0C>f<EFBFBD>T<EFBFBD>l<EFBFBD>!<21>'<27>?<3F>v<EFBFBD>g<EFBFBD><EFBFBD><1D>c<EFBFBD>{<7B>6<EFBFBD>#<23>;<3B>$<24>Z<EFBFBD>0<><06>z<EFBFBD>@R<><1E> <0E> <0F>#!<21><16>: <0B>:<3A><EFBFBD>!<21><1B><13>C<EFBFBD>j<EFBFBD>5<EFBFBD><14>;<3B>&<26> +<2B> +<2B> -<2D><02> <10><15>s<EFBFBD><1A>e<EFBFBD>D<EFBFBD>k<EFBFBD>/<2F>/<2F><0E>?<3F>?<3F>%<25><04>+<2B>M<> N<><02>FK<46>n<EFBFBD>n<EFBFBD>FV<46>W<>FV<46>F<EFBFBD>A<EFBFBD>s<EFBFBD><13>S<EFBFBD><18>C<EFBFBD><04>I<EFBFBD>%<25><03>J<EFBFBD><0F>7<>FV<46><05>W<> <1D>e<EFBFBD> $<24><02> <10><15>Z<EFBFBD><02><1A>q<EFBFBD><14>B<EFBFBD>b<EFBFBD><02>!<21>1<EFBFBD>
<EFBFBD>
<EFBFBD> <11>l<EFBFBD>l<EFBFBD>:<3A>&<26>2<>2<>7<EFBFBD>e<EFBFBD>2<>L<>G<EFBFBD><11>H<EFBFBD> <0E>5<EFBFBD>D<EFBFBD><19>"<22>"<22>$<24><06><01>3<EFBFBD> <0E>w<EFBFBD><<3C>t<EFBFBD> #<23><03>G<EFBFBD> <0C>D<EFBFBD>(@<40> <14>O<EFBFBD>O<EFBFBD>C<EFBFBD>K<EFBFBD>K<EFBFBD>M<EFBFBD> *<2A> <10>H<EFBFBD>H<EFBFBD>S<EFBFBD><17>\<5C> "<22> <10>H<EFBFBD>H<EFBFBD>S<EFBFBD><17>\<5C> "<22> %<25><19><04>#<23>D<EFBFBD><16>L<EFBFBD>$<24>y<EFBFBD>/<2F>#'<27><06><<3C><14>i<EFBFBD><1F>!<21>E<01><06> <20><04>Y<EFBFBD><0F>'<27><06><04>V<EFBFBD> <0C>d<EFBFBD>9<EFBFBD>o<EFBFBD>N<><04>V<EFBFBD> <0C>'<27><01>F<EFBFBD>
<EFBFBD>D<EFBFBD><16>L<EFBFBD>$<24>y<EFBFBD>/<2F>R<><04>V<EFBFBD> <0C><1E>v<EFBFBD>,<2C><14>f<EFBFBD><1C>5<><04>Y<EFBFBD><0F> <19><1E>c<EFBFBD>
<EFBFBD><0F><0F>)<29>E<EFBFBD>*<2A><15> <0F>F<EFBFBD><18><04><17><05>;<3B><04>U<EFBFBD> <0B>S<EFBFBD><03><12>3<EFBFBD>s<EFBFBD>C<EFBFBD>=<3D>;<3B>.<2E>/<2F><04> <0F>3<EFBFBD>s<EFBFBD>C<EFBFBD>=<3D> <20><16>s<EFBFBD>C<EFBFBD>=<3D>1<EFBFBD>$<24>D<EFBFBD> <0F>!<21>8<EFBFBD><14>D<EFBFBD><1B>G<EFBFBD>}<7D>d<EFBFBD>7<EFBFBD>m<EFBFBD>u<EFBFBD><05>'*<2A>T<EFBFBD>z<EFBFBD><05> <09> <09>%<25><1A>#<23>$<24>'*<2A>T<EFBFBD>z<EFBFBD><05> <09> <09>%<25><1A>#<23>$<24>9=<3D><06><04>[<5B>!<21>4<EFBFBD> <0B>#4<>5<>6<><19><19><1A>$<24>(<28>(<28>*<2A>L<EFBFBD><14>V<EFBFBD>]<5D>]<5D>_<EFBFBD>%<25>J<EFBFBD><11>\<5C>J<EFBFBD>.<2E>/<2F>G<EFBFBD><0E><11>{<7B><1C>Z<EFBFBD>(<28>,<2C>,<2C>.<2E> <0C>#<23>e<EFBFBD>J<EFBFBD>&7<>7<>,<2C>F<>M<>M<>b<EFBFBD>h<EFBFBD>h<EFBFBD>W<>^<5E>^<5E>_b<5F>c<><05>i<EFBFBD><18><1B>e<EFBFBD>I<EFBFBD>.<2E>2<>2<>4<>4<> <09> <14>q<EFBFBD>=<3D> <20>5<EFBFBD><1A>#4<>4<>|<7C>C<>e<EFBFBD>I<EFBFBD>FV<46>V<>J<EFBFBD> <20>)<29>)<29>#<23>i<EFBFBD>.<2E>9<>?<3F>?<3F>G<EFBFBD> <11>I<EFBFBD>I<EFBFBD>g<EFBFBD>y<EFBFBD>(<28> )<29>Q<EFBFBD> .<2E> )<29>"'<27>
<EFBFBD>"3<>e<EFBFBD>I<EFBFBD>6F<36>"F<><05><1E><1F>"'<27>
<EFBFBD>"3<><05><1E><1F> <10> <20>
!<21>E<EFBFBD>$<24>K<EFBFBD>
/<2F> 4<> 4<> 6<>B<EFBFBD><18><04><15>z<EFBFBD>z<EFBFBD>4<EFBFBD> <0B>,<2C>d<EFBFBD>;<3B>.?<3F>@<40>!<21>D<><04>
<EFBFBD>d<EFBFBD>T<EFBFBD>)<29>_<EFBFBD>$<24>$<24><02><19>
<0A>U<EFBFBD>#<23> $<24>u<EFBFBD>T<EFBFBD>{<7B>'8<>'8<><1E>'H<> H<>5<EFBFBD>QU<51>;<3B> V<> W<>B<EFBFBD><18><04><15>z<EFBFBD>z<EFBFBD>4<EFBFBD> <0B>,<2C>d<EFBFBD>;<3B>.?<3F>@<40>!<21>D<><04><15>f<EFBFBD><1C><04>V<EFBFBD> <0C>,<2C><06>!<21>&<26>)<29><08>
<EFBFBD>d<EFBFBD>X<EFBFBD>o<EFBFBD><04>Y<EFBFBD><0F>/<2F>/<2F><02> <19> <1B><15><19>N<EFBFBD>N<EFBFBD>$<24><08><03>S<EFBFBD>CF<43>z<EFBFBD>?<3F>UV<55>CV<43>C<EFBFBD> <20> !<21>C<EFBFBD><04>I<EFBFBD> -<2D><03>J<EFBFBD><0F> ?<3F>\]<5D><01>,-<2D><19>#<23>i<EFBFBD>.<2E>)<29>%<25><19><04><15>z<EFBFBD>z<EFBFBD>4<EFBFBD> <0B>,<2C>d<EFBFBD>;<3B>.?<3F>@<40>!<21>D<><04>:><3E>|<7C>:L<>q<EFBFBD>:P<>d<EFBFBD>T<EFBFBD>&<26>\<5C>!<21>D<EFBFBD><1C>$6<>6<>VW<56><03>:><3E>|<7C>:L<>q<EFBFBD>:P<>d<EFBFBD>T<EFBFBD>&<26>\<5C>!<21>D<EFBFBD><1C>$6<>6<>VW<56><03><19>$<24>{<7B>+<2B>,<2C><03>3<>,<2C><19>$<24>{<7B>+<2B>,<2C><03>3<>,<2C> <19> <11>"<22>)<29>)<29>+<2B> ,<2C>E<EFBFBD> <19>%<25> <20>B<EFBFBD><1C><13>U<EFBFBD><1A>!<21>B<EFBFBD><18>O<EFBFBD><18><04> <10><19>O<EFBFBD><01>#<23>A<EFBFBD>t<EFBFBD>F<EFBFBD>|<7C>T<EFBFBD>)<29>_<EFBFBD>E<><03>#<23>A<EFBFBD><01>E<EFBFBD>4<EFBFBD><06><<3C><14>i<EFBFBD><1F>I<><03><17><1E><1E>q<EFBFBD>A<EFBFBD><03>G<EFBFBD><01>C<EFBFBD><07>#8<>8<>9<> <19>
&5<><12><17><17><1F> !<21>!<21>B<EFBFBD> <13>c<EFBFBD> <19>B<EFBFBD><19><18>]<5D>%<25><10><02>"<22>B<EFBFBD>b<EFBFBD><02> <06><06><>GXs<00>[ z<============================================================u+Task 3 - Step 7: 敏感性分析 (High Res)<29>task1z03_allocate.xlsxz07_sensitivity.xlsx<73>figureszfig3_sensitivity.pngT)<02>parents<74>exist_oku站点数据: u 个u基准结果: E1=rfz.0fz, R1=rjz.4fg<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?g,=V<><56><EFBFBD><EFBFBD>?g{<14>G<EFBFBD>z<EFBFBD>?r<00>
g<>Y@rrIi^g\"0<>@<40>g0<67>D<00>?)r<>r<>r<>r<>u
开始参数扫描...zScanning Merge Ratio...r<>)<02>paramrczScanning Distance Threshold...r<>zScanning Capacity Cap...r<>zScanning CV Threshold...r<>u
绘制敏感性曲线...)<02><00> )<01>figsizezTask 3 Sensitivity Analysis<69><00>bold)<02>fontsize<7A>
fontweight)z Merge Ratio<69>Ratio)zDistance Threshold (l_max)<29>Miles)uCapacity Cap (μ_sum)z lbs (proxy))z CV Threshold<6C>CVr<56>rczb-g<><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?zExpected Service (E1))<02> linewidth<74>labelrgzg-g<><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?zQuality-weighted (E2))r<><00>alphar<61>zService (E1/E2)zr--zShortfall Risk (R1)zRisk Probability (R1)r<>)<01>color<6F>y)<02>axis<69>
labelcolor<EFBFBD>gray<61>:)<04>xr<78><00> linestyler<65><00>best)r<><00>frameonz
Effect of rV)r<>)rg<><1E><>Q<EFBFBD><51>?rgffffff<66>?)<01>recti,)<01>dpiu图表已保存至: <20>openpyxl)<01>engine<6E> detailed_data)<02>
sheet_namer<EFBFBD>z - <20>d)<06> Parameter<65>E1_RangezE1_Var%<25>E2_RangezE2_Var%<25>R1_Range<67>summaryu数据已保存至: u完成!)r )r)rQrRrSrS)a<>__doc__<5F>pandasrz<00>numpyr <00>scipyr<00>matplotlib.pyplot<6F>pyplot<6F>plt<6C>warnings<67>os<6F>pathlibr<00>filterwarnings<67>style<6C>use<73>rcParamsr5r <00>SHORTFALL_THRESHOLDrrr*r.r6rDr{<00>ndarrayrPr<><00>print<6E>__file__<5F>resolve<76>parent<6E>BASE_DIR<49>
SITES_PATH<EFBFBD> OUTPUT_XLSX<53>
OUTPUT_FIG<EFBFBD>mkdir<69>
read_excelrEr#r<><00>
BASE_L_MAX<EFBFBD>BASE_MU_SUM_MAX<41> BASE_CV_MAX<41>BASE_MERGE_RATIO<49> base_result<6C>roundr'rM<00> params_config<69> all_results<74>val<61>res<65>updaterw<00>
df_results<EFBFBD>subplots<74>fig<69>axes<65>suptitle<6C> param_labels<6C> params_list<73> enumerater<65>r<><00>axr|<00>data<74>plot<6F>line1<65>line2<65>
set_xlabel<EFBFBD>
set_ylabel<EFBFBD>twinx<6E>ax2<78>line3<65> tick_params<6D>base_val<61>axvline<6E>lines<65> get_label<65>labels<6C>legend<6E> set_title<6C>grid<69> tight_layout<75>savefig<69> ExcelWriter<65>writer<65>to_excelr<6C><00>subr <00>max)<01>ls0r<00><module>r#s*<00><01> <04><14><12><17><1F><0F> <09><18><08><17><17><08>!<21><04> <09> <09> <0A> <0A>&<26>'<27>"O<><03> <0C> <0C> <1E><1F>%*<2A><03> <0C> <0C> !<21>"<22>
<08><01><17><11><19><13>K<01>\<01> {<01>><3E> I<01>
O<01> <10>b<EFBFBD>l<EFBFBD>l<EFBFBD> <10>r<EFBFBD>z<EFBFBD>z<EFBFBD> <10> R<06>n<06>h<EFBFBD><0F><05>3<>4<><05>h<EFBFBD><0F> <10><08>><3E> !<21> !<21> #<23> *<2A> *<2A><08> <15>_<EFBFBD>_<EFBFBD>w<EFBFBD> &<26>);<3B> ;<3B>
<EFBFBD><16>.<2E>.<2E> <0B> <15> <09> !<21>$:<3A> :<3A>
<EFBFBD>
<EFBFBD><11><11><17><17><04>t<EFBFBD><17>4<> <0A>=<3D>=<3D><1A> $<24><08><05><0E>s<EFBFBD>8<EFBFBD>}<7D>o<EFBFBD>T<EFBFBD>*<2A>+<2B>*<2A>(<28>3<><0F><10>
<EFBFBD><15><0F><11> <0B><16><10><1B>8<EFBFBD>_<EFBFBD>j<EFBFBD>/<2F>S^<5E>`p<>q<> <0B><05><19>+<2B>d<EFBFBD>+<2B>C<EFBFBD>0<><05>k<EFBFBD>$<24>6G<36><03>5L<35>M<>N<><16>8<EFBFBD>8<EFBFBD>B<EFBFBD>I<EFBFBD>I<EFBFBD>d<EFBFBD>K<EFBFBD><14>><3E><01>B<> <0F>Y<EFBFBD>Y<EFBFBD>r<EFBFBD>:<3A>q<EFBFBD><05> 6<><14>)<29>)<29>C<EFBFBD><1A>Q<EFBFBD>e<EFBFBD><<3C><10>h<EFBFBD>h<EFBFBD>r<EFBFBD>y<EFBFBD>y<EFBFBD><14>{<7B>D<EFBFBD>9<>1<EFBFBD>=<3D> <02> <0A><11> <0B><06><1F> <20><06><1F> <20> <18><1D> '<27>C<EFBFBD>
<16>x<EFBFBD><1F>*<2A>o<EFBFBD>{<7B>\_<>
`<60>C<EFBFBD><07>J<EFBFBD>J<EFBFBD><1D><13>5<>6<><0F><16><16>s<EFBFBD><1B> (<28> <06>&<26>'<27> <18><17> !<21>C<EFBFBD>
<16>x<EFBFBD><1F>#<23><EFBFBD> <0B>Ue<55>
f<EFBFBD>C<EFBFBD><07>J<EFBFBD>J<EFBFBD><17>3<EFBFBD>/<2F>0<><0F><16><16>s<EFBFBD><1B> "<22> <06> <20>!<21> <18><1C> &<26>C<EFBFBD>
<16>x<EFBFBD><1F>*<2A>c<EFBFBD>;<3B>P`<60>
a<EFBFBD>C<EFBFBD><07>J<EFBFBD>J<EFBFBD><1C><03>4<>5<><0F><16><16>s<EFBFBD><1B> '<27> <06> <20>!<21> <18><18> "<22>C<EFBFBD>
<16>x<EFBFBD><1F>*<2A>o<EFBFBD>s<EFBFBD>Td<54>
e<EFBFBD>C<EFBFBD><07>J<EFBFBD>J<EFBFBD><18>C<EFBFBD>0<>1<><0F><16><16>s<EFBFBD><1B> #<23> <10>\<5C>\<5C>+<2B> &<26>
<EFBFBD>
<06>"<22>#<23> <0F>L<EFBFBD>L<EFBFBD><11>A<EFBFBD>x<EFBFBD> 0<> <09><03>T<EFBFBD><03> <0C> <0C> *<2A>R<EFBFBD>F<EFBFBD> <0C>K<>,<2C> 4<>:<3A>$<24> <02> <0C>?<3F> <0B><19>+<2B>&<26>H<EFBFBD>A<EFBFBD>u<EFBFBD> <0A>a<EFBFBD>1<EFBFBD>f<EFBFBD>a<EFBFBD>!<21>e<EFBFBD>m<EFBFBD> <1C>B<EFBFBD> <15>j<EFBFBD><17>)<29>U<EFBFBD>2<> 3<> ?<3F> ?<3F><07> H<>D<EFBFBD><10>W<EFBFBD>W<EFBFBD>T<EFBFBD>'<27>]<5D>D<EFBFBD><14>J<EFBFBD><04><03>Kb<4B>W<EFBFBD> c<>F<EFBFBD>E<EFBFBD> <0F>W<EFBFBD>W<EFBFBD>T<EFBFBD>'<27>]<5D>D<EFBFBD><14>J<EFBFBD><04><03>3<EFBFBD>Vm<56>W<EFBFBD> n<>F<EFBFBD>E<EFBFBD><06>M<EFBFBD>M<EFBFBD>,<2C>u<EFBFBD>%<25>a<EFBFBD>(<28>)<29><06>M<EFBFBD>M<EFBFBD>#<23>$<24> <0A>(<28>(<28>*<2A>C<EFBFBD> <10>X<EFBFBD>X<EFBFBD>d<EFBFBD>7<EFBFBD>m<EFBFBD>T<EFBFBD>$<24>Z<EFBFBD><15>#<23>Mb<4D>X<EFBFBD> c<>F<EFBFBD>E<EFBFBD><07>N<EFBFBD>N<EFBFBD>*<2A>#<23>N<EFBFBD>6<><07>O<EFBFBD>O<EFBFBD><13><13>O<EFBFBD>-<2D> <0A> <0A><1D>#<23><08> <0E>'<27> <19><1D><08> <0E>,<2C> <1E>"<22><08> <0E>(<28> <1A><1E><08><06>J<EFBFBD>J<EFBFBD><18><16>3<EFBFBD>c<EFBFBD>J<EFBFBD>B<><13>E<EFBFBD>5<EFBFBD> !<21>E<EFBFBD>%*<2A> +<2B>U<EFBFBD><01>k<EFBFBD>k<EFBFBD>m<EFBFBD>U<EFBFBD> +<2B>F<EFBFBD><06>I<EFBFBD>I<EFBFBD>e<EFBFBD>V<EFBFBD><16><14>I<EFBFBD>6<><06>L<EFBFBD>L<EFBFBD>:<3A>l<EFBFBD>5<EFBFBD>1<>!<21>4<>5<>6<>7<><06>G<EFBFBD>G<EFBFBD>D<EFBFBD><03>G<EFBFBD><1C>E'<27>H<04><10><10>(<28>)<29><03> <0B> <0B>J<EFBFBD>C<EFBFBD> <20><05><1C>Z<EFBFBD>L<EFBFBD>)<29>*<2A>
<08>^<5E>^<5E>K<EFBFBD>
<EFBFBD>3<>v<EFBFBD><0E><17><17><06>?<3F>%<25><17>H<><11>G<EFBFBD><1C><05><18><1A>G<EFBFBD>,<2C><05>5<>6<><03><0F><0E><0E><1E><1E>t<EFBFBD>9<EFBFBD>=<3D>=<3D>?<3F>3<EFBFBD>/<2F>s<EFBFBD>3<EFBFBD>t<EFBFBD>9<EFBFBD>=<3D>=<3D>?<3F>3<EFBFBD>2G<32>H<><1B>D<EFBFBD> <09> <0A> <0A><0F>#<23>d<EFBFBD>)<29>-<2D>-<2D>/<2F>9<>[<5B><14>=N<>N<>QT<51>T<><1E>t<EFBFBD>9<EFBFBD>=<3D>=<3D>?<3F>3<EFBFBD>/<2F>s<EFBFBD>3<EFBFBD>t<EFBFBD>9<EFBFBD>=<3D>=<3D>?<3F>3<EFBFBD>2G<32>H<><1B>D<EFBFBD> <09> <0A> <0A><0F>#<23>d<EFBFBD>)<29>-<2D>-<2D>/<2F>9<>[<5B><14>=N<>N<>QT<51>T<><1E>t<EFBFBD>9<EFBFBD>=<3D>=<3D>?<3F>3<EFBFBD>/<2F>s<EFBFBD>3<EFBFBD>t<EFBFBD>9<EFBFBD>=<3D>=<3D>?<3F>3<EFBFBD>2G<32>H<> 
<EFBFBD> <0B><1D><07>L<EFBFBD>L<EFBFBD><17><19>"<22>"<22>6<EFBFBD>i<EFBFBD>u<EFBFBD>"<22>M<>4<>"<06><1C>[<5B>M<EFBFBD>*<2A>+<2B><05>i<EFBFBD><10><>?,<2C>4<>3<>s<00>2Y#<06>D9Y(<03>(
Y6