Quomodo solvere NP-difficile problemata cum Parameterized Algorithmis

Investigationis opus fortasse maxime interesting disciplinae nostrae pars est. Idea est in directione electionis tuae experiri dum adhuc in Academia. Exempli gratia, alumni ex locis Engineering Software et Machina Learning saepe ad experiri in societatibus (maxime JetBrains vel Yandex, sed non solum).

In hac posta de incepto meo in Computer Scientia loquar. In parte operis mei studui et in praxim accessus ad solvendum unum ex clarissimis NP-difficilibus quaestionibus; vertex covering quaestio.

Nunc, interesting accessus ad problemata dura NP, celerrime explicatur - algorithms parametrisis. Conabor te ad celeritatem ascendere, dic tibi algorithmos simplices parameterizatos et unam potentem methodum describe, quae me multum adiuvit. Provocavi eventus meos in PACE provocare competition: secundum eventus apertorum probationum, solutio tertia locum obtinet, et eventus finales die 1 Iulii cognoscetur.

Quomodo solvere NP-difficile problemata cum Parameterized Algorithmis

About Me

Nomen meum est Vasily Alferov, iam tertium annum consumo apud Scholam superiorem oeconomicam National Research - St. Petersburg. Algorithmos in dies scholae meae studiosus fui, cum Moscuae scholae N. CLXXIX studui, et feliciter Olympiades scientiae computatricis participavi.

Numerus finitus specialium in algorithmis parametrisis vectem intrant...

Exemplum ex libro "Algorithms parameterized"

Finge te custodem securitatis in oppidulo parvo esse. Singulis Veneris die media urbs ad vectem tuum relaxandi venit, quod tibi multum negotii dat: debes clientes turbulentos iactare e vecte ne pugnas. Tandem saturi estis et decernite ut mensuras praecavens capiatis.

Cum civitas tua parva sit, prorsus scis quae paria patronorum pugnaturi sint si in unum claustrum descendant. Habes index n homines qui ad thermopolium hac nocte venturi sunt. Statuis aliquos oppidanos extra forum servare sine ullo certamine inito. Eodem tempore, bullae tuae lucrum perdere nolunt et infelix eris si plus quam non dimiseris. k populo.

Infeliciter, problema ante te est problema classicum NP-difficile. Ut cognoscat eam ut Vertex Coveraut vertex tegens. Talia problemata, in generali casu, nullae sunt algorithmi quae tempore accepto laborant. Ut praecise, probata et satis valida hypothesis ETH (Hypothesis Time exponentialis) dicit hanc problema in tempore solvi non posse. Quomodo solvere NP-difficile problemata cum Parameterized Algorithmisid est, nihil melius notabiliter quam investigationem plenam cogitare potes. Verbi gratia, dicamus aliquem futurum ad bar n = 1000 Humani. Tunc erit completum quaerere Quomodo solvere NP-difficile problemata cum Parameterized Algorithmis options quae sunt circiter Quomodo solvere NP-difficile problemata cum Parameterized Algorithmis β€” insanus moles. Feliciter, procuratio tua tibi terminum dedit II k =, ita multo minor numerus coniunctionum quam repetiturus est: numerus copiarum decem elementorum est Quomodo solvere NP-difficile problemata cum Parameterized Algorithmis. Hoc melius est, sed tamen non numerabitur in die vel in botro valido.
Quomodo solvere NP-difficile problemata cum Parameterized Algorithmis
Ad tollendam facultatem certaminis in hac conformatione necessitudinum coactarum inter visitatores vectes, necesse est ut Bob, Daniel et Fedor educant. Nulla est solutio in qua sola duo relinquentur.

Hoc est tempus dare et quisque in? Alia bene consideremus. Pro exemplo, eos solos qui pugnare cum maximo numero hominum solent esse non potes. Si aliquis potest pugnare saltem cum k+1 alius, tunc eum in certo non potes permittere - aliter omnes habebis k+1 oppidani, cum quibus pugnare potest, quod certum principatum evertit.

