Table of Contents
Insinöörin ohjelmoinnin ymmärtäminen
Integer ohjelmointi (IP) on luokka matemaattisen optimointi, jossa jotkut tai kaikki päätöksen muuttujat ovat rajoitettu ottamaan vain kokonaisluku arvoja. Konepajassa, tämä vaatimus syntyy luonnollisesti aina kun päätöksiin liittyy erillisiä valintoja: kuinka monta yksikköä tuottaa, mitkä osat valita, onko avata laitos, tai mitä reititys polku osoittaa. Yleinen muoto kokonaisluku lineaarinen ohjelma on minimoida (tai maksimoida) lineaarinen objektiivinen funktio edellyttää lineaarisia rajoituksia, joiden integraliteetti rajoituksia usein tekee ongelma NP-hard[] monissa käytännön tapauksissa.
Insinöörit kohtaavat IP:n erilaisilla aloilla, kuten rakennesuunnittelussa (valitsevat säteen osat erillisistä luetteloista), sähköverkon suunnittelussa (yksikön sitoutuminen ja siirtolaajeneminen), kemiallisessa prosessisynteesissä (valitsevat laitteet ja konfiguraatiot), ja ilmailu- ja avaruusalan lentoradan suunnittelussa (määrittelevät lähtö- ja saapumisajat). Vaikka taustalla oleva fysiikka tai talous on jatkuvaa, on tarpeen valita finiittisistä vakiokomponenteista, noudattaa kokonaislukumääriä resursseissa tai käsitellä loogisia olosuhteita (jos nämä rajoitteet) luonnollisesti johtaa IP-muotoiluun. Edistyneet heuristiset ratkaisut eivät ole pelkästään akateemisia uteliaisuuksia; ne ovat välttämättömiä välineitä, joiden avulla insinöörit voivat tehdä oikea-aikaisia, lähes optimaalisia päätöksiä asetuksissa, joissa tarkka ratkaisja kestäisi päiviä tai viikkoja.
Miksi täsmällisistä menetelmistä tulee epäkäytännöllisiä
Perinteiset tarkat algoritmit kokonaislukuohjelmointi.Branka-ja-sidonnainen, haara-ja-leikkaus, ja dynaaminen ohjelmointi. Takaus löytää maailmanlaajuisen optimaalinen. Ne toimivat järjestelmällisesti luetteloimalla mahdollisuuksia jäsennellysti, leikkaamalla haaroja käyttäen rajoja johdettu lineaarisen ohjelmointi rentoutumista. Kuitenkin, suurissa tapauksissa, joissa tuhansia kokonaisluku muuttujia ja monimutkaisia rajoitteita, numeroiminen puu voi räjähtää eksponentiaalisesti. Vaikka hienostunut presolve ja leikkaus lentokoneita, monet tekniset IP-ohjelmat ovat edelleen kömpelö sisällä aikabudjetti tarvitaan reaalimaailman toiminnoissa. Esimerkiksi, päivä-ensi-aikataulu ongelma valmistuslaitos voi tarvita ratkaisua minuuttia, ei tuntia.
Lisäksi tarkat ratkaisijat ovat alttiita ongelmarakenteelle: erittäin symmetriset IP-ominaisuudet, monine tasa-arvorajoitteineen tai epälineaarisuuksineen (kuten bilineaariset termit) usein kumoavat nykyisen huipputeknologian ratkaisijat. Konepajassa ongelmia ovat usein komplisoivat ominaisuudet kuten [[]],toisen tason koneenirajoitukset[[] tai [], jotka vievät IP:n mukavan valikoiman pois täsmällisistä menetelmistä. Tämä kuilu on motivoinut kehittämään kehittyneitä heuristiikoita, jotka uhraavat optimaalisen takuun vastineeksi nopeudesta, skaalattavuudesta ja lujuudesta.
Edistynyt heuristiikka: syvempi sukellus
Heuristics for integer ohjelmointi voidaan luokitella rakentamiseen heuristics (tuotanto ensimmäinen toteuttamiskelpoinen ratkaisu) ja parannus heuristics (kirjallisesti jalostaa ehdokas). Kahden viime vuosikymmenen aikana joukko voimakas kehittynyt heuristics on syntynyt, jokainen on erilliset mekanismit paeta paikallista optima ja tutkia hakutilaa tehokkaasti.
Metaheuristics: Ohjattu satunnaishaku
Metaheuristics kuten Geneettiset algoritmit (GA)[,[[] simuloitu Annealing (SA)[[], ja[[] Tabu Search (TS)[[] ovat korkean tason strategioita, jotka järjestävät taustalla paikallisen haku- tai perturbaatioprosessin. Geneettiset algoritmit [[) mimmic luonnollinen valinta: populaatio ehdokasratkaisuja kehittyy sukupolvien aikana käyttäen ristikkäisy- ja mutaatiooperaattorit. Teknisten IP-ohjelmien, koodausmuuttujat binäärijouset tai permutaatiovektorit toimivat usein hyvin. Simulated annealing[[]
Nämä menetelmät ovat suosittuja insinöörin, koska ne ovat helppoja rinnastaa, vaativat vain toiminnan arviointi (ei kaltevuutta), ja voivat käsitellä musta-box rajoitteita. Esimerkiksi, GA on onnistuneesti sovellettu optimaalinen antenni sijoitus[ ja ] putkijohtoverkon suunnittelu[], jossa tavoite on kallista laskea mutta kokonaisluku rajoituksia ovat kriittisiä.
Muuttujan naapuruston etsintä (VNS)
VNS systemaattisesti hyödyntää ajatusta muuttaa naapuruston rakenteita etsinnän aikana. Alkaen alkuratkaisu, VNS soveltaa sarja liikkuu yhä kaukaisempia naapurustot (shaping) ja sitten suorittaa paikallista hakua nykyisen parhaan ratkaisun. Insinööriongelmat kuten [ ajoneuvon reititys aikaikkunat[] tai [] tasoituksen asettelu[], VNS usein päihittää yhden naapuruston heuristics koska se voi paeta syvä paikallisia minimit, jotka kiinteät liikkuu ei.
Suurien lähiöiden etsintä (LNS)
LNS on erityisen tehokas, kun tarkka ratkaisija voidaan käyttää aliongelma. Menetelmä tuhoaa osan nykyisestä ratkaisusta (esim. poistaa 20% kokonaislukuja) ja sitten rakentaa sen uudelleen optimaalisesti käyttäen pientä IP-tai rajoiteohjelmistojen ratkaisijaa. Koneenrakennustilanteissa, kuten []-konemiehistön aikataulutus[]] ja [-puolijohde fab aikataulutus[], LNS voi tuottaa lähes optimaalisia ratkaisuja sekunneissa, joissa täysi IP-ratkaisijat epäonnistuvat.
Rentoutuminen ja pyöristäminen korjaamalla
Sen sijaan, että yksinkertaisesti ratkaista LP rentoutumista ja pyöristämistä, edistynyt pyöristäminen heuristics käyttää iteratiivista kiinnitystä: ratkaista LP, korjata joitakin muuttujia kokonaislukua perustuu murto-tulokset (esim., arvot lähellä 0 tai 1), ratkaista vähentynyt LP, ja toista. Tämä []Täydellisyys Pump[ menetelmä, usein upotettu kaupallisiin ratkaisijoihin, voi nopeasti luoda toteuttamiskelpoisia kokonaisluku ratkaisuja, jotka sitten parannetaan paikallisen haku. Sekakäyttöinen ohjelmointi monia binäärimuuttujia (yleinen suunnittelu), tämä tekniikka tarjoaa nopean alkuratkaisun.
Hybridiheuristiikka: Yhdistävät vahvuudet
Tehokkain lähestymistapa monimutkaiseen insinöörin IP on usein hybridi, joka yhdistää erilaisia heuristiikan tai yhdistää heuristiikan tarkka komponentit. Esimerkiksi [memeettinen algoritmi[[ (GA + paikallinen haku) soveltaa paikallista hakua jokaiseen lapsiratkaisuun, varmistaen, että väestö on aina paikallisesti optimaalinen. Toinen tehokas hybridi on Benders hajoaminen[ yhdistettynä heuristiseen master ongelma: tarkka ratkaisija käsittelee helppoja jatkuvia aliongelmia, kun taas heuristinen tarttuu kokonaisluku master ongelma.
Hybridimenetelmät ovat erityisen arvokkaita, koska ne tasapainottavat tehostamisen ja monipuolistamisen. Konepajassa ongelmatiedot muuttuvat usein (esim. kysyntäennusteet ajantasaistetaan tuntitunnin välein), hybridit voidaan virittää hyödyntämään toistuvia rakenteita. Esimerkiksi tuotantoaikataulussa[, rajoiteohjelmoinnin ja sekaohjelmoinnin hybridi voi käsitellä sekä ajallisia rajoituksia (CP:n vahvuus) että kapasiteettirajoituksia (IP:n vahvuus).
Tekniikan sovellukset: Konkreettiset esimerkit
Verkon suunnittelu ja kestävyys
Tele- ja hyödyllisyysverkon suunnittelu käsittää usein linkin kapasiteetin (integer kerrannaisia standardikaistanleveyden) ja varapolkujen löytämisen selviytyäkseen epäonnistumisista. Integroitu ohjelmointimallit [] selviytyvä verkkosuunnittelu[ voi olla miljoonia muuttujia. Tarkat ratkaisijat kamppailevat, mutta mukautetun LNS heuristin, joka toistuvasti korjaa osa reunoista on osoitettu saavuttaa ratkaisuja 5% optimaalinen minuutteina.
Valmistusten asettelu ja aikataulu
Tehtaissa solutuotantoongelma[ jakaa koneet soluihin minimoidakseen solujen välisen liikkeen. [Recent research[] käytti monikäynnistystabuhakua mukautuvalla muistilla ratkaistakseen tapaukset 200 koneella alle 20 sekunnissa, suorittaen tarkan haara- ja-sidotun ratkaisijan suuruusmäärillä.
Satelliittioperaatioiden resurssien jakaminen
Satelliittitehtävän aikataulussa on osoitettava joukko havaintoja (jokainen vaatii tietyn aikaikkunat ja tehon) satelliittien kiertoradalle. Tämä on monimutkainen IP, jossa on etusija rajoitteet ja kokonaisluku kertaa. Hybridi heuristinen sekoitus simuloitu hehkutus lineaarisen ohjelmointi rentoutus kierroksen on otettu käyttöön operatiivisissa maajärjestelmissä, mikä mahdollistaa lähes optimaalinen aikataulut konstellaatioita yli 50 satelliittia.
Integrointi koneoppimiseen
Kehittyvä tutkimus yhdistää koneoppimisen (ML)[] ohjaa heuristista hakua. Yleisen perturbaation käytön sijaan ML-mallit ennustavat lupaavia vaihtelevia korjauksia tai lupaavia lähiöitä, jotka perustuvat ilmentymiin. Tämä []-oppimislähtöinen heurististinen[] on erityisen lupaava toistuvien teknisten ongelmien (esim. viikoittainen tuotannon suunnittelu) suhteen, jossa kuviot toistuvat. Esimerkiksi hermoverkko voi ennustaa, mitkä muuttujat pitäisi priorisoida laajassa naapurustossa etsinnnällä, jolloin hakuaika puolittaisi ilman mitattavissa olevaa laadun menetystä.
Tulevaisuuden suunnat
Seuraavassa sukupolvessa heuristiikka insinöörin IP:ssä todennäköisesti mukana [] itsemukautuvia algoritmeja[, jotka virittävät parametreja verkossa, [[ Portfolion ratkaisijat[]], jotka valitsevat parhaan heuristisen kärpäsen, ja [] kvantti-inspiroidut menetelmät[] (kuten simuloitu anneliointi kvanttianneliaattoreilla) tiettyjen rajoitettujen ongelmien varalta. Työntö kohti reaaliaikaista optimointia kyberfysiikassa (autonominen ajoneuvo, älykkäät verkot) vaatii heuristiikkaa, joka ei ole ainoastaan nopeaa vaan myös lujaa melulle ja osittaiselle datalle.
Vertailukirjastojen (esim. ]MIPLIB 2017[]) standardointi on nopeuttanut kehitystä sallimalla oikeudenmukaiset vertailut. Koska tekniset ohjelmistot ottavat yhä enemmän käyttöön IP-ratkaisijoita ydinkomponentteina, ero "heurististen" ja "erilaisten" välillä on hämärä; Gurobin ja CPLEXin kaltaisissa nykyaikaisissa ratkaisuissa on jo monia näistä heurististeista (feasibility pump, RINS, paikallinen haarautuminen) oletusstrategioina. Insinöörit voivat hyödyntää näitä tehokkaita työkaluja tarvitsematta ottaa käyttöön tyhjästä, mutta taustalla olevan heuristiikan ymmärtäminen on olennaista parametrejä ja suorituskyvyn diagnosoinnissa.
Yhteenvetona, pitkälle edennyt heuristics eivät ole korvaamaan tarkkoja menetelmiä, vaan täydentävä arsenaali, jonka avulla insinöörit puuttuvat ongelmia, jotka olivat aiemmin ulottumattomissa. Ymmärtämällä maiseman metaheuristics, naapurusto etsii, ja hybridit, insinöörit voivat kehittää tai valita oikean heuristista niiden erityinen kokonaisluku ohjelmointihaaste.Asantaen tasapainon ratkaisun laadun ja laskentanopeus, että modernin tekniikan vaatimukset.