Machine Learning

Uhlelo oluqondile: Ukuphatha okuhlosiwe okuningi ngohlelo lwegoli

Lokhu kuyingxenye (futhi engagcina) yochungechunge lwezinhlelo oluhlelekile ebengibhala ngalo. Ngomqondo oyisisekelo ombozwe izindatshana zangaphambili, le ndatshana igxile ekuhlelweni kwegoli okuyinto esetshenziswayo evamile yokusetshenziswa (LP). Ukuhlelwa kwegoli kuwukusetha okuqondile kokuhlela okuqondile okungaphatha ukusebenza kwezinjongo eziningi enkingeni eyodwa ye-LP.

Ekupheleni kwalesi sihloko, uzoqonda:
1. Ukuchazwa kokuhlelwa kwegoli nokuthi kufanele kusetshenziswe nini
2. Indlela yohlelo lwezinhloso ezinesisindo – ifanekiselwa ngesibonelo
3. Indlela yokuhlela yenhloso yokuqonda – iboniswe ngesibonelo

Ukuchazwa kanye nokusebenzisa icala lokuhlelwa kwegoli

Ukuhlelwa kwegoli kuyicala elikhethekile lohlelo oluqondile oluvumela abaningi – kaningi ukungqubuzana – izinhloso zokulinganisela. Ngezinkinga ezijwayelekile ze-LP, ukhetha i-metric eyodwa ukuze wenze kahle (unciphise noma ukhulise) bese usetha izingqinamba ukuze uqinisekise ukuthi ikhambi elifanele liyenzeka. Ukuhlelwa kwegoli kuyindlela evumela amametricta we-onents amaningi ukuthi aqondiswe ngasikhathi sinye.

'I-Mindset' of Goal Programming ihluke ngokuyisisekelo ezinkingeni ze-vanilla le-vanilla LP. Ukusesha kwe-LP okuyisisekelo zezindlela zokuthola okuncane noma okuningana kwe -nye zwi I-Metric ngangokunokwenzeka – isib., Khulisa inzuzo noma unciphise imfucuza – ngokuya ngezingqinamba. Imvamisa izinto eziza ezingqubuzanayo zizotholakala emsebenzini wenhloso noma izingqinamba. Isibonelo, kwandisa inzuzo (inhloso) ngokuya ngenani eliphakeme lokungcola (ukucindezela). Ngohlelo lwe-GOLG, singahambisa amamethrikhi abalulekile ekusebenzeni kwenhloso ukuze sikwazi ukuwela ngokwakho kunokuba sibaphoqe. Singakwazi ukukhulisa inzuzo futhi sinciphise imfucuza ngasikhathi sinye!

Manje yisikhathi esihle sokusungula isibonelo esizosihlola sonke isihloko:

Ake sicabange ukuthi siphatha ifektri eyenza izingubo. Ifektri yethu ingenza amabhulukwe, amahembe nezingubo zokugqoka. Isihloko ngasinye sezingubo sinezindleko, inzuzo, kanye nokungcola okuhambisana nokukhiqizwa kwazo. Sifuna ukudala uhlelo lokukhiqiza oluzokwenza izinga elithile lenzuzo futhi lichithe ngaphansi kwenani elithile ngenxa yokuzibophezela kwemvelo. Ake sithi sifuna ukwenza inyanga engu- $ 150ka inzuzo futhi sifuna ukuchitha isikhathi esingaphansi kwamamitha angama-20K. Ngaphezu kwezinhloso zethu, asikwazi ukuchitha imali engaphezu kwe- $ 50k ngezinto zokwakha kanye nakwabasebenzi.

Isibonelo esingenhla sizwakala sifana nenkinga yokuhlela evamile yokuhlela? Yebo, ukusonteka ukuthi asikwazi ukwenza ama- $ 150k ngenzuzo kanye nokungcola okungaphansi kwama-20k amayadi ngasikhathi sinye. Ngamanye amagama, bekungeke kube nesixazululo esingenzeka uma ngabe sikuxhumeke lokhu kube yinkinga yokuhlela evamile yokuhlela. Imvamisa, izinhloso ezibekwe ezinkingeni azinakutholwa sonke ngesisombululo esisodwa, uma kungenjalo bekungeke kube khona iphuzu ekusebenziseni uhlelo lwegoli. Sivele sisebenzise uhlelo oludala oludala oludala nezinhloso zethu njengezinkinga. Inani langempela lokuhlelwa kwegoli ukuthi lingadala ukuyekethisa phakathi kwezinhloso ezingqubuzanayo lapho uhlelo olujwayelekile lwe-linear luzoveza ikhambi elingasho lutho.

