Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 68 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
68
Dung lượng
1,45 MB
Nội dung
Header Page of 126 TRN TH DNG V CC BI TON NP-C V MT S PHNG PHP GII Chuyờn ngnh : Khoa hc mỏy tớnh Mó s : 60480101 LUN VN THC S KHOA HC MY TNH Thỏi Nguyờn - 2014 Footer Page of 126 Header Page of 126 M U Ngy nay, cựng vi s phỏt trin mnh m ca khoa hc v cụng ngh, c bit l mỏy tớnh, ngi ta cú kh nng gii quyt c nhiu bi toỏn rt phc Tuy nhiờn, cũn nhng l khụng gii c cho dự k thut mỏy tớnh cú phỏt trin v cng cú nhng c xem l quỏ phc tp, vt mi kh nng tớnh toỏn thc t vỡ mt quỏ nhiu thi gian Vic nghiờn cu v phc ca thut toỏn ó cho phộp chỳng ta phõn loi c cỏc lp bi toỏn theo tng mc phc khỏc nhau, v ch ranh gii gia cỏc lp bi toỏn gii c v nhng lp bi toỏn khụng th gii c thi gian a thc Trong lý thuyt phc tớnh toỏn, lp NP - C (NP - y ) l mt lp cỏc bi toỏn quyt nh Mt bi toỏn L l NP - C nu nú nm lp NP (li gii cho L cú th c kim chng thi gian a thc) v l NP Hard (mi bi toỏn NP u cú th quy v L thi gian a thc) Mc dự bt kỡ li gii no cho mi bi toỏn u cú th c kim chng nhanh chúng, hin cha cú cỏch no tỡm c li gii ú mt cỏch hiu qu Thi gian thc thi ca tt c cỏc thut toỏn hin ti cho nhng bi toỏn ny u tng rt nhanh theo kớch thc bi toỏn Vỡ vy c nhng trng hp cú kớch thc tng i ln ó ũi hi thi gian hng t nm gii Cỏc bi toỏn lp NP - C l hp cỏc bi toỏn NP - Hard NP Cỏc bi toỏn lp NP - C c quan tõm nghiờn cu bi kh nng kim chng nhanh chúng li gii (NP) dng nh cú liờn h vi kh nng tỡm kim nhanh chúng li gii (P) Hin cha bit c nu mi bi toỏn NP u cú th c gii quyt nhanh chúng hay khụng (õy chớnh l bi toỏn P so vi Footer Page of 126 Header Page of 126 NP) Tuy nhiờn, nu bt kỡ mt bi toỏn no NP - C cú th c gii quyt nhanh chúng, thỡ theo nh ngha ca NP - C, mi bi toỏn NP u cú th c gii quyt nhanh chúng Cỏc bi toỏn NP- C xut hin thng xuyờn thc t nờn, mc dự cha cú gii thut thi gian a thc cho chỳng, cỏc nh nghiờn cu tỡm cỏch gii quyt chỳng thụng qua cỏc phng phỏp khỏc nh thut toỏn xp x, thut toỏn gn ỳng nhõn t húa, v.v Vic tỡm hiu v nghiờn cu cỏc phng phỏp gii bi toỏn lp NP- C l mt nhng bi toỏn m ca khoa hc mỏy tớnh hin Vỡ vy em ó chn ti: V cỏc bi toỏn NP-C v mt s phng phỏp gii lm lun tt nghip Cu trỳc ca lun gm: Phn m u, phn kt lun v chng ni dung, c th: Chng 1: Khỏi nim cỏc lp bi toỏn P, NP, NP-C Trong chng ny em gii thiu chung v cỏc lp bi toỏn P, NP, NP C, minh bng cỏc vớ d c th v a mi quan h gia lp P, NP v NP-C Chng 2: Phng phỏp tham v phng phỏp nhỏnh cn gii mt s bi toỏn NP-C Trong chng ny em trỡnh by phng phỏp tham gii bi toỏn v th v phng phỏp nhỏnh cn gii bi toỏn Ba lụ, bi toỏn tỡm ng i ngn nht Chng 3: Chng trỡnh th nghim Chng ny th hin chng trỡnh ci t thut toỏn nhỏnh cn gii bi toỏn Ba lụ Footer Page of 126 Header Page of 126 Chng 1: KHI NIM CC LP BI TON P, NP, NP C 1.1 Vi khỏi nim c bn ca lý thuyt phc 1.1.1 Mỏy Turing tt nh v khụng tt nh Mỏy Turing l mt mỏy tớnh tru tng mụ t cỏc quỏ trỡnh tớnh toỏn trờn mỏy tớnh Mỏy Turing cú hai loi: Mỏy Turing tt nh (Deterministic Turing Machine) v Mỏy Turing khụng tt nh (Nondeterministic Turing Machine) c mụ t nh sau: Mỏy Turing tt nh Mụ t cỏch lm vic ca mỏy: Mỏy Turing tt nh gm mt b iu khin hu hn trng thỏi, mt u c v ghi, mt bng vụ hn c chia thnh tng ụ vuụng, mi ụ cú th lu gi mt ký hiu thuc hu hn cỏc ký hiu Hỡnh 1.1 Mụ t mỏy tớnh Turing tt nh Khi u, mt xõu Input c t trờn mt bng, ú l chui ký hiu cú chiu di hu hn c chn t mt b ch cỏi Nhng ụ cũn li ca bng vụ hn theo c hai bờn phi v trỏi, cha mt ký hiu c bit l ký hiu trng ( din t trng thỏi ụ khụng cú ký hiu no) Cú mt u c ghi luụn ch vo mt cỏc ụ ca bng Ta núi rng mỏy Turing ang c ghi ụ ú Lỳc hot, u c ghi nm Footer Page of 126 Header Page of 126 tn bờn trỏi ca xõu Input Mt bc hot ng ca mỏy Turing c quy nh bi mt hm ph thuc trng thỏi ca b iu khin v ký hiu ang c c chuyn v Trong mt bc hot ng, mỏy Turing s: - Thay i trng thỏi Trng thỏi tip theo cng chớnh l trng thỏi hin ti - Ghi mt ký hiu bng vo ụ ang c quột Ký hiu bng ny thay th ký hiu bng ang cú ụ vuụng ú Ký hiu c ghi cng cú th chớnh l ký hiu hin ang ú - Di chuyn u c ghi sang trỏi hoc sang phi Mt cỏch khụng hỡnh thc, ta cú th nh ngha nh sau: nh ngha 1.1 Mt mỏy Turing M tt nh l mt b M = (Q, , , , q0, B, F) Trong ú cỏc thnh phn ca M cú ý ngha nh sau: Q: l hu hn cỏc trng thỏi ca b iu khin hu hn : Tp hu hn cỏc ch cỏi : Tp y cỏc kớ hiu bng; luụn l ca : Hm chuyn v, : ìQ x {1, 0, 1}.i ca (q, X) l mt trng thỏi q v mt kớ hiu bng X Giỏ tr ca (q, X) nu c nh ngha s l mt b ba (p, Y, D) ú: p: trng thỏi tip theo Y: Mt ký hiu thuc v s c ghi vo ụ ang c quột, thay th cho ký hiu ang ụ ú D: Mt hai ký hiu L (sang trỏi) hoc R (sang phi) ch hng di chuyn ca u c ghi q0: Trng thỏi bt u, mt phn t Q l trng thỏi u ca b iu khin B: ký t trng (blank) B F: Tp kim hp cỏc trng thỏi kt thỳc, mt ca Q Footer Page of 126 Header Page of 126 - Cỏc chc nng v c trng c bn ca mỏy Turing tt nh: Ngụn ng xỏc nh bi mỏy Turing v ngụn ng oỏn nhn c Cho M = ( Q, , , , q0, B, F) l mt mỏy tớnh Turing Mt hỡnh trng ca mỏy tớnh Turing M l mt t cú dng aqb, ú a *, b *, biu th ni dung: trờn bng cú t ab, u c - ghi nhỡn kớ t u b v mỏy trng thỏi q Hm chuyn dho ta quy tc chuyn i cỏc hỡnh trng Nu mỏy tớnh Turing M bt u lm vic vi hỡnh trng q0w (trong ú w Z*) v chuyn i liờn tip sau mt s hu hn bc n hỡnh trng kt thỳc aFb trng thỏi chp nhn F, thỡ ta núi rng mỏy tớnh Turing M chp nhn t vo w Ta ký hiu LM = {w\ w Z*, M chp nhn w) nh ngha 1.2 Ngụn ng LM gi l ngụn ng xỏc nh bi mỏy Turing hay cũn gi l ngụn ng tng ng vi ca mỏy tớnh Turing M nh ngha 1.3 Cho L l mt ngụn ng trờn bng ch cỏi Ngụn ng L gi l oỏn nhn c bi mỏy tớnh Turing nu tn ti M cho LM = L (tc l tn ti mt mỏy tớnh Turing cho ngụn ng tng ng ca nú trựng vi mt ngụn ng cho trc L) Ta núi mỏy tớnh Turing oỏn nhn ngụn ng L Mỏy tớnh Turing khụng tt nh Mỏy tớnh Turing tt nh l mt dng c bit ca mỏy tớnh Turing khụng tt nh Hỡnh 1.2 Mụ t mỏy tớnh Turing khụng tt nh Footer Page of 126 Header Page of 126 Nhng mỏy tớnh Turing khụng tt nh cú mt hm chuyn v cho mi trng thỏi q v ký hiu c c (q, X) l mt b ba {(q1, Y1, D1), (q2, Y2, D2), (qk, Yk, Dk), ú k l mt s nguyờn hu hn no ú Ti mi bc mỏy tớnh Turing khụng tt nh cú th chn mt cỏc b ba thc hin bc chuyn tip theo Tuy nhiờn nú khụng th ly mt trng thỏi t mt cỏc b ba ny, mt ký hiu bng t b ba khỏc v mt hng li t b ba khỏc na So sỏnh hai nh ngha trờn ta thy mỏy tớnh Turing khụng tt nh c nh ngha mt cỏch hỡnh thc ging mỏy tớnh Turing tt nh cú thờm mụun phng oỏn, nhm cú th chn bc thc thi k tip tựy ý mt cho trc cỏc lnh v cú kh nng x lý song song cỏc phng oỏn 1.1.2 Bi toỏn quyt nh v ngụn ng tng ng nh ngha 1.4 Cho mt cỏc d kin (instance) v cõu hi (question) trờn cỏc d kin thuc ú Bi toỏn quyt nh l bi toỏn m cõu tr li ca nú l Yes hay No (tng ng vi True/1 hay False/0) Sau õy l vi vớ d minh cho bi toỏn quyt nh: Vớ d 1.1: Bi toỏn kim tra s nguyờn t Instance: mt s nguyờn n > Question: n cú phi s nguyờn t hay khụng? Vớ d 1.2: Bi toỏn HC ( Hamilton Cycle) Instance: th vụ hng G = (V, E) Question: th vụ hng G = (V, E) cú chu trỡnh Hamilton hay khụng? V nguyờn tc mi bi toỏn u cú th biu din li di bi toỏn quyt nh tng ng Ngụn ng tng ng vi bi toỏn quyt nh: Gi s cho mt bi toỏn quyt nh vi cỏc d kin I c biu din bi cỏc xõu trờn bng ch cỏi no ú, v vi question Q trờn Footer Page of 126 Header Page of 126 I Ký hiu L() l cỏc xõu (thuc * ) biu din cỏc d kin m cõu hi Q cú tr li ỳng Khi ú ta núi ngụn ng L() l ngụn ng tng ng vi bi toỏn 2.3.1 Thi gian tớnh ca mt mỏy tớnh Turing Cho trc mt bi toỏn quyt nh vi cỏc d kin I c biu din bi cỏc xõu trờn bng ch cỏi no ú, vi cõu hi Q trờn I Ký hiu L() l cỏc xõu (thuc Z* ) biu din cỏc d kin ca mt instance c th ca bi toỏn Ta bit rng ngụn ng L() l mt ngụn ng tng ng vi bi toỏn Vi mi instance I c th, ta s cú mt input biu din nú, m ta ký hiu l x(I) Bõy gi ta cú th biu din thi gian tớnh ca bi toỏn i vi mt mỏy tớnh Turing cho trc Vi mt input x(I) L(), mỏy tớnh s chy cho n lỳc dng ti trng thỏi Yes/No Thi gian tớnh x(I) s l s bc oỏn nhn xõu x(I) ca mỏy cho ti mỏy dng li Thụng thng s bc chy mỏy ny ph thuc vo I, v tt nhiờn l mt hm s ca di biu din I, tc l di ca xõu x(I) Bng cỏch ú ta nh ngha: TM(n):= max{m: tn ti mt xõu x Z* vi |x| = n m thi gian oỏn nhn xõu l m} Mt mỏy tớnh Turing (hay mt chng trỡnh tớnh toỏn trờn c s mỏy tớnh Turing) c núi l cú thi gian tớnh toỏn a thc (gi tt l thi gian a thc) nu nh tn ti mt a thc p(n) cho mi s t nhiờn n ta cú TM(n) p(n) Khi ú ta cng núi rng chng trỡnh mỏy tớnh Turing cú phc tớnh toỏn khụng vt quỏ p(n) 1.1.4 Lp P, NP v mi quan h gia lp P v lp NP nh ngha l.5 ( Lp P - Polynomial time) Ta gi lp P l lp nhng bi toỏn quyt nh gii c bng mỏy tớnh Turing tt nh thi gian a thc Footer Page of 126 Header Page of 126 Mt bi toỏn quyt nh l gii c thi gian a thc, nu ngụn ng L() tng ng vi nú thuc lp P, tc nú oỏn nhn c thi gian a thc Nh vy, lp P gn nh tng ng vi lp cỏc bi toỏn quyt nh gii c thi gian a thc, v mt lý thuyt, cú th xem l lp cỏc bi toỏn d Vớ d 1.3: Bi toỏn kim tra s nguyờn t Instance: mt s nguyờn n > Question: n cú phi l s nguyờn t hay khụng? Vớ d 1.4: Thut toỏn Kruskal tỡm cõy khung nht ca mt th cú m nỳt v e cnh Instance: mt th cú m nỳt v e cnh Question: tỡm cõy khung nht? nh ngha l.6 ( Lp NP - Nondeterministic Polynomial) Ta gi lp NP l lp cỏc bi toỏn quyt nh cú th gii c bng mỏy tớnh Turing khụng tt nh khong thi gian a thc Mt cỏch khụng hỡnh thc, chỳng ta núi mt ngụn ng L thuc lp NP nu cú mt mỏy tớnh Turing khụng tt nh v mt phc thi gian T(n) cho L = LM v M c cho nguyờn liu cú chiu di n thỡ khụng cú dóy bc chuyn no ca M vt quỏ T(n) bc chuyn Vớ d 1.5: Bi toỏn chu trỡnh Hamilton Instance: th vụ hng G = (V, E) Question: th vụ hng G = (V, E) cú chu trỡnh Hamilton hay khụng? Footer Page of 126 Header Page 10 of 126 núi v mi quan h gia lp P v lp NP ta thy mỏy tớnh Turing tt nh l trng hp c bit ca mỏy tớnh Turing khụng tt nh nờn cỏc bi toỏn thuc lp P s thuc lp NP Tuy P NP l rt hin nhiờn song ta cha bit P = NP hay khụng, nhng hu ht cỏc nh nghiờn cu u tin rng P NP T ú ta cú mụ hỡnh mụ phng sau: NP P Hỡnh 1.3 Mi quan h gia lp P v NP 1.1.5 Phộp dn vi thi gian a thc (Polynomial Time Reduction) Gi s ta mun gii quyt bi toỏn ( ú 1: I1 > {Yes/ No}) m ta cú thut toỏn cho bi toỏn (trong ú 2: I2 > {Yes/ No}, gi s ta cú hm f: I1 > I2 m d kin x ca sinh d kin f(x) cho cho cõu tr li ỳng cho trờn x l Yes nu v ch nu cõu tr li ỳng cho trờn f(x) l Yes v ngc li, thỡ ta cú th s dng thut toỏn cho gii quyt bi toỏn nh ngha 1.7 Cho v l hai bi toỏn quyt nh, i (Y) l lp cỏc Instance ng vi YES, i (N) l lp cỏc Instance ng vi No Footer Page 10 of 126 Header Page 54 of 126 53 3.2 S lc v chng trỡnh Demo Chng trỡnh mụ phng thut toỏn nhỏnh cn gii bi toỏn Ba lụ c xõy dng da trờn b Framework Microsoft NET 4.5 bng ngụn ng lp trỡnh C# v s dng b cụng c lp trỡnh Visual Studio 2010 Visual C# 2010 Express l phn mm nm di sn phm Visual Studio 2010 Express vi chc nng cung cp b cụng c cho ngi s dng Windows to cỏc ng dng tựy chnh kốm thit lp c bn v nõng cao Cựng vi s n gin, mnh m, an ton v nhiu ci tin, Visual C# c thit k xõy dng cỏc ng dng khỏc chy trờn NET Framework cho hiu qu nht Hỡnh 3.2 Gii thiu phn mm Visual C# 2010 Express C# l ngụn ng n gin: C Shap loi b mt vi s phc ca nhng ngụn ng nh Java v c++, bao gm vic loi b nhng macro, nhng template, a k tha, v lp c s o Chỳng l nhng nguyờn nhõn gõy s Footer Page 54 of 126 Header Page 55 of 126 54 nhm ln hay dn n nhng cho ngi phỏt trin C++ Ngụn ng C# n gin vỡ nú da trờn nn tng C v C++ C# khỏ ging C v C++ v din mo, cỳ phỏp, biu thc, toỏn t v nhng chc nng khỏc c ly trc tip t ngụn ng C v C++, nhng nú ó c ci tin lm cho ngụn ng n gin hn, loi b cỏc d tha, hay thờm vo nhng cỳ phỏp thay i C# l ngụn ng hng i tng : Nhng c im chớnh ca ngụn ng hng i tng l s úng gúi, s k tha, v a hỡnh C# h tr tt c nhng c tớnh trờn C# l ngụn ng mnh m v cng mm : C# c s dng cho nhiu d ỏn khỏc nh l to ng dng x lý bn, ng dng ha, bn tớnh, hay thm nhng trỡnh biờn dch cho cỏc ngụn ng khỏc C# l ngụn ng s dng gii hn nhng t khúa : Phn ln cỏc t khúa c s dng mụ t thụng tin C# l ngụn ng hng module : Mó ngun C# cú th c vit nhng phn c gi l nhng lp, nhng lp ny cha cỏc phng thc thnh viờn ca nú Nhng lp v nhng phng thc cú th c s dng li ng dng hay cỏc chng trỡnh khỏc Bng cỏch truyn cỏc mu thụng tin n nhng lp hay phng cú th to nhng mó ngun dựng li cú hiu qu C# s l mt ngụn ng ph bin : C# c s dng bi Microsoft Nhiu sn phm ca cụng ty ny a chuyn i v vit li bng C# Bng cỏch s dng ngụn ng ny Microsoft ó xỏc nhn kh nng ca C# cn thit cho nhng ngi lp trỡnh Footer Page 55 of 126 Header Page 56 of 126 55 Ngoi hai lý trờn ngụn ng C# cng s tr nờn ph bin nhng c tớnh ca ngụn ng ny c cp mc trc nh: n gin, hng i tng, mnh m 3.3 Chng trỡnh Demo Giao din ca chng trỡnh Footer Page 56 of 126 Header Page 57 of 126 56 Hỡnh 3.3 Giao din chng trỡnh bi toỏn Ba lụ Chy th nghim chng trỡnh Demo Chng trỡnh c chy th nghim vi 18 b d liu t s lng vt n = cho n s lng vt n = 40 u cho kt qu chớnh xỏc i vi cỏc b d liu vi s lng vt n nh, thi gian chy ca thut toỏn tng i nhanh.Tuy nhiờn, tựy thuc vo cỏc b d liu u vo ( trng lng v giỏ tr ca cỏc vt) m thi gian chy ca thut toỏn cú s khỏc Footer Page 57 of 126 57 Header Page 58 of 126 KT LUN Sau mt thi gian nghiờn cu v hon thnh lun bng phng phỏp phõn tớch v tng hp cỏc ti liu, lun ó a cỏc c s lý thuyt chung v cỏc bi toỏn lp NP-C, mt s phng phỏp gii bi toỏn lp NP-C v ci t chng trỡnh th nghim gii bi toỏn ba lụ bng phng phỏp nhỏnh cn Lun ó thc hin c tt c cỏc ni dung v t c cỏc mc tiờu nh bn cng ó c duyt Cỏc kt qu t c bao gm: Gii thiu cỏc lp bi toỏn P, NP, NP C: vic tỡm hiu, nghiờn cu khỏi nim c bn v lp cỏc bi toỏn P, NP v NP-C v minh bng cỏc vớ d lm rừ hn cỏc du hiu c trng ca cỏc khỏi nim nhm lm ni bt s khỏc gia bi toỏn NP-C v cỏc lp bi toỏn P, NP Tỡm hiu mt s thut toỏn xp x gii cỏc bi toỏn lp NP-C: Trong khoa hc mỏy tớnh vic tỡm nghim ca cỏc bi toỏn NP-C vi kớch c u vo n tng i ln l rt khú khn vỡ phc cú th núi l hm m Vỡ th thay cho tỡm li gii ỳng vic tỡm nghim gn ỳng m cú th chp nhn c bng thut toỏn xp x Gii thiu phng phỏp tham v phng phỏp nhỏnh cn gii mt s bi toỏn NP-C: S dng phng phỏp tham gii bi toỏn v th v phng phỏp nhỏnh cn gii bi toỏn ba lụ, bi toỏn tỡm ng i ngn nht, l mt nhng bi toỏn m ca khoa hc mỏy tớnh hin nờn rt cú ý ngha khoa hc Footer Page 58 of 126 58 Header Page 59 of 126 Xõy dng chng trỡnh c th cho vic gii bi toỏn ba lụ theo phng phỏp nhỏnh cn: Da trờn nhng kin thc c bn ca mụn hc Cỏc phng phỏp toỏn hc cụng ngh thụng tin, tỡm hiu rừ bi toỏn ba lụ v phng phỏp nhỏnh cn xõy dng mt chng trỡnh gii bi toỏn ba lụ theo phng phỏp nhỏnh cn bng ngụn ng lp trỡnh Visual C# 2010 Mc dự tỏc gi ó cú nhiu n lc nghiờn cu v thc hin ti, nhng vỡ thi gian v trỡnh cú hn, chc chn rng lun khụng trỏnh nhiu thiu sút Tỏc gi hy vng rng vic tỡm hiu cỏc bi toỏn lp NPC v mt s phng phỏp gii s l ti tip tc nhn c nhiu s quan tõm nghiờn cu v phỏt trin mnh m thi gian ti./ Footer Page 59 of 126 59 Header Page 60 of 126 TI LIU THAM KHO Ting Vit [1] ng Quang ,(2009), Tp bi ging Cỏc phng phỏp toỏn hc cụng ngh thụng tin [2] Nguyn Vn Ba (2006), Lý thuyt ngụn ng v tớnh toỏn, Nh XB i hc quc gia H Ni [3] Nguyễn Hữu Điển (2006), Mộtsố vấn đề thuật toán, Nhà XB Giáo dục, Hà Nội [4] Lờ Mnh Thnh (1998) Nhp mụn ngụn ng hỡnh thc v ễtụmat hu hn, NXB Giỏo dc, Nng Ting Anh [5] Du, Ding-Zhu; Ko, Ker-I (2000), Theory of Computational Complexity, John Wiley & Sons, ISBN 978-0-471-34506-0 [6] Garey M.R Johnson, DS (1979) Computers and Intractability: A Guide to the Theory of NP-Completeness" New York:W H Freeman [7] M Dorigo, Optimization (1992), Learning and Natural Algorithms: Elitist Ant System [8] Leiserson, and Rivest (1990), Introduction to Algorithms Cormen, Chapter 16 "Greedy Algorithms" p 329 [9] Papadimitriou, Christos (1994), Computational Complexity , Addison Wesley, ISBN 0201530821 [10] Sanjeev Arora, Boaz Barak, Sanjeev; Barak, Boaz (2009), Computational Complexity: A Modern Approach, Cambridge, ISBN 978-0-521-42426-4 Footer Page 60 of 126 Header Page 61 of 126 60 [11] Sipser, Michael (2006), Introduction to the Theory of Computation, USA: Thomson Course Technology, ISBN 0534950973 [12] Van Leeuwen, Jan (1990), Handbook of theoretical computer science (vol A): algorithms and complexity, MIT Press, ISBN 978-0-444-88071-0 Website [13] http://en.wikipedia.org/wiki/NP-complete [14] http://en.wikipedia.org/wiki/List_of_NP-complete_problems [15] http://www.seas.gwu.edu/~ayoussef/cs212/npcomplete.html Footer Page 61 of 126 61 Header Page 62 of 126 PH LC Code bi toỏn Ba lụ Lp Vt namespace BaLo { public class DoVat_Info { #region Attribute private System.Int32 _TrongLuong; private System.String _TenDoVat; private System.Int32 _GiaTri; #endregion #region Contructor public DoVat_Info() { _TrongLuong = 0; _TenDoVat = String.Empty; _GiaTri = 0; } #endregion #region propertiese public System.Int32 TrongLuong { get { return _TrongLuong; } set { _TrongLuong = value; Footer Page 62 of 126 Header Page 63 of 126 } } public System.String TenDoVat { get { return _TenDoVat; } set { _TenDoVat = value; } } public System.Int32 GiaTri { get { return _GiaTri; } set { _GiaTri = value; } } #endregion } } Chng trỡnh chớnh using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Collections; Footer Page 63 of 126 62 63 Header Page 64 of 126 namespace BaLo { public partial class BaLo : Form { public BaLo() { InitializeComponent(); } static int max = 100; static int[ ] v, w; static bool[ ] daxet; static int vi, wi, vmax; static int n, W; static int[ ] x; static int[ ] pa; private void btn_OK_Click(object sender, EventArgs e) { ArrayList ds = new ArrayList(); int SoDoVat = int.Parse(txt_SL.Text); for (int i = 1; i