áá¯áá±áááá¯ááºáááºážááẠáá»áœááºá¯ááºááá¯á·ááá±á·áá»áá·áºáá±ážá á áááºáááºá á¬ážá áá¬á¡áá±á¬ááºážáá¯á¶ážá¡ááá¯ááºážááŒá áºáá±á¬ááºážááŒá áºááá¯ááºáááºá á áááºáá°ážááá±á¬á· ááá¹áááá¯ááºáááºáá¯ááºáž áááºááœá±ážáá»ááºáá¬ážáá²á· áááºážááŒá±á¬ááºážá¡ááá¯ááºáž áááºááá¯ááºááá¯ááºááŒáá¯ážá á¬ážááá¯á·áá«á á¥ááá¬á¡á¬ážááŒáá·áºá Software Engineering ááŸáá·áº Machine Learning áááºáááºáá»á¬ážá០áá»á±á¬ááºážáá¬ážáá»á¬ážááẠáá¯áá¹ááá®áá»á¬ážááœáẠáá¯áá±áááá¯ááºáá±á·ááŸáááẠ(á¡áááá¡á¬ážááŒáá·áº JetBrains ááá¯á·ááá¯áẠYandexá áá«áá±ááá·áºáá¬áá)á
áá® post ááŸá¬ Computer Science áá²á· áááºáááºáá²á· ááá±á¬áá»ááºááœá±ááᯠááŒá±á¬ááŒáá«áááºá áá»áœááºá¯ááºááá¯ááºáááºážááá áºá áááºáá áºááá¯ááºážá¡áá±ááŒáá·áºá áá»áœááºá¯ááºááẠá¡áá»á±á¬áºááŒá¬ážáá¯á¶áž NP-á¡áá¬áá¶ááŒá¿áá¬áá»á¬ážááᯠááŒá±ááŸááºážáááºá¡ááœáẠáá»ááºážáááºáááºážáá»á¬ážááᯠáá±á·áá¬ááŒá®áž áááºááœá±á·áá¯ááºáá±á¬ááºáá²á·áááº- vertex áá¯á¶ážááœáŸááºážááŒááºážááŒá¿áá¬.
ááá¯á¡áá»áááºááœááºá NP-hard ááŒá¿áá¬áá»á¬ážá¡ááœáẠá áááºáááºá á¬ážááœááºáá»ááºážáááºááŸá¯áá áºáá¯ááẠá¡ááœááºáá»ááºááŒááºá áœá¬ ááœá¶á·ááŒáá¯ážáá¬áá±ááẠ- parameterized algorithms áá»á¬ážá áá« áááºážááᯠá¡ááŸáááºááŒáŸáá·áºááá¯á· ááŒáá¯ážá á¬ážáááºá ááá¯ážááŸááºážáá²á· parameterized algorithms áá áºáá»áá¯á·ááᯠááŒá±á¬ááŒááŒá®áž áá«á·á¡ááœáẠá¡áá»á¬ážááŒá®áž á¡áá±á¬ááºá¡áá°ááŒá áºá á±áá²á· á¡á áœááºážáááºáá²á· áááºážáááºážáá áºáá¯ááᯠááŒá±á¬ááŒáááºá PACE Challenge ááŒáá¯ááºááœá²ááœáẠáá»áœááºá¯ááºáááááºáá»á¬ážááᯠáááºááŒáá²á·áááº- á¡ááœáá·áºá ááºážáááºááŸá¯ááááºáá»á¬ážá¡áá áá»áœááºá¯ááºáá¡ááŒá±ááẠáááááá±áá¬áááŸááá²á·ááŒá®áž áá±á¬ááºáá¯á¶ážááááºáá»á¬ážááᯠáá°ááá¯ááºá 1 áááºáá±á·ááœáẠááááŸááááºááŒá áºáá«áááºá
ááá¯áá·áºá¡ááŒá±á¬ááºážááá¯ááº
áá»áœááºá¯ááºáá¡áááºááŸá¬ Vasily Alferov ááŒá áºáá«áááºá áá»áœááºá¯ááºááẠááá¯á¡áá« á¡áá»áá¯ážáá¬áž áá¯áá±áá ááá¹áááá¯ááºá០á á®ážááœá¬ážáá±ážááá¹áááá¯áẠá¡áááºáááºážáá»á±á¬ááºáž - á ááá·áºáá®áá¬á áááºááœáẠááááááŸá ẠááŒá®ážáá¯á¶ážáá±áá«áááºá áá±á¬áºá ááá¯áá»á±á¬ááºáž á¡ááŸáẠ179 ááŸá¬ ááá¬áááºááŒá¬ážááŒá®áž ááœááºáá»á°áá¬áááá¹áᶠOlympiads ááŸá¬ á¡á±á¬ááºááŒááºá áœá¬ áá«áááºáá²á·áá²á· áá»á±á¬ááºážá áááºááááºážá algorithms ááœá±ááᯠá áááºáááºá á¬ážáá²á·áá«áááºá
ááá·áºáááºááá·áºáááºáá¬ážáá±á¬ á¡ááºáááá¯áá®áááºáá»á¬ážááœáẠáá»áœááºážáá»ááºáá° á¡áá±á¡ááœáẠá¡ááá·áºá¡áááºááŒáá·áº áá¬ážáá²ááá¯á· áááºáá±á¬ááºáááº...
á
á¬á¡á¯ááºá០ááá°áá¬áá°áá«áááºá
áááºááẠááŒáá¯á·áááºáá±ážááŸá áá¬ážáá¯á¶ááŒá¯á¶áá±ážá¡á á±á¬áá·áºáá áºáŠážááŒá áºááŒá±á¬ááºáž ááŒááºáá±á¬ááºááŒáá·áºáá«á áá±á¬ááŒá¬áá±á·ááá¯ááºážá á¡áááºážááŒá±ááẠááŒáá¯á·ááááºááẠááá·áºáá¬ážááá¯á· áá¬áá±á·ááŸááááºá áááºážááẠááá·áºá¡á¬áž áá¯áá¹ááá»á¬ážá áœá¬áá±ážáááº- áááºááŒá áºááŸá¯áá»á¬ážááᯠáá¬ážáá®ážáááºá¡ááœáẠáááºááẠááá¯ááºáá»áá±á¬áá±á¬ááºáááºáá»á¬ážááᯠáá¬ážááŸáá¯ááºáá áºáááºááá¯á¡ááºáááºá áá±á¬ááºáá¯á¶ážááœáẠáááºááẠá áááºáá¯ááºáá¬ááŒá®áž ááŒáá¯áááºáá¬ááœááºááŸá¯ááŒá¯áá¯ááºááẠáá¯á¶ážááŒááºááá¯ááºáááºá
áááºážáá²á·ááŒáá¯á·á áá±ážáá±ážáá±ážááá¯á· áá¬ážáá áºáá¯áá²ááŸá¬ áá¯á¶ááááẠáááºá§áá·áºáááºááœá± áááºááŒá áºááá¯ááºáááºááá¯áᬠáááºáž á¡ááá¡áá»áááááºá áááºážááŸá¬ á á¬áááºážááŸááá¬ážá n áá®á áá¬ážááá¯áá¬ááá·áºáá°ááœá±á áááºááŒá áºááŒááºážáááŸááá² ááŒáá¯á·áá°ááŒáá¯á·áá¬ážá¡áá»áá¯á·ááᯠáá¬ážá¡ááŒááºááœáẠáá¬ážááẠáááºáá¯á¶ážááŒááºáá²á·áááºá áá áºáá»áááºáááºážááŸá¬ááẠááá·áºá¡áááºáá°ááŒá®ážáá»á¬ážááẠá¡ááŒááºá¡á áœááºážáá»á¬ážááᯠááá¯á¶ážááŸá¯á¶ážáá»ááºááŒáá² áááºáááºááá¯áááá±ážáá«á ááá»á±á¬áºááá¯ááºá k áá°ááœá±á
áá¶ááá±á¬ááºážá
áœá¬áá²á áááºááŸá±á·ááŸá¬ ááŒá¿áá¬á ááá¹áááẠNP-áááºáá²á· ááŒá¿áá¬áá«á áá°áááᯠáááºááááá¯ááºáá«áááºá
áá¬ážáá§áá·áºáááºáá»á¬ážá¡ááŒá¬ážáááºážáá¬áá±á¬áááºáá¶áá±ážáá¯á¶á
á¶ááœá²á·á
ááºážááŸá¯ááœááºáááºááœá²ááŒá
áºááá¯ááºáá»á±ááá¯áááºááŸá¬ážááẠBobá Daniel ááŸáá·áº Fedor ááá¯á·ááá¯áááºáááºáá¬ážáááºááá¯á¡ááºáááºá ááŸá
áºáá±á¬ááºáá²áá»ááºáá±á¬á·ááá·áº á¡ááŒá±áááŸááá«áá°ážá
á€áááºááŸá¬ á áœáá·áºá á¬ážááŒá®áž áá°ááá¯ááºážáááºááœáá·áºááŒá¯ááẠá¡áá»áááºáá±á¬ááºááŒá®áᯠááá¯ááá¯áá«ááá¬ážá á¡ááŒá¬ážááœá±ážáá»ááºá áá¬áá»á¬ážááᯠá ááºážá á¬ážááŒáá·áºáá¡á±á¬ááºá á¥ááá¬á¡á¬ážááŒáá·áºá á¡ááœááºáá»á¬ážááŒá¬ážáá±á¬áá°áá»á¬ážááŸáá·áº ááá¯ááºááá¯ááºááẠá¡áá¬ážá¡áá¬ááŸááá±á¬áá°áá»á¬ážááá¯áᬠááœáá·áºáááŒá¯ááá¯ááºáá«á áá áºáá±á¬ááºáá±á¬ááºá á¡áááºážáá¯á¶áž áááºááŒá áºááá¯ááºáááºá k + á áááŒá¬ážáá°á áá«ááᯠáááºáž áá°á·ááᯠáááºááœáá·áºáááŒá¯ááá¯ááºáá°ážááá¯áᬠáá±áá»á¬áááº- ááá¯ááºááẠáááºážáá°ááá¯ááºážááᯠá¡ááŒááºááŸá¬ áá¬ážááááºá k + á áá°áá²á· ááá¯ááºááá¯ááºáá²á· ááŒáá¯á·áá°ááŒáá¯á·áá¬ážááœá±á áá±á«ááºážáá±á¬ááºááŸá¯ááᯠá áááºáá»ááºá á±ááŸá¬ áá±áá»á¬áááºá
á€áááá¬áá¡á áááºáááºááá¯ááºááá»áŸá¡á¬ážáá¯á¶ážááᯠá áœáá·áºáá áºáá«á á±á á¡á²áá®á¡áá«ááŸá¬ áá°áá»á¬ážááẠááá¯áááá¯ááºááá¯ááºáá±á¬á·áá°ážá k áá°ááœá±á áá°ááá¯á·ááᯠáá¯ááºáá áºááá¯ááºáááºá k áá±á¬ááºá»á¬ážá áááºááẠáá¬ážááá¯ááºáááºáááºá áááááá¹ááá»á¬ážá ááá¯ááá¯áá¬á á¡á²áá®á·ááẠááá¯áá«áááºá á¡áááºá áá°áá áºáŠážááẠá¡áááºážáá¯á¶áž áááááá¹ááá áºáá¯ááœáẠáá«áááºáá±áá«á áááºážááá¯á·á¡á¬ážáá¯á¶ážááᯠáá±áá»á¬áá±á«áẠááá¬ážáá®ážááá¯ááºáá«á áá±áá»á¬áá¬ááá±á¬á·á áááááá¹áááá¯ááºáá²á·áá°ááœá±ááᯠáááºáá±áá»á¬áá±á«ááºááœáá·áºááŒá¯ááŸá¬ááŒá áºáá²á·á¡ááœáẠáá°ááŸá áºáá¬ááŸá¬ áááºáá±á¬ááºáá²á· á¡ááœááºá¡á á¬áž á¡ááá¯ááºážááœá²á¡á¬ážáá¯á¶ážááᯠáááºááŒááºáááºážááá¯á·ááá¯á¡ááºáá«áááºá á¡áá®ážá ááºáá¯á¶ážááŸááá«áááºá ááŸáá·áº á€áá¯ááºáááºážáá±á¬ááºáá¬á¡áá±á¡ááœááºááᯠá¡á á¯á¡áá±ážááœáẠááœá²áá¯ááºááŒá®ážááŒá áºáááºá
á¡áááºá áááºááẠáááááá¹ááá¯á¶ážááááŸááá°áá»á¬ážááᯠáá±ážáááºážá áœá¬ áá±á«áºáá±á¬ááºááá¯ááºáá»áŸáẠáááááá¹ááá áºáá¯áááºážááœáẠáá«áááºáá°áá»á¬ážáá±á¬á ááááºáá±á¬á· áá°ááá¯á·áᬠááŒáá¯ááºáááºááᯠáá¶áá«ážááááºááŒá®áž áááºááœáá·áºáá±ážááá¯ááºáá«áááºá á¡ááŸááºáá±á¬á· á¡á²áá áºá Bob áá²á·áᬠáááááá¹áááŒá áºáá±ááẠá¡á²áá áºááᯠáá°ááá¯á·ááŸá áºáá±á¬ááºáá²á ááœáŸááºááá¯ááºááẠáá«ááá¯á· áá¯á¶ážááŸá¯á¶ážááŸá¬ ááá¯ááºáá°ážá ááá¯á·á¡ááŒááºá áá«ááá¯á·ááŸá áºáá±á¬ááºááᯠáááºááœáá·áºáááŒá¯ááŒááºážááẠá¡áááá¹áá«ááºáááŸááá±á áá®ááᯠá á áºáááºáá±ážááœá± ááŒá®ážááœá¬ážáá±á¬á·áááºáž áá¬á០ááá»ááºáá±á¬á·áá°ážá áááŒá±ááŸááºážááá¯ááºáá±á¬ áá¶ááŒáá¹áá¬ááŸáá·áº á§áá·áºáááºáá»á¬áž- áá»áœááºá¯ááºááá¯á·ááœááºáá¬ááŸááááºá áááááá¹ááá»á¬ážááœáẠáá«áááºáá° ááŸá áºáŠážááŸáááŒá®áž áá áºáá¯á á®ááœáẠá¡áááºážáá¯á¶áž ááŸá áºáŠážáá«áááºááá·áº áááááá¹ááá»á¬ážá áá«ááŒá±á¬áá·áº áá»ááºáá¬á¡á¬ážáá¯á¶ážááᯠááœá²ááŒááºážá áááºááŒá¬ááá¯á·áá«áá²á Laptop áá áºáá¯á¶ážááœáẠáá±á·áá áºáááºááᯠá¡ááœááºááá° á ááºážá á¬ážááá¯ááºáá±á¬ ááœá±ážáá»ááºááŸá¯áá»á¬ážá
ááááºáá±á¬á· ááá¯ážááá¯ážááŸááºážááŸááºáž áá»áá¯ážááŒá±á¬ááºážáááºááŒááºááŒááºážááŒáá·áº áááºááẠááá¯áááẠááœá²áá±á¬ááºááŸá¯ááŸááá±á¬ á¡ááŒá±á¡áá±áá»á¬ážááᯠáááŸáááá¯ááºáááºá á¡ááŒááºážááœá¬ážááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááᯠááŒá±ááŸááºážááẠáá»áœááºá¯ááºááá¯á· áá±áá»á¬áá±á«áẠááá¯á¡ááºááŒá±á¬ááºáž áááááŒá¯áá« á ááá¯ááá¯áááºááŸá¬ ááœá²ááœá²áá±áá±á¬ á¡ááœá²áá áºáá¯á á®á០áá»áœááºá¯ááºááá¯á· áááºááœáá·áºáááŒá¯áá±á¬ á¡áááºážáá¯á¶áž áá áºáŠážááᯠááœá±ážáá»ááºáá«á á¡á±á¬ááºáá« á¡ááºáááá¯áá®áááºááᯠáá¯á¶ážáááºááŒáá·áºááŒáá«á áá¯á·- áá«áááºáá°áá áºáŠážááᯠáá»áœááºá¯ááºááá¯á·áááºááŸá¬ážááŒá®áž á¡ááŒáœááºážá០áááºáá«ááá²áá² á áááºááá·áº áááááá¹áááŸááºááá»áŸááᯠáá¶áá°áá«á ááá¯á·áá±á¬áẠá¡ááŒá¬ážáá áºáá¯ááᯠáááºááŸá¬ážáᬠáááºáá«ááá²áá² á áááºáá«á ááŒá±ááŸááºážááá¯ááºážááœáẠáá áºá á¯á¶áá áºáŠážááᯠáá»áœááºá¯ááºááá¯á· áááºáá¯ááºááá¯ááºáá±á¬ááŒá±á¬áá·áºá ááá¯ááá¯á·áá±á¬ á¡ááºáááá¯áá®áááºá ááŒááºááŸáá·áºááŒááºážáá áºáááºááẠá¡áááºááŸááá±á¬ ááœáá á¯á¶áá áºáááºááŒá áºáááºá kááá¯á·ááŒá±á¬áá·áº á á¯á á¯áá±á«ááºáž algorithm ááẠá¡áá¯ááºáá¯ááºáá«áááºá áááºááŸá¬ n áá±á«ááºááá¯ááºá¡áá±á¡ááœááºá ááŸáá·áº m -áá¶ááá¯ážá¡áá±á¡ááœááºá áá»áœááºá¯ááºááá¯á·áá¥ááá¬ááœááºá áááºážááẠáááºááºáá±á¬á·áá áºáá¯á¶ážááœááºáá¬áá ááá¯ááá¯ááºážááºáá¯ááºážáá±á«áºááœááºááẠáá áºá áá¹ááá·áºááœá²á¡ááœááºáž ááœááºáá»ááºááá¯ááºáááºá
á¡áááºáá« á¥ááá¬ááẠá¥ááá¬áá áºáá¯ááŒá áºáááºá parameterized algorithm. Parameterized algorithms áá»á¬ážááẠá¡áá»áááºááŸáá·áºáááŒá±ážáá® áá¯ááºáá±á¬ááºááá¯ááºáá±á¬ algorithms áá»á¬ážááŒá áºáááºá f(k) poly(n)áááºááŸá¬ p - á¡áá»á¬ážááááºážá f ááááºáááᯠááœááºáá»ááºááá¯ááºáá±á¬ function áá áºáá¯ááŒá áºáááºá k - á¡áá»áá¯á·áá±á¬ ááá·áºáááºáá»ááºáá»á¬ážááẠááŒá¿áá¬á á¡ááœááºá¡á á¬ážááẠáá»á¬ážá áœá¬áá±ážáááºáááá·áºáááºá ááŒá áºááá¯ááºáááºá
ဠalgorithm áááá¯ááºáá® áá»áá¯ážááŒá±á¬ááºážáááºááŒááºááŒááºážá¡á¬ážáá¯á¶ážááᯠá¥ááá¬áá áºáá¯áá±ážáááºá kernelization parameterized algorithms áááºáá®ážááŒááºážá¡ááœáẠáá±áá°áá»áááºážááá¬áá»á¬ážáá²á០áá áºáá¯ááŒá áºáááºá Kernelization ááẠáá«áá¬áá®áá¬áá áºáá¯á áá¯ááºáá±á¬ááºááŸá¯áá áºáá¯á០ááá·áºáááºáá¬ážáá±á¬ áááºááá¯ážáá áºáá¯ááá¯á· ááŒá¿áá¬á¡ááœááºá¡á á¬ážááᯠáá»áŸá±á¬á·áá»ááŒááºážááŒá áºáááºá ááááºááŒá¿áá¬ááᯠkernel áá¯áá±á«áºáááºá ááá¯á·ááŒá±á¬áá·áºá áá±á¬áá·áºá áœááºážáá»á¬ážááá®ááá®áá»á¬ážá¡ááŒá±á¬ááºáž ááá¯ážááŸááºážáá±á¬á¡ááŒá±á¬ááºážááŒáá»ááºááŒáá·áºá á¡ááŒá±áá¡ááœááºá¡á á¬ážááŒáá·áºáááºááŸááºáá¬ážáá±á¬ Vertex Cover ááŒá¿áá¬á¡ááœáẠáá±ážáá±á¬áá·áºáá¯á¶á ᶠkernel áá áºáá¯ááᯠáá»áœááºá¯ááºááá¯á·áááŸááá²á·áá«áááºá á€áá¯ááºáááºážá¡ááœáẠáááºááœá±ážáá»ááºááá¯ááºáá±á¬ á¡ááŒá¬ážáááºáááºáá»á¬áž (á¥ááᬠVertex Cover Above LP áá²á·ááá¯á·)á ááá¯á·áá±á¬áº áááºážááẠáá»áœááºá¯ááºááá¯á· ááœá±ážááœá±ážááá·áº áááºáááºááŒá áºáááºá
Pace Challenge
ááŸááºááŒáá¯ááºááŸá¯
ááŒáá¯ááºááœá²ááẠááŸá
áºá
áẠáá±áááºážá
á¬ážáá¬áááºá ááá¬áá¡áá»ááºá¡áááºááᯠáá¯á¶ááŒááºáá«áá ááá¯ááŸá
áºááœáẠá¡áááºážáá±á«ááºáž 24 ááœá²á·ááẠvertex á¡áá»á¯á¶ážáááºááá·áº ááŒá¿áá¬ááᯠááŒá±ááŸááºážáááºá¡ááœáẠááŒáá¯ááºááœá²ááœáẠáá«áááºáá²á·áááºá ááŒáá¯ááºááœá²ááẠáá¬áá®áá±á«ááºážáá»á¬ážá
áœá¬ ááá¯á·ááá¯áẠáá
áºáááºááẠáááŒá¬áá±á¬áºáááºáž ááá±á«ááºážáá»á¬ážá
áœá¬ ááŒá¬ááŒá±á¬ááºáž áááááŒá¯ááá·áºáááºá á¡ááœá²á·áá»á¬ážááẠá
á¬áá±áá±á·áá¬ááœáá·áºá áááºážááá¯á·ááá°áá
áááºáá°ážááᯠáá±á¬áºáá¯ááºááŒá®áž áááºážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááẠááŒáá¯ážá
á¬ážááœáá·áºááŸááááºá á¡ááŸá
áºáá¬áá¡á¬ážááŒáá·áº á€ááŒáá¯ááºááœá²ááẠáá¯áá±ááááá±á¬áá»ááºáá
áºáá¯ááŒá
áºáááºá á¡áááá±á¬ááºáá¯á¶ážááŒá±ááŸááºážáááºážáá»á¬ážá¡ááœáẠá¡ááŒá¶áá¬ááºáá»á¬ážááŸáá·áº áá¯áááŸááá°áá»á¬ážááᯠáá¯áá»á®ážááŒáŸáá·áºááŒááºážáá»á¬ážááᯠáá®áá¬áá¶ááŸáá·áºá¡áá° áá°ážááœá²áá»ááºážááááºááŒá
áºáááºá
ááŒá±ááŸááºážáá»ááºááá¬áž
vertex áá¯á¶ážááœáŸááºážááŒááºážááŒá¿áá¬ááá¯ááŒá±ááŸááºážááẠparameterized algorithms ááá¯á¡áá¯á¶ážááŒá¯á ááŒáá¯ážá á¬ážáá²á·áááºá áááºážááá¯á·ááœáẠáá¯á¶ááŸááºá¡á¬ážááŒáá·áº á¡ááá¯ááºážááŸá áºááá¯ááºážáá«áááºáááº- ááá¯ážááŸááºážáá±á¬á ááºážáá»ááºážáá»á¬áž (á¡áá±á¬ááºážáá¯á¶ážá¡á¬ážááŒáá·áº kernelization ááá¯á·áŠážáááºááá·áº) ááŸáá·áº ááá¯ááºážááŒá¬ážááŒááºážá ááºážáá»ááºážáá»á¬ážá ááá¯ážááŸááºážáá±á¬á ááºážáá»ááºážáá»á¬ážááẠáá±á«ááºážáá°ážá¡áááºá¡áá»áááºá¡ááœááºáž ááá·áºááœááºážááŸá¯ááᯠááŒáá¯áááºáá¯ááºáá±á¬ááºáá±áááºá áááºážá ááºážáá»ááºážáá»á¬ážááᯠáá»áá·áºáá¯á¶ážáááŒááºážá áááºááœááºáá»ááºááŸá¬ ááŒá¿áá¬á¡áá±ážá á¬ážáá áºáá¯á¡ááŒá ẠááŒá¿áá¬ááᯠáá»áŸá±á¬á·áá»áááºááŒá áºáááºá ááá¯ážááŸááºážáá±á¬á ááºážáá»ááºážáá»á¬ážááẠalgorithm áá á»á±ážá¡ááŒá®ážáá¯á¶ážá¡ááá¯ááºážááŒá áºááŒá®ážá á€á¡ááá¯ááºážááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááẠá á¯á á¯áá±á«ááºážáááºáááºáá»áááºááá¯ááŒá áºáá±á«áºá á±ááẠááá¯ážááŸááºážáá±á¬ polynomial á¡áá»áááºá¡á á¬áž áá»áœááºá¯ááºááá¯á·áá¡ááŒá±á¡áá±ááœááºá ááœá²ááœááºááŒááºážá ááºážáá»ááºážáá»á¬ážááẠá¡ááœááºáá áºáá¯á á®á¡ááœáẠááá¯á·ááá¯áẠáááºážáá¡áááºáá®ážáá¬ážáá»ááºážááᯠá¡ááŒá±áá áºáá¯á¡ááŒá Ạáá°áááºááá¯á¡ááºáááºáá°áá±á¬á¡áá»ááºá¡áá±á«áº á¡ááŒá±áá¶áá¬ážáááºá
áá±áá°áá»á¡á á®á¡á á¥áºááŸá¬ á€á¡áá¬ááŒá áºáááº- áá»áœááºá¯ááºááá¯á·ááẠááá¯ážááŸááºážáá±á¬á ááºážáá»ááºážáá»á¬ážááᯠáá»áá·áºáá¯á¶ážááŒá®ážáá±á¬áẠá¡áá»áá¯á·áá±á¬ vertex ááá¯ááœá±ážáá»ááºáᬠáá±á«áºááá¯ááŸá¯ááŸá áºáá¯ááᯠááŒá¯áá¯ááºáááº- áááááœáẠáá»áœááºá¯ááºááá¯á·á áááºážááᯠáá¯á¶á·ááŒááºááŸá¯ááŒáá·áº ááŒá¯áá¯ááºááŒááŒá®áž á¡ááŒá¬ážáá áºáá¯ááœáẠáááºážááᯠá¡áááºáá®ážáá»ááºážáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá±á«áºáá±á¬ááºááœá¬ážáá«áááºá ဠvertex áá áºáá»áŸá±á¬áẠááá¯ááºážááŒá¬ážááŒááºáž (á¡ááá¯ááºážá¡áááº) áá¯áá±á«áºáááºá
áá±á¬ááºá á¬ááá¯ááºááœáẠá€á¡á á®á¡á á¥áºá¡ááœáẠáááºáá±á¬ááºážáá áºáᯠá¡ááá¡áá» ááŒá¯áá¯ááºáá«áááºá
ááá¯ááºážááŒá¬ážááŒááºáž (brunching) á ááºážáá»ááºážáá»á¬áž á áááºáá°ážáá»á¬áž
ááá¯ááºážááŒá¬ážááŒááºážááŒá
áºáá±á«áºáá¬ááá·áº vertex ááᯠáááºááá¯á·ááœá±ážáá»ááºááááºááᯠááœá±ážááœá±ážááŒáá«á
áá¯á·á
á¡ááá á¡áá¯ááºáá®áá¬ááẠá¡ááºáááá¯áá
áºááẠááá±á¬ááá¬ážá¡á á¡ááœááºáá±á¬áááŒá®ážáááº- á¡ááŒáá·áºáá¯á¶ážáá®ááá®ááᯠáá±á¬áá·áºá
áœááºážáá
áºáá¯áá°ááŒá®áž áááºážááᯠááœá²ááŒáá·áºááŒáá«á
áá¯á·á á¡áááºááŒá±á¬áá·áº ááá¯áá±á¬ááºážáá¯á¶áá±á«áºááááºážá á¡áááºááŒá±á¬áá·áºááá¯áá±á¬áº recursive call ááá¯áááá¡ááá¯ááºážá¡áááºááœáẠáá»áœááºá¯ááºááá¯á·ááẠá€áááºážááŒáá·áº vertices á¡áá»á¬ážá¡ááŒá¬ážááᯠáááºááŸá¬ážáááºááŒá
áºáááºá áá»ááºááŸááá±áá±ážáá±á¬ ááááºá¡áá±ážáá
áºáá¯ááᯠáááºá¡á¬ážááá¯ážááá¯ááºááŒá®áž áááºážááᯠáá»áœááºá¯ááºááá¯á· á¡ááŒááºáá¯ááºáá±á¬ááºááá¯ááºáá«áááºá
ááœá±ážááœá±ážáá¬ážááŒá®ážááŒá
áºáá±á¬ ááá¯ážááŸááºážáá±á¬ kernelization áááºážááá¬áá»á¬ážááŒáá·áº á€áá»ááºážáááºáááºážááẠáá°á·ááá¯ááºáá° áá±á¬ááºážááœááºá
áœá¬ááŒáááŒá®áž á¡ááœááºá¡á
á¬áž áá±á¬ááºááááºážááŸááá±á¬ á
ááºážáááºááŸá¯áá»á¬ážááᯠááŒá±ááŸááºážáá±ážáá«áááºá ááá¯á·áá±á¬áº á¥ááá¬á¡á¬ážááŒáá·áºá áá¯áááááºáá»á¬áž (ááá¯ááá¯áááºááŸá¬á áá±á¬áá·áºáá
áºáá¯á
á®á áá®ááá®ááẠáá¯á¶ážáá¯á¶áá
áºáá¯á¶á
á®ááŸááá±á¬ ááááºáá
áºáá»á¬áž) á¡ááœáẠáá±á¬ááºážá
áœá¬ á¡áá¯ááºááá¯ááºáá«á
ááá¯ážááá¯ážááŸááºážááŸááºáž á¡áá°á¡áá¡áá±á«áº á¡ááŒá±áá¶ááá·áº áá±á¬ááºááẠá¡áá°á¡ááá
áºáᯠááŸááá«áááº- ááááºááᯠáá»áááºáááºááŸá¯ ááŒááºáá±á¬ááºááœá¬ážáá«á áááºážá áá»áááºáááºáá¬ážáá±á¬ á¡á
áááºá¡ááá¯ááºážáá»á¬ážáá±á«áºááŸá ááŒá¿áá¬ááᯠá¡áá¯á¶ážááœáẠá¡ááŒá±áá»á¬ážááᯠáá±á«ááºážá
ááºáᬠááœááºáááºá
áœá¬ ááŒá±ááŸááºážááá¯ááºáá«áááºá á€áááºážá¡á¬ážááŒáá·áºá áááºážááẠááŒá±ááŸááºážáá»ááºá¡á¬áž áááááá¬áᬠá¡ááŸáááºááŒáŸáá·áºáá±ážááá·áº á¡á
á®á¡á
ááºááœáẠáááááŒá¯áá¬ážááá·áº áá±ážáááºáá±á¬ ááŒá¯ááŒááºááœááºážáá¶ááŸá¯áá
áºáá¯ááŒá
áºáááº- ááááºáá á€ááá
á¹á
ááœááºá áá»áœááºá¯ááºááá¯á·ááẠá¡á
áááºá¡ááá¯ááºážáá»á¬ážá áá¯á¶á·ááŒááºááŸá¯áá»á¬ážááᯠááœááºáá»ááºáááºá¡ááœáẠá¡áá»áááºáá»á¬ážá áá¯ááºáá¯ááºá¡ááœáẠáá¯ááºáá±á¬ááºáá²á·ááŒáá±á¬áºáááºáž ááá¯á¡áá«ááœáẠáá»áœááºá¯ááºááá¯á· á¡áá¯ááºáá¯ááºáá«áááºá áá±á«ááºážáááºá á¡ááá¯ááºážá¡áááºáá»á¬áž á¡ááŸáááºááŒáŸáá·áºáááºá áá»áááºáááºáá¬ážáá±á¬ ááááºááᯠá¡áááºááŒááºáá±áá±á¬ áá
áºáá¯á¡ááŒá
áºááá¯á· ááŒá±á¬ááºážáá²ááẠááá¯á¡ááºáááºá
áááºááᯠáá¯ááºáááá²? ááááºááœáẠáá®ááŒááºááá·áºá¡áá»ááºáá
áºáá¯ááŸááá«áá áááºážááᯠááá¯ááºááá¯ááºááẠááá¯á¡ááºáááºá articulation point ááẠvertex ááŒá
áºááẠááááºáá
áºáá¯ááŸá áááºážáá¯á¶á¡ááŸááºá¡á¬ážáá¯á¶ážááᯠáá»ááºážááŒá±á¬áá·áºá¡áá»áááºá¡ááœááºáž ááá¹áááẠá¡ááºáááá¯áá®áááºááᯠá¡áá¯á¶ážááŒá¯á ááœá±á·ááŸáááá¯ááºáááºá á€áááºážáááºážááẠá¡ááá¯ááºážá¡áááºáá»á¬ážááᯠáááááá¬áᬠááŒááºáááºá
á±áááºá
ááœá±ážáá»ááºáá¬ážáá±á¬ áá±á«ááºááá¯ááºáá»á¬ážááᯠáááºááŸá¬ážááá¯ááºáá±á¬á¡áá«á ááááºááẠáá»áááºáááºáá¬ážáá±á¬ á¡á
áááºá¡ááá¯ááºážáá»á¬ážá¡ááŒá
áºááá¯á· ááœá²ááœá¬ážáááºááŒá
áºáááºá
áá«ááᯠáá¯ááºáááºá áá«áá±ááá·áº ááá¯ááá¯áá»ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááááºá¡ááœááºážááŸá áá±ážáááºáá±á¬ vertex ááŒááºáá±á¬ááºááŸá¯áá»á¬ážááᯠááŸá¬ááœá±ááŒá®áž áááºážá០áá±á«ááºááá¯ááºáá»á¬ážáá áºáá»áŸá±á¬áẠááá¯ááºážááŒá¬ážáá«á ááá¹áá¬áá¯á¶ážááá¯ááºáᬠáá±á«ááºááá¯áẠá¡áááá·áºáá¯á¶áž ááŒááºáá±á¬ááºááŸá¯ááᯠááŸá¬ááœá±ááẠá¡áááá±á¬ááºáá¯á¶áž áááºážáááºážááŸá¬ áá¯áá¡áá»áááºá¡ááœááºáž áááºáá±á¬ááºáá¬ážááá·áº Gomori-Hu áá áºáááºááᯠá¡áá¯á¶ážááŒá¯ááŒááºáž ááŒá áºáááºá PACE Challenge ááœááºá áá¯á¶ááŸááºááááºáá áºá¡ááœááºá¡á á¬ážááẠáá±á¬ááºááááºážáá»á¬ážá áœá¬ááŸááááºá á€á¡ááŒá±á¡áá±ááœááºá áá¯áá¯á¶ážáá áºáááºá á¡ááœááºáá áºáá¯á á®ááœáẠáá®áá®áá¶áá±á«ááºážáá»á¬ážá áœá¬áá±á¬ áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºááẠááá¯á¡ááºáá«áááºá ááœá²áá±áá±ážááá·áºá¡áá»áááºá¡ááœááºáž ááŒá¿áá¬ááᯠááŒá±ááŸááºážááẠááá¯ážááŸááºážá áœá¬ áááŒá áºááá¯ááºááŒá±á¬ááºáž ááœááºáá±á«áºáá¬áááºá
ááŒá±ááŸááºážáá»ááºááᯠá¡áá±á¬ááºážáá¯á¶ážááŒá
áºá¡á±á¬áẠááŒáá¯ážá
á¬ážááŒáá«á
áá¯á·á á¡ááŒáá·áºáá¯á¶áž á
á®ážáááºážááŸá¯ááᯠáááºáá±á¬ááºááá·áº áááºááá·áº algorithm ááŒáá·áº áá±á«ááºááá¯áẠá¡ááœá²áá»á¬ážááŒá¬ážááœáẠá¡áááá·áºáá¯á¶áž vertex ááᯠááŒááºáá±á¬ááºáá¬ážáááºááᯠááœá±á·ááá¯ááºáá«áááºá ááá¯ááá¯á·áá±á¬ááœááºáááºáá±á«áºááœááºáááºááœáá·áºááŒá¯ááá¯ááºáááºá
áá»áááºážá¡ááœá²áá»á¬ážááŒá¬ážá០ááŒááºáá±á¬ááºááŸá¯áá»á¬ážááᯠááŸá¬ááœá±ááŒá®áž á¡áá»áŸááá¯á¶ážáá áºáá¯ááᯠáá°ááẠá¡ááŒáááºááŒáááºááŒáá¯ážá á¬ážáá²á·áááºá áá¶ááá±á¬ááºážá áœá¬ááŒáá·áºá áááºážááẠopen PACE Challenge á ááºážáááºááŒááºážááœáẠááááºááá±á¬ááºážáá«á á¡ááŒáá·áºáá¯á¶ážáá®ááá®ááᯠááááºááá¯ááºážááœá²á áááºážáááºááŸá¯á¡ááááºá¡áááºááᯠááá·áºáááºáá»ááºááŒáá·áº áá¯ááºáá±á¬ááºáá±ážááá·áº á¡ááºáááá¯áá®áááºáá áºáá¯ááŸáá·áº ááŸáá¯ááºážááŸááºáá«áááºá á€áááºážááŒáá·áº ááŒááºáá±á¬ááºááŸá¯ááᯠááŸá¬ááœá±ááẠááŒáá¯ážá á¬ážáá±ááá·áº á¡ááºáááá¯áá®áááºáá áºáᯠá€áááºááŸá¬ ááŒááºáá±á¬ááºááŸá¯áá»á¬ážááẠá¡ááœááºáááºáá»ááºááá®áá² ááŒá áºááœá¬ážáá±á¬ááŒá±á¬áá·áºááŒá áºáááº- 5-10 ááááºáá»á¬ážááᯠáááºááŸá¬ážááŒá®ážáá«á 15-20 áᬠááœá²ááœááºááá¯ááºáááºá
áá®á¡áá¯áá®á¡á á¡ááŒááºáá¯á¶áž á¡ááºáááá¯áá®áááºáá»á¬ážá¡ááŒá±á¬ááºáž áá±á¬ááºážáá«ážáá»á¬ážááẠááá¯ááºážááŒá¬ážáááºá¡ááœáẠáá±á«ááºááá¯ááºáá»á¬ážááᯠááœá±ážáá»ááºáááºá¡ááœáẠááá¯ááá¯á¡ááá·áºááŒáá·áºáá±á¬ áááºážááá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá¬ážááŒá±á¬ááºáž áááááŒá¯ááá·áºáá«áááºá ááá¯ááá¯á·áá±á¬áááºážááá¬áá»á¬ážááẠá¡ááœááºááŸá¯ááºááœá±ážáá±á¬ á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááŸáááŒá®áž á¡áá»áááºááŸáá·áº ááŸááºáá¬ááºááœáẠá áœááºážáá±á¬ááºááẠáá¶á·áá»ááºážáá±á·ááŸááááºá á¡áá±á·á¡áá»áá·áºá¡ááœáẠáááºáá¶ááá¯ááºáá±á¬ááºáá±á¬ á¡áá»áá¯ážá¡á á¬ážáá»á¬ážááᯠááœá²ááŒá¬ážááááá«á
ááá¯ážááŸááºážáá±á¬á ááºážáááºážáá»á¬ážááᯠáááºáá²á·ááá¯á·áá»áá·áºáá¯á¶ážááááºáááºážá
áá»áœááºá¯ááºááá¯á·ááœáẠkernelization á¡ááœáẠá¡ááŒá¶á¥á¬ááºáá»á¬áž ááŸáááŸáá·áºááŒá®ážááŒá áºáááºá áá« áááºážááᯠááááá±ážáá«áá á±-
- áá®ážááŒá¬áž vertex ááŸááá«áá áááºážááᯠáá»ááºáá«á
- áá®ááá® 1 á vertex ááŸááá»áŸáẠáááºážááᯠáááºááŸá¬ážááŒá®áž áááºážá á¡áááºáá®ážáá»ááºážááᯠáá¯á¶á·ááŒááºáá«á
- áá®ááá®á vertex á¡áááºážáá¯á¶ážááŸááá»áŸáẠk + áááŒááºáá°áá«á
áááááŸá áºáá¯á ááŸááºážáá«áááºá áááááá áºáá¯á ááŸáá·áºááœááºáá áºáá¯ááŸááááºá áá¬ážáá áºáá¯á¡ááŒá±á¬ááºáž áá¯ááºááŒááŒá¿ áá¬áá áºáá¯ááœáẠáá»áœááºá¯ááºááá¯á·ááᯠááá·áºáááºáá»ááºá¡ááẠáá±ážáá¬ážáááºá kááá¯á·áá±á¬áẠPACE Challenge ááœáẠá¡áááá·áºáá¯á¶ážá¡ááœááºá¡á á¬ážá vertex áá¬áá¬ááᯠááŸá¬áááºáá¬ááá¯áááºá á€áááºááŸá¬ ááŸá¬ááœá±ááŸá¯ááŒá¿áá¬áá»á¬ážá áá¯á¶ážááŒááºáá»ááºááŒá¿áá¬áá»á¬ážá¡ááŒá áºááá¯á· áá¯á¶ááŸááºá¡ááœááºááŒá±á¬ááºážááŒááºážááŒá áºáááºá áááŒá¬ááááá¯áááᯠááŒá¿áá¬á¡áá»áá¯ážá¡á á¬ážááŸá áºáá¯ááŒá¬ážááœáẠááœá²ááŒá¬ážááŸá¯áááŸááá«á áááºááœá±á·ááœááºá áá»áœááºá¯ááºááá¯á·ááẠvertex áá¬áá¬ááŒá¿áá¬á¡ááœáẠááŒá±ááŸááºážáá°á¡á¬áž áá±ážáá¬ážáá±áá«áá ááŒá¬ážáá¬ážáá»ááºááŸáááá¯ááºáá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááááá¡áá»ááºááá²á·ááá¯á·á
á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ ááŸá¯áá±á¬áá·áºá០áá±á¬ááºááœááºááẠáááºážáááºážááŸá áºááœááºááŸááááºá ááááááºážáááºážááᯠIterative Deepening áá¯áá±á«áºáááºá áááºážááẠá¡á±á¬ááºáá«á¡ááá¯ááºážááŒá áºáááº- áá»áœááºá¯ááºááá¯á·ááẠá¡ááŒá±áá±á«áºááŸá á¡á±á¬ááºáá±á¬áºááŒáá«á០áá»áá¯ážááŒá±á¬ááºážáá®áá»á±á¬áºáá±á¬ ááá·áºáááºáá»ááºá¡áá»áá¯á·ááŒáá·áº á áááºááá¯ááºááŒá®ážá ááá¯á·áá±á¬áẠá¡ááŒá±á¡áá±á«áºá០ááá·áºáááºáá»ááºáá áºáá¯á¡ááŒá Ạá€ááá·áºáááºáá»ááºááᯠá¡áá¯á¶ážááŒá¯áᬠáá»áœááºá¯ááºááá¯á·á á¡ááºáááá¯áá®áááºááᯠáá¯ááºáá±á¬ááºááá¯ááºáááºá á€ááá·áºáááºáá»ááºááẠááŒááºáááá»áŸá±á¬á·áá² áááºáá«ááá²áá² áá¯ááºáá±á¬ááºááá¯ááºáááºá á¡áááºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááŒá±á¡áá»áá¯á·ááᯠááœá±á·ááŸááá«áá áááºážááẠá¡áá±á¬ááºážáá¯á¶ážááŒá áºáááºáᯠá¡á¬ááá¶áá«áááºá ááá¯á·ááá¯ááºáá«á áá»áœááºá¯ááºááá¯á·ááẠá€ááá·áºáááºáá»ááºááᯠáá áºáá¯ááŒá®ážáá áºáᯠááá¯ážááŒáŸáá·áºááŒá®áž ááŒááºáááºá áááºááá¯ááºáá«áááºá
á¡ááŒá¬ážáááºážáááºážááŸá¬ áááºááŸáá¡áá±á¬ááºážáá¯á¶ážá¡ááŒá±á¡áá»áá¯á·ááᯠááááºážáááºážáááºááŸáá·áº ááœá±á·ááŸáááá·áºá¡áá« á€ááá·áºáááºáá»ááºááᯠááŒá±á¬ááºážáá²ááẠáá±ážáááºáá±á¬á¡ááŒá±áá áºáá¯ááᯠááŸá¬ááœá±áááºááŒá áºáááºá k ááŸá¬ááœá±ááŸá¯ááœáẠáááá¯á¡ááºáá±á¬ á¡ááá¯ááºážá¡áááºáá»á¬ážááᯠááá¯ááá¯ááŒááºáá±á¬ááºáááºá
áá áẠá ááºážáááºááŸá¯áá»á¬ážá áœá¬ááᯠááŒá¯áá¯ááºááŒá®ážáá±á¬ááºá á€áááºážáááºážááŸá áºáá¯á áá±á«ááºážá ááºááŸá¯ááᯠáá«áá¯á¶ážááŒááºáá²á·áááº- áááá ááŸá¬ááœá±ááŸá¯á¡ááááºá¡áááºá¡áá±á«áº ááá·áºáááºáá»ááºá¡áá»áá¯á·ááŒáá·áº áá»áœááºá¯ááºá á¡ááºáááá¯áá®áááºááᯠáá¯ááºáá±á¬ááºááẠ(áááºážááᯠááœá±ážáá»ááºáá¬ááœáẠá¡áááááŒá±ááŸááºážáá»ááºááẠá¡áá»áááºá¡áááºážáááºááŒá¬áááº) ááŸáá·áº á¡áá±á¬ááºážáá¯á¶ážááᯠá¡áá¯á¶ážááŒá¯áá«á á¡ááŒá±áá¡áááºááá·áºáááºáá»ááºá¡ááŒá áºááœá±á·ááŸááá²á·ááẠ- ááá¯ááá¯áááºááŸá¬á áá°áá®áá±á¬á¡áá¬ááŒá áºáááºá k.
áá®ááá® á
áá®ááá® 0 ááŸáá·áº 1 á áá±á«ááºááá¯ááºáá»á¬ážááᯠááá¯ááºááœááºááŒá±ááŸááºážáá¬ážáá«áááºá áááºážááᯠáá®ááá® 2 á áá±á«ááºááá¯ááºáá»á¬ážááŒáá·áº áá¯ááºáá±á¬ááºááá¯ááºáá±á¬áºáááºáž áááºážááẠááááºá០ááá¯ááá¯ááŸá¯ááºááœá±ážáá±á¬ áá¯ááºáá±á¬ááºááŸá¯áá»á¬áž ááá¯á¡ááºáááºááŒá áºáááºá
áááºážááá¯ááŸááºážááŒáááºá áá»áœááºá¯ááºááá¯á·ááẠá¡áááºáááºážáá»á¬ážááᯠáá áºáááºážáááºážááŒáá·áº áááºááŸááºááẠááá¯á¡ááºáááºá áá®ááá® 2 á vertex ááᯠvertex áá¯áá±á«áºááŒáá«á áá¯á· v, ááŸáá·áºáááºážáá¡áááºáá®ážáá»ááºážáá»á¬áž - vertices x О y. áá±á¬ááºáá áºáá¯á ááá á¹á ááŸá áºáá¯ááŸááááºá
- ááá±á¬á¡áá« x О y - á¡áááºáá®ážáá»ááºážáá»á¬ážá ááŒá®ážáááºááŒá±ááá¯á·ááá«áááºá x О yááŸáá·áº v áá»ááºáá«á á¡ááŸááºá ááºá á áºá á€ááŒááá¶á០á¡áááºážáá¯á¶áž áá±á«ááºááá¯ááºááŸá áºáá¯ááᯠááŒááºáá°ááẠááá¯á¡ááºááŒá®áž áá»áœááºá¯ááºááá¯á·áá°áá«á áá»áááºážáá±áá±á«áẠáá»ááŸá¯á¶ážáááºááá¯ááºáá«á x О y: áá°ááá¯á·ááŸá¬ áááŒá¬ážá¡áááºáá®ážáá¬ážáá»ááºážááœá± ááŸááááºá v áá°ááá¯á·áá®ááŸá¬áááŸááá°áž
- ááá±á¬á¡áá« x О y - á¡áááºáá®ážáá»ááºážááœá± ááá¯ááºáá°ážá ááá¯á·áá±á¬áẠáá±á«ááºááá¯áẠ(á)áá¯áá¯á¶ážááᯠáá áºáá¯áááºážá¡ááŒá Ạáá±á«ááºážá ááºááá¯ááºáááºáᯠáá±á¬áºááŒáá¬ážáá±áááºá á¡áá°á¡áááá±á¬á· áá®ááá á¹á ááŸá¬ á¡áá±á¬ááºážáá¯á¶ážá¡ááŒá±áá áºáá¯ááŸááááºá áá áºáá¯áá¯ááᯠáá»áœááºáá±á¬áºááá¯á· áá°áá«áááºá vááá¯á·ááá¯áẠááŸá áºáááºá áá¯á¶áž x О y. ááá¯á·á¡ááŒááºá áááááá á¹á ááœááºá áá»áœááºá¯ááºááá¯á·ááẠá¡áááºáá®ážáá»ááºážá¡á¬ážáá¯á¶ážááᯠáá¯á¶á·ááŒááºááẠááá¯á¡ááºáá«áááºá x О yáá«áá±ááá·áº áá¯áááááá¯ááºážááŸá¬áá±á¬á· áááá¯á¡ááºáá«áá°ážá áááºážááẠáá¯á¶á·ááŒááºááŸá¯ááœáẠáá±á¬áºáá¬ážáá±á¬ áá±á«ááºááá¯ááºááᯠááá°ááá·áºá¡áá«ááŸáá·áº áá»áœááºá¯ááºááá¯á·áá¯ááºáá±á¬ááºááá·áºá¡áá« ááá á¹á áá»á¬ážááŸáá·áº á¡ááá¡áá» áááºááá¯ááºáááºá ááá¯ááá¯á·áá±á¬ áá¯ááºáá±á¬ááºáá»ááºááŸá áºáá¯áá¯á¶ážááœáẠáá¯á¶á·ááŒááºááŸá¯ááẠáá áºáá¯ááŒá®ážáá áºáᯠáá»á±á¬á·áááºážááœá¬ážáááºááᯠáááááŒá¯áááºáᬠáá»ááºááŸááá±á¬á·ááẠá
á€áááºážáááºážááẠááá¬ážáá»áŸááá±á¬ linear time ááœáẠáááá»á áœá¬á¡áá±á¬ááºá¡áááºáá±á¬áºááẠá¡ááœááºáááºáá²ááŒá±á¬ááºáž áááááŒá¯ááá·áºáá«áááºá ááááºáá»á¬ážááᯠáááºááŒááºážááẠááŸá¯ááºááœá±ážáá±á¬ áá¯ááºáá±á¬ááºáá»ááºááŒá áºááŒá®áž á¡áááºáá®ážáá»ááºážáá»á¬ážá á á¬áááºážáá»á¬ážááᯠáá°ážáá°ááẠááá¯á¡ááºáááºá áááºážááᯠááá¯áá áá¯ááºáá² áá¯ááºáá±á¬ááºáá«áá áááºááẠáááºáá»ááºááá®áá±á¬ á¡áá±á¬ááºážááœááºáá¯á¶ážáá±á¬ áááºáááºáá»áááºááŸáá·áº á¡áá¯á¶ážáááºááá¯ááºááẠ(á¥ááá¬á áá»áááºáá áºáá¯á á®ááŒá®ážáá±á¬áẠá¡á áœááºážáá»á¬ážá áœá¬ááᯠáá°ážáá°áá«á)á áá®ááá® 2 á áá±á«ááºááá¯ááºá០áááºážááŒá±á¬ááºážáá áºáá¯áá¯á¶ážááᯠááŸá¬ááœá±ááŒá®áž ááá¯áá²á·ááá¯á·áá±á¬ áá±á«ááºááá¯ááºáá»á¬ážá០áá¶ááá¬áá»á¬áž ááá¯á·ááá¯áẠáá áºáá¯ááŸááœá²á ááá¯áá²á·ááá¯á·áá±á¬ áá±á«ááºááá¯ááºáá»á¬áž áá²á·ááá¯á·áá±á¬ á¡áá°ážááá á¹á áááºáá»á¬ážá áœá¬ááᯠááœá²ááŒááºážá áááºááŒá¬áá±á·áá¬áá²á·áááºá
ááá¯á·á¡ááŒááºá á€áá¯ááºáá±á¬ááºáá»ááºááᯠáá±á¬ááºááŒááºááŸáá·áºááẠááá¯á¡ááºáááºá ááá¯á·ááŸáᬠááŒááºáá±á¬ááºáá»ááºá០ááŒááºáá¬ááá·áºá¡áá« ááááºááᯠáááºážááá°ááá¯á¶á á¶ááá¯á· ááŒááºáááºáá±á¬ááºááŸáá á±ááẠááá¯á¡ááºáá«áááºá áááºážááá¯áá±áá»á¬á á±áááºá áá±á«ááºážá ááºážáá¬ážáá±á¬ áá±á«ááºááá¯ááºáá»á¬ážá á¡á áœááºážáá»á¬ážá á¬áááºážáá»á¬ážááᯠáááŸááºážáááºážáá²á ááá¯á·áá±á¬áẠáááºááá·áºá¡á áœááºážáá»á¬áž áááºááá·áºáá±áá¬ááá¯á· ááœá¬ážááááºááᯠáááá«áááºá á€ááááºáá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ááœááºáááºáž áááá»ááŸá¯ááŸáááẠááá¯á¡ááºáá±á¬áºáááºáž áááºážááẠáá»áŸááá±á¬ linear time ááá¯áá±ážáá«áááºá á¡á áœááºážáá±á¬ááºáá±á«ááºážáá»á¬ážá áœá¬á ááááºáá áºáá»á¬ážá¡ááœáẠáááºážááẠááŒááºááŸá¯ááºážááœáẠá¡áá»áá¯ážáá»á±ážáá°ážáá»á¬ážá áœá¬áá±ážááá·áº áááá¯áááºáᬠcache ááŸáá·áº á¡á¶áááºááœááºáá»ááŒá áºáááºá
Linear kernel
áá±á¬ááºáá¯á¶ážá¡áá±áá²á· kernel áá²á· á áááºáááºá á¬ážá áá¬á¡áá±á¬ááºážáá¯á¶áž á¡ááá¯ááºážáá«á
á
áááºáááºá bipartite ááááºáá»á¬ážááœáẠá¡áááá·áºáá¯á¶áž vertex áá¬áá¬ááᯠá¡áá¯á¶ážááŒá¯á ááœá±á·ááŸáááá¯ááºáááºááᯠáááááá«á . áá®ááá¯áá¯ááºááá¯á·ááẠalgorithm ááá¯á¡áá¯á¶ážááŒá¯áááºááá¯á¡ááºáááºá
linear kernel á á¡áá°á¡áááŸá¬ á€ááá¯á·ááŒá áºáááº- ááááŠážá áœá¬ áá»áœááºá¯ááºááá¯á·ááẠááááºááᯠááŸá áºááŒááºážááœá²áá¬á ááá¯ááá¯áááºááŸá¬á ááááºáááºážáá áºáá¯á á®á¡á á¬ážá v á¡ááœááºá¡ááááºááŸá áºáá¯ááá·áºááŒáá«á áá¯á· О á¡á áœááºážáá áºáá¯á á®á¡á á¬ážá u - v áá¶ááá¯ážááŸá áºáá»á±á¬ááºážááá·áºáá¡á±á¬áẠО . ááá¬áá²á· ááááºáᬠááŸá áºááá¯ááºážááŒá áºáá«áááá·áºáááºá áááºážááœáẠá¡áááá·áºáá¯á¶áž vertex áá¬áá¬ááᯠááŸá¬ááŒáá·áºááŒáá«á áá¯á·á áá°áááºážááááºá á¡áá»áá¯á·áá±á¬ áá±á«ááºááá¯ááºáá»á¬ážááẠááá¯áá±áá¬ááœáẠááŸá áºááŒáááºá á¡áá»áá¯á·ááẠáá áºááŒáááºáá¬ááŒá áºááŒá®áž á¡áá»áá¯á·ááŸá¬ áááºáá±á¬á·á០áá±á¬ááºáááºááá¯ááºáá±á Nemhauser-Trotter áá®á¡áá¯áá®á¡áá á€ááá á¹á ááœááºá áá áºááŒáááºááŸááááá±á¬ ááááºáá»á¬ážááᯠáááºááŸá¬ážááá¯ááºááŒá®áž ááŸá áºááŒáááºááá¡á±á¬áẠááŒááºáá°ááá¯ááºááŒá±á¬ááºáž áá±á¬áºááŒáá¬ážáááºá ááá¯á·á¡ááŒááºá áá»ááºááŸááá±á¬ áá±á«ááºááá¯ááºáá»á¬áž (áá áºááŒáááºááááœá¬ážáá±á¬) áá»á¬ážááᯠá¡ááŒá±áá áºáá¯á¡ááŒá Ạá¡áááºážáá¯á¶ážáá áºáááºáá°ááẠááá¯á¡ááºáááºáᯠáá°áá ááá¯áááºá
áá®áááºááá¯ááá¬ážáá²á·ááá¯á· áááºáá°áá²á·áááºá 2k áááºážááŒá®ážá á¡ááŸááºá ááºá á áºá áá»ááºááŸááá±á¬á¡ááŒá±ááẠáá±á«ááºááá¯ááºá¡á¬ážáá¯á¶ážá áááºááẠá¡áááºážáá¯á¶ážááŒá áºáá»áŸáẠá á¯á á¯áá±á«ááºáž áá±á«ááºááá¯ááºáá»á¬ážááẠááá¯áá»á¬ážáááºááá¯ááºáá«á 2k.
á€ááœáẠáá»áœááºá¯ááºááẠááŸá±á·ááá¯á· ááŒá±áá áºááŸááºážááŸááºážááá¯ááºáá²á·áááºá á€áááºážááŒáá·áº áááºáá±á¬ááºáá¬ážáá±á¬ kernel ááẠbipartite ááááºááœáẠáá»áœááºá¯ááºááá¯á·áá°áá¬ážáá±á¬ á¡áááá·áºáá¯á¶áž vertex áá¬áá¬á¡áá»áá¯ážá¡á á¬ážáá±á«áºááœáẠáá°áááºááŒá±á¬ááºáž ááŸááºážáá«áááºá áá»ááºááŸááá±á¬ áá»ááºážá¡áá±á¡ááœááºáááºážá á±ááẠáá áºáá¯áá°ááá¯áá«áááºá á¡áááºáá¯ááºážááá±á¬á· áá®áá¬ááᯠá¡áá»áááºáá® áá¯ááºááá¯ááºáá²á·áááºá . ááá¯á¡áá»áááºááœáẠáá»áœááºá¯ááºááẠဠalgorithm ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááẠáá±á«áºáá¬áá«áááºá ááá¯á·ááŒá±á¬áá·áºá á¡ááá¯ááºážá¡áááºá¡ááá·áºáá áºáá¯á á®ááœáẠáá±á¬ááºáá±á«ááºážáá»á¬ážá áœá¬áá±á¬ áá±á«ááºááá¯ááºááááºáá»á¬ážááŒáá·áº ááŸá¬ááœá±ááá¯ááºáááºá
ááááº
áá»áœááºá¯ááºáá¡ááŒá±ááẠáá±á¬áá·áºáá±á«ááºážáá¬ááááºážááŸáá·áº á¡á áœááºážáá±á¬ááºáá±á«ááºážáá»á¬ážá áœá¬ á ááºážáááºááŸá¯áá»á¬ážááœáẠáá±á¬ááºážá áœá¬á¡áá¯ááºáá¯ááºááŒá±á¬ááºáž áááºááœá±á·ááŒááááºá ááá¯ááá¯á·áá±á¬á ááºážáááºááŸá¯áá»á¬ážááœáẠáá¬áá®áááºá¡ááœááºáž á¡ááŒá±áá áºáá¯ááœá±á·ááá¯ááºáááºáᯠáá»áŸá±á¬áºááá·áºááá¯ááºáá±áááºá áá°á¡áá ááááºááœáẠááŒáá·áºáá¬ážáá±á¬áá®ááá®á á¥ááá¬á áá®ááá® 10 ááŸáá·áº ááá¯á·ááẠááŒáá·áºáá¬ážáá±á¬ á¡áá±á¡ááœáẠáá¯á¶áá±á¬ááºá áœá¬ áá»á¬ážááŒá¬ážáá±áá«á áááºáá¶ááá¯ááºáá±á¬á¡áá»áááºáá áºáá¯ááœáẠá¡ááŒá±ááŸá¬ááœá±ááá¯ááºááŒá±ááẠááá¯ážáá¬áá«áááºá
ááŒáá¯ááºááœá²ááœááºáá«áááºáááºá á¡ááŒá±áá»á¬ážááá¯áá±ážááá¯á·ááááºá
á¡ááááºá á áºáá±ážááŸá¯ááááºáá»á¬ážááᯠáá°ááá¯áẠá áááºá ááááŸááááºááŒá áºáááºá
source: www.habr.com