Inani langempela lokuhlelwa kwegoli ukuthi lingadala ukuyekethisa phakathi kwezinhloso ezingqubuzanayo lapho uhlelo olujwayelekile lwe-linear luzoveza ikhambi elingasho lutho.

Ibhalansi yenhloso yokuhlela futhi iyekethise kanjani ngezinhloso ezingqubuzanayo? Kunezindlela ezimbili ezithandwayo: (1) zinesisindo futhi (2) azikhulule. Sizomboza lokhu ngokuningiliziwe kulezi zingxenye ezilandelayo.

Indlela Yesisindo

Lapha, sizongena ngemininingwane yendlela yokusizakala. Indlela Yesisindo inomsebenzi owodwa wenhloso futhi isebenza kahle ngokusekelwe (ubuqagele) izinsimbi! Iqiniso lokuthi elinye kuphela eliqhutshwa ngaphansi kwendlela yezisindo lingabonakala linjengelinike – kepha indlela yokusiza empeleni isebenza kahle uhlelo oluhlelekile. Sizofika kulokho esigabeni esilandelayo …

Indlela Yesisindo inemigomo ethile noma izinhloso zamamethrikhi amaningi – isib, yenza okungenani u- $ 150k ekuthengiseni izingubo noma imfucuza ungabi ngaphezu kwamamitha angama-20k. Nge-LP ejwayelekile, sifuna ukukwenza kahle ngokuphelele. Ngendlela yesisindo yohlelo lwegoli, sifuna ukusondelana nokushaya imigomo ngangokunokwenzeka – ngemuva kokuthi sifinyelele umgomo, ukusebenza kahle akuboni kahle inzuzo ngokuqhubeka nokukhulisa inhloso elandelayo. Uma lokhu kubonakala kudida manje, ungakhathazeki ukuthi kuzokwenza umqondo owengeziwe njengoba singena esibonelweni.

Le khasi Umsebenzi wenhloso Ngendlela ye-Weight kwakhiwa ngokukhethekile ukunciphisa -sibekelekile Umehluko phakathi kwegoli le-metric nenani langempela le-metric. Masigxume esibonelweni sethu sisuka phezulu – okungukuthi, sifuna ukwenza u- $ 150k ngenzuzo kanye nemali engaphansi kwamamitha angama-20K. Inhloso yethu ukunciphisa ukuthi sikude kangakanani kuzo zombili lezi zinhloso.

Nakhu ukwakhiwa kwezibalo kwale nhloso:

Lapho i-W1 ne-W2 Abelwe Izinsimbi kanye P Futhi Zingakude kangakanani

Ngomsebenzi wethu onenhloso esethiwe, kudingeka sichaze izingqinamba zethu. Sizoba nezinhlobo ezimbili zezingqinamba (1) Izinkinga ezihlobene nezinhloso kanye (2) nezingqinamba ezijwayelekile zokuhlela okuqondile (uhlobo olufanayo lwezingqinamba ongazithola ePlanivan Vanilla LP). Ake sixoxe ngezingqinamba ezihlobene nenhloso.

Sizodinga ukudala izinto ezimbili ukusetha izingqinamba zethu ezihlobene nezinkomba, (1) inzuzo kanye nemisebenzi yemfucuza kanye (2) eminingi Izindlela eziguquguqukayo zeSlack. Ake sidlule kuleso sikhathi ngasikhathi.

Imisebenzi yenzuzo kanye nemfucuza iqonde ngqo phambili. Bahlanganisa isinqumo sethu esiguquguqukayo ngokubambisana ukubala inzuzo ephelele kanye nemfucuza ephelele inika isisombululo esithile. Ngezansi amafomula abopha inzuzo nokuchitha inani lamabhulukwe, amahembe nezingubo ezimkhiqizayo:

imisebenzi yenzuzo kanye nemfucumfucu