Ejice omnes quos potes secundum hoc principium. Tum quisque potest pugnare cum non plus k populo. Proiectis eos k homo, nihil plus potes impedire Quomodo solvere NP-difficile problemata cum Parameterized Algorithmis certamina. Id si plus Quomodo solvere NP-difficile problemata cum Parameterized Algorithmis Si quis saltem in uno conflictu implicatur, certe omnes illos impedire non potes. Cum, nempe, certus es intromittere omnino homines non-pugnantes, necesse est ut decem ex ducentis hominibus per omnes copiae magnitudinis excedant. Sunt circiter Quomodo solvere NP-difficile problemata cum Parameterized Algorithmisqui numerus operationum iam in botro digestus est.

Si enim singulos, qui nullam omnino repugnantiam habent, tuto capere possunt, quid de iis, qui unam tantum repugnantiam participant? Nam in adversario etiam claudendo ianuam intromitti possunt. Imo si Alicia tantum cum Bob confligit, tunc si Alicia ex duobus dimiserimus, non amittemus: alias pugnas Bob potest habere, Alicia vero illas non habet. Porro nihil est nostrum non ut nostrum in. Post tales operationes non remanet amplius Quomodo solvere NP-difficile problemata cum Parameterized Algorithmis convivis incerto fato: tantum habemus Quomodo solvere NP-difficile problemata cum Parameterized Algorithmis iurgiorum inter se cum duobus participantibus et inter se implicati sunt ad minimum duo. Omne igitur quod reliquum est per Quomodo solvere NP-difficile problemata cum Parameterized Algorithmis optiones, quae facile dimidii diei in laptop considerari possunt.

Re quidem vera, simplici ratione etiam condiciones pulchriores efficere potes. Nota quod omnes controversias, id est, inter se conflictationes componendas definite necesse est, unam saltem personam quam nolumus intromittere. Consideremus sequentia algorithm: omnem conflictum sumamus, e quo unum participem removemus et a reliquo incipimus recursive, deinde alterum removemus et iterum incipimus recursive. Cum ad singulas gradus aliquem iacimus, recursus arboris talis algorithmi est arbor binaria profunditatis kSic algorithmus in totum operatur Quomodo solvere NP-difficile problemata cum Parameterized Algorithmisquibus n est numerus vertices, et m β€” costarum numerus. In exemplo nostro, hoc est circiter decem miliones, quae in scissura secunda non solum in laptop sed etiam in telephono mobili computari possunt.

Exemplum est supra exemplum parameterized algorithmus. Algorithms parameterized sunt algorithms qui in tempore currunt f(k) poly(n)quibus p β€” integra; f est arbitrarium munus computabile, et k - Modulus quidam, qui, satis fortasse, multo minor erit problemati magnitudine.

Omnes rationes ante hoc algorithmus dat exemplum kernelization una est generalis technicae artis parameterized algorithmos creandi. Kernelization est reductio problemati magnitudinis ad valorem determinatum per functionem parametri. Problema inde saepe nucleum appellatur. Ita simplici ratione de gradibus verticerum, nucleum quadraticum pro Vertice Operis problemati, solutionis magnitudine, parametrum consecuti sumus. Aliae sunt optiones quae ad hoc munus eligi possunt (exempli gratia Vertex Cover Supra LP), sed de hac optione disseremus.

Pace provocare

