
Utafiti huu unaeleza utekelezaji wa Matlab wa algoriti ya arc-search infeasible interior-point kwa linear programming, ambayo mpaka wake wa iteresheni za kipolinomia umetolewa kama O(√nL). arcLP hutatua tatizo la kawaida la kupunguza \(c^Tx\) chini ya masharti \(Ax=b\) na \(x\ge0\), huku programu ikijumuisha pre-processing, uchaguzi wa nukta ya kuanzia, utatuzi wa mifumo sparse ya Cholesky, pembe ya hatua ya arc-search, centering parameter, utunzaji wa degeneracy, post-processing na ukaguzi wa mwisho wa optimality.
Katika quality control, arcLP ililinganishwa na utekelezaji wa Matlab wa Mehrotra predictor-corrector kwa matatizo ya Netlib kwa kutumia nukta zilezile za kuanzia, pre/post-processing sawa na termination criteria sawa. Hesabu ya moja kwa moja ya jedwali lenye matatizo 51 inaonyesha arcLP ilitumia iteresheni chache katika matatizo 24, idadi sawa katika 11 na iteresheni nyingi katika 16. Jumla ni iteresheni 1084 kwa arcLP dhidi ya 1099 kwa Mehrotra. Equality-constraint residual ilikuwa ndogo kwa arcLP katika matatizo 34, sawa katika moja na kubwa katika 16.
Kikomo muhimu cha tafsiri ni kwamba Software Metapaper hii ya 2026 haitoi upya uthibitisho kamili wa mpaka wa O(√nL). Hoja hiyo ya kinadharia inaelekezwa kwenye kazi ya awali; mchango wa moja kwa moja wa makala hii ni utekelezaji wa programu, mikakati ya numerical computation na benchmark testing.
Tatizo la primal na dual
\[ \min c^Tx,\qquad Ax=b,\quad x\ge0. \tag{1} \]
Ambapo \(A\in\mathbb{R}^{m\times n}\), \(b\in\mathbb{R}^m\), \(c\in\mathbb{R}^n\), na \(x\in\mathbb{R}^n\).
Dual yake ni:
\[ \max b^T\lambda,\qquad A^T\lambda+s=c,\quad s\ge0. \tag{2} \]
Interior-point algorithm huanza na \((x^0,s^0)>0\) na huweka \(x^k,s^k\) zikiwa chanya katika iteresheni zote.
Uchaguzi wa nukta ya kuanzia
\[ \max\left\{ \|Ax^0-b\|, \|A^T\lambda^0+s^0-c\|, \frac{(x^0)^Ts^0}{n} \right\}. \tag{3} \]
Programu hutengeneza candidates mbili kwa mbinu zilizotajwa katika chanzo na huchagua ile yenye thamani ndogo ya kipimo hiki.
Uwiano wa ukubwa wa vipengele vya A
\[ \frac{\max |A_{i,j}|} {\min\{|A_{k,l}|:A_{k,l}\neq0\}}. \tag{4} \]
Makala inaeleza kuwa general matrix scaling haikuonyesha faida ya jumla ya computational efficiency katika uchambuzi wa awali, hivyo scaling haijaingizwa kama hatua ya kawaida. Hata hivyo uwiano huu hutumiwa kuamua kama kanuni fulani ya pre-processing inahitajika. Maelezo ya mapema ya `calRatioCondition(A)` na sehemu ya baadaye kuhusu kutotumia scaling hayalingani kikamilifu katika maneno, hivyo tofauti hiyo inapaswa kuhifadhiwa.
Sparse Cholesky linear algebra
\[ AD^2A^Tu=L\Lambda L^Tu=v. \tag{5} \]
Kwa mujibu wa chanzo, kutatua mifumo ya aina hii ndiyo gharama kuu ya computational work ya algoriti.
Degenerate solutions
arcLP ina optional procedure ya kushughulikia degenerate solutions. Parameter \(d=1\) hutumia utaratibu huu, wakati \(d=0\) ni chaguo la kawaida lisiloutumia. `makeAfull(...)` inaweza kutumia Markowitz pivot criterion kuondoa dependent rows huku ikijaribu kuhifadhi sparsity.
Arc-search angle na centering parameter
Badala ya kusonga kwenye mstari ulionyooka pekee kuelekea optimizer, arcLP hutumia trajectory ya arc. Step angle inaweza kuhesabiwa analytically. Centering parameter \(\sigma_k\) huchaguliwa kwa specialized Golden Section search. Chanzo kinasema classical Golden Section hupunguza interval hadi takriban 0.618 ya urefu wake, ilhali utaratibu uliotumiwa hapa huipunguza hadi 0.5 katika kila iteration.
\[ \alpha_k=\min\{0.9999\alpha_k,\;0.99\pi/2\}<0.99\pi/2. \]
Rescaling hii inalenga kuzuia \(x^k\) na \(s^k\) zisikaribie sifuri haraka mno katika iterations za mwanzo na kupunguza matatizo ya numerical stability.
Kugundua unbounded na infeasible instances
Kwa unboundedness, mojawapo ya checks ni:
\[ \max_i|x_i|>10^{10}. \]
Kwa infeasibility, mojawapo ni:
\[ \max_i|\lambda_i|>10^{10}. \]
Kutopatikana kwa step size inayohifadhi positivity ya \(x,s\) huku ikipunguza duality gap pia hutumiwa kama indicator. Makala yenyewe inaita matokeo ya checks hizi “reasonable detection” baada ya numerical tests; kwa hiyo hazipaswi kutafsiriwa kama uthibitisho wa universal classification kwa kila LP.
Termination criterion
\[ \frac{\|r_b^k\|}{\max\{1,\|b\|\}}+ \frac{\|r_c^k\|}{\max\{1,\|c\|\}}+ \frac{\mu_k}{\max\{1,|c^Tx^k|,|b^T\lambda^k|\}} <10^{-8}, \]
\[ r_b^k=Ax^k-b,\qquad r_c^k=A^T\lambda^k+s^k-c. \]
Programu pia inaweza kusimama ikiwa primal na dual step sizes zote ziko chini ya \(10^{-8}\), au chini ya masharti mengine ya numerical deterioration yaliyoainishwa na chanzo.
Utafiti unasema nini, na hausomi nini?
Utafiti unaonyesha kuwa arcLP ni Matlab solver inayofanya kazi, imepata optimal solutions katika benchmark zilizoripotiwa na inaweza kushindana computationally na Mehrotra implementation. Hata hivyo hauonyeshi kuwa arcLP ni bora katika kila tatizo, kila computer architecture au dhidi ya kila commercial solver. Pia makala hii haijarudia proof kamili ya O(√nL).
Umuhimu unaowezekana katika Afrika Mashariki
Utafiti haukutumia dataset maalumu ya Afrika Mashariki. Hata hivyo linear programming ni msingi wa matatizo ya optimization katika mipango ya nishati, logistics, usafiri, uzalishaji, allocation ya rasilimali na operations research. Kwa hiyo arcLP inaweza kuwa muhimu katika teaching na methodological research katika vyuo vikuu na taasisi za utafiti za Afrika Mashariki. Matumizi katika mifumo halisi yanahitaji validation ya ndani kulingana na ukubwa wa tatizo, computational infrastructure, data quality na software integration; matokeo ya Netlib hayawezi kuhamishwa moja kwa moja kuwa ahadi ya performance katika mfumo wowote wa eneo hili.
Mbinu na Matokeo ya Utafiti
[x,obj,kk,infe,lambda,s,exflag]=arcLP(A,b,c,d,tol,iter)
| exflag | Maana |
|---|---|
| 0 | Successful termination |
| 1 | Infeasible instance kwa mujibu wa API ya chanzo |
| 2 | Unbounded instance kwa mujibu wa API ya chanzo |
| 3 | Primal na dual zote zimeripotiwa infeasible |
| 4 | Input A, b au c haijakamilika |
Mfano rahisi
\[ \min x_1,\qquad x_1+x_2=5,\quad x_1,x_2\ge0. \]
Kwa \(A=[1\;1]\), \(b=5\), \(c=[1\;0]^T\), chanzo kinaripoti arcLP kupata \(x^*=[0\;5]^T\) katika iterations tano.
Matokeo kamili ya Netlib yaliyoripotiwa
| Tatizo | Mehrotra iter. | arcLP iter. | Mehrotra objective | arcLP objective | Mehrotra residual | arcLP residual |
|---|---|---|---|---|---|---|
| Adlittle | 15 | 16 | 2.2549e+05 | 2.2549e+05 | 3.4e–08 | 3.0e–11 |
| Afiro | 9 | 9 | –464.7531 | –464.7531 | 8.0e–12 | 6.2e–13 |
| Agg | 22 | 20 | –3.5992e+07 | –3.5992e+07 | 5.2e–05 | 3.7e–06 |
| Agg2 | 20 | 21 | –2.0239e+07 | –2.0239e+07 | 5.2e–07 | 3.1e–08 |
| Agg3 | 18 | 20 | 1.0312e+07 | 1.0312e+07 | 8.8e–09 | 1.5e–08 |
| Bandm | 22 | 20 | –158.6280 | –158.6280 | 8.3e–10 | 3.6e–11 |
| Beaconfd | 11 | 11 | 3.3592e+04 | 3.3592e+04 | 1.4e–10 | 1.8e–12 |
| Blend | 14 | 14 | –30.8122 | –30.8122 | 4.9e–11 | 1.6e–12 |
| Bnl1 | 35 | 34 | 1.9776e+03 | 1.9776e+03 | 3.4e–09 | 2.9e–09 |
| Bnl2+ | 38 | 35 | 1.8112e+03 | 1.8112e+03 | 9.3e–07 | 3.5e–06 |
| Brandy | 19 | 24 | 1.5185e+03 | 1.5185e+03 | 6.2e–08 | 2.4e–06 |
| Degen2+ | 17 | 19 | –1.4352e+03 | –1.4352e+03 | 2.0e–10 | 5.9e–10 |
| Degen3* | 22 | 35 | –9.8729e+02 | –9.8729e+02 | 1.2e–09 | 8.6e–08 |
| fffff800 | 31 | 28 | 5.5568e+05 | 5.5568e+05 | 7.7e–04 | 3.7e–09 |
| Israel | 29 | 27 | –8.9665e+05 | –8.9664e+05 | 1.8e–08 | 3.4e–08 |
| Lotfi | 18 | 16 | –25.2647 | –25.2646 | 2.7e–07 | 7.8e–09 |
| Maros_r7 | 21 | 20 | 1.4972e+06 | 1.4972e+06 | 6.4e–09 | 1.7e–09 |
| Osa_07+ | 35 | 32 | 5.3578e+05 | 5.3578e+05 | 1.5e–07 | 8.4e–10 |
| Osa_14 | 37 | 42 | 1.1065e+06 | 1.1065e+06 | 3.0e–08 | 5.2e–09 |
| Osa_30 | 36 | 42 | 2.1421e+06 | 2.1421e+06 | 1.3e–08 | 1.3e–08 |
| Qap12 | 24 | 23 | 5.2289e+02 | 5.2289e+02 | 6.2e–09 | 2.9e–10 |
| Qap15+ | 44 | 28 | 1.0410e+03 | 1.0410e+03 | 1.5e–05 | 8.4e–08 |
| Qap8+ | 13 | 12 | 2.0350e+02 | 2.0350e+02 | 7.1e–09 | 6.2e–11 |
| Sc105 | 11 | 11 | –52.2021 | –52.2021 | 9.8e–11 | 2.2e–12 |
| Sc205 | 12 | 12 | –52.2021 | –52.2021 | 8.8e–11 | 4.4e–11 |
| Sc50a | 9 | 10 | –64.5751 | –64.5751 | 8.3e–08 | 8.5e–13 |
| Sc50b | 8 | 10 | –70.0000 | –70.0000 | 9.1e–07 | 3.6e–12 |
| Scagr25 | 18 | 19 | –1.4753e+07 | –1.4753e+07 | 4.6e–09 | 1.7e–08 |
| Scagr7 | 17 | 17 | –2.3314e+06 | –2.3314e+06 | 1.1e–07 | 7.0e–10 |
| Scfxm1+ | 22 | 21 | 1.8417e+04 | 1.8417e+04 | 1.6e–08 | 3.3e–05 |
| Scfxm2 | 26 | 24 | 3.6660e+04 | 3.6660e+04 | 2.6e–08 | 4.8e–05 |
| Scfxm3+ | 23 | 23 | 5.4901e+04 | 5.4901e+04 | 9.8e–08 | 1.2e–04 |
| Scrs8 | 30 | 28 | 9.0430e+02 | 9.0430e+02 | 1.8e–10 | 1.0e–10 |
| Scsd1 | 13 | 11 | 8.6666 | 8.6666 | 8.7e–14 | 3.3e–15 |
| Scsd6 | 16 | 16 | 50.5000 | 50.5000 | 8.6e–15 | 2.6e–13 |
| Scsd8 | 14 | 15 | 9.0500e+02 | 9.0500e+02 | 1.3e–10 | 2.6e–13 |
| Sctap1 | 27 | 20 | 1.4123e+03 | 1.4123e+03 | 0.0031 | 1.4e–11 |
| Sctap2 | 21 | 22 | 1.7248e+03 | 1.7248e+03 | 4.4e–07 | 1.4e–12 |
| Sctap3 | 22 | 21 | 1.4240e+03 | 1.4240e+03 | 5.9e–07 | 1.9e–12 |
| Share1b | 25 | 26 | –7.6589e+04 | –7.6589e+04 | 1.5e–06 | 1.9e–07 |
| Share2b | 15 | 15 | –4.1573e+02 | –4.1573e+02 | 7.9e–10 | 1.4e–10 |
| Ship04l | 18 | 19 | 1.7933e+06 | 1.7933e+06 | 2.9e–11 | 1.3e–10 |
| Ship04s | 20 | 19 | 1.7987e+06 | 1.7987e+06 | 4.5e–09 | 3.1e–10 |
| Ship08l | 22 | 20 | 1.9091e+06 | 1.9090e+06 | 1.0e–10 | 1.8e–11 |
| Ship08s | 20 | 19 | 1.9201e+06 | 1.9201e+06 | 4.5e–12 | 1.7e–09 |
| Ship12l | 21 | 21 | 1.4702e+06 | 1.4702e+06 | 1.0e–08 | 3.0e–10 |
| Ship12s | 19 | 21 | 1.4892e+06 | 1.4892e+06 | 2.1e–13 | 5.0e–11 |
| Stocfor1+ | 14 | 13 | –4.1132e+04 | –4.1132e+04 | 1.1e–10 | 8.6890e–11 |
| Stocfor2 | 22 | 22 | –3.9024e+04 | –3.9024e+04 | 1.6e–09 | 4.3e–09 |
| Stocfor3 | 38 | 37 | –3.9976e+04 | –3.9977e+04 | 6.4e–08 | 7.7e–08 |
| Truss | 26 | 24 | 4.5882e+05 | 4.5882e+05 | 9.5e–06 | 5.2e–07 |
Jedwali linaonyesha faida na hasara zote mbili. Mfano, Qap15+ ina 44 dhidi ya 28 iterations na residual 1.5e–05 dhidi ya 8.4e–08 kwa faida ya arcLP; lakini Degen3* ina 22 dhidi ya 35 iterations na residual 1.2e–09 dhidi ya 8.6e–08 kwa faida ya Mehrotra. Hivyo hitimisho sahihi ni computational competitiveness, si universal dominance.
Verianla Live: mtiririko wa arcLP
Mtiririko huu unatokana na architecture iliyoelezwa katika chanzo.
| Hatua | Maelezo | Source |
|---|---|---|
| 1. Input | A, b, c na parameters hupokelewa. | Main function |
| 2. Pre-processing | Presolve rules na early status checks hutekelezwa. | Pre-process |
| 3. Initial point | Candidate bora huchaguliwa kwa Equation (3). | Equation 3 |
| 4. Arc-search | Iterations huendelea kwa x na s chanya. | Arc-search |
| 5. Sparse system | Cholesky system hutatuliwa. | Equation 5 |
| 6. Termination | Residuals, μ, step sizes na status conditions hukaguliwa. | Termination criteria |
| 7. Post-processing | Final optimality check na outputs hutolewa. | Main function |
Maelezo ya Chanzo na Mbinu
Mwandishi: Yaguang Yang, Independent Researcher, US.
DOI: 10.5334/jors.674.
Jarida: Journal of Open Research Software, 14(1):57.
Mchapishaji: Ubiquity Press.
Tarehe ya uchapishaji: 12 Agosti 2026.
Aina: Software Metapaper iliyopitia peer review.
Leseni ya makala: CC BY 4.0. Leseni ya software: BSD 3-Clause.
Software version: 1.0. Tarehe ya software imeandikwa “08/02/2026” katika chanzo; kwa kuwa format haijaelezwa, haibadilishwi kuwa tafsiri moja ya siku/mwezi.
Funding: JORS iliondoa publication fee; hakuna separate research grant iliyoripotiwa.
Competing interests: mwandishi ametangaza kuwa hana competing interests.
Kikomo cha kisayansi: proof kamili ya O(√nL) na performance-profile analysis iliyorejelewa haijatolewa upya katika makala hii. Numerical benchmark inaunga mkono competitiveness ya arcLP, si superiority katika kila hali.

Acha maoni
Anwani yako ya barua pepe haitachapishwa. Sehemu za lazima zimewekewa alama ya *