Ngemisebenzi yethu yenzuzo kanye nemfucumfucu esunguliwe, ake siqale ukukhuluma ngezindlela zethu eziguquguqukayo. Ohlelweni lwe-GOG, ama-slack ahlukahlukene asetshenziselwa ukukala ukuthi isixazululo singesikhathi singakanani ekushayweni umgomo. Esibonelweni sethu, okuguquguqukayo Uhlobo na- W Zombili eziguquguqukayo zeSlack – zibonisa ukuthi inzuzo yethu ifaniswa kangakanani nenhloso yethu yenzuzo nokuthi imfucuza yethu ifaniswa kangakanani nenhloso yethu yemfucuza. Ukuhlukahluka kweSlack kufakwe ezingqinamba. Ngezansi kunemisebenzi yengcindezelo yenzuzo yethu kanye nezinjongo zokungcola – futhi, P's kanye W's Ingabe ukuguquguquka kwethu kwe-slack:

P +, ph-, w-s + ama-slack variables, inzuzo kanye nemfucuza yimisebenzi esungulwe ngamafomula ngenhla

Qaphela ukuthi sinezinto eziguquguqukayo futhi ezi-minus slack – lokhu kusivumela ukuthi siphuthelwe umgomo kunoma yikuphi ukuphela. Sifuna kuphela ukujezisa ukuguquguquka kwe-slack okuqonde ngaphesheya kwenhloso yethu (isib. Asifuni ukujezisa Okuningi inzuzo kunenhloso yethu, sifuna kuphela ukujezisa Ngaphansi Inzuzo) – yingakho kuphela ukuhlukahluka kwe-slack eguqukayo kumgomo owodwa kuphela osemsebenzini wenhloso. Ngalesi simo esisha, ake sibhale kabusha umsebenzi wethu wenhloso:

Umsebenzi wenhloso nge-SLACK SLACKLE SLACKLETIONSTION

Manje sewenzile wonke umsebenzi okhethekile wokuhlelwa kwegoli. Into yokugcina okudingeka siyenze singeze ngokushesha ukucindezela kwesabelomali sethu se-vanilla ye-vanilla. Sisebenzisa ukucindezelwa okuvamile kwisabelomali sethu ngoba, esibonelweni sethu, kunzima kakhulu. Ngokungafani nenzuzo nokungcola, asikwazi ukwephula isabelozimali.

Ukuhlelwa okujwayelekile (hhayi umgomo wokuhlelwa kwesabelomali)

Manje, sinenkinga yokuhlela ecacisiwe ngokuphelele. Ake sikuhlele ePython futhi sixazulule!

# $150,000 in profit
problem += profit + profit_deviation_neg - profit_deviation_pos == 150000, "Profit_Goal"

# Waste goal: No more than 20,000 yards of waste
problem += waste + waste_deviation_neg - waste_deviation_pos == 20000, "Cost_Goal"

# Budget constraint
problem += cost <= 50000

# Solve the problem
problem.solve()

# Display the results
print("Status:", pulp.LpStatus[problem.status])
print("Pants produced:", pulp.value(pants))
print("Shirts produced:", pulp.value(shirts))
print("Dresses produced:", pulp.value(dresses))
print("Cost :", pulp.value(cost))
print("Profit :", pulp.value(profit))
print("Profit deviation (positive):", pulp.value(profit_deviation_pos))
print("Profit deviation (negative):", pulp.value(profit_deviation_neg))
print("Waste :", pulp.value(waste))
print("Waste deviation (positive):", pulp.value(waste_deviation_pos))
print("Waste deviation (negative):", pulp.value(waste_deviation_neg))

Lokhu kusebenza kahle kuncoma senza amabhulukwe ama-0, amahembe angama-5,000 nezingubo ezi-0. Senza u- $ 150K ngenzuzo efanisa umgomo wethu ncamashi futhi sichitha amayadi angama-50k e-Max Creach yethu ngamawadi angama-30k. Imiphumela ephelele iphrintiwe yikhodi bese ikhonjiswa ngezansi:

Imiphumela yokusebenza kahle isebenza ngezinsimbi ezilinganayo

Manje njengoba sinesakhiwo esiyisisekelo sezisindo ezansi, ake sikhulume nge- usingelele! Esibonelweni sethu sokuqala, sanika izinsimbi ezilinganayo kwidola lenzuzo nasegcekeni lemfucuza. Lokhu mhlawumbe akwenzi mqondo omningi ngoba amayunithi ahlukile. Ukusetha izinsimbi isinqumo esibekiwe sokwenziwa udokotela. Ngokwesibonelo sethu, sizonquma ukuthi ukuchitha indwangu engu-1.5 yendwangu kubi njengokukwenza u- $ 1 wenzuzo kuhle. Ngamanye amagama, sizokwandisa isisindo semfucuza yendwangu siye ku-1.5 kumsebenzi wethu wenhloso.