competition IN PACE Provocare (Algorithmorum parameterizatorum et experimentorum computationum provocatio) anno 2015 natus est ut nexum inter algorithmos parameterizatos et accessiones in praxi ad solvendas difficultates computativas adhibendas institueret. Primae tres certationis studiosissimae sunt ad inveniendam graphi latitudinem in ligno (TreewidthLignum quaerens Steiner (Steiner Tree) et investigatione statuto verticerum qui cyclos secat (Feedback Vertex Set). Hoc anno, una quaestionum in quibus manum tuam experiri posses erat, vertex velamen problema supra descriptum est.

Certamen popularis quotannis obtinet. Si praevia notitia credere creditis, hoc anno XXIV iugis in certamine solvendi verticem velamen solum problemate intervenit. Notatu dignum est contentionem non plures horas aut etiam hebdomadam durare, sed plures menses. Teams facultas litterarum studere, ascendit cum idea propria originali et eam efficere conantur. Essentialiter haec contentio est investigatio project. Ideae solutionum efficacissimarum et de victoribus diiudicandis coniuncti erunt cum colloquio IPEC (Symposium internationale de Parameterized et Exacta Computatione) ut pars maxima annui algorithmici conventus in Europa algo. Plus informationes de ipso certamine inueniri potest websiteeventusque priorum annorum hic.

Solutio in diagrammate

Ad verticem velamen problema solvendum, algorithmis parametrisis uti conatus sum. Plerumque duae partes constant: regulae simpliciores (quae ad nucleum specimen ducunt) et regulas scindunt. Regulae simpliciores praeprocessiones initus in tempore polynomiae sunt. Propositum applicandi huiusmodi regulas est problema reducere ad problema aequivalens minorem. Simplicitas regulae algorithmi partem pretiosissimam sunt, et hanc partem applicans ad totum tempus currit Quomodo solvere NP-difficile problemata cum Parameterized Algorithmis pro simplici integra temporis. In nobis, regulae scindendae in eo fundantur, quod ad unumquemque verticem necesse est accipere responsum vel proximum vel proximum.

Ratio generalis haec est: simpliciorem regulam adhibemus, deinde aliquam verticem eligimus, et duas vocationes recursivas facimus: in prima responsionem sumimus, in altera omnes finitimos accipimus. Hoc est quod in hoc vertice vocamus fissile.

Prorsus una additio fiet huic schema in sequenti paragrapho.

Ideas ad illas (brunching) praecepta

Disceamus quomodo eligat vertex per quam scinditur.
Praecipua idea valde avarus est in sensu algorithmico: verticem maximi gradus sumamus et cum illo dividatur. Quid videtur melius? Quia in secundo ramo vocationis recursivae multum removebimus vertices hoc modo. Numerare potes in parva graphe remanente et in ea celeriter operari possumus.

Hic aditus, technicis nucleis simplicibus iam agitatis, se bene ostendit et aliquot experimenta plurium milium verticerum in magnitudine solvit. Sed, exempli gratia, non bene laborat graphis cubicis (id est graphis quorum cujusque vertex est tres gradus).
Alia notio innititur satis simplici notione: si graph est hians, quaestio de suis connexis componentibus independenter solvi potest, responsiones in fine componendo. Hoc obiter parva modificatio promissionis in schemate est, quae solutionem significanter accelerare poterit: antea in hoc casu pro temporis spatio ad calculandum responsa partium laboravimus, nunc operamur. summam. Et ut accelerare ramosam debes, graphum connexum in unum disiungitur vertere.

Quomodo facere? Si punctum articulationis in graph est, pugnare debes. Punctum articulationis est vertex ita ut, remoto, graphum suam connectivity amittat. Omnia puncta coniuncta in grapho inveniri possunt utens algorithmus classicus in tempore lineari. Aditus signanter accelerat ramosis.
Quomodo solvere NP-difficile problemata cum Parameterized Algorithmis
Cum quolibet vertices delecturum remoto, graphus in partes connexas dividet.

Hoc faciemus, sed plura volumus. Exempli gratia, quaeras verticem parvum in graphi secat et per vertices ab eo scinditur. Efficacissimam viam scio invenire minimam vertex globalis incisam esse uti arbore Gomori-Hu, quae in tempore cubico aedificatur. In PACE Provocare, magnitudo graphi typica est plurium millium vertices. In hoc situ, billions operationum in unoquoque vertice arboris recursionis faciendae sunt. Evenit ut problema simpliciter solvere non possit in tempore illo.

Solutio ad optimize conemur. Vertex minimus inter duos vertices sectus inveniri potest ab aliquo algorithmo quod maximum fluxum construit. Potes eum in talem retis Dinitz algorithmusin usu celerrime operatur. Suspicio me theoretice probare aestimationem pro tempore operante fieri posse Quomodo solvere NP-difficile problemata cum Parameterized Algorithmisquod iam satis placet.

Aliquoties conabar quaerere secet inter paria vertices incertis et unum aequissimum sumo. Infeliciter, hic eventus produxit pauperes in aperto PACE provocare tentationem. comparavi cum algorithmo, qui vertices maximi gradus scindit, cum limitatione in profundo descensus illos currentem. Algorithmus quaerens incisam hoc modo post graphas ampliores relictas. Hoc ex eo quod resecat admodum inaequalis evasit, remotis 5-10 verticibus, tantum 15-20 scindendi fieri potuit.

Notatu dignum est articulos circa algorithmos theoretice velocissimos uti artificiis multo perfectioribus ad vertices eligendos ad scindendum. Tales artes exsecutionem implicatissimam habent et saepe pro tempore et memoria pauperes exercent. Ea quae usui satis accepta sunt cognoscere non potui.

Quomodo regulas simpliciorem applicare

Iam notiones de kernelizatione habemus. Te admoneam:

  1. Si vertex solitarius est, dele eam.
  2. Si est vertex gradus 1, remove et proximum in responsione accipias.
  3. Si est in vertice gradus certe k+1, sumam eam.

Duobus primis omnia plana sunt, in tertia una stropha est. Si in problemate comico de talea nobis superius limites dati sumus ktum in PACE Provoca tantum opus est ut verticem velamen minimae magnitudinis invenias. Haec mutatio typica est problematum quaestionis in Decisionem Problematum, saepe nihil interest inter duas species problematum. In usu, si pro vertice velamine problema solver scribimus, differentia potest esse. Sicut in tertio loco.

Ex parte exsecutionis, duplex est modus procedendi. Prima accessio appellatur Iterative Deepening. Hoc modo est: cum aliqua rationabili coactione ab inferis in responsionem incipiemus, et tunc algorithmus nostrum hoc coactione utens, ut superne responsum, sine recursione minore quam hac coactione ingredimur. Si responsionem aliquam invenimus, optimam esse praestatur, alioquin hunc modum uno augere et rursus rursus augere possumus.

Alius accessus est ad optimam responsionem currentem condere et responsionem minorem quaerere, mutato modulo isto invento k ad majora in inquisitione ramos supervacuas amputandas.

Pluribus nocturnis experimentis peractis, coniunctis his duobus modis constitui: primum, algorithmum meum cucurri cum aliquo limite ad profunditatem inquisitionis (scilicet eligendo ut tempus contemnendi cum principali solutione comparatum capiat) et optimis utar. solutio inuenitur ad modum superius ad respondendum, id est, ad eandem rem k.

Vertices gradus 2

De vertices gradus 0 et I egimus. Evenit ut hoc fieri possit cum vertices graduum 1, sed hoc magis implicatae operationes ex lacinia require.

Ad hoc explicandum, vertices aliquo modo designare necesse est. Vocemus verticem gradus II ad verticem vac vicinis - vertices x ΠΈ y. Deinde habebimus duos casus.

  1. quod x ΠΈ y β€” finitimi. Tunc potes responde x ΠΈ yquod v delere. Profecto ex hoc triangulo duo saltem vertices sumi necesse est, nec certe amittimus, si accipiamus x ΠΈ y: verisimile est alios vicinos habere et v Non sunt hic.
  2. quod x ΠΈ y β€” non finitimi. Tunc omnes tres vertices in unum glutinari posse proditur. Idea est in hoc casu optimum esse responsum, in quo vel accipimus vAut utroque vertices x ΠΈ y. In primo autem casu omnes vicinos habebimus in responsione x ΠΈ ysecunda vero non est necessaria. Hoc exacte respondet casibus quando non accipimus verticem viscum in responsione et cum agimus. Relinquitur ergo quod utrobique responsio ex tali operatione diminuitur.

Quomodo solvere NP-difficile problemata cum Parameterized Algorithmis

Notatu dignum est hunc accessum admodum difficilem esse ad accurate efficiendum in aequis temporis linearibus. Conglutinata verticibus implicata operatio est, debes tabulas vicinorum imitari. Si neglegenter hoc factum est, asymptotice suboptimal currens tempus finire potes (exempli gratia, si multum oras post singulas conglutinationem imitaris). Deduxi semitas integras a verticibus gradus 2 inveniendo et fasciculum casuum specialium dividendo, quales sunt cycli a verticibus illis vel a quibuscunque verticibus praeter unum.

Praeterea opus est ut haec operatio convertatur, ut revertentes a recursione graphum in pristinam formam restituamus. Ad hoc ut cures, non vidi extremas tabulas in vertices immissorum, et tunc tantum sciebam quibus marginibus opus esset qua eundum esset. Haec exsecutio graphorum accurationem quoque requirit, sed tempus aequale lineari praebet. Et pro graphs plurium decem millium orarum, quadrat in cella processus, qui in celeritate magnas utilitates tribuit.

nucleus linearis

Denique maxime interesting pars nuclei.

In primis, recole in graphis bipartitis tegumentis minimum inveniri usura Quomodo solvere NP-difficile problemata cum Parameterized Algorithmis. Hoc facere debes ut algorithmus Hopcroft-Karp ut maximam ibi adaptationem invenias, et theorematis utaris Regiomontanus-Egervari.

Idea nuclei linearis haec est: primum grapheum bifurcatis, hoc est, pro singulis verticibus. v adde duo iuga lets Quomodo solvere NP-difficile problemata cum Parameterized Algorithmis ΠΈ Quomodo solvere NP-difficile problemata cum Parameterized AlgorithmisEt pro utraque parte u - v adde duos costas lets Quomodo solvere NP-difficile problemata cum Parameterized Algorithmis ΠΈ Quomodo solvere NP-difficile problemata cum Parameterized Algorithmis. Consequens graphus bipartitus erit. Inveniamus minimum verticem velamen. Vertices alicuius graphi originalis bis ibi erunt, quidam semel tantum, quidam nunquam. Theorema Nemhauser-Trotter affirmat in hoc casu vertices removere posse, qui ne semel quidem percussi sunt, et eos qui bis feriunt reducere possunt. Dicit autem reliquorum vertices (qui semel feriunt) debes respondere dimidium saltem accipere.

Nos iustus didicerat non plus relinquere 2k cacumina Imo si residuum responsum sit omnium verticerum ad minimum dimidium, tunc non sunt plures vertices in totali quam 2k.

Hic ego parvum gradum capere potui. Patet hoc modo nucleum constructum ab quali velamine minimae vertexis in grapho bipartito sumpsimus. Unum accipere velim ut numerus vertices reliquorum minimus sit. Prius hoc facere potuerunt nisi in tempore Quomodo solvere NP-difficile problemata cum Parameterized Algorithmis. Accessi ad exsequendam algorithmum huius temporis Quomodo solvere NP-difficile problemata cum Parameterized Algorithmisergo hic nucleus in graphis centenis millium verticerum in quovis stadio ramoso investigari potest.

exitum

Exercitium ostendit meam solutionem bene operari in probationibus plurium centorum vertices et in pluribus milibus orarum. In his probationibus satis exspectari potest quod solutio media hora inveniatur. Probabilitas responsionis tempore accepto in principio augetur si grapha habet satis magnum numerum verticerum altiorum, exempli gratia, gradus 10 et altiores.

Ut in competition participent, solutiones quae mittendae sunt optil.io. Iudicans per indicium praesentatum signum, mi solutionem in aperto testium ordinum tertiam e viginti, cum magno intervallo a secundo. Ut omnino honestum sit, non plane patet quomodo solutiones in ipso certamine aestimandae erunt: exempli gratia, solutio mea pauciores probationes transit quam solutio in quarto loco, sed in iis quae transeunt, citius operatur.

Eventus probatorum clausis die XNUMX Iulii noti erunt.

Source: www.habr.com