< <ÒchapterÞ•þ‘¢ù¨‘¥ýÚóðø¤þ—ôÚÒlabelÞÐimplementÐ×× <¢¤ÚþöÚê¬ñÚ—ø®þŸ‘—üÚ¢¤“‘¤ùýÚ•þ‘¢ù¨‘¥ýÚóðø¤þ—õüÚîùÚ¢¤Ú“¡©ÚÒrefÞÐalgÐ× <—ª¤þžÚª¢Ú¡øûþôÚ¢¢ÆÚõ—öÚî‘õñÚþöÚ“¤÷‘õùÚ¢¤Ú•þø¨–ÚÒrefÞÐsourceAÐ× <õ¢ùÚ¨–ÆÚþöÚÚ“¤÷‘õùÚ¥Úóðø¤þ—ôÚê¬ñÚÒrefÞÐalgÐ×Ú¢¤ÚŸ‘ó–ÚõŸ¢’ <¨—ê‘¢ùÚõüî÷¢ÆÚó“—ùÚ“ùÚþöÚ¢óþñÚîùÚ¨¯øžÚ÷‘õ÷àôÚõ™ó˜“÷¢ýÚª¢ùÚ¢¤ÚŸ‘ó– <îóüÚõŸ¢’Ú÷þ¨—÷¢ÚøÚ“÷‘“¤þöÚþöÚóðø¤þ—ôÚ“¤ýÚöû‘ÚÚ÷õüî÷¢ŠÚì¨õ—ü <“ùÚóðø¤þ—ôÚ®‘êùÚª¢ùÚ¨–ÚîùÚ“‘Ú¨—ê‘¢ùÚ¥ÚöÚõü—øöÚ“¤ýÚû¤Ú¨¯ž <÷‘õ÷àôÚõ™ó˜“÷¢ýÚª¢ùþüÚ¾îùÚõü—ø÷¢Úèþ¤õŸ¢’ÚûôÚ“‘ª¢½Úîø—‘ù—¤þöÚõ¨þ¤Ú¤ <•þ¢Úõüî÷¢ËÚû¤Ú÷¢ÚîùÚþöÚì¨õ–Ú®‘êùÚ“¤ýÚŸ‘ó–Úèþ¤õŸ¢’ŠÚ¥Ú¥õ‘öÚ›¤ý <$O(n^3)$Ú“¤¡ø¤¢¤Ú¨–ÚÚøÚ“÷‘“¤þöÚî÷¢—¤Ú¥Úóðø¤þ—ôÚ¬óüÚ¤ŽùÚª¢ù <¢¤Ú“¡©ÚÒrefÞÐalgÐ×Ú¨–ŠÚøóüÚ¢¤Úõì‘“ñÚÚ•þ‘¢ù¨‘¥ýÚöÚ“ùÚõ¤—’Ú¨‘¢ù—¤Ú¥ <•þ‘¢ù¨‘¥ýÚóðø¤þ—ôÚ“¡©ÚÒrefÞÐalgÐ×Ú¢¤ÚŸ‘ó–Úèþ¤õŸ¢’Ú¨–ÚøÚäòøùÚ“¤ÚþöÚ <îø—‘ù—¤þöÚõ¨þ¤Ú“þöÚû¤Ú¢øÚ÷ì¯ùþüÚ¤Ú÷þ¥Ú“ùÚ¢¨–Úõüø¤¢ÆÚ¾øÚ÷ùÚîø—‘ù—¤þöÚõ¨þ¤ <¥ÚþíÚõ“¢»Úõª¡«Ú“ùÚ“ìþùýÚ¤Žø§½Ú“‘Ú—ø›ùÚ“ùÚþöÚ¢òþñŠÚ¨—ê‘¢ùÚ¥Úþö <óðø¤þ—ôÚ“ùÚ›‘ýÚ—çþþ¤Ú¤ŽùÚª¢ùÚ¢¤Ú“¡©ÚÒrefÞÐnonconvexsecÐ×Ú“¤ýÚŸ‘ó– <÷‘õŸ¢’ÚõãìøñÚ“ùÚ÷à¤Úõü¤¨¢Æ < <¢¤ÚþöÚê¬ñÚ“—¢Ú¢¤Ú“¡©ÚÒrefÞÐioÐ×Úê¤õ–Úø¤ø¢ýÚøÚ¡¤ø›üÚ“¤÷‘õùÚ¤Ú—ª¤þžÚ¡øûþôÚî¤¢Æ <•§Ú¥ÚöÚ¢¤Ú“¡©ÚÚÒrefÞÐstructureÐ×Ú¨‘¡—‘¤ÚîóüÚ“¤÷‘õùÚøÚõ‘›øñû‘ýÚõ¡—óéÚö <õø¤¢Ú“¤¤¨üÚ줤ڡøû¢Úð¤ê–ÚøÚ—ø“âÚõúôÚ“¤÷‘õùÚõã¤êüÚ¡øû÷¢Úª¢Æ <¨•§Ú¢¤Ú“¡©ÚÒrefÞÐdatastrÐ×Ú¢¤“‘¤ùýÚ¨‘¡—õ‘öÚ¢¢ùû‘ýÚõúõüÚîùÚ¢¤Ú“¤÷‘õùÚ¨—ê‘¢ù <ª¢ùÚ¨–Ú—ø®þžÚõü¢ûþôÆÚ <“¡©ÚÒrefÞÐdifficultyÐ×Ú“ùÚ“¤¤¨üÚõªîò–Úõø›ø¢Ú¢¤Ú•þ‘¢ù¨‘¥ý <þöÚóðø¤þ—ôÚ¡øû¢Ú•¤¢¡–ÆÚ¢¤Ú“¡©ÚÒrefÞÐtestÐ×Ú¤ø©û‘þüÚ“¤ýÚ—¨–Ú“¤÷‘õù <•þª÷ú‘¢Ú¡øûþôÚÆÚ¢¤Ú÷—ú‘Ú¢¤Ú“¡©û‘ýÚÒrefÞÐsampleÐ×ÚøÚÒrefÞÐrunningtimeÐ× <÷õø÷ùû‘þüÚ¥Ú¡¤ø›üÚ“¤÷‘õùÚ¤Ú¡øûþôÚ¢þ¢ÚøÚ¥õ‘öÚ›¤ýÚ“¤÷‘õùÚ¤Ú“ùÚ¯ø¤Úõ—ø¨Á <“¤¤¨üÚ¡øûþôÚî¤¢Æ < <ÒsectionÞÒlabelÞÐioÐ×Úø¤ø¢ýÚøÚ¡¤ø›ü× <ø¤ø¢ýÚ“¤÷‘õùÚ¥Úê‘þóüÚ¨–ÚîùÚ÷‘ôÚöÚ“ùÚä÷øöÚøóþöÚ•‘¤õ—¤Ú¡ÁÚ¢¨—ø¤Ú¾Command Line½ <“ùÚ“¤÷‘õùÚ¢¢ùÚõüªø¢ÆÚþöÚê‘þñÚª‘õñÚõª¡¬‘–ÚþíÚ¨¯žÚ÷‘õ÷àôÚõ™ó˜“÷¢ýÚª¢ùÚ¨–Æ <“¢þöÚ¬ø¤–ÚîùÚ¢¤Ú¡ÁÚøñڗ㢢Ú÷ì‘ÁÚ¾$n$½ÚøÚ¨•§Ú—㢢Úõ™ó˜û‘ýÚõø›ø¢Ú¢¤ÚTINÚ¾$m$½ <÷øª—ùÚª¢ùÚ¨–ÆÚ•§Ú¥ÚöÚ¢¤Ú$n$Ú¡ÁÚ“ã¢Ú¢¤Úû¤Ú¡ÁÚ¨ùÚ䢢ڟìþìüÚîùÚ÷ª‘ö¢û÷¢ùýÚ <õ¡—¬‘–ÚþîüÚ¥Ú÷ì‘ÁÚ¾õ¡—¬‘–Ú¨ùÚ“ã¢ý½Ú¨–Ú÷øª—ùÚª¢ùÚ¨–ÆÚ•§Ú¥ÚþöÚ¡¯øÁŠ <¢¤Ú$m$Ú¡Áړ㢊ڢ¤Úû¤Ú¡ÁÚ¨ùÚ䢢ڬŸþžÚîùÚ÷ª‘ö¢û÷¢ùýÚªõ‘¤ùýÚ¨ùÚ¤»§ÚþîüÚ¥Úõ™ó˜û‘ <û¨—÷¢Ú÷øª—ùÚª¢ùÚ¨–ÆÚäòøùÚ“¤ÚþöÚ¢¤Ú¡ÁÚ¡¤Úê‘þñÚ¢øÚ䢢Ú÷øª—ùÚª¢ùÚ¨– <îùÚªõ‘¤ùýÚ¤Žø§Úõ“¢»ÚøÚõ쬢Úû¨—÷¢Æ <“¤ýÚõ™‘ñÚªîñÚÒrefÞÐinputexampleÐ×ÚþíÚ÷õø÷ùÚ¥ <ê‘þñÚø¤ø¢ýÚøÚTINÚõ¤“øÁÚ“ùÚöÚ¤Ú÷ª‘öÚõü¢û¢ÆÚþöÚTINÚª‘õñÚ€Ú¤»§ÚøÚ <õ™ó˜Ú¨–ÆÚ < <ÒbeginÞfigure× <ÒenglishÚ >\hbox{ >\hbox to 4cm{\vbox{ >\input{infile} >}} >\input{inexamp} >} <ÒfarsiÚ <ÒcaptionÞÒlabelÞÐinputexampleÐ×ÚþíÚ÷õø÷ùÚ¥Úê‘þñÚø¤ø¢ý× <ÒendÞfigure× <ÒenglishÒfarsiÚ < <¡¤ø›üÚ“¤÷‘õùÚûôÚ¢¤Úê‘þñÚøÚûôÚ“¤Ú¤øýÚ¬êŸùýÚ÷õ‘þ©Ú÷ª‘öÚ¢¢ùÚõüªø¢Æ <¨ôÚê‘þñÚ¡¤ø›üŠÚ•‘¤õ—¤Ú¢øôÚ¡ÁÚ¢¨—ø¤Ú¨–ÆÚ¢¤Ú¨¯¤ÚøñÚþöÚê‘þñŠÚ—㢢Ú÷ì‘Á <¤øýÚõ¨þ¤Ú¾“‘ÚŸ—¨‘’Ú÷ì¯ùýÚª¤øáÚøÚ•‘þ‘ö½ÚøÚûõ÷þöÚ¯øñÚõ¨þ¤Ú÷øª—ùÚª¢ùÚ¨–Æ <¢¤Ú¡Áû‘ýړ㢊ڢ¤Ú¡ÁÚ$i$ôŠÚõ¡—¬‘–Ú¾¨ùÚ“ã¢ý½Ú÷ì¯ùýÚ$i$ôÚþöÚõ¨þ¤Ú÷øª—ù <ª¢ùÚ¨–ÆÚ¢¤ÚŸìþì–Úõ¨þ¤Ú¥Ú“ùÚûôÚõ—¬ñÚöÚ÷ì‘ÁÚõ—øóüÚ“‘Ú¡¯øÁÚõ¨—ìþô <“ùÚ¢¨–Úõüþ¢Æ < <¯¤þìùýÚ÷õ‘þ©Ú¡¤ø›üÚ¤øýÚ¬êŸùýÚ÷õ‘þ©Ú“ùÚþöÚ¬ø¤–Ú¨–Ê <ð¤ÚþíÚTINÚ¤Ú¥Ú“‘òÚ÷ð‘ùÚî÷þôŠÚ“ùÚ¬ø¤–ÚþíÚõ™ó˜“÷¢ýÚ¬êŸùÚ¢þ¢ùÚõüªø¢Æ <¢¤ÚŸìþì–Ú—÷ú‘Ú¥øþùýÚ¢þ¢ýÚîùÚó¥øõ‘³ÚûõùýÚ¨¯žÚþíÚTINÚ¤Ú“ùÚõ‘Ú÷ª‘öÚõü¢û¢Š <¥øþùýÚ쑎ôÚ¨–ËÚøöÚ¡‘¬þ–ÚõúôÚTINÚ¢¤ÚþöÚ¨–ÚîùÚû¤Ú¡ÁÚ쑎õüÚ¨¯žÚöÚ¤Ú <¢¤Ú¢ìþ쑳ÚþíÚ÷ì¯ùÚì¯âÚõüî÷¢ÆÚ“÷‘“¤þöÚ÷õ‘þ©ÚTINÚ¥ÚþöÚ¥øþùÚ“¨þ‘¤ <¨‘¢ùÚ¨–ÊÚÚî‘êüÚ¨–Ú“¢øöÚ¢¤Ú÷à¤Úð¤ê—öÚ¤—ê‘áÚ÷ì‘ÁŠÚöû‘Ú¤Ú¢¤Ú¬êŸùý <÷õ‘þ©Ú¤¨ôÚî÷þôÆÚ“¤ýÚ÷õø÷ùýÚ¡¤ø›üÚ“¤÷‘õùÚõü—ø÷þ¢Ú“ùÚªîñÚÒrefÞÐoutputexampleÐ× <þíÚ÷õø÷ùÚ¥Ú¡¤ø›üÚ¤øýÚTINÚ÷ª‘öÚ¢¢ùÚª¢ùÚ¢¤ÚªîñÚÒrefÞÐinputexampleÐ× <¨–ŠÚ—ø›ùÚÚî÷þ¢Æ < <ÒbeginÞfigure× <ÒenglishÚ >\hbox{ >\hbox to 4cm{\vbox{ >\input{outfile} >}} >\input{outexamp} >} <ÒfarsiÚ <ÒcaptionÞÒlabelÞÐoutputexampleÐ×ÚþíÚ÷õø÷ùÚ¥Úê‘þñÚ¡¤ø›üÚ× <ÒendÞfigure× <ÒenglishÒfarsiÚ < <ÒsectionÞÒlabelÞÐstructureÐ×Ú¨‘¡—‘¤ÚøÚ—ø“âÚõúôÚ“¤÷‘õùÚ× <¥“‘öÚ“¤÷‘õù÷øþ¨üÚõø¤¢Ú¨—ê‘¢ùÚ“¤ýÚ•þ‘¢ù¨‘¥ýÚþöÚóðø¤þ—ôŠÚ¥“‘öÚ \begin{center} >\begin{tabular}{|c|c|c|} \hline > \kern5mm n \kern5mm & Algorithm 1 & Algorithm 2 \\ \hline > 5 & 0.004 sec & 0.003 sec \\ > 10 & 0.017 sec & 0.018 sec \\ > 15 & 0.034 sec & 0.035 sec \\ > 20 & 0.058 sec & 0.065 sec \\ > 25 & 0.074 sec & 0.087 sec \\ > 30 & 0.108 sec & 0.113 sec \\ > 35 & 0.140 sec & 0.147 sec \\ > 40 & 0.172 sec & 0.179 sec \\ > 45 & 0.197 sec & 0.212 sec \\ > 50 & 0.247 sec & 0.260 sec \\ > 55 & 0.269 sec & 0.303 sec \\ > 60 & 0.312 sec & 0.349 sec \\ > 65 & 0.339 sec & 0.384 sec \\ > 70 & 0.383 sec & 0.421 sec \\ > 75 & 0.433 sec & 0.482 sec \\ > 80 & 0.494 sec & 0.511 sec \\ > 85 & 0.517 sec & 0.560 sec \\ > 90 & 0.575 sec & 0.630 sec \\ > 95 & 0.633 sec & 0.670 sec \\ >100 & 0.673 sec & 0.764 sec \\ \hline >\end{tabular} >\end{center} <ÒfarsiÚ <ÒcaptionÞÒlabelÞÐrunningtimetableÐ×Ú›¢øñÚ¥õ‘öÚ›¤ýÚóðø¤þ—ôû‘× <ÒendÞfigure× <ÒenglishÒfarsiÚ < <÷î—ùýÚì‘“ñÚ—ø›ùÚþöÚ¨–ÚîùÚ¥õ‘öÚ›¤ýÚóðø¤þ—ôÚ—‘ÚŸ¢Ú“¨þ‘¤ <¥þ‘¢ýÚø“¨—ùÚ“ùÚ÷øáÚ¨¯ŸüÚ¨–ÚîùÚóðø¤þ—ôÚ¤øýÚöÚ›¤Úõüªø¢ÆÚ¢¤Ú¬ø¤—üÚîù <¨¯žŠÚ—‘ÚŸ¢ø¢Ú¥þ‘¢ýÚì‘éÀÚ“‘ª¢ŠÚþã÷üÚ•¨—üÚøÚ“ó÷¢ýû‘ýÚ¥þ‘¢ýÚ÷¢ª—ùÚ“‘ª¢ŠÚ¥õ‘ö <›¤Ú¡þóüÚîõ—¤Ú¡øû¢Ú“ø¢ÆÚ¢¤ÚÚû¤Ú¬ø¤–Ú¢¤ÚþöÚ›‘Ú“¤ýÚþöÚîùÚ“—ø÷þôÚ¥õ‘ö <›¤ýÚóðø¤þ—ôÚ¤Ú“¤ýÚ÷¢¥ùû‘ýÚõ¡—óéÚø¤ø¢ýÚõ—Ÿ‘öÚî÷þôŠÚ¨¯žÚ¤Ú“ùÚ¬ø¤– <þíÚõ™ó˜“÷¢ýÚî¤ùÚð¤ê—ùþôÚøÚ÷þöÚõ™ó˜“÷¢ýû‘þüÚ¤Ú“‘ڗ㢢Úõ¡—óêüÚ¥Ú÷ì‘ÁÚ <þ›‘¢ÚùþôÚøÚ¢¤Úû¤ÚŸ‘ó–Ú¥õ‘öÚ›¤Ú¤Ú÷¢¥ùÚð¤ê—ùþôÆÚ÷—þ›ùýÚõŸ‘¨“ùý <õ—ø¨ÁÚÚ¥õ‘öÚ›¤Ú“¤ýÚ€€Úõø¤¢Ú¢¢ùÚ¥Úû¤ÚþíÚ¥Ú÷¢¥ùû‘ýÚ…ŠÚ€ŠÚÒldotsŠ <øÚ€€Ú¢¤Ú›¢øñÚªîñÚÒrefÞÐrunningtimetableÐ×Ú¡ò¬ùÚª¢ùÚ¨–ÆÚ¢¤ÚþöÚ›¢øñÚþíÚ¨—øöÚõ¤“øÁÚ“ùÚ¥õ‘öÚ›¤ý <óðø¤þ—ôÚÒrefÞÐalg1Ð×ÚøÚ¨—øöÚ¢þð¤Úõ¤“øÁÚ“ùÚ¥õ‘öÚ›¤ýÚóðø¤þ—ôÚÒrefÞÐn2algÐ× <¨–ÆÚ < <ûõ‘öÚ¯ø¤ÚîùÚ÷—à‘¤Ú¢¤þôŠÚõü“þ÷þ¢ÚîùÚ¥õ‘öÚ›¤ýÚóðø¤þ—ôÚÒrefÞÐn2algÐ× <¥ÚÚóðø¤þ—ôÚÒrefÞÐalg1Ð×Úîõ—¤Ú¨–ËÚøóüÚ“ùÚ÷à¤Úõü¤¨¢ÚîùÚõ¤—“ùýÚöÚ÷þ¥ <÷¢›õóùýÚ¨–Ú¾Ÿ¢ìñÚ¢¤ÚŸ‘ó–ÚõŸ¢’½ÆÚ“¤ýÚõª‘û¢ùýÚ“ú—¤Ú¤ê—‘¤Úóðø¤þ—ôû‘Ú¥ <÷à¤Ú¥õ‘öÚ›¤ŠÚ“ùÚ÷õø¢¤ÚªîñÚÒrefÞÐgraphÐ×ÚîùÚûõ‘öÚ¯òä‘–Ú›¢øñÚêøëÚ¤Ú <¢¤Ú“¤Ú¢¤¢ŠÚ—ø›ùÚî÷þ¢Æ <“‘Ú—ø›ùÚ“ùÚþöÚªîñŠÚõãìøñÚ“ùÚ÷à¤Úõü¤¨¢ÚîùÚõ¤—“ùýÚ¥õ‘öÚ›¤ýÚóðø¤þ—ôÚ¥ <$O(n^2)$Ú“‘ª¢Æ < <ÒbeginÞfigure× <ÒenglishÚ <ÒinputÞÐgraphÐ× <ÒfarsiÚ <ÒcaptionÞÒlabelÞÐgraphÐ×Ú÷õø¢¤Ú¥õ‘öÚÚ›¤ýÚóðø¤þ—ôÚ“¤Ÿ¨’Ú÷¢¥ùýÚø¤ø¢ýÚ× <ÒendÞfigure× <ÒenglishÒfarsiÚ <