problem += profit_deviation_neg + 1.5*waste_deviation_pos

Ukusebenza kwamanani aphindiselelwe ancoma senza amabhulukwe acishe abe ngu-8,572, amahembe angama-7,143 nezingubo ezi-0. Ngalesi sixazululo, sikhiqiza u- $ 107k inzuzo (okuyinto ephuthelwa yinzuzo ngo- $ 43k) futhi sichitha amayadi angama-20,000 endwangu ehambelana nomgomo wethu. Imiphumela ephelele iphrintiwe yikhodi bese ikhonjiswa ngezansi:

Imiphumela yokusebenza kahle isebenza ngesisindo esingu-1.5 kwimfucuza yendwangu

Ngokusobala, ukuguqula izinsimbi zezinhloso kungaba nomthelela omkhulu emiphumeleni yokwenza kahle. Sidinga ukusetha izinsimbi zethu ngokucophelela ukuze silinganise ngokwanele ukubaluleka kwenhloso yethu!

Manje njengoba sinokuqonda okuqinile kokuthi indlela enesisindo isebenza kanjani, ake siguqukele ekukhulumeni ngohlelo lwegoli ngendlela yokuzibonela.

Indlela yokusiza

Ngenkathi indlela yezisindo ezilinganiselayo zilinganisa izinsimbi zisebenzisa izinsimbi emsebenzini wenhloso, indlela yokuzibonela inika izinjongo eziphakeme ezinhlosweni ngokusebenza kwayo. Lawo ngamagama amaningi, ungakhathazeki, sizokwephula!

Nazi izinyathelo zendlela yokuvuselela:

1. Gijima kahle uhlelo lokuhlela olujwayelekile egoli lakho lokuqala – isib. Khulisa inzuzo
2. Gcina inani lenhloso kusuka ku-Run
3. Qalisa OLUNYE OLUNYE OLUNYE UHLELO LOKUHLELWA KWEZOBUCHWEPHESHE OBONAKALAYO EMBUTHINI ESIPHELELE – isib
4. Phinda inqubo uze udlule kuwo wonke amamethrikhi wegoli

Izici ezimbili ezibalulekile zendlela yokuzibona (1) Ibeka phambili izinhloso ngesikhundla kanye (2) nenani lenhloso lenhloso ephakeme alikwazi ukwehliswa (ngenxa yezinkinga ezinzima) lapho ulungiselela izinhloso ezibaluleke kakhulu. Ake siqhubeke sibe yisibonelo sokwakha umuzwa.

Ngesibonelo sethu, ake sithi inzuzo yinhloso ebaluleke kakhulu futhi ukunciphisa imfucuza kungokwesibili. Sizoqala ngokusebenza kahle i-vanilla elula ekwenza inzuzo:

# Define the problem
problem = pulp.LpProblem("Clothing_Company_Goal_Programming", pulp.LpMaximize)

# Decision variables: number of pants, shirts, and dresses produced
pants = pulp.LpVariable('pants', lowBound=0, cat='Continuous')
shirts = pulp.LpVariable('shirts', lowBound=0, cat='Continuous')
dresses = pulp.LpVariable('dresses', lowBound=0, cat='Continuous')

# Profit and cost coefficients
profit = 10 * pants + 3 * shirts + 15 * dresses
cost = 5 * pants + 1 * shirts + 10 * dresses
waste = 1.5 * pants + 1 * shirts + 3 * dresses

# Objective function: Maximize profit
problem += profit

# Constraints
# Budget constraint
problem += cost <= 50000

# Solve the problem
problem.solve()

# Display the results
print("Status:", pulp.LpStatus[problem.status])
print("Pants produced:", pulp.value(pants))
print("Shirts produced:", pulp.value(shirts))
print("Dresses produced:", pulp.value(dresses))
print("Cost :", pulp.value(cost))
print("Profit :", pulp.value(profit))

Imiphumela yokwandisa inkinga ye-LP ye-LP ingaphansi:

Ukukhulisa Inzuzo

Ngakho-ke, umsebenzi wethu wenhloso uthi ukwenza amahembe angama-50K futhi uqoqe inzuzo engu- $ 150k. Lokhu bekungukuphela kokulungiswa kokuqala esizosebenza noma! Ukulandela i-algorithm echazwe ngenhla, manje sizosebenzisa enye i-LP ekunciphiseni imfucuza kepha, sizokwengeza izingqinamba zenzuzo ≥ $ 150k ukuqinisekisa ukuthi asitholi nzuzo embi kakhulu.

# Define the problem
problem = pulp.LpProblem("Clothing_Company_Goal_Programming", pulp.LpMinimize)

# Decision variables: number of pants, shirts, and dresses produced
pants = pulp.LpVariable('pants', lowBound=0, cat='Continuous')
shirts = pulp.LpVariable('shirts', lowBound=0, cat='Continuous')
dresses = pulp.LpVariable('dresses', lowBound=0, cat='Continuous')

# Profit and cost coefficients
profit = 10 * pants + 3 * shirts + 15 * dresses
cost = 5 * pants + 1 * shirts + 10 * dresses
waste = 1.5 * pants + 1 * shirts + 3 * dresses

# Objective function: Minimize the fabric waste
problem += waste

# Budget constraint
problem += cost <= 50000

problem += profit >= 150000

# Solve the problem
problem.solve()

# Display the results
print("Status:", pulp.LpStatus[problem.status])
print("Pants produced:", pulp.value(pants))
print("Shirts produced:", pulp.value(shirts))
print("Dresses produced:", pulp.value(dresses))
print("Cost :", pulp.value(cost))
print("Profit :", pulp.value(profit))

Futhi nansi imiphumela yalolu hlelo lokugcina:

Imiphumela yokunciphisa imfucuza ukusebenza kahle

Obonayo we-astute uzobona ukuthi ukusebenza kahle kungukuqonda okufanayo 😅. Lokhu kuvame ukuba njalo ngendlela yokusiza. Isithiyo sezinhloso ezilungiselelwe ngaphambilini zingavimbela kakhulu. Isikhathi sesikhathi lapho u-Inderative Halm ukuhluka khona uma kunezindlela eziningi zokuthola amanani afanele ezinhlangi zangaphambilini. Isibonelo, uma bekukhona izindlela ezimbili zokuthola u- $ 150k ngenzuzo; Enye yayinodoti owengeziwe kanti enye yayinakho okuncane, ukuzala kwethu kwesibili bekuzobuyisa imiphumela yesixazululo ngemfucuza ephansi. Ngendlela yokusiza, akukho ukuhweba phakathi kwezinhloso. Noma ngabe bekukhona ikhambi elenza u- $ 149K enze inzuzo ngamamitha angu-0 wemfucuza, indlela yokuzibonela ibizohlala ikhetha u- $ 150k inzuzo yamamitha angama-50k. I- $ 1000 yenzuzo eyengeziwe ibaluleke kakhulu kunanoma yiliphi inani lendwangu echithiwe.

Indlela yokuzibonela kufanele isetshenziswe lapho izinhloso zibekwa khona ngokucacile, futhi akukho okufaka esikhundleni sazo – okusho ukuthi asikho inani lempumelelo ezinhlosweni eziphansi eziphansi linganxephezela ukusebenza okuncishisiwe endaweni ephakeme. Uma isetshenziswa kahle, indlela yokusiza ingasiza ukwandisa umgomo oyinhloko ngenkathi uzama ukuthola izixazululo ezinhle zezinhloso eziphambili.

Ukugcina

Ukuhlelwa kwegoli kunikeza uhlaka olunweba izinhlelo zendabuko eziqondile zokulungisa ama-metric amaningi ngasikhathi sinye. Indlela esezingeni eliphakeme kakhulu ezilinganiselayo eziza kuqala ngezinsimbi emsebenzini wenhloso futhi kufanelekile lapho amamethrikhi anengqondo anokubaluleka okulingana okungahle kusekelwe. Indlela yokusiza yindlela yokubonisa enikeza okubaluleke kakhulu kumamethrikhi asuselwa kubaphathi. Kuyafaneleka lapho izinhloso ezithile zibaluleke ngokuphelele kunezinye. Zombili lezi zindlela zingaba amasu anamandla okusiza lapho kufakwa esimweni esifanele!

Happy Enhlezle!

Izindatshana zangaphambili kulolu chungechunge:

Source link

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button