<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>CSE&amp;amp;MATH</title>
    <link>https://bye0nzn.tistory.com/</link>
    <description>I am studying Computer Science and Mathematics, with an interest in Industrial Engineering.</description>
    <language>ko</language>
    <pubDate>Mon, 11 May 2026 04:06:59 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>bye0nzn</managingEditor>
    <image>
      <title>CSE&amp;amp;MATH</title>
      <url>https://tistory1.daumcdn.net/tistory/6638476/attach/1ca2c15eaa9d48279a9168d2eea92ce2</url>
      <link>https://bye0nzn.tistory.com</link>
    </image>
    <item>
      <title>재고관리 모형 (Inventory Model) &amp;ndash; Part III</title>
      <link>https://bye0nzn.tistory.com/472</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;Hammer 3/2 모델의 주문 일정&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;898&quot; data-origin-height=&quot;301&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cCQ7NI/dJMcacwiu0A/RqbutC3q7MRsHqxXpjAhF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cCQ7NI/dJMcacwiu0A/RqbutC3q7MRsHqxXpjAhF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cCQ7NI/dJMcacwiu0A/RqbutC3q7MRsHqxXpjAhF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcCQ7NI%2FdJMcacwiu0A%2FRqbutC3q7MRsHqxXpjAhF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;666&quot; height=&quot;223&quot; data-origin-width=&quot;898&quot; data-origin-height=&quot;301&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주문량 결정 문제:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;과잉 주문에 따른 시즌 말의 과잉 재고 (c-v = 20)&lt;/li&gt;
&lt;li&gt;과소 주문에 따른 판매기회 손실 (P-c = 70)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;판매 가격(Revenue) p = $180, 구매원가 c = $110 per unit, 할인 판매가 v = $90&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Newsvendor 재고모형&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;783&quot; data-origin-height=&quot;294&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dcgoZV/dJMcadWduBV/6nnqbXt6kqVsKnz6TRBJcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dcgoZV/dJMcadWduBV/6nnqbXt6kqVsKnz6TRBJcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dcgoZV/dJMcadWduBV/6nnqbXt6kqVsKnz6TRBJcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdcgoZV%2FdJMcadWduBV%2F6nnqbXt6kqVsKnz6TRBJcK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;692&quot; height=&quot;260&quot; data-origin-width=&quot;783&quot; data-origin-height=&quot;294&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주문량 결정시 고려사항
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;수요 예측&lt;/li&gt;
&lt;li&gt;과잉 재고 비용&lt;/li&gt;
&lt;li&gt;판매 기회 손실 비용&lt;/li&gt;
&lt;li&gt;구매 비용&lt;/li&gt;
&lt;li&gt;판매비용(Revenue)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;과잉재고와 재고부족 비용&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Co = overage cost (과잉 재고)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;과잉 재고 한 단위에 대해 발생하는 비용&lt;/li&gt;
&lt;li&gt;또는, 과잉 재고 발생 시 한 단위를 적게 주문했을 때 기대되는 이익&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Cu = underage cost (재고 부족)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;재고 부족으로 인하여 발생하는 판매기회 손실에 의한 비용&lt;/li&gt;
&lt;li&gt;또는, 한 단위를 더 주문했을 때 기대되는 이익&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Critical Ratio: 서비스 수준(service level)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Critical Ratio = Cu / (Cu+Co) = (Revenue - Cost) / (Revenue - Salvage)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;최적의 주문량 결정&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;과잉재고 비용과 재고부족 비용의 기대값이 일치하는 수준에서 최적의 주문량 결정&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;610&quot; data-origin-height=&quot;31&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drDRJZ/dJMcaaZv6xk/S3Tb9cdAAjHnZ5xNFkCEpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drDRJZ/dJMcaaZv6xk/S3Tb9cdAAjHnZ5xNFkCEpk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drDRJZ/dJMcaaZv6xk/S3Tb9cdAAjHnZ5xNFkCEpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdrDRJZ%2FdJMcaaZv6xk%2FS3Tb9cdAAjHnZ5xNFkCEpk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;610&quot; height=&quot;31&quot; data-origin-width=&quot;610&quot; data-origin-height=&quot;31&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;위의 식을 정리하면 최적 주문량은 다음과 같이 결정:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;49&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KSgDC/dJMcaaSMrS0/NvRkfO9MKC7dLu4CsVi2V0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KSgDC/dJMcaaSMrS0/NvRkfO9MKC7dLu4CsVi2V0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KSgDC/dJMcaaSMrS0/NvRkfO9MKC7dLu4CsVi2V0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKSgDC%2FdJMcaaSMrS0%2FNvRkfO9MKC7dLu4CsVi2V0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;307&quot; height=&quot;49&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;49&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;최적 주문량 Q*을 도식화하면 다음과 같음:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CR = Cu / (Cu + Co) : critical ratio (CR)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;325&quot; data-origin-height=&quot;283&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SZPlw/dJMcaiXvPCK/PuM9XQjsH0GGM93ZVhdIkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SZPlw/dJMcaiXvPCK/PuM9XQjsH0GGM93ZVhdIkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SZPlw/dJMcaiXvPCK/PuM9XQjsH0GGM93ZVhdIkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSZPlw%2FdJMcaiXvPCK%2FPuM9XQjsH0GGM93ZVhdIkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;325&quot; height=&quot;283&quot; data-origin-width=&quot;325&quot; data-origin-height=&quot;283&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Newsvendor 예제 1&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;판매가격 p = $10, 구매가격 c = $5.5, 할인 판매가 v = $5.0&lt;/li&gt;
&lt;li&gt;고객 수요 X ~ U[A=800, B=1200], 균등분포(Uniform Distribution)&lt;/li&gt;
&lt;li&gt;CR = (p-c)/(p-v) = (10-5.5)/(10-5.0) = 0.9&lt;/li&gt;
&lt;li&gt;누적확률분포 F(Q*) = CR을 만족하는 재고량 Q* 결정
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Q* = A + CR*(B-A) = 800 + 0.9*(1200-800) = 1160&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;기대 이익
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;P(Q) = (p-c)*Q - (p-v)*(Q-A)^2 / [2*(B-A)]&lt;/li&gt;
&lt;li&gt;P(1160) = 4410&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;313&quot; data-origin-height=&quot;175&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjacsv/dJMcahK8bFB/oEodtwlqwYtoKRPldibBx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjacsv/dJMcahK8bFB/oEodtwlqwYtoKRPldibBx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjacsv/dJMcahK8bFB/oEodtwlqwYtoKRPldibBx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbjacsv%2FdJMcahK8bFB%2FoEodtwlqwYtoKRPldibBx0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;313&quot; height=&quot;175&quot; data-origin-width=&quot;313&quot; data-origin-height=&quot;175&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;Newsvendor 예제 2&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;판매가격 p = $120, 구매가격 c = $30, 할인 판매가 v = $20&lt;/li&gt;
&lt;li&gt;고객 수요 X&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;Demand X&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;100&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;200&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;300&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;400&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;500&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;600&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;Pr(X)&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;0.10&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;0.15&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;0.25&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;0.25&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;0.20&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;0.05&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Q1) 평균 수요는? 345&lt;/li&gt;
&lt;li&gt;Q2) 400개의 재고를 보유한 경우 평균 판매량?&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 51px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;Sale (Y)&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;100&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;200&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;300&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;400&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;500&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;600&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;Pr(Y)&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;0.10&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;0.15&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;0.25&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;0.25&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;0.20&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;0.05&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;Y * Pr(Y)&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;10&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;30&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;75&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;100&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;80&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;20&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; height: 17px;&quot;&gt;315&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Q3) 400개의 재고를 보유한 경우 기대 수익(profit)은?
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;평균 판매량 (as) = 315.0&lt;/li&gt;
&lt;li&gt;평균 과잉 재고 (unsold, leftover) = Q - as = 400 - 315.0 = 85.0&lt;/li&gt;
&lt;li&gt;기대 수익 = as * (p-c) - leftover * (c-v) = 315.0 * (100-30) - 85 * (30-20) = $21,200&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Q4) Newsvendor 모형을 이용한 최적 재고량(즉, 주문량)은?
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CR = (p-c)/(p-v)) = (100-30)/(100-20) = 0.875&lt;/li&gt;
&lt;li&gt;수요의 누적확률분포에서 F(Q*)&amp;nbsp;&amp;ge; CR을 만족하는 주문량 Q* 확인&amp;nbsp;&amp;rarr; Q* = 500&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;Demand X&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;100&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;200&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;300&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;400&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;500&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;600&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;Pr(X)&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;0.10&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;0.15&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;0.25&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;0.25&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;0.20&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;0.05&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;F(X)&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;0.10&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;0.25&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;0.50&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;0.75&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;0.95&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;1.00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Q5) Q*를 적용했을 때 기대 수익?
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;평균 판매량 (as) = 340 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;: 수요가 600개일 경우 실제로는 500개까지만 판매 가능&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;평균 과잉 재고 (unsold, leftover) = 500 - 340 = 160&lt;/li&gt;
&lt;li&gt;기대 수익 = 340 * (100-30) - 160 * (30-20) = $22,200&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Newsvendor 예제 3&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;판매가격 p= $35, 구매가격 c= $20, 할인 판매가 v= $15&lt;/li&gt;
&lt;li&gt;고객 수요 X&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;Demand X&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;100&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;200&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;300&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;400&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;500&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;600&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;700&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;800&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;Pr(X)&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.05&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.12&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.15&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.23&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.17&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.15&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.10&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.03&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Q1) Newsvendor 모형을 이용한 최적 재고량(즉, 주문량)은?
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CR = (p-c)/(p-v) = (35-20)/(35-15) = 0.75&lt;/li&gt;
&lt;li&gt;수요의 누적확률분포에서 F(Q*) &amp;nbsp;&amp;ge; CR을 만족하는 주문량 Q* 확인 &amp;rarr; Q* = 600&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;Demand X&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;100&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;200&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;300&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;400&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;500&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;600&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;700&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;800&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;Pr(X)&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.05&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.12&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.15&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.23&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.17&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;0.15&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.10&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.03&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;F(X)&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.05&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.17&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.43&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.55&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.72&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;0.87&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;0.97&lt;/td&gt;
&lt;td style=&quot;width: 11.1111%;&quot;&gt;1.00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Q2) Q*를 적용했을 때 기대 수익은?
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기대 수익 = 419 * (35-20) - 181 * (20-15) = $5380&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>운영관리</category>
      <author>bye0nzn</author>
      <guid isPermaLink="true">https://bye0nzn.tistory.com/472</guid>
      <comments>https://bye0nzn.tistory.com/472#entry472comment</comments>
      <pubDate>Fri, 8 May 2026 19:21:27 +0900</pubDate>
    </item>
    <item>
      <title>순차적 의사결정 2</title>
      <link>https://bye0nzn.tistory.com/470</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;Infinite horizon MDP&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Value Iteration:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;696&quot; data-origin-height=&quot;124&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbCUdP/dJMcagenjqV/z6mB3NKTUhUKyP7kxe57R1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbCUdP/dJMcagenjqV/z6mB3NKTUhUKyP7kxe57R1/img.png&quot; data-alt=&quot;.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbCUdP/dJMcagenjqV/z6mB3NKTUhUKyP7kxe57R1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbCUdP%2FdJMcagenjqV%2Fz6mB3NKTUhUKyP7kxe57R1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;460&quot; height=&quot;82&quot; data-origin-width=&quot;696&quot; data-origin-height=&quot;124&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Policy Iteration: Policy Evaluation(PE) &amp;rarr; Policy improvement(PI) &amp;rarr; go back to policy evaluation until both policy used from PE and policy found in PI are the same&lt;/li&gt;
&lt;li&gt;Linear Programming&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;133&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEx5YI/dJMcaays013/59COZBkhqjAqjC8M72kSg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEx5YI/dJMcaays013/59COZBkhqjAqjC8M72kSg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEx5YI/dJMcaays013/59COZBkhqjAqjC8M72kSg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEx5YI%2FdJMcaays013%2F59COZBkhqjAqjC8M72kSg0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;468&quot; height=&quot;93&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;133&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Some popular MDP examples&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;n-armed Bandit
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;State= 각 머신 당 정보(승률 등.)&lt;/li&gt;
&lt;li&gt;Action= 어떤 기계를 선택할 것인가&lt;/li&gt;
&lt;li&gt;Reward= 배당금-배팅금액&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Asset allocation
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;State= 남은 자산양&lt;/li&gt;
&lt;li&gt;Action= 이번에 투자할 자산양&lt;/li&gt;
&lt;li&gt;Reward= 이번 수익&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Optimal Stopping (a.k.a secretary problem)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;State=지금 인터뷰하고 있는 사람이 best인지 여부&lt;/li&gt;
&lt;li&gt;Action= Stop or Continue&lt;/li&gt;
&lt;li&gt;Reward=Best 후보를 뽑았을때 얻을 수 있는 기대값&lt;/li&gt;
&lt;li&gt;Solution: Considering STOP after 37% (=1/e) of N&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;MDP Issues: 이론은 이론일 뿐, 현실은&amp;hellip;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Curse of Dimensionality(차원의 저주)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Transition Probabilities
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;M states &amp;amp; N actions = M^2 * N elements&lt;/li&gt;
&lt;li&gt;E.g.) 1000 state, 2 actions = 2 million elements&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Unable to construct MDP model
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Uncertain transition probabilities&lt;/li&gt;
&lt;li&gt;Uncertain reward&lt;/li&gt;
&lt;li&gt;Uncertain state: fully observable, partially observable (POMDP)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Continuous state/action space&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;대부분 실제문제에 적용하기 힘들다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;대안 1) Approximate Dynamic Programming&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;For communication technology engineers&lt;/li&gt;
&lt;li&gt;For computer scientist (AI researchers)&lt;/li&gt;
&lt;li&gt;Breaking the curses
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Should we care about the transition probabilities?&lt;/li&gt;
&lt;li&gt;Should we care about analytical models?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;But, we still need a &amp;ldquo;good&amp;rdquo; solution
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;How about heuristic?&lt;/li&gt;
&lt;li&gt;Well, if we could use the concept of MDP, and get some good solution based on that&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;186&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qdgga/dJMcabYrpF2/xf60wW4ri93E7MKsEOZJDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qdgga/dJMcabYrpF2/xf60wW4ri93E7MKsEOZJDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qdgga/dJMcabYrpF2/xf60wW4ri93E7MKsEOZJDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fqdgga%2FdJMcabYrpF2%2Fxf60wW4ri93E7MKsEOZJDk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;563&quot; height=&quot;127&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;186&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Bellman&amp;rsquo;s Equation Revisit&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;775&quot; data-origin-height=&quot;151&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u5QD3/dJMcac34RZN/PxM2JKSzCbB9ViuIsRUKr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u5QD3/dJMcac34RZN/PxM2JKSzCbB9ViuIsRUKr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u5QD3/dJMcac34RZN/PxM2JKSzCbB9ViuIsRUKr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu5QD3%2FdJMcac34RZN%2FPxM2JKSzCbB9ViuIsRUKr1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;698&quot; height=&quot;136&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;775&quot; data-origin-height=&quot;151&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;대안 2) Reinforcement Learning Fundamentals from Gosavi(2015)&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;717&quot; data-origin-height=&quot;628&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/braF4D/dJMcad2Xo6D/FhtwgGBeZvVWIq7TZotfzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/braF4D/dJMcad2Xo6D/FhtwgGBeZvVWIq7TZotfzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/braF4D/dJMcad2Xo6D/FhtwgGBeZvVWIq7TZotfzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbraF4D%2FdJMcad2Xo6D%2FFhtwgGBeZvVWIq7TZotfzK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;612&quot; height=&quot;628&quot; data-origin-width=&quot;717&quot; data-origin-height=&quot;628&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Bellman Equation 의 다른 표현&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;951&quot; data-origin-height=&quot;520&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btsvpJ/dJMcaa6iU3d/ZecAWaDAXZKJe3ynt8puVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btsvpJ/dJMcaa6iU3d/ZecAWaDAXZKJe3ynt8puVK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btsvpJ/dJMcaa6iU3d/ZecAWaDAXZKJe3ynt8puVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtsvpJ%2FdJMcaa6iU3d%2FZecAWaDAXZKJe3ynt8puVK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;695&quot; height=&quot;380&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;951&quot; data-origin-height=&quot;520&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;그렇다면 이 Q함수로 이루어진 식을 어떻게 풀 것인가?&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Robbins-Monro Algorithm&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;981&quot; data-origin-height=&quot;520&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bV6Pot/dJMcaicc9nh/RoIhNtzUKSyVq3jKr7N1IK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bV6Pot/dJMcaicc9nh/RoIhNtzUKSyVq3jKr7N1IK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bV6Pot/dJMcaicc9nh/RoIhNtzUKSyVq3jKr7N1IK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbV6Pot%2FdJMcaicc9nh%2FRoIhNtzUKSyVq3jKr7N1IK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;773&quot; height=&quot;410&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;981&quot; data-origin-height=&quot;520&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Robbins-Monro 와 Q 함수&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1057&quot; data-origin-height=&quot;562&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DEN90/dJMcah5qR04/t3PVr30JLp0knPK9ka6TpK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DEN90/dJMcah5qR04/t3PVr30JLp0knPK9ka6TpK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DEN90/dJMcah5qR04/t3PVr30JLp0knPK9ka6TpK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDEN90%2FdJMcah5qR04%2Ft3PVr30JLp0knPK9ka6TpK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;659&quot; height=&quot;350&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1057&quot; data-origin-height=&quot;562&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Reinforcement Learning 분류&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;MDP
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Planning
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Dynamic Programming&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Learning
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;On-Policy
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Monte-Carlo&lt;/li&gt;
&lt;li&gt;TD&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Off-Policy
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Importance Sampling&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Q-Learning&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Dynamic Programming이 문제를 푸는 방식&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;753&quot; data-origin-height=&quot;508&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3hRIj/dJMcafzMe32/2SQMBVxmZUwrsntL5gWAck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3hRIj/dJMcafzMe32/2SQMBVxmZUwrsntL5gWAck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3hRIj/dJMcafzMe32/2SQMBVxmZUwrsntL5gWAck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3hRIj%2FdJMcafzMe32%2F2SQMBVxmZUwrsntL5gWAck%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;588&quot; height=&quot;397&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;753&quot; data-origin-height=&quot;508&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;핵심개념1: &lt;span style=&quot;color: #333333; background-color: #f6e199;&quot;&gt;&lt;b&gt;Exploration(탐험) vs Exploitation(활용)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;non-greedy action vs. greedy action&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;E.g. Multi-Armed Bandit Problem
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Pure exploration (언제나 탐험 &amp;rarr; not good)&lt;/li&gt;
&lt;li&gt;Pure exploitation&lt;/li&gt;
&lt;li&gt;Mixed approach
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;e-greedy (epsilon-greedy)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;epsilon의 확률만큼 exploration(탐험) + 1-epsilon의 확률만큼 exploitation(활용)&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Softmax (e.g. Boltzmann)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Monte Carlo Methods&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1018&quot; data-origin-height=&quot;544&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HAEWc/dJMcaiDeR3o/PdKJDJS7XY1K2eChXNr6Z0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HAEWc/dJMcaiDeR3o/PdKJDJS7XY1K2eChXNr6Z0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HAEWc/dJMcaiDeR3o/PdKJDJS7XY1K2eChXNr6Z0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHAEWc%2FdJMcaiDeR3o%2FPdKJDJS7XY1K2eChXNr6Z0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;705&quot; height=&quot;377&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1018&quot; data-origin-height=&quot;544&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Episode&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시뮬레이션 상에서 특정 task를 수행 시, 더 이상 진행되지 않고 종료되는 경우 해당 task의 시작부터 끝까지 나왔던 state-action 쌍의 history 집합
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;컴퓨터 게임의 경우는 game over 상태&lt;/li&gt;
&lt;li&gt;자동차 주행의 경우에는 운전 시작부터 종료까지&lt;/li&gt;
&lt;li&gt;야구경기의 경우?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Markov Chain에서 terminal state (종단 state)가 존재하는 경우&lt;/li&gt;
&lt;li&gt;컴퓨터 공학 분야에서 다루는 대부분의 강화학습 문제유형은 episodic task 형태의 문제&lt;/li&gt;
&lt;li&gt;Non-episodic task 형태도 존재&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;강화학습에서의 Monte Carlo 기법 활용&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;MC (Monte Carlo) is model-free : MDP를 완전히 정 의할 수 없는 경우에도 사용 가능함.&lt;/li&gt;
&lt;li&gt;DP는 모든 state를 순차적으로 방문하지만 MC는 일련의 에피소드 (episode)만을 이용하여 근사값을 이용함.&lt;/li&gt;
&lt;li&gt;&lt;u&gt;어떤 Policy에 대하여 한 에피소드가 끝날 때까지 각 상태를 랜덤하게 방문하면서 각 state에서 받은 총 reward 를 측정&lt;/u&gt;함.&lt;/li&gt;
&lt;li&gt;에피소드를 충분히 &lt;u&gt;여러 번 반복하면서&lt;/u&gt; state 마다 측정된 reward를 누적한 후, 에피소드 반복이 끝나면 누적된 reward의 평균값으로 State-value를 추정함.&lt;/li&gt;
&lt;li&gt;한 에피소드를 끝까지 완료해야 하기 때문에 (Episodic task) 각 상태의 value가 실시간으로 업데이트 되지 않는 &lt;b&gt;단점&lt;/b&gt;이 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKnnAK/dJMb997nIB4/oqiobIzlygUF2FyZPYsJk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKnnAK/dJMb997nIB4/oqiobIzlygUF2FyZPYsJk0/img.png&quot; data-origin-width=&quot;552&quot; data-origin-height=&quot;333&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; data-widthpercent=&quot;48.13&quot; style=&quot;width: 47.5712%; margin-right: 10px;&quot; id=&quot;kEditorPhotosEditingImage-10&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKnnAK/dJMb997nIB4/oqiobIzlygUF2FyZPYsJk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKnnAK%2FdJMb997nIB4%2FoqiobIzlygUF2FyZPYsJk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;552&quot; height=&quot;333&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/88MWR/dJMcaiiWeqO/S1sNtrc5zzdwfCR6pIHv1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/88MWR/dJMcaiiWeqO/S1sNtrc5zzdwfCR6pIHv1K/img.png&quot; data-origin-width=&quot;552&quot; data-origin-height=&quot;309&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; style=&quot;width: 51.266%;&quot; data-widthpercent=&quot;51.87&quot; id=&quot;kEditorPhotosEditingImage-11&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/88MWR/dJMcaiiWeqO/S1sNtrc5zzdwfCR6pIHv1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F88MWR%2FdJMcaiiWeqO%2FS1sNtrc5zzdwfCR6pIHv1K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;552&quot; height=&quot;309&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Temporal Difference (TD) &amp;ndash; 시간 차분 학습&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Monte Carlo 방식과 Dynamic Programming 방식을 절충&lt;/li&gt;
&lt;li&gt;TD methods learn directly from episodes of experience (Monte Carlo)&lt;/li&gt;
&lt;li&gt;TD learns from incomplete episodes &lt;b&gt;by bootstrapping&lt;/b&gt; (Dynamic Programming)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;bootstrapping; 현재 시점의 가치를 다음 시점의 가치에 기반해 update시키는 것&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;TD is model-free, no knowledge of MDP transitions / reward&lt;/li&gt;
&lt;li&gt;TD is used for:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;the prediction problem (or policy evaluation): estimating the value function  ( )&lt;/li&gt;
&lt;li&gt;the control problem: finding an optimal policy&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;988&quot; data-origin-height=&quot;520&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJDVj7/dJMcaf0NR1F/Iof0JZlcYWD47S6aEr4dD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJDVj7/dJMcaf0NR1F/Iof0JZlcYWD47S6aEr4dD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJDVj7/dJMcaf0NR1F/Iof0JZlcYWD47S6aEr4dD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJDVj7%2FdJMcaf0NR1F%2FIof0JZlcYWD47S6aEr4dD1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;661&quot; height=&quot;348&quot; data-origin-width=&quot;988&quot; data-origin-height=&quot;520&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Monte Carlo vs. TD&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Predict  ( ) online from experience under policy &amp;pi;&lt;/li&gt;
&lt;li&gt;Every visit Monte-Carlo learning ( = actual return)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;58&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wgTX3/dJMcahYDCIa/uMb4h8bCCZ7UbKgIvZICkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wgTX3/dJMcahYDCIa/uMb4h8bCCZ7UbKgIvZICkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wgTX3/dJMcahYDCIa/uMb4h8bCCZ7UbKgIvZICkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwgTX3%2FdJMcahYDCIa%2FuMb4h8bCCZ7UbKgIvZICkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;303&quot; height=&quot;43&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;58&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;The simplest TD learning: TD(0) ( +1 +  ( +1) = estimated return)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;49&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xexeL/dJMcab5b4vn/KGXexnU6TcFBlLcWkXzhj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xexeL/dJMcab5b4vn/KGXexnU6TcFBlLcWkXzhj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xexeL/dJMcab5b4vn/KGXexnU6TcFBlLcWkXzhj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxexeL%2FdJMcab5b4vn%2FKGXexnU6TcFBlLcWkXzhj1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;438&quot; height=&quot;37&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;49&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Reinforcement Learning 해법 정리&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1137&quot; data-origin-height=&quot;562&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cw1cyH/dJMcai4gfZh/u7CSfh7FSf1fqrShjYoujK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cw1cyH/dJMcai4gfZh/u7CSfh7FSf1fqrShjYoujK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cw1cyH/dJMcai4gfZh/u7CSfh7FSf1fqrShjYoujK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcw1cyH%2FdJMcai4gfZh%2Fu7CSfh7FSf1fqrShjYoujK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;769&quot; height=&quot;380&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1137&quot; data-origin-height=&quot;562&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Behavioral Policy and Target Policy&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;913&quot; data-origin-height=&quot;352&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0vGCZ/dJMcaaL0lll/YKvZhBDnYQhnJ75H0kgbq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0vGCZ/dJMcaaL0lll/YKvZhBDnYQhnJ75H0kgbq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0vGCZ/dJMcaaL0lll/YKvZhBDnYQhnJ75H0kgbq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0vGCZ%2FdJMcaaL0lll%2FYKvZhBDnYQhnJ75H0kgbq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;580&quot; height=&quot;224&quot; data-origin-width=&quot;913&quot; data-origin-height=&quot;352&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;1. SARSA : on-policy&lt;br /&gt;2. Q-learning: off-policy&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;핵심개념 2: On-Policy vs Off-Policy&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style8&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;On-policy control&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;Off-policy control&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&amp;bull; Lear about target policy   from experience sampled from   &lt;br /&gt;&amp;bull; SARSA (on-policy TD control) &lt;br /&gt;&amp;bull; Use a sample {  ,   ,  +1,  +1,  +1} &lt;br /&gt;&amp;bull; Bellman expectation equation &amp;rarr; Policy iteration &amp;rarr; SARSA&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&amp;bull; Lear about target policy   from experience sampled from behavior policy   &lt;br /&gt;&amp;bull; Importance Sampling, Q-Learning (Off-policy TD control) &lt;br /&gt;&amp;bull; Use a sample {  ,   ,  +1,  +1} &lt;br /&gt;&amp;bull; Bellman optimality equation &amp;rarr; Value iteration &amp;rarr; Q-Learning&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>인공지능과 경영최적화</category>
      <author>bye0nzn</author>
      <guid isPermaLink="true">https://bye0nzn.tistory.com/470</guid>
      <comments>https://bye0nzn.tistory.com/470#entry470comment</comments>
      <pubDate>Fri, 8 May 2026 14:56:09 +0900</pubDate>
    </item>
    <item>
      <title>재고관리 모형 (Inventory Model) &amp;ndash; Part II</title>
      <link>https://bye0nzn.tistory.com/469</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. 연속형 &amp;amp; 정량주문 재고모형 (Q system)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주기적으로 재고 수준을 확인 (Continuous Review)&lt;/li&gt;
&lt;li&gt;Inventory position이 사전에 재주문점(reorder point: ROP) 이하로 떨어지면 정량을 주문&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&amp;rarr; Order Q units when IP&amp;nbsp;&amp;le; ROP&lt;/li&gt;
&lt;li&gt;가정 사항
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;언제나 정량을 주문 (주문량 = Q)&lt;/li&gt;
&lt;li&gt;배송기간(Leat Time; LT)은 일정&lt;/li&gt;
&lt;li&gt;재고부족은 Backordering으로 처리&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;수요는 기간별로 변동할 수 있으며, 주문 후 재고보충이 이루어지기 전에 재고부족 발생 가능성&lt;/li&gt;
&lt;li&gt;배송기간(LT)동안의 수요가 재주문점을 초과하는 경우 재고부족이 발생하며, 재고부족은 서비스 수준에 영향을 미침.&lt;/li&gt;
&lt;li&gt;주문량은 일정하지만, 주문주기는 수요에 따라 변화&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;847&quot; data-origin-height=&quot;277&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cCxVan/dJMcafsYjeQ/HHmGOqd5oa4kkJljbaoCak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cCxVan/dJMcafsYjeQ/HHmGOqd5oa4kkJljbaoCak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cCxVan/dJMcafsYjeQ/HHmGOqd5oa4kkJljbaoCak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcCxVan%2FdJMcafsYjeQ%2FHHmGOqd5oa4kkJljbaoCak%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;642&quot; height=&quot;210&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;847&quot; data-origin-height=&quot;277&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;EOQ와 Q system의 비교&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;EOQ
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;일 수요: 100&lt;/li&gt;
&lt;li&gt;주문량 Q = 375&lt;/li&gt;
&lt;li&gt;LT = 1 day&lt;/li&gt;
&lt;li&gt;Policy [IP =100, 375]&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Q system
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;일 수요 N~(100, 10), Q = 375, LT = 1 day&lt;/li&gt;
&lt;li&gt;Policy [100, 375] 인 경우 50%의 수요만 만족함, 즉 서비스 수준이 50%&lt;/li&gt;
&lt;li&gt;95% 서비스 수준을 달성하기 위해서는 IP을 증가시켜야 함: 100 + 1.65 * 10 = 116.5&lt;/li&gt;
&lt;li&gt;Policy [IP =116.5, 375]&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Q system&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;수요분포: N(&amp;mu;,&amp;sigma;)&lt;/li&gt;
&lt;li&gt;리드타임 동안의 수요&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;238&quot; data-origin-height=&quot;28&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/efYOoP/dJMb997m50j/kFkDhJtqUZRU1lWZsq2oX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/efYOoP/dJMb997m50j/kFkDhJtqUZRU1lWZsq2oX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/efYOoP/dJMb997m50j/kFkDhJtqUZRU1lWZsq2oX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FefYOoP%2FdJMb997m50j%2FkFkDhJtqUZRU1lWZsq2oX0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;238&quot; height=&quot;28&quot; data-origin-width=&quot;238&quot; data-origin-height=&quot;28&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;361&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HnY2W/dJMcad2W0JA/AzC2hNvxU1Gv7bLQNh51aK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HnY2W/dJMcad2W0JA/AzC2hNvxU1Gv7bLQNh51aK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HnY2W/dJMcad2W0JA/AzC2hNvxU1Gv7bLQNh51aK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHnY2W%2FdJMcad2W0JA%2FAzC2hNvxU1Gv7bLQNh51aK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;598&quot; height=&quot;361&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;361&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Q system (예)&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;682&quot; data-origin-height=&quot;99&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xDHTJ/dJMcaf7y6ou/BOkdvK0CcGn2qrbwZAztN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xDHTJ/dJMcaf7y6ou/BOkdvK0CcGn2qrbwZAztN0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xDHTJ/dJMcaf7y6ou/BOkdvK0CcGn2qrbwZAztN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxDHTJ%2FdJMcaf7y6ou%2FBOkdvK0CcGn2qrbwZAztN0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;682&quot; height=&quot;99&quot; data-origin-width=&quot;682&quot; data-origin-height=&quot;99&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;다음 질문에 답하시오. &lt;br /&gt;(1) EOQ를 이용하여 최적의 주문량을 계산하시오.&lt;/p&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;84&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/epwpLG/dJMcahK7fAE/hGUF9o9uGVfkLKTPLTw9dK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/epwpLG/dJMcahK7fAE/hGUF9o9uGVfkLKTPLTw9dK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/epwpLG/dJMcahK7fAE/hGUF9o9uGVfkLKTPLTw9dK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FepwpLG%2FdJMcahK7fAE%2FhGUF9o9uGVfkLKTPLTw9dK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;526&quot; height=&quot;84&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;84&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;(2) 평균 주문주기를 계산하시오.&lt;/p&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;339&quot; data-origin-height=&quot;75&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FE8af/dJMcahYC2SL/am0tI50JcUBrNkw2zEots0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FE8af/dJMcahYC2SL/am0tI50JcUBrNkw2zEots0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FE8af/dJMcahYC2SL/am0tI50JcUBrNkw2zEots0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFE8af%2FdJMcahYC2SL%2Fam0tI50JcUBrNkw2zEots0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;339&quot; height=&quot;75&quot; data-origin-width=&quot;339&quot; data-origin-height=&quot;75&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;(3) 재주문점 (ROP)는?&lt;/p&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;973&quot; data-origin-height=&quot;136&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boCnaE/dJMcahYC2XP/hsSL6T612sMkxxFeKlLoB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boCnaE/dJMcahYC2XP/hsSL6T612sMkxxFeKlLoB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boCnaE/dJMcahYC2XP/hsSL6T612sMkxxFeKlLoB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboCnaE%2FdJMcahYC2XP%2FhsSL6T612sMkxxFeKlLoB1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;973&quot; height=&quot;136&quot; data-origin-width=&quot;973&quot; data-origin-height=&quot;136&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;(4) 안전재고 (safety stock)의 적정 규모는?&lt;/p&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;136&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GlUdT/dJMcaaSLweN/9HzgB0e3uZFlY1gWkJtRC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GlUdT/dJMcaaSLweN/9HzgB0e3uZFlY1gWkJtRC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GlUdT/dJMcaaSLweN/9HzgB0e3uZFlY1gWkJtRC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGlUdT%2FdJMcaaSLweN%2F9HzgB0e3uZFlY1gWkJtRC0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;409&quot; height=&quot;136&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;136&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4. 정기형 &amp;amp; 목표수준 재고모형 (P system)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주기적 (예. 1주, 1달 등)으로 재고 수준을 확인하고, 주문함.&lt;/li&gt;
&lt;li&gt;재고 주문을 하는 경우 현재 재고수준 (Inventory Position)과 목표수준 (OUL; Order-up-to Level)의 차이만큼 주문량으로 결정함.&lt;/li&gt;
&lt;li&gt;가정 사항
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;배송기간 (Lead Time; LT)은 일정&lt;/li&gt;
&lt;li&gt;재고부족은 Backordering으로 처리&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;수요는 기간별로 변동할 수 있으며, 주문 후 재고보충이 이루어지기 전에 재고부족이 발생할 수 있음.&lt;/li&gt;
&lt;li&gt;주문주기 (OI)와 배송기간 (LT)은 일정하며, 매 주문시점에 주문량 Q는 OUL과 IP의 차이로 결정됨 (즉, Q = OUL &amp;ndash; IP)&lt;/li&gt;
&lt;li&gt;주문주기는 일정하지만, 주문량은 수요에 따라서 변화&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;874&quot; data-origin-height=&quot;373&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/et5A6S/dJMcabYq1eq/gG6vapv02odsAml3MxzUjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/et5A6S/dJMcabYq1eq/gG6vapv02odsAml3MxzUjk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/et5A6S/dJMcabYq1eq/gG6vapv02odsAml3MxzUjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fet5A6S%2FdJMcabYq1eq%2FgG6vapv02odsAml3MxzUjk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;874&quot; height=&quot;373&quot; data-origin-width=&quot;874&quot; data-origin-height=&quot;373&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;수요분포 : N [ &amp;micro; , &amp;sigma;]&lt;/li&gt;
&lt;li&gt;주문주기 = OI, 리드타임 = LT&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;873&quot; data-origin-height=&quot;285&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c93ZX4/dJMcab5bsIw/HKxkVOiGQnKJZ8EzxxnyI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c93ZX4/dJMcab5bsIw/HKxkVOiGQnKJZ8EzxxnyI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c93ZX4/dJMcab5bsIw/HKxkVOiGQnKJZ8EzxxnyI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc93ZX4%2FdJMcab5bsIw%2FHKxkVOiGQnKJZ8EzxxnyI0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;771&quot; height=&quot;252&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;873&quot; data-origin-height=&quot;285&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;P system (예)&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;837&quot; data-origin-height=&quot;127&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xI6Lp/dJMcaarG1rJ/MtSskFGd5xADLF17c2BiGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xI6Lp/dJMcaarG1rJ/MtSskFGd5xADLF17c2BiGk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xI6Lp/dJMcaarG1rJ/MtSskFGd5xADLF17c2BiGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxI6Lp%2FdJMcaarG1rJ%2FMtSskFGd5xADLF17c2BiGk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;837&quot; height=&quot;127&quot; data-origin-width=&quot;837&quot; data-origin-height=&quot;127&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;다음 질문에 답하시오. &lt;br /&gt;(1) EOQ를 이용하여 평균 주문주기를 계산하시오.&lt;/p&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;664&quot; data-origin-height=&quot;304&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rnMl6/dJMcaaLZIqS/t2xbkK03htYkqqgP2wXVK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rnMl6/dJMcaaLZIqS/t2xbkK03htYkqqgP2wXVK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rnMl6/dJMcaaLZIqS/t2xbkK03htYkqqgP2wXVK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrnMl6%2FdJMcaaLZIqS%2Ft2xbkK03htYkqqgP2wXVK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;450&quot; height=&quot;206&quot; data-origin-width=&quot;664&quot; data-origin-height=&quot;304&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;(2) 목표재고수준 (OUL)는?&lt;/p&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1011&quot; data-origin-height=&quot;369&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/U8Q2k/dJMcagk6SEM/ae2fnhsg9aHWG3Ie419cPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/U8Q2k/dJMcagk6SEM/ae2fnhsg9aHWG3Ie419cPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/U8Q2k/dJMcagk6SEM/ae2fnhsg9aHWG3Ie419cPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FU8Q2k%2FdJMcagk6SEM%2Fae2fnhsg9aHWG3Ie419cPK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;509&quot; height=&quot;186&quot; data-origin-width=&quot;1011&quot; data-origin-height=&quot;369&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;(3) 안전재고 (safety stock)의 적정 규모는?&lt;/p&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;447&quot; data-origin-height=&quot;64&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/L0yHS/dJMcaaFe4tM/hljChPKlKKnKBd6BWSC15K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/L0yHS/dJMcaaFe4tM/hljChPKlKKnKBd6BWSC15K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/L0yHS/dJMcaaFe4tM/hljChPKlKKnKBd6BWSC15K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FL0yHS%2FdJMcaaFe4tM%2FhljChPKlKKnKBd6BWSC15K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;342&quot; height=&quot;49&quot; data-origin-width=&quot;447&quot; data-origin-height=&quot;64&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Q system과 P system의 비교&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Q system
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;개별 재고 상품을 지속적으로 모니터링해야 함.&lt;/li&gt;
&lt;li&gt;안전재고가 P system과 비교하여 상대적으로 낮음.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7; background-color: #f6e199;&quot;&gt;★ ROP 계산&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;P system
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;관리 및 적용이 용이함.&lt;/li&gt;
&lt;li&gt;IP을 주기적으로 측정하는 것이 요구됨.&lt;/li&gt;
&lt;li&gt;평균 재고량이 Q system과 비교하여 상대적으로 많음.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px; color: #006dd7; background-color: #f6e199;&quot;&gt;★ OUL 계산&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>운영관리</category>
      <author>bye0nzn</author>
      <guid isPermaLink="true">https://bye0nzn.tistory.com/469</guid>
      <comments>https://bye0nzn.tistory.com/469#entry469comment</comments>
      <pubDate>Fri, 8 May 2026 02:26:12 +0900</pubDate>
    </item>
    <item>
      <title>[세미나7] Understanding the Behavioral Effect of Incentives on Departure Time Choice Using Inverse Reinforcement Learning</title>
      <link>https://bye0nzn.tistory.com/468</link>
      <description>&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 논문은 &lt;b&gt;혼잡 시간대 교통 체증을 완화하기 위해 인센티브가 사람들의 출발 시간 선택에 어떤 영향을 미치는지&lt;/b&gt; 분석한 연구이다. 출퇴근 시간대에는 많은 사람들이 비슷한 시간에 이동하기 때문에 특정 시간대에 교통 수요가 집중된다. 이를 완화하기 위해 통행료를 부과하거나, 반대로 혼잡 시간대를 피한 이용자에게 인센티브를 지급하는 방식의 교통수요관리 정책이 활용될 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 연구의 핵심 질문은 다음과 같다:&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;인센티브 정책이 주어졌을 때, 사람들은 실제로 출발 시간을 바꾸는가?&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이를 분석하기 위해 저자들은 z-Tree를 활용한 가상 출근 실험을 수행하고, 실험 참여자들의 출발 시간 선택 데이터를 수집하였다. 이후 개인의 선택 행동을 모방하고 선호를 추정하기 위해 &lt;b&gt;역강화학습, Inverse Reinforcement Learning, IRL&lt;/b&gt;을 사용하였다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;1. 연구 배경&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;교통 혼잡을 줄이는 방법에는 도로 용량을 늘리는 방식도 있지만, 기존 도로 인프라 안에서 &lt;b&gt;수요를 시간적으로 분산시키는 방법&lt;/b&gt;도 중요하다. 특히 출근 시간대처럼 수요가 집중되는 상황에서는 이용자들이 조금 더 일찍 또는 늦게 출발하도록 유도하는 것이 혼잡 완화에 도움이 될 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;기존에도 출발 시간 선택을 분석하기 위한 여러 방법이 사용되었다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;첫째, &lt;b&gt;이산선택모형, Discrete Choice Models, DCMs&lt;/b&gt;이 있다. 하지만 DCM은 선택지 간 독립성을 가정하는 경우가 많다. 출발 시간 선택에서는 인접한 시간대가 서로 강하게 연관되어 있기 때문에, 이러한 독립 가정은 현실을 충분히 반영하지 못할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;둘째, &lt;b&gt;머신러닝 기반 예측 모델&lt;/b&gt;이 있다. 머신러닝은 높은 예측 성능을 보일 수 있지만, 왜 특정 행동이 나타났는지 설명하기 어렵다는 한계가 있다. 즉, 해석 가능성이 부족하다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;셋째, &lt;b&gt;강화학습, Reinforcement Learning, RL&lt;/b&gt;이 있다. 강화학습은 사람의 순차적 의사결정 과정을 모델링하는 데 적합하지만, 보상함수나 주요 파라미터를 연구자가 직접 설정해야 한다는 문제가 있다. 이 경우 연구자의 가정에 따라 결과가 크게 달라질 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 논문은 이러한 한계를 보완하기 위해 &lt;b&gt;역강화학습&lt;/b&gt;을 사용한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;역강화학습은 관찰된 행동 데이터를 바탕으로, 사람들이 어떤 보상 구조를 가지고 의사결정을 했는지 추정하는 방법이다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;2. 연구 목적&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 논문의 목적은 크게 세 가지로 볼 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;첫째, 실험 참여자의 출발 시간 선택 행동을 모방할 수 있는 모델을 구축하는 것이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;둘째, 인센티브가 사람들의 출발 시간 이동에 어떤 영향을 미치는지 분석하는 것이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;셋째, 추정된 보상함수를 바탕으로 정책이 변경되었을 때 출발 시간 선택이 어떻게 달라질지 예측하는 것이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;즉, 단순히 &amp;ldquo;사람들이 몇 시에 출발했는가&amp;rdquo;를 보는 것이 아니라, &lt;b&gt;왜 그런 선택을 했는지, 그리고 정책이 바뀌면 행동이 어떻게 달라질지&lt;/b&gt;를 분석하려는 연구라고 볼 수 있다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;3. Methodology&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;3.1 Data collection&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;데이터 수집을 위해 저자들은 z-Tree를 이용한 가상 통근 실험을 수행하였다. 실험 참여자들은 반복적으로 출발 시간을 선택하고, 선택한 출발 시간에 따라 이동시간, 도착시간, 비용, 인센티브 등의 결과를 받는다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이때 교통 상황은 &lt;b&gt;single bottleneck model&lt;/b&gt;을 기반으로 설정된다. single bottleneck model은 특정 병목 지점에서 차량이 몰리면서 대기열이 형성되는 상황을 표현하는 모델이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;논문에서는 시점별 대기열 길이와 비용 구조를 설정한다. 대기열은 이전 시점의 대기열 길이, 해당 시점에 출발한 이용자 수, 도로 용량에 따라 변화한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;총비용은 다음 요소들로 구성된다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이동시간 비용&lt;/li&gt;
&lt;li&gt;너무 일찍 도착했을 때의 비용&lt;/li&gt;
&lt;li&gt;늦게 도착했을 때의 비용&lt;/li&gt;
&lt;li&gt;시간대별 도로 요금&lt;/li&gt;
&lt;li&gt;출발 시간에 따라 받을 수 있는 인센티브&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;즉, 이용자는 단순히 &amp;ldquo;빨리 가는 시간&amp;rdquo;을 고르는 것이 아니라, &lt;b&gt;이동시간, 도착시간, 요금, 인센티브를 모두 고려하여 출발 시간을 선택&lt;/b&gt;하게 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;3.2 Reinforcement Learning&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;논문에서는 출발 시간 선택 문제를 &lt;b&gt;마코프 의사결정 과정, Markov Decision Process, MDP&lt;/b&gt;으로 표현한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;MDP는 보통 다음 다섯 가지 요소로 구성된다:&amp;nbsp;&lt;b&gt;S, A, P, R, &amp;gamma;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;여기서 S는 상태, A는 행동, P는 상태 전이확률, R은 보상, &amp;gamma;는 할인율이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;출발 시간 선택 문제에 적용하면, 이용자는 현재 상태를 보고 어떤 시간에 출발할지 선택한다. 그 선택에 따라 이동시간, 비용, 인센티브 등이 결정되고, 다음 상태로 전이된다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이때 중요한 개념이 &lt;b&gt;value function&lt;/b&gt;과 &lt;b&gt;action-value function&lt;/b&gt;이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Value function&lt;/b&gt;은 특정 상태에서 시작했을 때 앞으로 받을 보상의 기대값을 의미한다. 현재 얻는 보상뿐 아니라 미래 보상까지 고려하되, 할인율을 통해 먼 미래의 보상은 상대적으로 작게 반영한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Action-value function&lt;/b&gt;, 즉 Q-function은 특정 상태에서 특정 행동을 선택했을 때 얻을 수 있는 보상의 기대값이다. 논문에서는 Q-learning을 통해 출발 시간 선택 환경에서의 행동 가치를 학습한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;3.3 Inverse Reinforcement Learning&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;일반적인 강화학습에서는 보상함수가 주어진 상태에서 최적의 행동을 찾는다. 반면 역강화학습은 반대로 접근한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;관찰된 행동이 주어졌을 때, 그 행동을 설명할 수 있는 보상함수를 추정한다.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 논문에서는 실험 참여자들이 실제로 선택한 출발 시간 데이터를 바탕으로, 각 참여자가 어떤 요소를 얼마나 중요하게 고려했는지 추정한다. 예를 들어 어떤 사람은 지각을 매우 싫어하고, 어떤 사람은 인센티브에 민감하게 반응하며, 또 다른 사람은 이동시간 단축을 더 중요하게 생각할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;논문에서는 &lt;b&gt;Feature Matching IRL&lt;/b&gt;을 사용한다. 이 방법은 참여자의 실제 행동에서 나타나는 feature expectation과 모델이 생성한 행동의 feature expectation이 비슷해지도록 보상함수의 가중치를 조정한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;즉, 모델이 사람과 비슷한 행동을 하도록 보상함수를 역으로 찾아가는 방식이다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;4. Experiment results and discussions&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;4.1 Cluster analysis&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;논문에서는 실험 참여자들의 출발 시간 선택 패턴을 바탕으로 클러스터 분석을 수행하였다. 그 결과 참여자들은 네 가지 유형으로 구분되었다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;각 유형은 출발 시간 선택 패턴과 인센티브에 대한 반응 정도가 다르게 나타났다. 특히 어떤 집단은 인센티브에 민감하게 반응하여 출발 시간을 조정하는 경향을 보였고, 어떤 집단은 상대적으로 기존 출발 시간 선택을 유지하는 경향을 보였다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 부분은 이 논문의 중요한 포인트다. 인센티브 정책이 모든 사람에게 동일한 영향을 주는 것이 아니라, &lt;b&gt;개인의 선호와 행동 유형에 따라 다르게 작용한다는 것&lt;/b&gt;을 보여주기 때문이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;4.2 Results of Inverse Reinforcement Learning&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;역강화학습 결과, IRL 모델은 개인의 출발 시간 선택 행동을 비교적 잘 재현하는 것으로 나타났다. 이는 추정된 보상함수가 실제 참여자들의 의사결정 기준을 어느 정도 반영하고 있음을 의미한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;즉, 이 모델은 단순히 선택 결과만 맞추는 것이 아니라, 개인이 이동시간, 조기 도착, 지각, 비용, 인센티브 등을 어떻게 평가하는지 추정할 수 있다는 점에서 의미가 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1404&quot; data-start=&quot;1356&quot; data-section-id=&quot;1iiwo6w&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;4.3 Weight Analysis of the Reward Function&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;1546&quot; data-start=&quot;1407&quot; data-ke-size=&quot;size16&quot;&gt;이 절에서는 IRL을 통해 학습된 보상함수의 가중치를 분석한다. 4.2에서 모델이 실제 참여자의 출발 시간 선택을 잘 재현함을 확인했다면, 4.3에서는 그 보상함수의 가중치를 통해 정책이 각 참여자 유형의 선택 선호를 어떻게 바꾸었는지 해석한다.&lt;/p&gt;
&lt;p data-end=&quot;1711&quot; data-start=&quot;1551&quot; data-ke-size=&quot;size16&quot;&gt;논문은 통제 정책이 없는 경우를 기준으로, 요금 부과 시나리오와 인센티브 시나리오에서 각 type별&amp;middot;출발 시간대별 가중치가 얼마나 변화했는지 비교하였다. 가중치 변화값이 양수로 클수록 해당 시간대를 선택할 가능성이 커졌다는 의미이고, 음수로 클수록 선택 가능성이 낮아졌다는 의미이다.&lt;/p&gt;
&lt;p data-end=&quot;1909&quot; data-start=&quot;1716&quot; data-ke-size=&quot;size16&quot;&gt;분석 결과, Type I 참여자들은 가장 이른 출발 시간대에 강하게 반응했다. 이는 이들이 요금을 줄이거나 인센티브를 더 받기 위해 더 이른 시간에 출발하려는 경향을 보였음을 의미한다. 또한 요금 부과가 인센티브보다 평균적으로 더 강한 반응을 유도했는데, 이는 사람들이 같은 크기의 이득보다 손실에 더 민감하게 반응하는 손실회피 현상과 연결된다.&lt;/p&gt;
&lt;p data-end=&quot;1909&quot; data-start=&quot;1716&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;4.4 Prediction of modified incentive scheme&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;저자들은 추정된 보상함수를 활용하여 인센티브 정책이 변경되었을 때 출발 시간 선택이 어떻게 달라질지 예측하였다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 부분은 논문의 활용 가능성을 보여준다. 정책 시행 전에도 IRL을 이용하면 특정 인센티브 구조가 사람들의 출발 시간 선택을 어떻게 바꿀지 시뮬레이션할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;따라서 IRL은 단순한 행동 분석 도구가 아니라, &lt;b&gt;교통관리 정책 설계와 평가를 위한 예측 도구&lt;/b&gt;로 활용될 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;4.5 Discussion on the cost-effectiveness of incentives&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;흥미로운 점은 인센티브가 행동 변화를 유도하는 데에는 효과가 있었지만, 비용 효율성 측면에서는 한계가 있었다는 것이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;수정된 인센티브 정책에서는 전체 이동시간이 약 &lt;b&gt;9.67% 감소&lt;/b&gt;하는 효과가 나타났다. 이는 인센티브가 실제로 출발 시간 분산과 혼잡 완화에 도움이 될 수 있음을 보여준다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;하지만 비용 대비 효과를 보면, &lt;b&gt;100달러의 인센티브를 투자했을 때 약 8분 정도의 이동시간 감소&lt;/b&gt;에 그쳤다. 즉, 인센티브 정책이 행동 변화에는 긍정적인 영향을 미쳤지만, 경제적으로 매우 효율적인 정책이라고 보기는 어렵다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;따라서 이 논문의 결론은 단순히 &amp;ldquo;인센티브가 효과적이다&amp;rdquo;가 아니다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;더 정확히는,&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;인센티브는 사람들의 출발 시간 선택을 변화시킬 수 있지만, 그 정책이 비용 대비 효율적인지는 별도로 검토해야 한다.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;라고 볼 수 있다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;5. Conclusion&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 논문은 인센티브가 개인의 출발 시간 선택에 미치는 영향을 분석하기 위해 역강화학습을 적용한 연구이다. 기존의 이산선택모형이나 머신러닝 모델과 달리, IRL은 사람들의 실제 행동을 바탕으로 보상함수를 추정할 수 있다는 장점이 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;연구 결과, IRL 모델은 개인의 출발 시간 선택 행동을 효과적으로 재현할 수 있었다. 또한 추정된 보상함수를 활용하면 인센티브 정책이 변경되었을 때 사람들이 어떻게 반응할지 예측할 수 있었다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;특히 논문에서는 참여자 유형에 따라 인센티브에 대한 반응이 다르게 나타났으며, 일부 집단은 인센티브에 더 강하게 반응하였다. 또한 손실회피 현상도 관찰되었다. 이는 사람들이 같은 금액의 이득과 손실을 동일하게 평가하지 않고, 손실을 더 크게 받아들이는 경향이 있음을 의미한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;다만 인센티브 정책의 비용 효율성은 제한적이었다. 전체 이동시간 감소 효과는 있었지만, 투입된 인센티브 비용에 비해 절감된 이동시간이 크지 않았기 때문이다. 따라서 실제 정책으로 적용하기 위해서는 인센티브 금액, 지급 대상, 시간대 설정 등을 더 정교하게 설계할 필요가 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;결론적으로 이 논문은 &lt;b&gt;출발 시간 선택 문제에 역강화학습을 적용하여, 인센티브 정책에 따른 개인의 행동 변화를 분석하고 예측했다는 점&lt;/b&gt;에서 의의가 있다. 향후에는 실제 교통 데이터를 활용하거나, 더 다양한 통근 환경과 이용자 특성을 반영한 연구가 필요하다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style8&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Type&lt;/td&gt;
&lt;td&gt;논문에서의 해석&lt;/td&gt;
&lt;td&gt;쉽게 말하면&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Type I&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;상대적으로 이른 출발을 선호&lt;/td&gt;
&lt;td&gt;가장 빠른 시간대로 이동할 가능성이 큰 집단&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Type II&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;상대적으로 이른 출발을 선호&lt;/td&gt;
&lt;td&gt;이른 출발자지만 Type I보다는 반응이 약한 집단&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Type III&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;상대적으로 늦은 출발을 선호&lt;/td&gt;
&lt;td&gt;늦게 출발하는 편인 집단&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Type IV&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;상대적으로 늦은 출발을 선호&lt;/td&gt;
&lt;td&gt;늦은 출발 성향이 더 강한 집단으로 볼 수 있음&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클러스터 분석 결과, 참여자들은 출발 시간 선택 패턴에 따라 네 가지 유형으로 구분되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논문에서는 Type I과 Type II를 상대적으로 이른 시간에 출발하는 early travelers로, Type III와 Type IV를 상대적으로 늦은 시간에 출발하는 late travelers로 해석하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 Type I은 통행료 부과와 인센티브 정책 모두에서 가장 이른 출발 시간대에 강하게 반응한 집단으로 나타났다. 이는 인센티브 기반 TDM 정책이 모든 이용자에게 동일하게 작용하는 것이 아니라, 기존의 출발 시간 선호에 따라 다르게 작용함을 보여준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Lab/[2026] AAPL 세미나</category>
      <author>bye0nzn</author>
      <guid isPermaLink="true">https://bye0nzn.tistory.com/468</guid>
      <comments>https://bye0nzn.tistory.com/468#entry468comment</comments>
      <pubDate>Thu, 7 May 2026 18:37:35 +0900</pubDate>
    </item>
    <item>
      <title>[3과목] 통계 분석</title>
      <link>https://bye0nzn.tistory.com/467</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;01. 통계학 개론&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;통계; 분석하고자 하는 집단에 대해서 조사하거나 실험을 통해서 얻는 자료 또는 이의 요약된 형태&lt;/li&gt;
&lt;li&gt;통계학; 불확실한 상황에서 효과적인 의사결정을 할 수 있도록 수치자료를 수집하고, 정리하고, 표현하고, 분석하는 이론과 방법 연구하는 학문&lt;/li&gt;
&lt;li&gt;통계분석; 특정집단 대상으로 자료를 수집하여 대상집단에 대한 정보를 구하고, 적절한 통계분석 방법을 이용해 의사결정(통계적 추론)을 하는 과정&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;표본추출 방법&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단순 랜덤 추출법
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;표본추출 방법 중 가장 쉽게 단순한 방법&lt;/li&gt;
&lt;li&gt;N개의 모집단에서 n개의 데이터를 무작위로 추출하는 방법&lt;/li&gt;
&lt;li&gt;사다리 타기 혹은 제비뽑기&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;계통 추출법
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모집단의 원소에 차례대로 번호를 부여한 뒤 일정 간격을 두고 데이터를 추출하는 방법&lt;/li&gt;
&lt;li&gt;N개의 모집단에서 K개씩(K=N/n) n개의 구간으로 나눈다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;첫 구간에서(1, 2, ..., K개의 구간) 하나를 임의로 선택하고 K개씩 띄어서 표본을 추출한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;집락(군집: Cluster) 추출법
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;군집 추출법이라고도 함.&lt;/li&gt;
&lt;li&gt;데이터를 여러 집락으로 구분한 뒤, 단순 랜덤 추출법에 의해 선택된 집락의 데이터를 표본으로 사용하는 방법&lt;/li&gt;
&lt;li&gt;각 집락은 서로 동질적 + 집락 내 데이터는 서로 이질적&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;층화 추출법
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;집락 추출법과 유사하나 반대의 성격을 지닌 추출법&lt;/li&gt;
&lt;li&gt;데이터를 여러 집락으로 구분하지만 각 집락은 서로 이질적이며, 군집 내 데이터들은 서로 동질적
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;비례 층화 추출법; 전체 데이터 분포를 반영하여 각 군집별 데이터를 추출하는 방법&lt;/li&gt;
&lt;li&gt;불비례 층화 추출법; 전체 데이터의 분포를 반영하지 않고 각 군집에서는 원하는 개수의 데이터를 추출하는 방법&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;측정과 척도&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;측정; 표본조사를 실시하는 경우 추출된 원소들이나 실험 단위로부터 주어진 목적에 적합하게 관측해 자료를 얻는 것&lt;/li&gt;
&lt;li&gt;척도; 관측 대상의 속성을 측정하여 그 값이 숫자로 나타나도록 일정한 규칙을 정하여 바꾸는 도구
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;질적 척도
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;명목척도; 측정 대상이 어느 집단에 속하는지 (성별, 지역 등)&lt;/li&gt;
&lt;li&gt;순서(서열)척도; 측정 대상이 명목척도이면서 서열관계를 갖는 자료 (선호도, 신용도, 학년 등)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;양적 척도
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;구간(등간)척도; 측정 대상이 갖고 있는 속성의 양을 측정할 수 있으며 두 구간 사이에 의미가 있는 자료 (온도, 지수 등)&lt;/li&gt;
&lt;li&gt;비율척도; 측정 대상이 구간척도이면서 절대적 기준 0이 존재하여 사칙연산이 가능한 자료 (신장, 무게, 점수, 가격 등)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style4&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3334%; text-align: center;&quot; colspan=&quot;2&quot;&gt;종류&lt;/td&gt;
&lt;td style=&quot;width: 66.6668%; text-align: center;&quot; colspan=&quot;4&quot;&gt;포함 정보&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot; rowspan=&quot;2&quot;&gt;질적 척도&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;명목 척도&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;범주&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;서열 척도&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;범주&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;순서&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot; rowspan=&quot;2&quot;&gt;양적 척도&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;등간 척도&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;범주&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;순서&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;상대적 크기&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;비율 척도&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;범주&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;순서&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;상대적 크기&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center;&quot;&gt;절대적 크기&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;기술통계와 추리통계&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기술 통계; 표본 자체의 속성이나 특징을 파악하는 데 중점을 두는 데이터 분석 통계&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자료 요약, 조직화, 단순화&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;추리통계(추론통계); 수집한 데이터를 바탕으로 '추론 및 예측'하는 통계 기법
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;표본에서 얻은 통계치를 바탕으로 오차를 고려하면서 모수를 확률적으로 추정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;이산확률분포&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;베르누이 분포
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;확률변수 X가 취할 수 있는 값이 두 개인 경우로 일반적으로 한 번의 시행을 할 때 성공과 실패로 나눌 수 있는 성공할 확률이 p인 분포&lt;/li&gt;
&lt;li&gt;하나의 동전을 던져 앞면이 나올 확률, 제비뽑기에서 당첨될 확률, 시험에 합격하거나 혹은 불합격할 확률 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;이항 분포
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;n번의 베르누이 시행(성공 또는 실패)에서 k번 성공할 확률의 분포&lt;/li&gt;
&lt;li&gt;하나의 동전은 3번 던져서 앞면이 2번 나올 확률, 하나의 주사위를 5번 던져서 1이 한 번 나올 확률, 3번의 제비뽑기에서 1번 당첨될 확률 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;기하 분포
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;성공 확률이 p인 베르누이 시행에서 처음으로 성공이 나올 때까지 k번 시행할 확률의 분포&lt;/li&gt;
&lt;li&gt;동전을 던져거 3번째에 앞면이 나올 확률, 주사위를 던져서 4번째에 1이 나올 확률, 제비뽑기를 복원 추출로 시행할 때 5번째에 당첨될 확률 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;다항 분포
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이항 분포 확장한 개념&lt;/li&gt;
&lt;li&gt;n번의 시행에서 각 시행이 3개 이상의 결과를 가질 수 있는 확률의 분포&lt;/li&gt;
&lt;li&gt;주사위 n번 던졌을 때 1의 눈이 p1의 확률로 x번, 2의 눈이 p2의 확률로 y번, 3 이사으이 눈이 p3의 확률로 z번 나올 확률 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;포아송 분포
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단위 시간 또는 단위 공간 내에서 발생할 수 있는 사건의 발생 횟수에 대한 확률 분포&lt;/li&gt;
&lt;li&gt;8시간 동안 3번의 장난전화가 왔을 때 1시간 동안 장난전화가 2번 올 확률, 5페이지 안에 3개의 오타가 있다면 1페이지 안에 2개의 오타가 있을 확률 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;이산확률변수
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;확률변수가 취할 수 있는 실수 값의 수를 셀 수 있는 변수&lt;/li&gt;
&lt;li&gt;셀 수 있는 실수 값&lt;/li&gt;
&lt;li&gt;서로 배반인 사건들의 합집합의 확률은 각 사건의 확률의 합&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;연속확률분포&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;균일 분포
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;연속형 확률변수인 X가 취할 수 있는 모든 값에 대하여 같은 확률을 갖고 있는 분포&lt;/li&gt;
&lt;li&gt;얼마나 들어 있는지 모르는 200ml 우유팩 속에 들어 있는 우유의 양 등과 같은 것&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;정규 분포
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;가장 대표적인 연속형 확률분포 중 하나&lt;/li&gt;
&lt;li&gt;한 학교의 1학년 수학 점수의 분포, 전국 남성의 키 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;t-분포
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자유도가 n인 t 분포는 표준정규분포와 마찬가지로 평균이 0이고 좌우가 대칭인 종 모양의 그래프지만 정규분포보다 두꺼운 꼬리를 갖는다.&lt;/li&gt;
&lt;li&gt;표준정규분포를 활용해 모평균을 추정하기 위해서는 모표준편차를 사전에 알고 있어야 한다. 그러나 현실적으로 모표준편차를 모르기 때문에 t 분포를 활용하여 모평균 검정 또는 두 집단의 평균이 동일한지 계산하기 위한 검정통계량으로 활용&lt;/li&gt;
&lt;li&gt;자유도가 커질수록 t 분포는 표준정규분포에 가까워진다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;카이제곱 분포
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;표준정규분포를 따르는 확률변수 Z1, Z2, ..., Zn의 제곱의 합 X는 자유도가 n인 카이제곱 분포를 따른다.&lt;/li&gt;
&lt;li&gt;모평균과 모분산을 모르는 두 개 이상의 집단 간 동질성 검정 또는 모분산 검정을 위해 활용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;F 분포
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;서로 독립인 두 카이제곱 분포를 따르는 확률변수 V1, V2를 각각의 자유도로 나누었을 때 서로의 비율 X는 자유도가 k1, k2인 F 분포를 따른다.&lt;/li&gt;
&lt;li&gt;등분산 검정 및 분산분석을 위해 활용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;연속확률변수
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;확률변수가 취할 수 있는 실수 값이 어떤 특정 구간 전체에 해당하여 그 수를 셀 수 없는 변수&lt;/li&gt;
&lt;li&gt;확률밀도함수의 아래 면적 = 확률&lt;/li&gt;
&lt;li&gt;예; 신생아의 몸무게, 태풍으로 내린 강수량, 심장발작 이후 생존기간 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;기댓값, 분산, 표준편차&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기댓값: 특정 사건이 시행되었을 때 확률변수 X가 취할 수 있는 값의 평균&lt;/li&gt;
&lt;li&gt;분산: 데이터들이 중심에서 얼마나 떨어져 있는지
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;관측값에서 평균을 뺀 값을 제공하고, 그것을 모두 더한 후 전체 개수로 나눠서 구한다.&lt;/li&gt;
&lt;li&gt;차이값의 제곱의 평균&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;표준편차: 분산의 양의 제곱근
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;제곱해서 값이 부풀려진 분산을 제곱근해서 다시 원래 크기로&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;꼭 알아두어야 하는 통계 개념&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;첨도: 확률분포의 뾰족한 정도를 나타내는 측도
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;값이 3에 가까울수록 정규분포 모양&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;왜도: 확률분포의 비대칭 정도를 나타내는 측도
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;왜도값이 0인 경우; 정규분포와 유사한 모습 (평균=중앙값=최빈값)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;공분산
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;두 확률 변수 X,Y의 상관 정도를 나타내는 값&lt;/li&gt;
&lt;li&gt;하나의 확률변수가 증가할 때 다른 확률변수가 증가/감소하는지&lt;/li&gt;
&lt;li&gt;공분산 값이 100이라는 양숫값을 갖는다면 X,Y의 두 확률분포가 어느 정도의 선형성을 갖는지 알 수 X&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;상관계수
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;공분산의 문제를 해결한 값&lt;/li&gt;
&lt;li&gt;-1 ~ 1 사이의 값&lt;/li&gt;
&lt;li&gt;공분산을 X의 표준편차와 Y의 표준편차 모두로 나눈 값&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;추정과 가설검정&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모수; 통계적 방법론에서 궁극적으로 알고 싶은 것은 모집단의 확률분포 및 특성을 알려주는 모평균과 모분산과 같은 값&lt;/li&gt;
&lt;li&gt;점추정; 모집단의 모수, 특히 모평균 추정 시 모평균을 하나의 특정한 값이라고 예측하는 것
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모평균을 추정하기 위한 불편추정량은 표본집단의 평균값인 표본평균이 대표적&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;구간추정; 모수가 특정한 구간 안에 존재할 것이라 예상하는 것
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;구간추정은 모수가 특정 구간 안에 포함될 확률인 신뢰도(신뢰수준)가 필요&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;가설검정; 모집단의 특성에 대한 주장 또는 가설을 세우고 표본에서 얻은 정보를 이용해 가설이 옳은지 판정&lt;/li&gt;
&lt;li&gt;통계적 가설; 귀무가설 / 대립가설
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;귀무가설 null hypothesis; 모집단이 어떠한 특징을 지닐 것으로 여겨지는 가설
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;일반적으로 '차이가 없다' 기호 사용, H0&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;대립가설 alternative hypothesis; 귀무가설에 반대되는 가설
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;귀무가설이 틀렸다고 판단될 경우 채택되는 가설, H1&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;제1종 오류와 제2종 오류
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;제1종 오류; H0이 사실인데 H0이 틀렸다고 결정&lt;/li&gt;
&lt;li&gt;제2종 오류; H0이 사실이 아님에도 불구하고 H0이 옳다고 결정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;검정통계량: 귀무가설의 채택 여부를 판단하기 위해 표본조사를 실시하였을 때 특정 수식에 의하여 표본들로부터 얻을 수 있는 값
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;귀무가설의 옳고 그름 판단&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;기각역: 귀무가설을 기각하게 될 검정통계량의 영역
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;검정통계량이 기각역 내에 있으면 귀무가설 기각&lt;/li&gt;
&lt;li&gt;기각역의 경곗값을 임곗값 critical value이라고 함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;유의수준&lt;/b&gt;: 귀무가설이 참인데도 이를 잘못 기각하는 오류를 범할 확률의 최대 허용 한계&lt;/li&gt;
&lt;li&gt;&lt;b&gt;유의확률(p-value)&lt;/b&gt;:&amp;nbsp;귀무가설을 지지하는 정도를 나타낸 확률값
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;유의수준 &lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;&amp;alpha;보다 작은 경우에는 귀무가설이 참임을 가정했을 때 이러한 결과가 나올 확률이 매우 적다고 해석 &amp;rarr; 귀무가설 기각 &amp;amp; 대립가설 채택&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;유의수준과 유의확률 차이&lt;br /&gt;&amp;rarr; 유의확률(p-value) &amp;lt; 유의수준(0.05)&amp;nbsp;&amp;there4; 귀무가설 기각&lt;br /&gt;&amp;rarr; 유의확률(p-value) &amp;gt; 유의수준(0.05) &amp;there4; 귀무가설 기각 불가능&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;비모수 검정&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모수 검정: 표본이 정규성을 갖는다는 모수적 특성을 이용하는 통계 방법&lt;/li&gt;
&lt;li&gt;비모수 검정: 정규성 검정에서 정규분포를 따르지 않는다고 증명되거나 표본 군집당 10명 미만의 소규모 실험에서와 같이 정규분포임을 가정할 수 없는 경우에 사용
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정규분포를 따르지 않는 경우 자료를 크기순으로 배열하여 순위를 매긴 다음 순위의 합을 통해 차이를 비교하는 순위합검정 적용할 수 있는데, 이런 방법들은 모수의 특성을 이용하지 않는다고 하여 비모수 검정이라 함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 49.8837%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style8&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 23.2558%;&quot;&gt;모수 검정 parametric test&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot;&gt;비모수 검정 nonparametric test&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 23.2558%;&quot;&gt;등간척도, 비율척도&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot;&gt;명목척도, 서열척도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 23.2558%;&quot;&gt;평균&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot;&gt;중앙값&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 23.2558%;&quot;&gt;피어슨 상관계수&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot;&gt;스피어만 순위상관계수&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 23.2558%;&quot;&gt;one sample t-test, two sample t-test, paired t-test, one way anova&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot;&gt;부호 검정, Wilcoxon 부호 순위 검정, Mann-Whitney 검정, Kruskal Wallis 검정&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;비모수 검정의 종류&lt;br /&gt;: 카이제곱 검정, 연속성 검정, 부호 순위 검정, 크러스컬-월리스 검정, 스피어만 서열상관분석, 부호 검정, 프리드만 검정, 순위 합 검정&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;02. 기초 통계분석&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;t-검정
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;일 표본 t-검정(one sample t-test)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;일(단일) 표본 t-검정은 가설검정의 일종&lt;/li&gt;
&lt;li&gt;하나의 모집단의 평균값을 특정값과 비교하는 경우 사용하는 통계적 분석 방법&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;이(독립) 표본 t-검정(independent sample t-test)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;서로 독립적인 두 개의 집단에 대하여 모수(모평균)의 값이 같은 값을 갖는지 통계적으로 검정하는 방법&lt;/li&gt;
&lt;li&gt;독립표본 t-검정이라고 부르기도 함.&lt;/li&gt;
&lt;li&gt;두 모집단의 분산이 같음을 의미하는 등분산성을 만족해야 함. 따라서 이 표본 t-검정 수행 전에 등분산 검정(F 검정) 먼저 수행&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;대응 표본 t-검정(paired t-test)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;동일한 대상에 대해 두 가지 관측치가 있는 경우 이를 비교하여 차이가 있는지 검정할 때 사용&lt;/li&gt;
&lt;li&gt;주로 실험 전후의 효과 비교를 위해 사용&lt;/li&gt;
&lt;li&gt;예; 두 집단에 신약 투약 이후 전후 수치 비교, 새로운 정책이 시행된 후의 부동산 가격의 전후 변화 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;분산분석(ANOVA)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;세 개 이상의 모집단이 있을 경우에 여러 집단 사이의 평균을 비교하는 검정 방법&lt;/li&gt;
&lt;li&gt;분산분석의 귀무가설은 항상 'H0: 모든 집단 간 평균은 같다.'&lt;/li&gt;
&lt;li&gt;분산분석 수행하기 위해서는 아래의 3가지 가정사항을 필요로 함:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정규성: 각 집단의 표본들은 정규분포를 따라야 함.&lt;/li&gt;
&lt;li&gt;등분산성: 각 집단은 동일한 분산&lt;/li&gt;
&lt;li&gt;독립성: 각 집단은 서로에게 영향을 주지 않음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;단점; 귀무가설 기각할 경우 어느 집단 간 평균이 같은지, 혹은 어느 집단 간의 평균이 얼마나 다른지 알 수 없다는 점&lt;/li&gt;
&lt;li&gt;독립변수는 범주형, 종속변수는 연속형 데이터&lt;/li&gt;
&lt;li&gt;(집단 간 분산) / (집단 내 분산) = F-value 사용&lt;/li&gt;
&lt;li&gt;일원분산분석(one-way ANOVA)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;셋 이상의 집단 간 평균을 비교하는 상황에서 하나의 집단에 속하는 독립변수와 종속변수 모두 한 개일 때 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;이원분산분석(two-way ANOVA)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;일원분산분석 수행 시 독립변수의 수가 두 개 이상일 때 사용&lt;/li&gt;
&lt;li&gt;독립변수 간 교호작용이 있다고 판단될 때: 반복이 있는 실험&lt;/li&gt;
&lt;li&gt;독립변수 간 교호작용이 없다고 판단도리 때: 반복이 없는 실험&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;교차분석
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;범주형 자료(명목, 서열) 간 관계를 알아보고자 할 때 사용&lt;/li&gt;
&lt;li&gt;카이제곱 검정통계량 이용&lt;/li&gt;
&lt;li&gt;적합도 검정, 독립성 검정, 동질성 검정에 사용
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;적합도 검정: 실험결과 얻어진 관측값이 예상값과 일치하는지 여부 검정&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;실험 데이터를 '관측도수', 예측값을 '기대도수'라고 부름.&lt;/li&gt;
&lt;li&gt;모집단 분포에 대한 가정(예측값, 기대도수)이 옳게 됐는지 관측값(관측도수)과 비교하여 검정&lt;/li&gt;
&lt;li&gt;실험 결과 관측도수가 기대도수와 일치하면 실제 분포와 예측 분포 간 차이가 없다고 볼 수 있다.&lt;/li&gt;
&lt;li&gt;H0: 실제 분포와 예측 분포 간에는 차이가 없다.&lt;/li&gt;
&lt;li&gt;H1: 실제 분포와 예측 분포 간에 차이가 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;독립성 검정: 모집단이 두 개의 변수에 의해 범주화됐을 때 그 두 변수들 사이의 관계가 독립적인지 아닌지 검정
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;변수들 사이의 관계가 독립적이라면 변수들 사이에 유의한 관계가 없다고 판단&lt;/li&gt;
&lt;li&gt;만약 독립적이지 않다면 유의한 관계가 있다고 판단&lt;/li&gt;
&lt;li&gt;카이제곱 검정에 의한 독립성 검정 결과는 두 범주형 변수 간 관계가 있는지 없는지만 나타낼 뿐이며, 두 변수 간 관계의 강도를 말해주지는 않는다.&lt;/li&gt;
&lt;li&gt;두 범주형 변수가 유의한 관계가 있다고 판단한다고 해서 두 범주형 변수 간에 상관관계가 강하다고 보지는 않는다. 상관관계의 강도를 말하기 위해서는 상관분석을 실시해 수치를 따져봐야 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;동질성 검정: 관측값들이 정해진 범주 내에서 서로 비슷하게 나타나고 있는지 검정
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;두 집단의 분포가 동일한 모집단에 추출된 것인지를 검정&lt;/li&gt;
&lt;li&gt;부모집단별로 요인에 대한 차이가 있는지 검정하는 것&lt;/li&gt;
&lt;li&gt;예컨대 속성 A, B를 가진 부모집단 각각으로부터 정해진 표본의 크기만큼 자료를 추출하는 경우 그 표본의 관측값(표본의 속성 A, B)의 분포가 부모집단의 속성(모집단의 속성 A, B) 분포와 동일한가를 검정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;교차분석표: 두 범주형 변수를 교차하여 데이터의 빈도를 표 형태로 나타낸 것&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;상관분석
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;두 변수 간의 선형적 관계가 존재하는지 알아보는 분석 방법&lt;/li&gt;
&lt;li&gt;상관계수는 -1과 +1 사이의 값을 갖는데, +1에 가까우면 강한 양의 상관관계 / -1에 가까우면 강한 음의 상관관계&lt;/li&gt;
&lt;li&gt;0에 가까울수록 상관관계가 존재하지 않는다고 봄.&lt;/li&gt;
&lt;li&gt;상관관계는 존재하지만 인과관계는 없을 수 있음.&lt;/li&gt;
&lt;li&gt;귀무가설 H0: 두 변수는 아무런 상관관계가 없다.&lt;/li&gt;
&lt;li&gt;종류
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;피어슨 상관분석(선형적 상관관계)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모수적 방법의 하나&lt;/li&gt;
&lt;li&gt;두 변수가 모두 정규분포를 따른다는 가정이 필요함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;스피어만 상관분석(비선형적 상관관계)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;측정된 두 변수들이 서열척도일 때 사용하는 상관계수&lt;/li&gt;
&lt;li&gt;비모수적 방법&lt;/li&gt;
&lt;li&gt;관측값의 순위에 대하여 상관계수를 계산&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;03. 회귀분석&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;회귀분석 개요
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;하나 이상의 독립변수들이 종속변수에 얼마나 영향을 미치는지 추정하는 통계기법&lt;/li&gt;
&lt;li&gt;독립변수와 종속변수 간에 인과관계가 있다는 말은 독립변수가 원인이 되어 종속변수에 영향을 미친다는 의미&lt;/li&gt;
&lt;li&gt;독립변수가 하나이면 단순선형회귀분석, 2개 이상이면 다중선형회귀분석&lt;/li&gt;
&lt;li&gt;회귀분석의 종류
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단순회귀&lt;/li&gt;
&lt;li&gt;다중회귀&lt;/li&gt;
&lt;li&gt;다항회귀&lt;/li&gt;
&lt;li&gt;다중다항회귀&lt;/li&gt;
&lt;li&gt;비선형회귀 (지수, 로그, 삼각함수 형태)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;회귀분석의 가정
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;선형성&lt;/li&gt;
&lt;li&gt;독립성: 잔차와 독립변수의 값이 서로 독립&lt;/li&gt;
&lt;li&gt;등분산성: 잔차들이 고르게 분포&lt;/li&gt;
&lt;li&gt;정규성: 잔차항이 정규분포 형태를 띠는 것&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;단순선형회귀분석
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;독립변수와 종속변수가 1개씩일 때 둘 사이의 인과관계를 분석&lt;/li&gt;
&lt;li&gt;두 변수의 관계가 선형&lt;/li&gt;
&lt;li&gt;최소제곱법 활용해 실제 데이터와 오차가 가장 작아지는 직선의 방정식을 찾음.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;최소제곱법; 실제 관측치와 추세선에 의해 예측된 점 사이의 거리, 즉 오차를 제곱해 더한 값을 최소화&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;회귀분석모형의 적합성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;회귀분석의 통계적 유의성 검증
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;F-검정은 분산의 차이를 확인할 때 사용&lt;/li&gt;
&lt;li&gt;F값이 크다 = 회귀계수가 크고 가파르다 (변수 간 유의미한 인과관계가 존재 o)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;회귀계수의 유의성은 t-검정을 통해 확인 가능&lt;/li&gt;
&lt;li&gt;t-통계량 = 회귀계수 / 표준오차
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;t-통계량이 크다 = 분모가 작다 = 표준오차가 작다&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;모형의 설명력; 데이터들의 분포가 회귀선에 밀접하게 분포하고 있을 때&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;다중선형회귀분석
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;독립변수가 2개 이상이고 종속변수가 하나일 때 사용 가능한 회귀분석&lt;/li&gt;
&lt;li&gt;독립변수와 종속변수의 관계가 선형으로 표현&lt;/li&gt;
&lt;li&gt;단순회귀분석이 확장된 형태, 기본적인 회귀계수 및 통계적 유의성 검증 등은 단순회귀분석과 같다.&lt;/li&gt;
&lt;li&gt;독립변수가 여러 개이므로 회귀계수도 여러 개&lt;/li&gt;
&lt;li&gt;다중공선성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;회귀분석에서 독립변수 간 강한 상관관계가 나타나는 문제&lt;/li&gt;
&lt;li&gt;회귀분석의 기본 가정인 독립성에 위배&lt;/li&gt;
&lt;li&gt;A, B라는 변수가 있을 때 이 둘 사이에 다중공선성이 존재하면 A라는 변수가 Y값에 어느 정도의 영향을 미치는지, 또는 B라는 변수가 Y값에 어느 정도의 영향을 미치는지 정확히 판단 불가&lt;/li&gt;
&lt;li&gt;결정계수 R^2 값이 커서 회귀식의 설명력은 높지만 각 독립변수의 P-value 값이 커서 개별 인자가 유의하지 않은 경우 다중공선성 의심&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;최적 회귀방정식
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1개의 반응변수 y를 설명하기 위한 k개의 독립변수 후보들이 있을 때 반응변수 y를 가장 잘 설명할 수 있는 회귀식을 찾는 것이 최적 회귀방정식의 목표&lt;/li&gt;
&lt;li&gt;종속변수에 유의미한 영향을 미칠 것으로 생각되는 독립변수를 선택하는 과정(보통 모델 성능을 향상시키고자 할 때 사용)&lt;/li&gt;
&lt;li&gt;정보는 많으면 많을수록 좋지만 모든 변수를 포함해 분석하는 것이 반드시 좋은 결과를 보장 x&lt;/li&gt;
&lt;li&gt;변수선택법
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;부분집합법; 모든 가능한 모델을 고려해 가장 좋은 모델을 선정
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;변수가 많아짐에 따라 검증해야 하는 회귀 분석도 많아지는 단점&lt;/li&gt;
&lt;li&gt;변수의 개수가 적은 경우 높은 설명력을 가진 결과를 도출해내는 데 효과적&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;단계적 변수선택법; 일정한 단계를 거치면서 변수를 추가하거나 혹은 제거하는 방식으로 최적의 회귀방정식 도출
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;전진선택법, 후진제거법, 단계선택법 등
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;전진선택법 forward selection
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 독립변수 가운데 기준 통계치에 가장 많은 영향을 줄 것으로 판단되는 변수부터 하나씩 추가하며 모형 선택&lt;/li&gt;
&lt;li&gt;변수의 개수가 많을 때 사용할 수 있지만 변숫값이 조금만 변해도 결과에 큰 영향을 미치기 때문에 안정성이 부족&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;후진제거법 backward elmination
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;독립변수를 모두 포함해 가장 적은 영향을 주는 변수부터 하나씩 제거&lt;/li&gt;
&lt;li&gt;전체 변수 정보를 이용한다는 장점&amp;nbsp;&lt;/li&gt;
&lt;li&gt;변수의 개수가 너무 많은 경우 적용하기 어렵다는 단점&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;단계별 방법 stepwise method
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;전진선택법과 후진제거법 보완&lt;/li&gt;
&lt;li&gt;전진선택법에 의해 변수를 추가하면서 추가될 때 예상되는 벌점 값과 이미 추가된 변수가 제거될 때 예상되는 벌점 값이 가장 작도록 만들어 나가는 방법&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;변수 선택에 사용되는 성능지표
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;벌점화(penalty: 페널티) 방식의 AIC와 BIC
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;변수의 수가 증가할수록 bias는 작아지고 variance는 커지려는 경향&lt;/li&gt;
&lt;li&gt;변수의 수가 많아 복잡해진 모형에 벌점, 즉 일종의 페널티를 주어 최적 회귀방정식 도출&lt;/li&gt;
&lt;li&gt;결과적으로 페널티가 적은 회귀모형이 좋은 회귀모형&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;AIC(Akaike Information Criteria: 아카이케 정보 기준)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;MSE에 변수 수만큼 페널티 주는 지표&lt;/li&gt;
&lt;li&gt;일반적으로 회귀분석에서 Model Selection할 때 많이 쓰이는 지표&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;BIC(Bayes Information Criteria: 베이즈 정보 기준)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;AIC의 단점인, 표본(n)이 커질 때 부정확하다는 단점을 보완한 지표&lt;/li&gt;
&lt;li&gt;표본이 커질 경우 좀 더 정확한 결과&lt;/li&gt;
&lt;li&gt;변수의 개수가 많을수록 AIC보다 더 큰 페널티를 주기 때문에 변수의 개수가 적은 모형이 우선이라면 BIC 참고 권장&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;멜로우 Cp(Mallow's Cp)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;최소자승법으로 사용해 추정된 회구모형의 적합성 평가&lt;/li&gt;
&lt;li&gt;Cp값은 수정된 결정계수 및 AIC와 밀접한 관련&lt;/li&gt;
&lt;li&gt;모든 변수가 다 포함될 경우에 p값과 같아짐. 나쁜 모델을 Cp값이 p값보다 클 때이며 좋은 모델은 최소한 p값보다 작을 때&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;고급 회귀분석
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;과적합; 모델이 학습 데이터를 과하게 학습&lt;/li&gt;
&lt;li&gt;정규화 선형회귀; 회귀분석에서 과적합되면 계수의 크기도 과도하게 증가. 이를 방지하기 위해 계수의 크기를 제한
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;라쏘 Lasso Regression
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;L1 규제. 가중치들의 절댓값의 합을 최소화하는 것을 제약조건으로 추가&lt;/li&gt;
&lt;li&gt;몇 개의 의미 있는 변수만 분석에 포함시키고 싶을 때 효과적&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;릿지 Ridge Regression
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;L2 규제. 가중치들의 제곱합을 최소화하는 것을 제약조건으로 추가&lt;/li&gt;
&lt;li&gt;매우 크거나 작은 이상치의 가중치를 0에 가깝게 유도함으로써 선형 모델의 일반화 성능 개선에 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Elastic Net
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;라쏘와 릿지 결합&lt;/li&gt;
&lt;li&gt;가중치의 절댓값의 합과 제곱합을 동시에 제약조건으로 가짐.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;일반화 선형회귀(GLM, Generalized Linear Regression)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;종속변수가 정규분포를 따른다는 정규성을 전제로.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;회귀분석을 하고 싶지만 종속변수가 범주형 자료이거나 정규성을 만족하지 못한느 경우 그 종속변수를 적절한 함수 f(x)로 정의한 다음, 이 함수 f(x)와 독립변수를 선형 결합해 회귀분석 수행&lt;/li&gt;
&lt;li&gt;구성 요소
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;확률 요소 Random Component: 종속변수의 확률분포 규정&lt;/li&gt;
&lt;li&gt;선형 예측자 Linear Predictor: 종속변수의 기댓값을 정의하는 독립변수들 간의 선형 결합&lt;/li&gt;
&lt;li&gt;연결 함수 Link function: 확률 요소와 선형예측자를 연결&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;종류
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;로지스틱 회귀
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;종속변수가 범주형&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;포아송 회귀
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;종속변수가 특정 시간동안 발생한 사건의 건수에 대한 도수 자료인 경우&lt;/li&gt;
&lt;li&gt;종속변수가 정규분포를 따르지 않거나 등분산성을 만족하지 못하는 경우에 포아송 회귀분석 사용&lt;/li&gt;
&lt;li&gt;선형회귀모형이 최소제곱법으로 모수를 추정한다면 포아송 회귀모형은 MLE(최대 가능도 추정)을 통해 모수 추정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;더빈 왓슨(Durbin-Watson) 검정
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;오차항의 상관관계를 갖는 경우; 대부분 시계열 데이터&lt;/li&gt;
&lt;li&gt;회귀분석에 있어서 오차항이 서로 연관성이 없어야 함. 오차항의 공분산은 0. 만약 자기 상관성이 있다면 회귀분석이 아니라 시계열 분석이나 다른 분석방법 수행&lt;/li&gt;
&lt;li&gt;회귀분석에 있어 이러한 자기상관성이 존재하는지(오차항이 독립성을 만족하는지=오차항이 서로 연관성이 없는지) 검정하는 방법&lt;/li&gt;
&lt;li&gt;통계량 값이 2에 가까울수록 오차항의 자기상관이 없음 의미.&lt;/li&gt;
&lt;li&gt;0에 가깝다면 양의 상관관계, 4에 가깝다면 음의 상관관계로 판단.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;다변량&amp;nbsp;분석&lt;/h3&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;1. 다차원 척도법&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;개체 간 근접성을 시각화하는 통계기법&lt;/li&gt;
&lt;li&gt;군집분석과 유사&lt;/li&gt;
&lt;li&gt;객체들 사이에 유사성 혹은 비유사성을 측정해 원래의 차원보다 낮은 차원의 공간에 군집분석처럼 점으로 표현&lt;/li&gt;
&lt;li&gt;데이터 축소 목적으로 사용. 데이터들의 유사성 혹은 비유사성과 같은 데이터들의 정보 속성을 파악하기 위한 수단으로도 활용&lt;/li&gt;
&lt;li&gt;객체들 간 거리는 유클리디안 거리행렬 사용해 계산&lt;/li&gt;
&lt;li&gt;stress 척도 사용, 0~1 사이 값을 가지며, 그 값이 낮을수록 적합도가 높다고 평가&lt;/li&gt;
&lt;li&gt;종류&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style8&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;계량적 MDS&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;비계량적 MDS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;구간척도, 비율척도&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;서열척도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;유클리디안 거리 행렬&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;서열척도를 거리속성값으로 변환해 사용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;R에서 'cmdscale' 함수 사용&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;R에서 'isoMDS' 함수 사용&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;2. 주성분 분석&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여러 개의 변수 중 서로 상관성 높은 변수들의 선형 결합으로 새로운 변수(주성분)를 만들어 기존 변수를 요약 및 축소하는 분석 방법&lt;/li&gt;
&lt;li&gt;목적
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;변수 축소해 모형의 설명력 높임.&lt;/li&gt;
&lt;li&gt;다중공선성 문제 해결&lt;/li&gt;
&lt;li&gt;군집분석 시 모형의 성능 높일 수 있음.&lt;/li&gt;
&lt;li&gt;IoT 센서 데이터를 주성분분석 후 스마트팩토리에 활용&lt;/li&gt;
&lt;li&gt;주성분분석 시 선형변환이 필요&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;고윳값이란 고유 벡터의 크기를 의미하며 해당 값이 클수록 높은 설명력 가짐.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;주성분분석
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;scree plot: x축을 성분의 개수, y축을 고윳값(eigenvalue)으로 하는 그래프로 주성분의 개수를 선택하는 데 도움&lt;/li&gt;
&lt;li&gt;biplot: 첫 번째 주성분과 두 번째 주성분을 축으로 하느 그래프
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다차원 척도법과 같이 주성분분석의 결과로 데이터가 어떻게 퍼져 있는지 시각화&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;차원의 저주&lt;br /&gt;: 고차원의 데이터일수록 데이터에 대한 설명력이 좋아질 것으로 생각하지만, 그것은 데이터가 충분히 많은 경우에만 해당하며, 그렇지 않은 경우에는 데이터 사이의 밀도가 감소하게 됨. 따라서 불충분한 데이터 수에 어울리지 않는 고차원의 데이터는 설명에 있어서 근거가 부족해지며 구축된 모델의 성능에 부정적 결과를 가져옴.&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;시계열 분석&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;일정 시간 간격으로 기록된 자료들에 대하여 특성을 파악하고 미래를 예측하는 분석 방법&lt;/li&gt;
&lt;li&gt;가까운 미래에 있을 날씨 예측, 주식 예측, 판매 예측 등의 목적으로 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;시계열 자료의 자기상관성&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주식이나 기온 등의 시계열 자료들은 자기상관성을 가지고 있다. 서로 이웃하는 자료들끼리 일종의 상관관계를 가진다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;공분산; 두 개의 확률 변수의 선형관계
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;하나의 확률변수 증감에 따른 다른 확률 변수의 증감 경향에 대한 측도&lt;/li&gt;
&lt;li&gt;공분산이 시계열 분석에서 중요한 이유는 바로 시계열 자료의 자기상관성 때문; 확률변수의 흩어짐 정도를 의미하는 공분산이 어느 정도인지, 다시 말해 어느 정도 상관성을 갖는기 중요&lt;/li&gt;
&lt;li&gt;공분산이 0이면 자기상관성이 없는 독립적인 확률변수로 봐야함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;시계열 분석의 자료&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정상성 시계열 자료와 비정상성 시계열 자료로 구분되는데, 대부분은 비정상성 시계열 자료&lt;/li&gt;
&lt;li&gt;정상성; 평균이 일정한 것, 분산이 시점에 의존하지 않을 것 등의 일정한 조건을 요구. 자료가 대부분 비정상성이므로 이를 정상성 시계열 자료로 변환해야 함.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;시계열 자료의 정상성 조건&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;일정한 평균&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 시점에 대하여 평균이 일정해야 한다. 그렇지 않으면 차분을 통해 정상화&lt;/li&gt;
&lt;li&gt;차분; 현 시점의 자료 값에서 전 시점의 자료 값을 빼는 것
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;만약 연중 기온 예측과 같이 계절적 주기가 있는 경우, 여러 시점 전의 자료 값을 빼는 계절 차분 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;일정한 분산&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 시점에 대하여 분산이 일정해야 한다. 그렇지 않다면 변환을 통해 정상화&lt;/li&gt;
&lt;li&gt;자료 값에 지수 혹은 로그를 취해 변환해 시간에 따라 변하는 분산의 크기를 안정시킬 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;시차에만 의존하는 공분산&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;공분산은 다시 시차에만 의존하고 특정 시점에 의존하지 않는다.&lt;/li&gt;
&lt;li&gt;t는 시점, s는 시차라고 했을 때, 't시점과 t+s시점의 공분산'과 't시점과 t-s시점의 공분산'은 서로 같다.&lt;/li&gt;
&lt;li&gt;특정한 시간의 관점을 '시점', 시점과 시점 간의 차이를 '시차'라고 한다.&lt;/li&gt;
&lt;li&gt;공분산이 특정 시점에 의존하지 않는다 : 't시점과 t+s시점의 공분산'과 't시점과 t-s시점의 공분산'은 서로 같다는 의미&lt;/li&gt;
&lt;li&gt;시차 즉, 시점과 시점 간의 차이에 따라 공분산 값은 다를 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;자기상관계수&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(ACF; Autocorrelation Function)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시계열 분석에서 자기상관계수는 시간의 흐름에 따른 자기상관관계를 나타낸다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;시간의 흐름에 따른 변수 간의 상관관계 변화&lt;/li&gt;
&lt;li&gt;만약 시계열 자료가 시간의 흐름에 따라 일정한 패턴을 보인다면 그것은 바로 변수들이 자기상관성을 갖고 있기 때문.&lt;/li&gt;
&lt;li&gt;시계열 분석에서는 자기상관함수를 시계열 자료가 시간에 의존하지 않고 무작위성을 띠는지 확인하는 데 사용
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;만약 시계열 데이터가 무작위성을 띠지 않는다면 시계열 분석을 통한 미래 시점의 예측도 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;자기상관함수는 특정 시점 t에서의 값과 t로부터 t만큼의 시차를 갖는 t+1 시점에서의 값의 상관계수(자기상관계수)를 나타내는 함수&lt;/li&gt;
&lt;li&gt;자기상관함수는 시차 l을 x축으로, 상관계수를 y축으로 하는 그래프로 표현 가능. 시차 l=0인 경우, 자신관의 상관계수를 의미하며, 항상 1. 일반적으로 자기상관계수는 시차가 증가하면서 자기상관계수 값이 감소&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;부분자기상관계수 PACF; Partial Autocorrelation Function&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;두 시계열 확률 변수 간에 다른 시점의 확률변수 영향력은 통제하고 상관관계만 보여준다.&lt;/li&gt;
&lt;li&gt;두 시계열 확률변수의 상관관계를 알아보려고 할 때. 그에 영향을 주는 요소들을 제외하고 오로지 둘 사이의 상관관계만을 고려할 때 부분자기상관계수를 이용한다는 것&lt;/li&gt;
&lt;li&gt;부분자기상관계수는 시점 t와 시차 l을 갖는 t+l 시점 사이에 존재하는 l-1개의 자료값이 자기상관계수에 미치는 영향을 제거한 상관계수. 일반적으로 특정 시점 이후 급격히 감소&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;시계열 분석 기법&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;이동평균법&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시계열 데이터에서 일정 기간별로 자료를 묶어 평균을 구하는 방법&lt;/li&gt;
&lt;li&gt;시간이 지남에 따라 평균 계산에 포함되는 자료가 바뀌기 때문에 이동평균법이라고 한다.&lt;/li&gt;
&lt;li&gt;변동이 많은 시계열 데이터의 평균을 구함으로써 여러 요인으로 인한 변동을 없앨 수 있다.&lt;/li&gt;
&lt;li&gt;장기적 추세를 파악하는 데 효율적이나 모든 시점에 대해서 동일한 가중치를 주고 있기 때문에 최근의 자료가 더 많은 정보를 간직한다고 볼 수 있는 일반적인 견해에 어긋난다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;지수평활법&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이런 문제점을 해결하기 위해 사용하는 방법&lt;/li&gt;
&lt;li&gt;최근 자료가 과거 자료보다 예측에 효과적이라는 가정하에 최근 데이터일수록 큰 가중치를 부여하고, 오래된 데이터일수록 작은 비중을 부여하는 방식을 사용해 평균을 계산&lt;/li&gt;
&lt;li&gt;자료의 수가 많고 자료가 안정된 패턴을 보이는 경우 예측 품질이 높으며, 불규칙변동의 영향을 제거할 수 있으므로 중장기 예측에 주로 사용된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;시계열 모형&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;자기회귀(AR: Autoregressive) 모형&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시계열 자료를 설명하기 위한 모형 중 하나&lt;/li&gt;
&lt;li&gt;t라는 시점에서의 값 yt는 이전 시점들 n개에 의해 설명될 수 있음을 의미&lt;/li&gt;
&lt;li&gt;특정 시점 t로부터 k번째 이전 시점들은 각각의 다른 가중치 값을 가지고 있다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;AR(n) 모형을 사용하기 위한 적절한 n의 값을 결정하기 위해서는 부분자기상관함술르 사용한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;백색잡음&lt;br /&gt;- 시계열 자료는 과거의 시점이 현재의 시점에 영향을 미치기 때문에 이전 시점과 현재 시점 사이의 상관관계가 존재. 그러나 현재의 시점이 이전 시점과의 상관관계가 존재하지 않는, 즉 공분산과 자기공분산이 모두 0인 시계열 자료를 백색잡음이라 한다.&lt;br /&gt;- 백색잡음이 정규분포를 따를 경우 가우시간 백색잡음이라고 한다.&amp;nbsp;&lt;br /&gt;- 평균이 0인 경우, 시계열 모형에서 오차항이 될 수 있다.&lt;/blockquote&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;이동평균(MA: Moving Average) 모형&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자기회귀모형이 이전 시점들의 자료값들에 의한 선형 결합이라면 이동평균모형은 이전 시점의 백색 잡음들의 선형 결합으로 표현할 수 있다.&lt;/li&gt;
&lt;li&gt;백색잡음들의 선형 결합으로 이루어져 있기 때문에 항상 정상성을 만족하는 모형&lt;/li&gt;
&lt;li&gt;MA(n) 모형을 사용하기 위한 적절한 n의 값을 결정하기 위해서는 자기상관함수를 사용한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;자기회귀누적이동평균 모형&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자기회귀누적이동평균(ARIMA: Autoregressive Integrated Moving Average) 모형은 비정상 시계열 자료를 다룰 수 있는 모형으로 현실에 존재하는 대부분의 시계열 자료를 설명 할 수 있다.&lt;/li&gt;
&lt;li&gt;비정상 시계열이기 때문에 차분이나 변환을 통해 정상화할 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;분해 시계열&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시계열은 추세요인, 계절요인, 순환요인, 불규칙요인 등으로 구성되며, 이들 요인이 서로 복잡하게 혼합되어 하나의 시계열 데이터를 구성한다.&lt;/li&gt;
&lt;li&gt;분석 목적에 따라 특정 요인만 분리해 분석하거나 제거하는 작업을 하게 되는데, 이를 분해 시계열이라고 한다.&lt;/li&gt;
&lt;li&gt;주로 회귀분석과 함께 사용&lt;/li&gt;
&lt;li&gt;추세요인(Trend), 계절요인(Seasonal), 순환요인(Cyclical), 불규칙요인(Irregular)의 4가지 요인으로 구성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;추세요인; 인구의 증가, 기술의 변화 등과 같은 요인에 의해 장기간 일정 방향으로 상승 또는 하락하는 경향을 보이는 요인, 급격한 충격이 없는 한 지속되는 특징&lt;/li&gt;
&lt;li&gt;순환요인; 정확히 알려진 이유가 없고 주기 일정하지 않은 변동, 보통 추세선을 따라 상하로 반복 운동하는 형태&lt;/li&gt;
&lt;li&gt;계절요인; 일정한 주기를 갖는 상하 반복의 규칙적인 변동&lt;/li&gt;
&lt;li&gt;불규칙요인; 위의 3가지 요인으로 설명하지 못하는 오차에 해당하는 요인&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>ADSP</category>
      <author>bye0nzn</author>
      <guid isPermaLink="true">https://bye0nzn.tistory.com/467</guid>
      <comments>https://bye0nzn.tistory.com/467#entry467comment</comments>
      <pubDate>Tue, 5 May 2026 14:38:08 +0900</pubDate>
    </item>
    <item>
      <title>[3과목] R 기초와 데이터 마트</title>
      <link>https://bye0nzn.tistory.com/466</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;RStudio 기본 구성&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;R 스크립트 창: 명령문 작성하여 원하는 라인, 원하는 블록 단위로 문장 실행 가능&lt;/li&gt;
&lt;li&gt;콘솔 창: R 스크립트 창과 같이 명령문을 작성하고 실행할 수 있으며, 명령문에 의해 발생한 오류, 결과 등 확인&lt;/li&gt;
&lt;li&gt;환경과 히스토리: 환경 창에서는 명령문을 통해 생성된 변수, 불러온 데이터, 생성된 함수 등의 개요를 볼 수 있으며, 히스토리 창에서는 그동안 실행된 과거 명령문을 볼 수 있다.&lt;/li&gt;
&lt;li&gt;기타(파일, 산점도, 패키지, 도움말, 기타 뷰어): 현재 작업 디렉토리에 존쟇는 파일, 현재 호출되어 있는 패키지, 산점도 같은 시각화 데이터, 도움말 등을 볼 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;R 데이터 타입&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;문자형 타입: character&lt;/li&gt;
&lt;li&gt;숫자형 타입: numeric&lt;/li&gt;
&lt;li&gt;논리형 타입: logical&lt;/li&gt;
&lt;li&gt;NAN: Not a Number 숫자가 아님&lt;/li&gt;
&lt;li&gt;NA(공간 차지o), NULL(공간 차지x): 결측값&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;R 데이터 구조&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;벡터: 타입이 같은 여러 데이터를 하나의 행으로 저장한느 1차원 데이터 구조
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;'연결한다'라는 의미의 'concatenate'의 c를 써서 데이터 묶을 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;행렬: 2차원 구조를 가진 벡터
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;행렬에 저장된 모든 데이터는 같은 타입이어야 한다.&lt;/li&gt;
&lt;li&gt;그렇지 못할 경우 자동으로 타입 변환을 수행한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;배열: 3차원 이상의 구조를 갖는 벡터
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;배열 또한 벡터의 성질을 갖고 있으므로 하나의 배열에 포함된 데이터는 모두 같은 타입이어야 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;리스트: 데이터 타입, 데이터 구조에 상관없이 사용자가 원하는 모든 것을 저장할 수 있는 자료구조
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;리스트는 성분 간에 이질적인 특성을 가지고 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;데이터프레임: 데이터 분석을 위한 2차원 구조를 갖는 관계형 데이터 구조
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;관계형 데이터 구조&lt;/li&gt;
&lt;li&gt;행렬과 같은 모양을 갖지만 여러 개의 벡터로 구성되어 있기 때문에 각 열은 서로 다른 타입의 데이터를 가질 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;R 내장 함수&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기본 함수
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;help() 또는 ? : 함수들의 도움말&lt;/li&gt;
&lt;li&gt;paste(): 문자열 이어 붙임.&lt;/li&gt;
&lt;li&gt;seq(): 시작값, 끝값, 간격으로 수열 생성&lt;/li&gt;
&lt;li&gt;rep(): 주어진 데이터를 일정 횟수만큼 반복&lt;/li&gt;
&lt;li&gt;rm(): 대입 연산자에 의해 생성된 변수 삭제&lt;/li&gt;
&lt;li&gt;ls(): 현재 생성된 변수들의 리스트 보여줌.&lt;/li&gt;
&lt;li&gt;print(): 값을 콘솔창에 출력&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;통계 함수
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;sum, mean, median, var, sd, max, min&lt;/li&gt;
&lt;li&gt;range: 입력된 값의 최댓값과 최솟값을 구한다.&lt;/li&gt;
&lt;li&gt;summary: 입력된 값의 요약값을 구한다.&lt;/li&gt;
&lt;li&gt;skewness: 입력된 값의 왜도를 구한다&lt;/li&gt;
&lt;li&gt;kurtosis: 입력된 값의 첨도를 구한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;R 데이터 핸들링&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 이름 변경: colnames와 rownames 함수 사용해 행과 열의 이름 알 수 있음.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;데이터 추출: 대괄호 기호를 사용해 원하는 위치의 데이터 얻을 수 있음.&lt;/li&gt;
&lt;li&gt;데이터 결합: 행으로 결합하는 rbind와 열로 결합하는 cbind&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;통계분석에 자주 사용되는 R 함수&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;숫자 연산
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;sqrt, abs, exp, log, log10, pi&lt;/li&gt;
&lt;li&gt;round: 주어진 수의 반올림 값&lt;/li&gt;
&lt;li&gt;ceiling, floor&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;문자 연산
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;tolower: 주어진 문자열을 소문자로&lt;/li&gt;
&lt;li&gt;toupper: 주어진 문자열을 대문자로&lt;/li&gt;
&lt;li&gt;nchar: 주어진 문자열의 길이&lt;/li&gt;
&lt;li&gt;substr: 문자열 일부분 추출&lt;/li&gt;
&lt;li&gt;strsplit: 문자열을 구분자로 나누어 쪼갠다.&lt;/li&gt;
&lt;li&gt;grepl: 문자열에 주어진 문자가 있는지 확인&lt;/li&gt;
&lt;li&gt;gsub: 문자열의 일부분을 다른 문자로 대체&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;벡터 연산
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;length: 주어진 벡터의 길이&lt;/li&gt;
&lt;li&gt;paste: 주어진 벡터를 구분자 기준으로 결합&lt;/li&gt;
&lt;li&gt;cov: 두 수치 벡터의 공분산&lt;/li&gt;
&lt;li&gt;cor: 두 수치 벡터의 상관계수&lt;/li&gt;
&lt;li&gt;table: 데이터의 개수들&lt;/li&gt;
&lt;li&gt;order: 벡터의 순서&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;행렬 연산
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;t: 전치 행렬&lt;/li&gt;
&lt;li&gt;diag: 대각 행렬&lt;/li&gt;
&lt;li&gt;%*%: 두 행렬을 곱한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;데이터 탐색
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;head: 데이터의 앞 일부분&lt;/li&gt;
&lt;li&gt;tail: 데이터의 뒤 일부분&lt;/li&gt;
&lt;li&gt;quantile: 수치 벡터의 4분위수&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;데이터 전처리
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;subset: 데이터에서 조건식에 맞는 데이터 추출&lt;/li&gt;
&lt;li&gt;merge: 두 데이터를 특정 공통된 열을 기준으로 병합&lt;/li&gt;
&lt;li&gt;apply: 데이터에 열(또는 행)별로 주어진 함수 적용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;정규분포
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;dnorm: 정규 분포의 주어진 값에서 함수 값&lt;/li&gt;
&lt;li&gt;rnorm: 정규 분포에서 주어진 개수만큼 표본을 추출&lt;/li&gt;
&lt;li&gt;pnorm: 정규 분포에서 주어진 값보다 작을 확률 값&lt;/li&gt;
&lt;li&gt;qnorm: 정규 분포에서 주어진 넓이 값을 갖는 x값&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;표본추출
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;runif: 균일 분포에서 주어진 개수만큼 표본을 추출&lt;/li&gt;
&lt;li&gt;sample: 주어진 데이터에서 주어진 개수만큼 표본 추출&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;날짜
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Sys.Date: 연, 월, 일&lt;/li&gt;
&lt;li&gt;Sys.time: 연, 월, 일, 시간&lt;/li&gt;
&lt;li&gt;as.Date: 주어진 데이털르 날짜 형식으로 변환&lt;/li&gt;
&lt;li&gt;format: 원하는 날짜 형식으로 변경&lt;/li&gt;
&lt;li&gt;as.POSIXct: 타임스탬프를 날짜 및 시간으로 변환&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;산점도
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;plot: 주어진 데이터의 산점도&lt;/li&gt;
&lt;li&gt;abline: 산점도에 추가 직선&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;파일 읽기 쓰기
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;read.csv: CSV 파일 불러온다.&lt;/li&gt;
&lt;li&gt;write.csv: 주어진 데이터를 CSV 파일로 저장&lt;/li&gt;
&lt;li&gt;saveRDS: 분석 모델 및 R 파일을 저장&lt;/li&gt;
&lt;li&gt;readRDS: 분석 모델 및 R 파일을 불러온다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;기타
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;install.packages&lt;/li&gt;
&lt;li&gt;library&lt;/li&gt;
&lt;li&gt;getwd: 작업 디렉터리 확인&lt;/li&gt;
&lt;li&gt;setwd: 작업 디렉터리 설정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;데이터 마트&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;여러 곳에 흩어진 데이터를 수집한 뒤 이용자의 목적에 맞게 구성된 데이터 집합&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 웨어하우스로부터 특정 사용자가 관심을 갖는 데이터들을 주제별, 부서별로 추출하여 모은 비교적 작은 규모의 데이터 웨어하우스&lt;/li&gt;
&lt;li&gt;분석 목적별, 주제별, 부서별로 데이터를 수집하고 변형해 한 곳에 모으는 작업&amp;nbsp;&amp;rarr; 데이터 마트 개발&lt;/li&gt;
&lt;li&gt;데이터 전처리
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터를 정제(cleansing)하는 과정과 분석 변수를 처리하는 과정 포함
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 정제 과정; 결측값과 이상값을 처리하는 내용&lt;/li&gt;
&lt;li&gt;분석 변수 처리 과정; 변수 선택, 차원 축소, 파생변수 생성, 변수 변환, 클래스 불균형(불균형 데이터 처리) 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;데이터 마트 개발을 위한 R 패키지 활용&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;reshape 패키지
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;20개에 가까운 함수들 보유하고 있으며, 데이터 마트 개발에 강력한 melt와 cast라는 두 개의 함수
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;melt 함수: 데이터를 특정 변수를 기준으로 녹여서 나머지 변수에 대한 세분화된 데이터를 만들 수 있다.&lt;/li&gt;
&lt;li&gt;cast 함수: melt에 의해 녹은 데이터를 요약을 위해 새롭게 가공&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;sqldf 패키지
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;표준 SQL 문장을 활용하여 R에서 데이터프레임을 다루는 것을 가능하게 해주는 패키지&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;plyr 패키지
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;apply 함수를 기반으로 데이터를 분리하고 다시 결합하는 가장 필수적인 데이터 처리 기능을 제공&lt;/li&gt;
&lt;li&gt;입력되는 데이터 구조와 출력되는 데이터 구조에 따라 여러 가지 함수를 지원&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;data.table 패키지
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터프레임과 유사하지만 특정 칼럼별로 주솟값을 갖는 인덱스를 생성하여 연산 및 검색을 빠르게 수행할 수 있는 데이터 구조&lt;/li&gt;
&lt;li&gt;기존 데이터프레임보다 적게는 4배~크게는 100배에 가까운 빠르 속도로 데이터를 탐색, 연산, 정렬, 병합할 수 있게 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;결측값 처리와 이상값 탐색&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;탐색적 데이터 분석(EDA)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이털르 이해하고 의미 있는 관계를 찾아내기 위해 데이터의 통곗값과 분포 등을 시각화하고 분석하는 것&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;결측값
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;존재하지 않는 데이터&lt;/li&gt;
&lt;li&gt;NA로 표현하지만 데이터를 수집하는 환경에 따라 null, 공백, -1 등 다양하게 표현 가능&lt;/li&gt;
&lt;li&gt;결측값 처리를 위한 대표적 패키지; Amelia, DMwR2, mice, VIM 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;결측값 대치 방법
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;완전 분석법
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;결측값이 존재하는 데이터를 삭제하는 방법&lt;/li&gt;
&lt;li&gt;가장 쉬운 결측값 처리 방법이지만 결측값이 많은 경우 대량의 데이터 손실 발생 가능&lt;/li&gt;
&lt;li&gt;완전 분석법을 위한 함수로 complete.cases 함수&lt;/li&gt;
&lt;li&gt;complete.cases는 하나의 열에 결측값이 존재하면 FALSE, 존재하지 않으면 TRUE 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;평균 대치법
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;관측 또는 실험으로 얻은 데이터를 대표할 수 있는 평균 혹은 중앙값으로 결측값을 대치하여 불완전 자료를 완전 자료로 만드는 방법&lt;/li&gt;
&lt;li&gt;비조건부 평균 대치법; 데이터의 평균값으로 결측값을 대치&lt;/li&gt;
&lt;li&gt;조건부 평균 대치법; 실제 값들을 분석해 회귀분석을 활용하는 대치 방법&lt;/li&gt;
&lt;li&gt;평균값 혹은 중앙값을 직접 구하여 결측값을 대치해도 되지만 mice 패키지를 사용해 쉽게 대치 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;단순 확률 대치법
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;평균 대치법에서 추정량 표준 오차의 과소 추정 문제를 보완하고자 고안된 방법&lt;/li&gt;
&lt;li&gt;대표적; K-Nearest Neighbor 방법
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;K 최근접 이웃 알고리즘&lt;/li&gt;
&lt;li&gt;주변 K개의 데이터 중 가장 많은 데이터로 대치하는 방법&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;다중 대치법
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여러 번의 대치를 통해 n개의 임의 완전자료를 만드는 방법&lt;/li&gt;
&lt;li&gt;결측값 대치, 분석, 결합의 세 단계로 구성&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;이상값
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;값이 존재하지 않는 결측값과 달리 다른 데이터와 비교하였을 때 극단적으로 크거나 작은 값&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;이상값 판단
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ESD(Extreme Studentized Deviation)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;평균으로부터 '표준편차 3'만큼 떨어진 값들을 이상값으로 인식하는 방법&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;사분위수
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Q1과 Q3을 활용해 이상치를 판단하는 방법&lt;/li&gt;
&lt;li&gt;Q1 - 1.5 x IQR보다 작거나 Q3 + 1.5 x IQR보다 큰 값은 이상값으로 간주&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>ADSP</category>
      <author>bye0nzn</author>
      <guid isPermaLink="true">https://bye0nzn.tistory.com/466</guid>
      <comments>https://bye0nzn.tistory.com/466#entry466comment</comments>
      <pubDate>Sun, 3 May 2026 12:55:24 +0900</pubDate>
    </item>
    <item>
      <title>[논문 분석] A school bus scheduling problem</title>
      <link>https://bye0nzn.tistory.com/465</link>
      <description>&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;Abstract&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 논문은 각 학교에 대해 trip이 주어지는 학교 버스 스케줄링 문제를 다룬다. 각 trip은 여러 개의 버스 정류장과 해당 trip이 도착해야 하는 학교로 구성된다. 각 학교는 trip이 완료되어야 하는 &lt;b&gt;고정된 시간 창(time window)&lt;/b&gt;을 가지고 있다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;하나의 학교 버스는 여러 학교의 여러 trip을 수행할 수 있다. 학교 버스 스케줄링 문제의 목표는 주어진 모든 trip을 학교의 시간 제약을 만족하도록 배정하면서, &lt;b&gt;버스 운행 스케줄을 최적화하는 것&lt;/b&gt;이다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;본 논문에서는 각 trip을 하나의 가상 정류장(virtual stop)으로 간주하여 문제를 Vehicle Routing Problem with Time Windows(VRPTW)로 모델링한다. 또한, 특정한 경우에 대해 두 가지 Assignment Problem 기반의 정확한 해법을 제안하고, 보다 일반적인 경우를 위해 하나의 휴리스틱 알고리즘을 제안한다. 마지막으로 benchmark 문제들과 계산 실험을 통해 제안한 방법들의 성능을 평가하며, 실험 결과는 제안된 접근법의 효과성을 보여준다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;1. Introduction&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;830&quot; data-origin-height=&quot;311&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Q7Noe/dJMcadu2HCi/vGU5yoH8yorL0mJJeOPv30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Q7Noe/dJMcadu2HCi/vGU5yoH8yorL0mJJeOPv30/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Q7Noe/dJMcadu2HCi/vGU5yoH8yorL0mJJeOPv30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQ7Noe%2FdJMcadu2HCi%2FvGU5yoH8yorL0mJJeOPv30%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;830&quot; height=&quot;311&quot; data-origin-width=&quot;830&quot; data-origin-height=&quot;311&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Fig.1은 학교 버스 스케줄링 문제의 예시를 보여준다.&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ti: 여러 정류장과 목적 학교로 구성된 trip&lt;/li&gt;
&lt;li&gt;sm: 하나의 학교&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;해당 그림에서는 학교 sa, sb, sc에 대해 각각 3개, 3개, 4개의 trip이 존재한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;각 학교 m에 대해 [sm_st, sm_et]를 해당 학교의 시간 창이라고 하자.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;각 학교에 다니는 모든 학생들은 이 시간 창(등교 시간) 내에 도착해야 한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;두개의 trip이 버스 용량 제약과 각 학교의 시간 제약을 위반하지 않는다면, 하나의 버스가 이 두 trip을 연속으로 수행할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Fig.2는 Fig.1 문제의 하나의 해를 보여준다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;{t2, t6, t9}, {t1, t4, t8}, {t3, t7}, {t5, t10}은 각각 버스 1,2,3,4에 의해 수행된다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;또한 sa_et &amp;le; sb_st, sb_et &amp;le; sc_st가 성립한다고 가정한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;본 논문에서는 먼저 각 trip을 하나의 가상 정류장(virtual stop)으로 간주하여 문제를 Vehicle Routing Problem with Time Windows(VRPTW)로 모델링한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;그러나 이 VRPTW는 원래 문제의 비대칭성 asymmetric nature 때문에 일반적인 VRPTW와는 다른 특성을 가진다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;학교들의 시간 창이 서로 충분히 떨어져 있고, 각 trip의 서비스 시간에 비해 시간 창의 폭이 크지 않기 때문에, 두 trip을 같은 버스가 수행할 수 있는 경우 그 수행 순서는 사실상 고정된다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;즉, 하나의 trip 뒤에 다른 trip이 이어질 수 있다면 그 반대 순서는 불가능하다고 가정한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;또한, 본 논문은 다음과 같은 특수한 경우를 보인다:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;trip의 시작/종료 시간이 고정되어 있고&lt;/li&gt;
&lt;li&gt;버스가 동일한 성능을 갖는 homogeneous fleet인 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 문제는 Assignment Problem으로 모델링 가능하며 쉽게 해결할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이후&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;homogeneous fleet을 가정한 일반적인 경우에 대해 assignment problem 기반 branch-and-bound 방법을 제안&lt;/li&gt;
&lt;li&gt;heterogeneous fleet (버스가 서로 다른 경우)에 대해서는 휴리스틱 알고리즘을 제안&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;마지막으로 계산 실험을 통해 제안된 방법들의 효과성 검증한다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;2. Literature Review&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;학교 버스 routing 문제는 크게 3가지 하위 문제로 구성된다:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;버스 정류장 선택 bus stop selection&lt;/li&gt;
&lt;li&gt;각 학교별 경로(또는 trip) 생성&lt;/li&gt;
&lt;li&gt;버스 스케줄링 문제&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;본 절에서는 이 중 버스 스케줄링 문제에 초점을 둔다. 일반적인 학교 버스 routing 문제에 대한 자세한 설명과 관련 연구는 Park and Kim (2010)에 정리되어 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;버스 스케줄링 문제는 각 경로의 정확한 시작 및 종료 시간을 결정하고, 하나의 버스가 연속적으로 수행할 수 있는 trip들의 체인 chain을 구성하는 것을 의미한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Gavish et al. (1987)은 trip의 시작 및 종료 시간이 주어진 버스 스케줄링 문제를 다루었으며, 이를 수송 문제(Transportation Problem, TP)로 모델링하였다. Orloff (1976)와 Carraresi and Gallo (1984)는 동일한 문제를 다루었지만, 이를 Assignment Problem(AP)으로 모델링하였다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Lobel (1998a,b)은 대중교통에서의 다중 차고 차량 스케줄링 문제 MDVSP를 연구하였다. 이 문제는 서로 다른 버스를 사용하는 학교 버스 스케줄링 문제와 유사하다.&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각 차량은 특정 depot에 속함.&lt;/li&gt;
&lt;li&gt;반드시 해당 depot에서 출발하고 다시 돌아와야 함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 문제는 multi-commodity flow problem으로 모델링되었고, trip의 시간표가 주어져도 NP-complete임이 증명되었다. 또한 해결 방법으로 column generation 기법이 제안되었다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;하지만 본 논문에서 다루는 문제는 depot에서 출발/복귀해야 한다는 제약이 없다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Hadjar et al. (2006)은 MDVSP에 대해 branch-and-price-and-cut 알고리즘을 제안하였고, Pepin et al. (2009)은 여러 휴리스틱 및 메타휴리스틱 방법을 비교하였다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Desaulniers et al. (1998)은 시간 창이 있는 다중 차고 차량 경로 문제 MDVRPTW에 대해 정수 비선형 모델과 column generation 기반 branch-and-bound를 제안하였다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Hadjar and Soumis (2009)은 동적 window 축소 기법을 포함한 branch-and-price 알고리즘을 제안하였다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Orloff (1976)는 다음을 보였다:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;trip 도착 시간이 고정되지 않고&lt;/li&gt;
&lt;li&gt;학교의 time window만 주어지는 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;homogeneous fleet의 학교 버스 스케줄링 문제는 NP-complete&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;또한 matching 기반 구성 알고리즘과 3-opt 개선 방법을 제안하였다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Newton and Thomas (1974), Bodin (1975), Bodin and Berman (1979)는 시간을 여러 구간 period으로 나누는 가정을 사용하였다.&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각 period 시작 시, 버스는 이전 학교에 위치&lt;/li&gt;
&lt;li&gt;한 period 동안 각 버스는 최대 1개의 trip만 수행&lt;/li&gt;
&lt;li&gt;각 버스는 한 학교만 담당&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 경우 문제는 여러 개의 TP를 풀어 해결할 수 있었지만, 현실을 지나치게 단순화한 가정이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Swersey and Ballard (1984)는 비선형 프로그래밍 모델과 이를 이산화한 MIP 모델을 제안하였다:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;학교 time window를 여러 개의 도착 시간으로 나눔.&lt;/li&gt;
&lt;li&gt;선형 완화로 풀고&lt;/li&gt;
&lt;li&gt;정수가 아닌 해는 수동으로 조정&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Graham and Nuttle (1986)은 Orloff (1976)와 Swerwey and Ballard (1984)의 알고리즘을 비교하였다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;또한 AP 기반 알고리즘도 실험했는데,&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;초기 해는 AP로 구하고&amp;nbsp;&lt;/li&gt;
&lt;li&gt;time window 제약은 수동으로 맞춤.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;feasibility를 보장하면서 계산시간이 짧은 휴리스틱이 필요&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Braca et al. (1997)은 뉴욕시 학교 버스 문제를 다루었다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;기존 연구는 학교별로 문제를 따로 풀었지만, 이들은 모든 학교를 한 번에 통합하여 해결하였다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Spada et al. (2005)는 여러 학교를 고려한 라우팅 문제를 다루었다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시작 시간이 빠른 학교부터 처리&lt;/li&gt;
&lt;li&gt;greedy 방식으로 경로 생성&lt;/li&gt;
&lt;li&gt;이후 경로를 병합&lt;/li&gt;
&lt;li&gt;simulated annealing / tabu search로 개선&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Desrosiers et al. (1981, 1986a)는 다음 모듈을 포함하는 시스템을 제안하였다:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정류장 배경&lt;/li&gt;
&lt;li&gt;경로 생성&lt;/li&gt;
&lt;li&gt;학교 시작 시간 결정&lt;/li&gt;
&lt;li&gt;경로 스케줄링&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;특히 학교 시작 시간을 조정하여 필요한 버스 수를 줄일 수 있다고 가정하였다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;스케줄링 문제는 여러 TP를 풀어 해결하였다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Fugenschuh (2009)는&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;학교 시작 시간 조정 가능&lt;/li&gt;
&lt;li&gt;학생을 trip 간 이동 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;한 문제를 다루었으며, 이를 VRPTW 기반 정수계획 모델로 만들고 branch-and-cut으로 해결하였다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;하지만.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;homogeneous fleet 가정&lt;/li&gt;
&lt;li&gt;작은 문제도 시간 제한 내 최적해 어려움.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;문제의 복잡성이 매우 크다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;3. Formulation of the Bus Scheduling Problem&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;버스 스케줄링 문제는 다음과 같이 VRPTW로 모델링할 수 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각 trip ti를 하나의 가상 정류장(virtual stop) vi로 정의한다.&lt;/li&gt;
&lt;li&gt;trip의 서비스 시간 pi는 해당 가상 정류장의 서비스 시간으로 사용된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;가상 정류장 vi의 시간 창 [ai, bi]는 다음과 같이 설정:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;학교 시간창:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;121&quot; data-origin-height=&quot;28&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nYCGA/dJMcagSUJ0q/KmyY6ijzC85T7KLK8wx901/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nYCGA/dJMcagSUJ0q/KmyY6ijzC85T7KLK8wx901/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nYCGA/dJMcagSUJ0q/KmyY6ijzC85T7KLK8wx901/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnYCGA%2FdJMcagSUJ0q%2FKmyY6ijzC85T7KLK8wx901%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;121&quot; height=&quot;28&quot; data-origin-width=&quot;121&quot; data-origin-height=&quot;28&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;trip 서비스 시간: pi&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;따라서 [ai, bi]는 다음과 같다:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;198&quot; data-origin-height=&quot;27&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bF5f9y/dJMcaipERyV/0XKeOKmHeUNSzAl5R5LXok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bF5f9y/dJMcaipERyV/0XKeOKmHeUNSzAl5R5LXok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bF5f9y/dJMcaipERyV/0XKeOKmHeUNSzAl5R5LXok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbF5f9y%2FdJMcaipERyV%2F0XKeOKmHeUNSzAl5R5LXok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;198&quot; height=&quot;27&quot; data-origin-width=&quot;198&quot; data-origin-height=&quot;27&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;두 가상 정류장 vi &amp;rarr; vj 사이 이동 시간 dij:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;trip i의 학교 &amp;rarr; trip j의 첫 정류장까지 이동 시간&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;인덱스 정의&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;162&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NVZMx/dJMcaiQGzxd/1GmKqbGmPKbA9akJEBgzGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NVZMx/dJMcaiQGzxd/1GmKqbGmPKbA9akJEBgzGk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NVZMx/dJMcaiQGzxd/1GmKqbGmPKbA9akJEBgzGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNVZMx%2FdJMcaiQGzxd%2F1GmKqbGmPKbA9akJEBgzGk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;386&quot; height=&quot;141&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;162&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;파라미터 (constants)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Eik: 버스 k가 trip i 수행 가능하면 1&lt;/li&gt;
&lt;li&gt;D+(i): i 다음에 올 수 있는 stop 집합&lt;/li&gt;
&lt;li&gt;D(j): j 이전에 올 수 있는 stop 집합&lt;/li&gt;
&lt;li&gt;M: big-M (큰 상수)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;결정 변수 (Decision Variables)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;xijk: 버스 k가 i 다음에 j를 수행하면 1&lt;/li&gt;
&lt;li&gt;wik: 버스 k가 i에서 서비스 시작 시간&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;MIP 모델&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;616&quot; data-origin-height=&quot;431&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kT3nY/dJMcahj0XZi/4wo6LYjmdSkXVhlfQcHQu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kT3nY/dJMcahj0XZi/4wo6LYjmdSkXVhlfQcHQu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kT3nY/dJMcahj0XZi/4wo6LYjmdSkXVhlfQcHQu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkT3nY%2FdJMcahj0XZi%2F4wo6LYjmdSkXVhlfQcHQu0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;510&quot; height=&quot;357&quot; data-origin-width=&quot;616&quot; data-origin-height=&quot;431&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;목적함수
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이동 거리 최소화&lt;/li&gt;
&lt;li&gt;사용 버스 수 최소화 (더 중요, lexicographic)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;제약조건
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;(2) 모든 trip은 반드시 수행: 각 trip은 정확히 한 번, 가능한 버스에 의해 수행&lt;/li&gt;
&lt;li&gt;(3) 흐름 보존 (flow balance): 들어온 횟수 = 나간 횟수&lt;/li&gt;
&lt;li&gt;(4) 시간 흐름 제약: i&amp;nbsp;&amp;rarr; j로 이동하면 j 시작 시간&amp;nbsp;&amp;ge; 끝 + 이동시간&lt;/li&gt;
&lt;li&gt;(5) 시간 창 제약: 정해진 시간 안에 시작해야 함.&lt;/li&gt;
&lt;li&gt;(6), (7) depot 제약
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 버스는 depot에서 출발&lt;/li&gt;
&lt;li&gt;depot으로 돌아옴.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;(8) binary 변수&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;일반적인 VRPTW와 비교했을 때, 본 모델은 두 가지 다른 특성을 가진다:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;첫째, 버스와 정류장 간의 적합성(eligibility)이 존재한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;일반적인 VRPTW에서는 모든 차량이 모든 정류장을 서비스할 수 있다고 가정하지만, 본 문제에서는 버스가 해당 정류장을 서비스하기에 충분한 수용 능력을 갖는 경우에만 가상 정류장을 서비스할 수 있다. 즉, Eik=1이어야 한다. 예를 들어, 60명의 학생을 수송하는 trip은 50인승 버스로는 수행될 수 없다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;둘째, 본 문제에서는 버스 운행 일정동안 학생 수의 누적을 고려하지 않는다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;일반적인 VRPTW에서는 차량에 적재된 물량의 누적이 차량 용량을 초과하지 않도록 해야하지만, 본 문제에서는 각 가상 정류장이 해당 학생들의 목적지인 학교를 포함하고 있기 때문에 학생 수의 누적을 확인할 필요가 없다. 버스는 학교를 방문할 때마다 수용 용량이 다시 초기화될 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이러한 특성으로 인해 본 문제는 full truck load 문제와 유사한 성격을 가진다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;Homogeneous fleet 모델 MIPHO&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;609&quot; data-origin-height=&quot;293&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIZLvN/dJMcabD367y/aclhSCF6Mgcf08kxvJkVCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIZLvN/dJMcabD367y/aclhSCF6Mgcf08kxvJkVCk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIZLvN/dJMcabD367y/aclhSCF6Mgcf08kxvJkVCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIZLvN%2FdJMcabD367y%2FaclhSCF6Mgcf08kxvJkVCk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;520&quot; height=&quot;250&quot; data-origin-width=&quot;609&quot; data-origin-height=&quot;293&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;버스가 모두 동일하면 더 간단해진다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;변수 변경
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;xij: 같은 버스가 i 다음 j 수행&lt;/li&gt;
&lt;li&gt;wi: i 시작 시간&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;목적함수&lt;/li&gt;
&lt;li&gt;제약조건
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;(10) 각 trip은 한 번 수행&lt;/li&gt;
&lt;li&gt;(11) flow balance&lt;/li&gt;
&lt;li&gt;(12) 시간 제약&lt;/li&gt;
&lt;li&gt;(13) time window&lt;/li&gt;
&lt;li&gt;(14) binary&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;먼저 각 trip을 하나의 가상 정류장으로 간주해 문제를 VRPTW로 모델링한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;또한, 가상 정류장 간의 연결은 시간 창 제약을 위반하지 않는 경우에만 가능하도록 정의된다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;목적함수는 사전식(lexicographic) 방식으로 차량 수를 최소화하고, 동시에 총 이동 거리를 최소화하는 것을 목표로 한다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;4. Solution approaches&amp;nbsp;&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;다음 절들에서는 서로 다른 가정을 바탕으로 한 문제에 대해 다양한 해결 방법들을 제안한다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;4.1. Problem with an assumption of homogeneous buses and fixed start time&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;문제의 특수한 경우를 다룬다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;가상 정류장의 서비스 시작 및 종료 시간이 고정되어 있고, 모든 차량이 모든 trip들을 수행할 수 있는 동일한 버스 집합(homogeneous fleet)이 주어졌다고 가정하면, 이 문제는 Assignment Problem(AP)으로 모델링할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이와 같은 유형의 문제는 최근 산업 연구 프로젝트에서 실제로 관찰된 바 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;529&quot; data-origin-height=&quot;226&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bD3rOP/dJMcab47UH9/kNu12TX8rca7fc9HIGrenk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bD3rOP/dJMcab47UH9/kNu12TX8rca7fc9HIGrenk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bD3rOP/dJMcab47UH9/kNu12TX8rca7fc9HIGrenk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbD3rOP%2FdJMcab47UH9%2FkNu12TX8rca7fc9HIGrenk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;529&quot; height=&quot;226&quot; data-origin-width=&quot;529&quot; data-origin-height=&quot;226&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이러한 가정을 가진 문제는 Fig.3과 같이 AP로 모델링 가능하다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;노드 i와 노드 j 사이으 ㅣ비용 cij는 다음과 같이 정의:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;가상 정류장 i 이후에 가상 정류장 j를 주어진 서비스 시작 및 종료 시간 제약을 위반하지 않고 수행할 수 있는 경우, cij=dij로 설정한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;즉, 정류장 i를 수행한 후 정류장 j에 도착하는 시간(= 정류장 i의 서비스 종료 시간 + i에서 j까지의 이동 시간)이 정류장 j의 서비스 시작 시간보다 늦지 않으면, cij=dij로 설정한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;반대로, 도착 시간이 정류장 j의 서비스 시작 시간보다 늦으면, cij = M0 + 1로 설정한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;또한, 이전 절에서 설명한 문제의 비대칭성으로 인해, cij가 작은 값을 가지면, cji는 M0+1이 되어야 한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;마지막으로, cii=M0으로 설정한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;의사결정 변수는 다음과 같이 정의:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;yij=1: 노드 i가 노드 j에 할당된 경우&lt;/li&gt;
&lt;li&gt;yij=0: 그렇지 않은 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;할당 문제 모델은 다음과 같다:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;541&quot; data-origin-height=&quot;167&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWM2d1/dJMcac30UCx/alR5mjoqTxWwKzdaRYmnck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWM2d1/dJMcac30UCx/alR5mjoqTxWwKzdaRYmnck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWM2d1/dJMcac30UCx/alR5mjoqTxWwKzdaRYmnck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWM2d1%2FdJMcac30UCx%2FalR5mjoqTxWwKzdaRYmnck%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;541&quot; height=&quot;167&quot; data-origin-width=&quot;541&quot; data-origin-height=&quot;167&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 할당 문제는 Hungarian method를 이용해 쉽게 해결할 수 있으며, 이는 O(n^3) 시간 복잡도를 갖는 알고리즘이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;여기서 n은 노드의 개수를 의미한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;충분히 큰 M0을 설정하면, 이 모델은 버스의 수를 최소화하려는 방향으로 작동한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 모델의 해는 버스 스케줄링 문제의 해로 변환될 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;최적해에서 yij=1이고 cij&amp;lt;M0인 경우, trip j는 trip i 바로 다음에 동일한 버스에 의해 수행된다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;만약 최적해에서 yii=1이면, trip i를 수행하는 버스는 다른 trip을 수행하지 않는다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;해를 구성할 때는 cij &amp;le; M0인 경우의 변수만 고려한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;예를 들어,&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;n=6이고 최적해가 y13 = t25 = y34 = y41 = y52 = y66 = 1이고,&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;c13 &amp;lt; M0,c26 &amp;lt; M0, c34 &amp;lt; M0, c41 = M0+1, c52 = M0+1, c66 = M0이라면,&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;trip 1-3-4, 2-5, 6은 총 3개의 버스에 의해 수행된다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;가능한 trip 연결만 비용을 작게 두고, 나머지는 큰 값으로 막아서 AP로 bus chaining 문제를 푼다.&lt;/blockquote&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;4.2. Problem with an assumption of homogeneous buses&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;가상 정류장의 서비스 시작 및 종료시간이 고정되어 있지 않고, 주어진 시간 창에 따라 결정될 수 있는 경우, 동일한 버스 집합을 가정하더라도 문제는 더 어려워진다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;가상 정류장의 시작 시간이 고정되어 있다고 가정하면, 정류장 A에서 B로의 연결과 B에서 C로의 연결이 모두 가능할 경우, A에서 B를 거쳐 C로 가는 연결 또한 항상 가능하다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;그러나 이러한 관계는 시간 창 문제가 있는 경우에는 성립하지 않을 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;451&quot; data-origin-height=&quot;134&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/I4CKj/dJMcaarDsW5/RtP5PUpAt1K3XPaXpu7jK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/I4CKj/dJMcaarDsW5/RtP5PUpAt1K3XPaXpu7jK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/I4CKj/dJMcaarDsW5/RtP5PUpAt1K3XPaXpu7jK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FI4CKj%2FdJMcaarDsW5%2FRtP5PUpAt1K3XPaXpu7jK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;451&quot; height=&quot;134&quot; data-origin-width=&quot;451&quot; data-origin-height=&quot;134&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Fig.4는 이러한 예를 보여준다. 그림에서 각 수평선의 길이는 가상 정류장 간 서비스 및 이동에 필요한 총 시간을 나타낸다. 수직선은 각 학교의 시간 창을 나타낸다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;trip A와 B를 함께 수행하는 경우, 그리고 B와 C를 함께 수행하는 경우는 각각 하나의 버스로 가능하지만, 모든 trip을 하나의 버스로 수행하는 것은 시간 창 위반 때문에 불가능하다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;따라서, 앞서 설명한 assignment problem 기반 접근 방법은 시간 창 문제에 직접적으로 적용될 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;447&quot; data-origin-height=&quot;141&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Livxh/dJMcaaFbtFx/fLcwkS9jcAaKvcloLqP1Nk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Livxh/dJMcaaFbtFx/fLcwkS9jcAaKvcloLqP1Nk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Livxh/dJMcaaFbtFx/fLcwkS9jcAaKvcloLqP1Nk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLivxh%2FdJMcaaFbtFx%2FfLcwkS9jcAaKvcloLqP1Nk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;447&quot; height=&quot;141&quot; data-origin-width=&quot;447&quot; data-origin-height=&quot;141&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;하지만, 각 trip이 Fig.5와 같이 가능한 한 가장 늦은 시간에 수행된다고 가정하면, 정류장 A&amp;rarr;B와 B&amp;rarr;C의 연결이 가능할 경우, A&amp;rarr;B&amp;rarr;C 연결 또한 항상 가능하게 된다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 경우 각 trip의 서비스 시작 시간이 고정되므로, 이전 소절의 assignment problem 기반 접근을 사용할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;따라서, 서비스 시작 시간을 가능한 가장 늦은 시점으로 설정하고 assignment problem 기반 방법을 사용하면, 상한(upper bound) 해를 얻을 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;반대로, A&amp;rarr;B와 B&amp;rarr;C 연결이 가능하면 A&amp;rarr;B&amp;rarr;C도 가능하다고 가정하면, assignment problem 기반 접근으로 해를 구할 수 있다. 이 가정은&amp;nbsp; 일종의 완화(relaxation)임, 이때 얻어진 해는 원래 문제에 대한 하한(lower bound)을 제공한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이러한 관찰을 바탕으로 branch-and-bound 알고리즘을 제안한다:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;APU: upper bound 문제&lt;/li&gt;
&lt;li&gt;APL: lower bound 문제&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;초기에는 APU와 APL을 구성하고 이를 해결한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 APU의 해가 최적이 아니라면(즉, APU와 APL의 목적함수 값이 다르면), branching이 수행된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분기 과정에서는 APL 해에서 비실현(infeasible)한 버스 스케줄과 문제를 일으키는 연결(link)을 찾는다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, A&amp;rarr;B 연결이 시간 창 제약 때문에 불가능하다면, 현재 노드는 다음 두 개의 노드로 분기된다:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&amp;ldquo;A&amp;rarr;B 금지 (prohibit)&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;A&amp;rarr;B 결합 (combine)&amp;rdquo;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;A &amp;rarr; B를 금지하려면: C_AB를 무한대로 설정&lt;/li&gt;
&lt;li&gt;A &amp;rarr; B를 결합하려면: 하나의 가상 정류장으로 합친다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;서비스 시간 = A와 B의 서비스 시간 + 이동 시간 + 대기 시간&lt;/li&gt;
&lt;li&gt;시간 창도 이에 맞게 조정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 일반적인 bounding 절차를 수행한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;branch-and-bound 과정은 최적해를 찾거나, 주어진 계산 시간이 종료될 때까지 반복된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;Branch-and-Bound 알고리즘&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Step 0: 초기화
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;APU와 APL 설정 후 Hungarian method로 풀이&lt;/li&gt;
&lt;li&gt;APL 해가 feasible이면 &amp;rarr; 최적 &amp;rarr; 종료&lt;/li&gt;
&lt;li&gt;아니면
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;V_U = f(APU)&lt;/li&gt;
&lt;li&gt;V_L = f(APL)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;APL을 partial problem list에 추가&lt;/li&gt;
&lt;li&gt;Step 1로 이동&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Step 1: 종료 조건
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;리스트가 비었거나 시간초과 &amp;rarr; 종료&lt;/li&gt;
&lt;li&gt;아니면 첫 번째 문제(RAPL) 선택&lt;/li&gt;
&lt;li&gt;Step 2로 이동&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Step 2: 분기
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;RAPL에서 infeasible link A &amp;rarr; B 찾기&lt;/li&gt;
&lt;li&gt;두 문제 생성:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PAP: A &amp;rarr; B 금지&lt;/li&gt;
&lt;li&gt;CAP: A &amp;rarr; B 결합&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Step 3로 이동&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Step 3: Bounding 1 (PAP)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PAPU, PAPL 설정 후 Hungarian method로 풀이&lt;/li&gt;
&lt;li&gt;PAPL 해가 feasible이면:&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;V_U &amp;gt; f(PAPL)이면 &amp;rarr; V_U 갱신&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;infeasible이면:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;V_U &amp;lt; f(PAPL)이면 &amp;rarr; 가지치기(fathom)&lt;/li&gt;
&lt;li&gt;아니면 &amp;rarr; 리스트에 추가&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Step 4로 이동&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Step 4: Bounding 2 (CAP)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CAPU, CAPL 설정 후 Hungarian method로 풀이&lt;/li&gt;
&lt;li&gt;CAPL 해가 feasible이면:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;V_U &amp;gt; f(CAPL)이면: V_U 갱신&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;infeasible이면:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;V_U &amp;lt; f(CAPL)이면: 가지치기&lt;/li&gt;
&lt;li&gt;아니면: 리스트에 추가&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Step 5로 이동&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Step 5: Bounding 3
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;lower bound &amp;gt; V_U인 노드 제거&lt;/li&gt;
&lt;li&gt;Step 1로 돌아감.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4.3. Problem with an assumption of heterogeneous buses&lt;/h4&gt;
&lt;p data-end=&quot;305&quot; data-start=&quot;175&quot; data-ke-size=&quot;size16&quot;&gt;Section 4.2의 branch-and-bound 접근법은 작은 문제에 대해서는 최적해를 생성할 수 있지만, 계산 시간이 길기 때문에 큰 문제에는 사용할 수 없다. 또한, 이 방법은 이질적인 버스 집합 문제를 처리할 수 없다.&lt;/p&gt;
&lt;p data-end=&quot;387&quot; data-start=&quot;307&quot; data-ke-size=&quot;size16&quot;&gt;보다 일반적인 문제를 위해, 본 논문에서는 &lt;b&gt;반복적인 AP 기반 구성 알고리즘과 개선 알고리즘으로 이루어진 휴리스틱 접근법&lt;/b&gt;을 제안한다.&lt;/p&gt;
&lt;p data-end=&quot;387&quot; data-start=&quot;307&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;387&quot; data-start=&quot;307&quot; data-ke-size=&quot;size16&quot;&gt;구성 알고리즘에서는 세 가지 가중치 값이 사용된다:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;582&quot; data-start=&quot;462&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;495&quot; data-start=&quot;462&quot;&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;W_&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;: 거리(distance)에 대한 가중치&lt;/li&gt;
&lt;li data-end=&quot;525&quot; data-start=&quot;496&quot;&gt;&lt;span&gt;&lt;span&gt;W_T&lt;/span&gt;&lt;/span&gt;: 시간(time)에 대한 가중치&lt;/li&gt;
&lt;li data-end=&quot;582&quot; data-start=&quot;526&quot;&gt;&lt;span&gt;&lt;span&gt;W_V&lt;/span&gt;&lt;/span&gt;: 차량 용량 적합도(vehicle capacity fitness)에 대한 가중치&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;613&quot; data-start=&quot;584&quot; data-ke-size=&quot;size16&quot;&gt;이 값들은 주어진 범위 내에서 무작위로 생성된다.&lt;/p&gt;
&lt;p data-end=&quot;613&quot; data-start=&quot;584&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;613&quot; data-start=&quot;584&quot; data-ke-size=&quot;size16&quot;&gt;이 구성 알고리즘은 다음과 같이 일련의 AP 문제를 풀어 초기 해를 생성한다:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;613&quot; data-start=&quot;584&quot;&gt;학교의 시간 창을 기준으로 trip들을 오름차순으로 정렬&lt;/li&gt;
&lt;li data-end=&quot;613&quot; data-start=&quot;584&quot;&gt;이미 스케줄된 버스가 이후에 수행할 수 없는 trip들의 부분집합을 결정&lt;/li&gt;
&lt;li data-end=&quot;613&quot; data-start=&quot;584&quot;&gt;이러한 trip들에 대해, 가중치 값을 이용해 적절한 버스를 선택하고 초기화&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;버스 스케줄이 하나의 trip으로 초기화되면, 해당 trip의 목적지 학교 도착 시간은 가능한 가장 이른 시간으로 설정된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 다음, 이미 스케줄된 버스들과 아직 스케줄되지 않은 trip들 사이에서 AP 문제를 구성한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;버스 수와 미배정 trip 수가 일치하지 않는 경우, dummy node를 도입한다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;버스가 특정 trip을 수행할 수 있는 경우:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;비용 = 버스 대기 시간 + 버스의 마지막 위치와 trip 시작 위치 간 거리 고려&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;수행할 수 없는 경우: 비용 = M0&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AP를 풀고 나면, 현재 대상 학교에 속하는 trip들 중에서 AP에 의해 기존 버스에 할당된 것들을 버스 스케줄에 추가한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 과정을 반복하면서 버스 스케줄을 점진적으로 확장한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;487&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b57O2a/dJMcagMabDz/mKjRSKZzIk7xQ6ERFna6w0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b57O2a/dJMcagMabDz/mKjRSKZzIk7xQ6ERFna6w0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b57O2a/dJMcagMabDz/mKjRSKZzIk7xQ6ERFna6w0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb57O2a%2FdJMcagMabDz%2FmKjRSKZzIk7xQ6ERFna6w0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;531&quot; height=&quot;450&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;487&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, Fig.6에서, trip 1,2,3,4,5,11이 다른 trip 뒤에 수행될 수 없다면, 이들은 각각 다른 버스에 배정된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;버스에서 나온 실선은 생성된 버스 스케줄을 나타낸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;학교 1의 모든 trip이 배정되면, 학교 2가 다음 대상이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 점선이 AP의 최적해를 나타낸다면, 그 중 현재 대상 학교와 관련된 할당(예: 1-6, 2-7, 3-8)만 확정되어 버스 1,2,3에 추가된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나머지 trip(9,10,12)은 일시적으로 제외되며 다음 반복에서 다시 고려된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;구성 알고리즘 단계&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Step 0
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;trip들을 시간 창 기준 오름차순 정렬&lt;/li&gt;
&lt;li&gt;학교도 시간 창 기준 오름차순 정렬&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Step 1
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 trip을 unrouted로 설정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Step 2
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;가중치 W_D, W_T, W_V를 무작위 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Step 3
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;s=1 설정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Step 4
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 trip이 배정되었으면 Step 10으로&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Step 5
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;아직 배정되지 않은 trip i에 대해 어떤 버스에도 포함될 수 없다면, 수용 가능하고 Value1이 최소인 버스를 선택&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;439&quot; data-origin-height=&quot;62&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/S9oqC/dJMcaiwos8A/TTOQVK1JIurDNNiyQ9p0H1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/S9oqC/dJMcaiwos8A/TTOQVK1JIurDNNiyQ9p0H1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/S9oqC/dJMcaiwos8A/TTOQVK1JIurDNNiyQ9p0H1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FS9oqC%2FdJMcaiwos8A%2FTTOQVK1JIurDNNiyQ9p0H1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;439&quot; height=&quot;62&quot; data-origin-width=&quot;439&quot; data-origin-height=&quot;62&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 해당 버스로 스케줄 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; trip i를 routed로 설정&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Step 6
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 trip이 배정되었으면 Step 10으로&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Step 7
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;버스와 미배정 trip 사이 AP 구성&lt;/li&gt;
&lt;li&gt;비용 정의:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;가능할 경우: Cost = W_D * Dist + W_T * Wait + W_V * (Capacity - Students)&lt;/li&gt;
&lt;li&gt;불가능할 경우: Cost = M0&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Step 8
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;AP 결과 중 현재 학교 s에 해당하는 trip을 선택
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;버스 스케줄에 추가&lt;/li&gt;
&lt;li&gt;routed로 설정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Step 9
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;s = s + 1, Step 4로&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Step 10
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;max_iteration만큼 반복 후&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;최소 버스 수&lt;/li&gt;
&lt;li&gt;최소 이동 거리를 만족하는 최적 해 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;개선 알고리즘 Improvement&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;최적 해를 얻은 후, 추가 개선 수행:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사용되는 연산: (아래 순서로 적용)
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;one-to-zero: 한 stop을 다른 버스로 이동&lt;/li&gt;
&lt;li&gt;one-to-one: 두 버스 간 stop 교환&lt;/li&gt;
&lt;li&gt;one-to-two: 한 stop&amp;nbsp;&amp;harr; 두 stop 교환&lt;/li&gt;
&lt;li&gt;two-to-two: 두 stop &amp;harr; 두 stop 교환&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체 과정은 더 이상 개선이 없을 때까지 반복된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 알고리즘 내부에서도 가능한 모든 조합을 탐색하여 가장 개선이 큰 변경을 적용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 개선 과정의 목표: 버스 수 감소 + 총 이동 거리 감소&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5. Computational results&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;실험 설정
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;C++ 구현, Hungarian algo. 사용&lt;/li&gt;
&lt;li&gt;benchmark 데이터 직접 생성 (homogeneous 15 + heterogeneous 15개)&lt;/li&gt;
&lt;li&gt;다양한 규모의 문제로 성능 비교&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;알고리즘별 성능 비교
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;MIP (수학적 모델)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;작은 문제: 최적해 가능&lt;/li&gt;
&lt;li&gt;큰 문제: 시간/메모리 한계로 실패&lt;/li&gt;
&lt;li&gt;정확하지만 확장성 부족&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;AP 기반 branch-and-Bound
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;작은 문제: 빠르게 최적해&lt;/li&gt;
&lt;li&gt;큰 문제: 시간 오래 걸림&lt;/li&gt;
&lt;li&gt;MIP보다 효율적이지만 여전히 scalability 한계&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Heuristic (제안 방법)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;작은 문제: optimal 또는 near-optimal&lt;/li&gt;
&lt;li&gt;큰 문제: 빠르게 좋은 해 생성&lt;/li&gt;
&lt;li&gt;다른 방법보다 대규모에서 더 좋은 성능&lt;/li&gt;
&lt;li&gt;실제 문제에서 가장 현실적&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Lower Bound (AP LB)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;작은 문제: 정확한 기준 제공&lt;/li&gt;
&lt;li&gt;큰 문제: 성능 미확인&lt;/li&gt;
&lt;li&gt;해 품질 평가 기준 역할&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;핵심 결과
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;문제 규모가 커질수록 exact 방법(MIP, B&amp;amp;B)&amp;nbsp;&amp;rarr; 비효율적&lt;/li&gt;
&lt;li&gt;Heuristic &amp;rarr; 성능 우수&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;실제 데이터 결과
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;버스 수 감소: 14~18%&lt;/li&gt;
&lt;li&gt;이동 거리 감소: 12~16%&lt;/li&gt;
&lt;li&gt;계산 시간: 1분 이내&lt;/li&gt;
&lt;li&gt;현실에서도 효과 입증&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;6. Conclusion&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 논문은 각 학교에 대해 trip이 주어지는 학교 버스 스케줄링 문제를 소개했다. 각 trip은 시작 정류장, 서비스 시간, 운송하는 학생 수, 그리고 도착 학교로 구성된다. 각 학교는 모든 trip이 완료되어야 하는 고정된 시간 창을 갖고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;학교 버스 스케줄링 문제의 목적은 이러한 학교 시간 창을 고려하여 주어진 모든 trip을 수행할 수 있도록 버스 스케줄을 최적화하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;485&quot; data-start=&quot;308&quot; data-ke-size=&quot;size16&quot;&gt;본 연구에서는 먼저 각 trip을 하나의 가상 정류장으로 간주하여 문제를 VRPTW로 모델링하였다. 이후, 특수한 경우에 대해서는 두 가지 assignment problem 기반의 정확한 해법을 제안하였고, 보다 일반적인 경우를 위해 assignment problem 기반의 휴리스틱 알고리즘을 제안하였다.&amp;nbsp;또한, benchmark 문제들을 생성하여 다른 연구자들이 참고할 수 있도록 인터넷에 공개하였다. 계산 실험을 통해 제안된 알고리즘들의 정확성과 효율성을 확인하였다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;697&quot; data-start=&quot;597&quot;&gt;MIP 모델과 assignment problem 기반 branch-and-bound 알고리즘은&lt;br /&gt;&amp;rarr; &lt;b&gt;작은 규모의 homogeneous fleet 문제&lt;/b&gt;에 적합하며,&lt;/li&gt;
&lt;li data-end=&quot;761&quot; data-start=&quot;699&quot;&gt;휴리스틱 알고리즘은&lt;br /&gt;&amp;rarr; &lt;b&gt;대규모 문제 및 heterogeneous fleet 문제&lt;/b&gt;에 적합하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;829&quot; data-start=&quot;768&quot; data-ke-size=&quot;size16&quot;&gt;또한, 본 논문에서 다룬 문제에 대해 최신 metaheuristic 기법들을 적용하는 것도 가능할 것이다.&amp;nbsp;정확한 방법과 휴리스틱을 결합하는 것 또한 향후 연구 방향이 될 수 있다.&amp;nbsp;대규모 문제에서 제안된 접근법의 성능을 평가하기 위해서는 보다 강력한 lower bound 방법이나 효율적인 exact 방법의 개발이 필요하다.&lt;/p&gt;</description>
      <category>Lab/논문 분석</category>
      <author>bye0nzn</author>
      <guid isPermaLink="true">https://bye0nzn.tistory.com/465</guid>
      <comments>https://bye0nzn.tistory.com/465#entry465comment</comments>
      <pubDate>Sat, 2 May 2026 22:22:36 +0900</pubDate>
    </item>
    <item>
      <title>[2과목] 분석 마스터 플랜</title>
      <link>https://bye0nzn.tistory.com/464</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;마스터플랜 수립&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;어떤 하나의 분석 프로젝트를 위한 전체 설계도와 같음. 분석방법론과 과제발굴 수행과정을 모두 아우르는 광의의 개념&lt;/li&gt;
&lt;li&gt;분석 과제의 우선순위를 결정하고 기업의 상황을 고려해 분석 과제의 적용 범위 및 방식을 결정해 분석 구현 로드맵을 수립&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;분석 마스터플랜 수립 프레임워크&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;가장 먼저, 발굴한 분석 과제의 우선순위 정하기&lt;/li&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;전략적 중요도, 비즈니스 성과 및 ROI, 분석 과제의 실행 용이성&lt;/b&gt;&lt;/u&gt;을 기준으로 고려해 분석 과제의 우선순위를 설정&lt;/li&gt;
&lt;li&gt;분석 과제의 우선순위와 함께 분석 과제의 적용 범위 및 방식 설정&lt;/li&gt;
&lt;li&gt;분석 과제를 &lt;u&gt;&lt;b&gt;업무에 내재화할 것인지 여부, 분석 데이터를 내부의 데이터로 한정할 것인지, 아니면 외부의 데이터까지 포함할 것인지 여부, 그리고 기술의 적용 수준&lt;/b&gt;&lt;/u&gt;까지의 설정을 포함&lt;/li&gt;
&lt;li&gt;분석 과제의 우선순위와 적용 범위 및 방식을 종합적으로 고려하여 최종적으로 분석 구현의 로드맵을 수립함. 이러한 일련의 과정과 형식을 마스터플랜 수립 프레임워크라 부름.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2969&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dhGd14/dJMcaiQGsfK/k5k54UzGZGK95Re6q6GaA0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dhGd14/dJMcaiQGsfK/k5k54UzGZGK95Re6q6GaA0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dhGd14/dJMcaiQGsfK/k5k54UzGZGK95Re6q6GaA0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdhGd14%2FdJMcaiQGsfK%2Fk5k54UzGZGK95Re6q6GaA0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;685&quot; height=&quot;231&quot; data-origin-width=&quot;2969&quot; data-origin-height=&quot;1000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;수행 과제 도출 및 우선순위 평가&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;일반적인 IT 플젝 우선순위 평가
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;과제의 우선순위 평가를 위해 전략적 중요도, 실행 용이성 등 기업에서 고려하는 중요 가치 기준에 따라 다양한 관점에서의 우선순위 기준을 수립해 평가&lt;/li&gt;
&lt;li&gt;도출된 과제에 대한 고려 요소로 전략적 중요도, 실행 용이성, 비즈니스 성과/ROI 등
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;전략적 중요도(전략적 피리요성, 시급성) / 실행 용이성(투자 용이성, 기술 용이성)&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;빅데이터의 특징을 고려한 분석 ROI 요소
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;크게 투자 비용 요소와 비즈니스 효과 요소가 있음.&lt;/li&gt;
&lt;li&gt;빅데이터의 특징인 4V를 ROI 관점으로 살펴보면, &lt;u&gt;&lt;b&gt;Volume, Variety, Velocity의 3V&lt;/b&gt;&lt;/u&gt;는 &lt;b&gt;투자 비용(Investment) 측면의 요소&lt;/b&gt;라고 볼 수 있음.&lt;/li&gt;
&lt;li&gt;분석 결과를 활용하거나 실질적인 실행을 통해 얻게 되는 &lt;b&gt;&lt;u&gt;비즈니스 Value&lt;/u&gt;&lt;/b&gt;는 &lt;b&gt;비즈니스 '효과' 측면의 요소&lt;/b&gt;라고 볼 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ROI를 활용한 우선순위 평가 기준
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;전략적 중요도에 따른 &lt;u&gt;시급성&lt;/u&gt;을 판단&lt;/b&gt;함. 시급성의 판단 기준은 전략적 중요도(기여도)가 핵심이며, 이는 현재 관점에 전략적 가치를 둘 것인지, 미래의 중장기적 관점에 전략적 가치를 둘 것인지 등 적정 시기를 고려할 수 있음. 분석 과제의 목표가치(KPI)를 함께 고려해 시급성 여부를 판단 가능&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;u&gt;난이도&lt;/u&gt;&lt;/b&gt;는 현시점에서 과제를 추진하는 것이 적용 비용과 범위 측면에서 바로 적용하기 쉬운 것인지 어려운 것인지의 판단 기준으로서, 데이터 분석의 적합성 여부를 따져 살펴봄.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;포트폴리오 사분면(Quadrant) 분석을 활용한 우선순위 평가 기준
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시급성에 우선순위 평가 기준을 둔다면, 3 &lt;b&gt;1 4&lt;/b&gt; 2 순서 &lt;b&gt;(3 4 2)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;난이도에 우선순위 평가 기준을 둔다면, 3 &lt;b&gt;4 1&lt;/b&gt; 2 순서 &lt;b&gt;(3 1 2)&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2049&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d6V8Fi/dJMcagrPeYg/ka0oq8rbwUwcJjWApgPQWK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d6V8Fi/dJMcagrPeYg/ka0oq8rbwUwcJjWApgPQWK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d6V8Fi/dJMcagrPeYg/ka0oq8rbwUwcJjWApgPQWK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd6V8Fi%2FdJMcagrPeYg%2Fka0oq8rbwUwcJjWApgPQWK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;610&quot; height=&quot;1000&quot; data-origin-width=&quot;2049&quot; data-origin-height=&quot;1000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;IT 용어&lt;br /&gt;- &lt;b&gt;&lt;u&gt;ISP(Information Strategic Planning):&lt;/u&gt; 정보기술 및 정보시스템을 전략적으로 활용하기 위해 먼저 조직의 내외부 환경을 분석하고 문제점을 도출하며, 사용자의 요구를 분석하여 시스템 구축 우선순위를 결정하는 등의 중장기 마스터플랜을 수립하는 절차 (정보전략계획)&lt;/b&gt;&lt;br /&gt;- SI(System Integration): 시스템 구축의 약자, 전산시스템을 필요로 하는 곳으로부터 하청을 받아 시스템의 기획, 개발, 유지보수, 운영 등을 대신해주는 업종&lt;br /&gt;- SM(System Management): 시스템 운영, 또는 유지보수의 약자.&amp;nbsp;&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;이행 계획 수립&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;로드맵 수립
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단계별로 추진하고자 하는 목표를 명확히 정의한 뒤 과제별 선,후행 관계를 고려해 단계뼐 추진 내용을 정렬&lt;/li&gt;
&lt;li&gt;과정
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;포트폴리오 사분면을 통한 우선순위 결정&lt;/li&gt;
&lt;li&gt;과제별 적용 범위 및 방식을 고려한 최종 우선순위 결정&lt;/li&gt;
&lt;li&gt;단계적 구현 로드맵 수립&lt;/li&gt;
&lt;li&gt;단계별 추진 목표 정의&lt;/li&gt;
&lt;li&gt;추진 과제별 선후행 관계를 고려해 추진 내용 정렬&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;단계별 분석 로드맵 수립
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;[1단계] 분석 체계 도입&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단계별 추진 목표; 분석 기회 발굴, 분석 과제 정의, 분석 로드맵 수립&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;[2단계] 분석 유효성 검증
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단계별 추진 목표; 분석 과제 수행, 성과 검증, 분석 아키텍처 설계&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;[3단계] 분석 확산 및 고도화
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단계별 추진 목표; 분석 과제를 업무 프로세스에 내재화, 검증 결과 확산, 활용 시스템 구축 및 고도화&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;세부 이행계획 수립
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;고전적인 폭포수 Waterfall 방식도 있으나 프로토타입과 같이 반복적인 모델링 과정을 수행하여 프로젝트의 완성도 높이는 방식 권장&lt;/li&gt;
&lt;li&gt;모든 단계를 반복하기보다 모델링 단계를 반복적으로 수행하는 혼합형(Analytics)을 많이 적용&lt;/li&gt;
&lt;li&gt;Analytics 구현 방식
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;분석 데이터 수집/확보&lt;/li&gt;
&lt;li&gt;분석 데이터 준비&lt;/li&gt;
&lt;li&gt;모델링 및 평가 (반복)&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;분석 거버넌스 체계 수립&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;거버넌스 체계 개요&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;분석을 위해 어떻게 데이터를 활용할 것인지 결정하고, 데이터 분석을 기업의 문화로 정착시키고 데이터 분석 업무를 지속적으로 고도화하기 위해 데이터 관리 체계를 수립하는 것&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;분석 거버넌스 체계 구성 요소&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;조직 Organization: 분석 기획 및 관리 수행&lt;/li&gt;
&lt;li&gt;과제 기획 및 운영 프로세스&lt;/li&gt;
&lt;li&gt;분석 관련 시스템&lt;/li&gt;
&lt;li&gt;데이터&lt;/li&gt;
&lt;li&gt;분석 관련 교육 및 마인드 육성 체계 Human Resource&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;분석 거버넌스 체계&lt;br /&gt;&lt;br /&gt;1. 분석수준 진단&lt;br /&gt;2. 분석 교육&lt;br /&gt;3. 분석개발/확산/평가 프로세스&lt;br /&gt;4. 분석전문 인력&lt;br /&gt;5. 분석 조직&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;데이터 분석 성숙도 모델 및 수준 진단&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;분석 수준 진단 프레임 워크
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;분석 준비도와 분석 성숙도를 통하여 데이터 분석 수준을 진단하고 데이터 분석 기반을 구현하기 위해 무엇을 준비하고 보완해야 하는지 등 분석의 유형 및 분석의 방향성 결정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;분석 준비도
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기업의 데이터 분석 도입의 수준을 파악하기 위한 진단 방법&lt;/li&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;분석 문화, 분석 데이터, 분석 인프라, 분석 기법, 분석 업무, 분석 인력 및 조직&lt;/b&gt;&lt;/u&gt;의 6가지 영역 대상으로 수준 파악&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;분석 성숙도
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;소프트웨어 공학에서는 개발 업무능력과 조직, 프로세스 자체의 성숙도와 업무 프로세스 개선을 위한 조직 역량 등을 CMMI(Capability Maturity Model Integration) 모델을 활용해 조직의 성숙도 평가&lt;/li&gt;
&lt;li&gt;같은 맥락으로 데이터 분석 성숙도를 &lt;b&gt;&lt;u&gt;비즈니스 부문, 조직 및 역량 부문, IT 부문&lt;/u&gt;&lt;/b&gt;의 3개 부문을 대상으로 성숙도 수준을 나누어 볼 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;분석 성숙도 평가
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;[1단계] 도입: 분석 시작, 환경과 시스템 구축&lt;/li&gt;
&lt;li&gt;[2단계] 활용: 분석 결과를 업무에 적용&lt;/li&gt;
&lt;li&gt;[3단계] 확산: 전사 차원에서 분석 관리, 공유&lt;/li&gt;
&lt;li&gt;[4단계] 최적화: 분석을 진화시켜 혁신 및 성과 향상에 기여&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;분석 수준 진단 결과&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;분석 준비도 및 성숙도 진단 결과를 4분면으로 구분
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&quot;도준정확&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 53.8372%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style4&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 26.9767%;&quot;&gt;정착형 (낮은 준비도, 높은 성숙도)&lt;/td&gt;
&lt;td style=&quot;width: 26.8605%;&quot;&gt;확산형 (높은 준비도, 높은 성숙도)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 26.9767%;&quot;&gt;준비형 (낮은 준비도, 낮은 성숙도)&lt;/td&gt;
&lt;td style=&quot;width: 26.8605%;&quot;&gt;도입형 (높은 준비도, 낮은 성숙도)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;분석 지원 인프라 방안 수립&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;플랫폼으로 인프라 구축
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;분석 마스터플랜을 기획하는 단계부터 장기적이고 안정적으로 활용할 수 있는 확장성을 고려한 플랫폼 구조를 도입하는 것이 적절&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;플랫폼: 단순한 분석 응용프로그램뿐만 아니라 서비스를 위한 응용프로그램이 실행될 수 있는 기초를 이루는 컴퓨터 시스템 의미&lt;br /&gt;- 광의의 분석 플랫폼: 컴퓨터 시스템(하드웨어, 운영체제) + 협의의 분석 플랫폼(데이터 처리 프레임워크, 분석 엔진, 분석 라이브러리) + (분석 서비스 제공 엔진, 분석 애플리케이션, 분석 서비스 제공 API)&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;데이터 거버넌스 체계 수립&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 거버넌스: 전사 차원의 모든 데이터에 대해 정책 및 지침, 표준화, 운영 조직 및 책임 등의 표준화된 관리 체계를 수립하고 운영을 위한 프레임워크 및 저장소를 구축하는 것&lt;/li&gt;
&lt;li&gt;마스터 데이터, 메타데이터, 데이터 사전 등은 데이터 거버넌스의 중요한 관리 대상&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;데이터 거버넌스 구성 요소&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;원칙 Principle: 데이터 유지 관리하기 위한 지침과 가이드
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex) 보안&amp;amp;품질 기준, 변경 관리&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;조직 Organization: 데이터를 관리할 조직의 역할과 책임
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex) 데이터 관리자, DB 관리자, 데이터 아키텍트&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;프로세스 Process: 데이터 관리를 통한 활동과 체계
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex) 작업 절차, 모니터링 활동, 측정 활동&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;데이터 거버넌스 체계&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 표준화
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 표준 용어 설정, 명명 규칙 Name Rule, 메타데이터 구축, 데이터 사전 구축 등의 업무로 구성&lt;/li&gt;
&lt;li&gt;데이터 표준 용어는 표준 단어 사전, 표준 도메인 사전, 표준 코드 등으로 구성 + 사전 간 상호 검증이 가능하게 점검 프로세스를 포함해야 함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;예시
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 표준 용어 설정: '직원급여'라고 표현할 경우 1년에 대한 급여 vs, 1달에 대한 급여인지 애매하므로, '직원 월급'이라는 표현 사용&lt;/li&gt;
&lt;li&gt;명명 규칙 수립: 직원 월급 어떻게 표현할 것인가? EmployeeSalary 또는 EmpSal?&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;메모리 공간 적게 차지하도록 후자 사용&lt;/li&gt;
&lt;li&gt;카멜 표기법: commentWriterld&lt;/li&gt;
&lt;li&gt;팟홀 표기법: comment_writer_id&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;데이터 사전 구축: 관리될 모든 데이터에 대한 명명 규칙 수립의 연장된 작업
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;직원 번호 - EmpNumber&lt;/li&gt;
&lt;li&gt;직원 주민등록번호 - EmpSSN&lt;/li&gt;
&lt;li&gt;직원 월급 - EmpSal&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;데이터 관리 체계
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 정합성 및 활용의 효율성을 위해 표준 데이터를 포함한 메타데이터와 데이터 사전의 관리 원칙 수립&lt;/li&gt;
&lt;li&gt;데이터 생명주기를 정해 주기가 만료된 데이터는 폐기&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;데이터 저장소 관리 Repository
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;메타데이터 및 표준 데이터를 관리하기 위한 전사 차원의 저장소 구성&lt;/li&gt;
&lt;li&gt;데이터 관리 체계 지원을 위한 워크플로 및 관리용 응용 소프트웨어를 지원하고 관리 대상 시스템과의 인터페이스를 통한 통제가 이루어져야 함.&lt;/li&gt;
&lt;li&gt;데이터 구조 변경에 따른 사전 영향 평가도 수행되어야 효율적 활용이 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;표준화 활동
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 거버넌스 체계를 구축 후 표준 준수 여부를 주기적으로 점검하고 모니터링 실시&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;데이터 조직 및 인력방안 수립&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 분석 조직 및 인력방안 개요
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 분석 조직: 기업 내에 존재하는 빅데이터 속에서 가치를 찾아 전파하고 이를 행동화하는 역할
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;목표 / 역할 / 구성&lt;/b&gt;&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;조직 및 인력 구성 시 고려사항
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;조직 구조: 비즈니스 질문을 선제적으로 찾아낼 수 있는 구조인가? 등&lt;/li&gt;
&lt;li&gt;인력 구성: 비즈니스 및 IT 전문가의 조합으로 구성되어야 하는가? 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;데이터 분석 조직 유형
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;집중형 조직 구조
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;조직 내에 별도의 독립적 분석 전담 조직을 구성하고, 회사의 모든 분석 업무를 전담 조직에서 담당&lt;/li&gt;
&lt;li&gt;분석 전담 조직 내부에서 전사 분석 과제의 전략적 중요도에 따라 우선순위 정해 추진&lt;/li&gt;
&lt;li&gt;단점; 일부 현업 부서와 분석 업무가 중복 또는 이원화될 가능성&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;기능 중심의 조직 구조
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;일반적으로 분석을 수행하는 형태, 별도로 분석 조직을 구성하지 않고 각 해당 업무 부서에서 직접 분석하는 형태&lt;/li&gt;
&lt;li&gt;전사전 관점에서 핵심 분석이 어려우며, 특정 업무 부서에 국한된 분석을 수행할 가능성이 높거나 이원화 발생 또는 일부 중복된 분석 업무를 수행할 수 있는 조직 구조&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;분산형 조직 구조
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;분석 조직의 인력을 현업 부서에 배치해 분석 업무 수행&lt;/li&gt;
&lt;li&gt;전사 차원에서 분석 과제의 우선순위를 선정해 수행이 가능하며, 분석 결과를 신속하게 실무에 적용하다는 장점&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;분석 과제 관리 프로세스 수립&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;분석 과제 관리 프로세스 수립 개요
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;분석 마스터플랜이 수립되고 분석 과제가 성공적으로 수행되었다면 지속적인 분석 needs 및 기회가 분석 과제 형태로 도출 가능&lt;/li&gt;
&lt;li&gt;이렇게 도출된 분석 과제들을 체계적으로 관리하기 위한 프로세스 요구됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;분석 과제 관리 프로세스
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;크게 과제 발굴과 과제 수행으로 나뉨.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;u&gt;과제 발굴 단계&lt;/u&gt;&lt;/b&gt;; 개별 조직 혹은 개인이 과제를 발굴하고 이를 과제화하여 POOL(사용 가능한 데이터의 집합)로 관리하고 분석 과제를 선정&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;u&gt;과제 수행 단계&lt;/u&gt;&lt;/b&gt;; 선정된 과제에 대해 팀을 구성하고 분석 과제를 수행하면서 지속적 모니터링 작업을 병행하고 그 결과를 공유 및 개선하는 절차 수행&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;분석 교육 및 변화관리&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;분석 도입에 대한 문화적 대응
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;과거에는 분석 업무를 기업의 분석가가 담당했지만 현재는 모든 구성원이 데이터를 분석하고 이를 업무에 즉시 활용할 수 있도록 분석 문화를 정착시키려는 움직이 있음.&lt;/li&gt;
&lt;li&gt;BUT. 새로운 체계 도입 시 도입 이전의 과거로 되돌아가려는 관성 또한 존재하기 때문에 분석과 관련된 교육 및 마인드 육성을 위한 변화관리가 필요&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;분석 교육
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단순한 툴(R, Python, SAS 등) 교육이 아닌 분석 역량 확보 및 강화에 초점을 맞춰 진행해야 함.&lt;/li&gt;
&lt;li&gt;분석 기획자에게는 데이터 분석 큐레이션 교육, 분석 실무자에게는 데이터 분석 기법 및 도구에 대한 교육을, 업무 수행자에게는 분석 기회 발굴 및 시나리오 작성법 등의 교육을 통해 조직 구성원 모두에게 분석 기반의 업무 정착시킬 수 있어야 함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>ADSP</category>
      <author>bye0nzn</author>
      <guid isPermaLink="true">https://bye0nzn.tistory.com/464</guid>
      <comments>https://bye0nzn.tistory.com/464#entry464comment</comments>
      <pubDate>Sat, 2 May 2026 13:42:01 +0900</pubDate>
    </item>
    <item>
      <title>순차적 의사결정 1</title>
      <link>https://bye0nzn.tistory.com/463</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;경영과학의 문제유형과 분석해법&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;확정적 모델(Deterministic Model)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;LP&lt;/li&gt;
&lt;li&gt;IP&lt;/li&gt;
&lt;li&gt;수송계획법(transportation programming) 과 배치계획법(assignment programming)&lt;/li&gt;
&lt;li&gt;목표계획법(goal programming)&lt;/li&gt;
&lt;li&gt;동적계획법(dynamic programming)&lt;/li&gt;
&lt;li&gt;비선형계획법(nonlinear programming)&lt;/li&gt;
&lt;li&gt;다목적계획법(multi-objective programming)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;확률적 모델(Stochastic Model)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;의사결정론(decision theory)&lt;/li&gt;
&lt;li&gt;게임이론(game theory)&lt;/li&gt;
&lt;li&gt;마코프 분석(Markov analysis)&lt;/li&gt;
&lt;li&gt;네트워크 분석(network analysis)&lt;/li&gt;
&lt;li&gt;재고관리(inventory control)&lt;/li&gt;
&lt;li&gt;대기행렬 이론(queueing theory)&lt;/li&gt;
&lt;li&gt;시뮬레이션(simulation)&lt;/li&gt;
&lt;li&gt;신뢰성이론(reliability theory)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;마코프 체인(Markov Chain)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;마코프 성질(Markov Property)을 지닌 이산 확률과정(discrete-time stochastic process)&lt;/li&gt;
&lt;li&gt;마코프 성질이란 현재의 상태가 바로 이전의 상태에 의해서만 영향을 받는 것&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1222&quot; data-origin-height=&quot;57&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BHBt1/dJMcafGs4Fb/D7So8xlckvYsTJEkoIac2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BHBt1/dJMcafGs4Fb/D7So8xlckvYsTJEkoIac2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BHBt1/dJMcafGs4Fb/D7So8xlckvYsTJEkoIac2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBHBt1%2FdJMcafGs4Fb%2FD7So8xlckvYsTJEkoIac2K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1222&quot; height=&quot;57&quot; data-origin-width=&quot;1222&quot; data-origin-height=&quot;57&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시간에 따른 시스템의 상태변화를 나타냄. 시스템은 상태를 바꾸거나 같은 상태를 유지. 상태가 변환되는 확률이 주어짐.&lt;/li&gt;
&lt;li&gt;예) 날씨의 변화: {맑음, 비, 비, 맑음, 맑음, &amp;hellip;..}&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;945&quot; data-origin-height=&quot;253&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7YU6A/dJMcadhzbyj/ridpdF9yRjcw5gwawVIwsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7YU6A/dJMcadhzbyj/ridpdF9yRjcw5gwawVIwsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7YU6A/dJMcadhzbyj/ridpdF9yRjcw5gwawVIwsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7YU6A%2FdJMcadhzbyj%2FridpdF9yRjcw5gwawVIwsk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;512&quot; height=&quot;137&quot; data-origin-width=&quot;945&quot; data-origin-height=&quot;253&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;마코프 체인 예제: 날씨&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;어떤 도시의 날씨가 오늘이 맑을 때 내일도 맑을 확률은 0.8이고 오늘 비가 오면 내일 맑을 확률이 0.6이라고 하자. &lt;br /&gt;이 도시의 날씨를 확률과정으로 표현하면:&lt;br /&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;830&quot; data-origin-height=&quot;317&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQYhrV/dJMcaaZqZhL/a8FAWctfhD7KWGr3vDyGw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQYhrV/dJMcaaZqZhL/a8FAWctfhD7KWGr3vDyGw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQYhrV/dJMcaaZqZhL/a8FAWctfhD7KWGr3vDyGw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQYhrV%2FdJMcaaZqZhL%2Fa8FAWctfhD7KWGr3vDyGw1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;830&quot; height=&quot;317&quot; data-origin-width=&quot;830&quot; data-origin-height=&quot;317&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
Transition Matrix:&lt;br /&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;910&quot; data-origin-height=&quot;240&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bl2q5g/dJMcagL9BvZ/fjNp7Y5c7yGQY8ITwPQkj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bl2q5g/dJMcagL9BvZ/fjNp7Y5c7yGQY8ITwPQkj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bl2q5g/dJMcagL9BvZ/fjNp7Y5c7yGQY8ITwPQkj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbl2q5g%2FdJMcagL9BvZ%2FfjNp7Y5c7yGQY8ITwPQkj1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;910&quot; height=&quot;240&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;910&quot; data-origin-height=&quot;240&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
상태 전이 다이어그램(The state transition diagram):&lt;br /&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1045&quot; data-origin-height=&quot;263&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMwfZp/dJMcadoiTj0/StdQcHi7W9QUUzmjnRzc2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMwfZp/dJMcadoiTj0/StdQcHi7W9QUUzmjnRzc2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMwfZp/dJMcadoiTj0/StdQcHi7W9QUUzmjnRzc2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMwfZp%2FdJMcadoiTj0%2FStdQcHi7W9QUUzmjnRzc2K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;708&quot; height=&quot;178&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1045&quot; data-origin-height=&quot;263&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
날씨 예제:&lt;br /&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;871&quot; data-origin-height=&quot;234&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dX66JS/dJMcad2SYZV/AAKVKzLpXrxjxuk6k7Vvyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dX66JS/dJMcad2SYZV/AAKVKzLpXrxjxuk6k7Vvyk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dX66JS/dJMcad2SYZV/AAKVKzLpXrxjxuk6k7Vvyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdX66JS%2FdJMcad2SYZV%2FAAKVKzLpXrxjxuk6k7Vvyk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;691&quot; height=&quot;186&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;871&quot; data-origin-height=&quot;234&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&amp;rarr; 장기적 관점에서, 대체로 맑을 확률은 75%, 흐릴 확률은 25%&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;순차적의사결정 및 강화학습&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기존의 순차적의사결정 문제는 (특히 MDP) 연산에 있어서의 큰 한계점 보유&lt;/li&gt;
&lt;li&gt;강화학습: 환경과 상호작용하며 스스로 최적의 행동순서를 학습하는 순차적의사결정 알고리즘. 특히 강화학습의 원리는 알파고가 바둑을 정복한 원리, 현대 기업이 동적 가격 정책과 자율 시스템을 구축하는 핵심원리임.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 강화학습 기초&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Reinforcement Learning (강화학습)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단일 에이전트(agent)가 환경(environment)과 지속적으로 상호작용하며 보상(reward)을 받게 되는 상황&lt;/li&gt;
&lt;li&gt;목표: 보상(Reward)를 최대화(maximize)하기 위해 에이전트는 어떻게 Action(행동;의사결정)을 취할 것인가?&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;강화학습 기본 골격&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1118&quot; data-origin-height=&quot;700&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mJWHf/dJMcajhKcrd/ojSDaMCMi4cbtSPJ60BSF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mJWHf/dJMcajhKcrd/ojSDaMCMi4cbtSPJ60BSF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mJWHf/dJMcajhKcrd/ojSDaMCMi4cbtSPJ60BSF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmJWHf%2FdJMcajhKcrd%2FojSDaMCMi4cbtSPJ60BSF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;540&quot; height=&quot;700&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1118&quot; data-origin-height=&quot;700&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1) Cart-Pole 문제&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1256&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eMdGTa/dJMcafmagmW/WLbokhVQlNnNIOn2My2dvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eMdGTa/dJMcafmagmW/WLbokhVQlNnNIOn2My2dvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eMdGTa/dJMcafmagmW/WLbokhVQlNnNIOn2My2dvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeMdGTa%2FdJMcafmagmW%2FWLbokhVQlNnNIOn2My2dvK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1256&quot; height=&quot;467&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1256&quot; data-origin-height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Agent는 사람 !&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2) Let the robot move!&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1271&quot; data-origin-height=&quot;330&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NjdVn/dJMcaiiRBaz/Nocvj4aql1TYzwBHHnAEl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NjdVn/dJMcaiiRBaz/Nocvj4aql1TYzwBHHnAEl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NjdVn/dJMcaiiRBaz/Nocvj4aql1TYzwBHHnAEl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNjdVn%2FdJMcaiiRBaz%2FNocvj4aql1TYzwBHHnAEl1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1271&quot; height=&quot;330&quot; data-origin-width=&quot;1271&quot; data-origin-height=&quot;330&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3) Atari Games&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1270&quot; data-origin-height=&quot;448&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bthNJh/dJMcabKRx3T/TDQXqY49LCLCQeJxRdvAwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bthNJh/dJMcabKRx3T/TDQXqY49LCLCQeJxRdvAwK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bthNJh/dJMcabKRx3T/TDQXqY49LCLCQeJxRdvAwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbthNJh%2FdJMcabKRx3T%2FTDQXqY49LCLCQeJxRdvAwK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1270&quot; height=&quot;448&quot; data-origin-width=&quot;1270&quot; data-origin-height=&quot;448&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Agent: 사람 or 이 게임을 control하는 기계, 알고리즘&lt;/li&gt;
&lt;li&gt;State: 공의 위치, 발의 위치, 벽돌 상태, ...&lt;/li&gt;
&lt;li&gt;Action: 발을 어디로 움직일 것인가&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;State, Action, Reward 정의는 정해져있지 X&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4) Go&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1286&quot; data-origin-height=&quot;542&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJh5ai/dJMcahxv8Lo/1DH5VKOtjpkdAsmWd9fKtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJh5ai/dJMcahxv8Lo/1DH5VKOtjpkdAsmWd9fKtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJh5ai/dJMcahxv8Lo/1DH5VKOtjpkdAsmWd9fKtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJh5ai%2FdJMcahxv8Lo%2F1DH5VKOtjpkdAsmWd9fKtK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1286&quot; height=&quot;542&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1286&quot; data-origin-height=&quot;542&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;야구도 똑같다?&lt;br /&gt;&lt;br /&gt;State: 현재 경기 상황 &lt;br /&gt;Action: 작전 선택 &lt;br /&gt;Transition: 타격 결과, 주루 결과, 수비 결과에 따라 다음 상황으로 이동 &lt;br /&gt;Reward: 득점, 승리확률 증가, 최종 승패 등&lt;br /&gt;&lt;br /&gt;예)&lt;br /&gt;State: 9회 말, 동점, 무사 1루 &lt;br /&gt;Action: 번트 &lt;br /&gt;Transition: 성공하면 1사 2루 / 실패하면 1사 1루 또는 1사 주자 없음 / 병살 가능성은 낮음 &lt;br /&gt;Reward: 끝내기 득점 가능성 변화 또는 최종 승리 여부&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5) Recommender Systems&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;942&quot; data-origin-height=&quot;570&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTnvYs/dJMcadoiUOA/bV4RIaf8iaEXOxTkTYynEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTnvYs/dJMcadoiUOA/bV4RIaf8iaEXOxTkTYynEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTnvYs/dJMcadoiUOA/bV4RIaf8iaEXOxTkTYynEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTnvYs%2FdJMcadoiUOA%2FbV4RIaf8iaEXOxTkTYynEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;942&quot; height=&quot;570&quot; data-origin-width=&quot;942&quot; data-origin-height=&quot;570&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;6) Financial Trading&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1003&quot; data-origin-height=&quot;633&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bq5Ncf/dJMcahqKJEJ/9OiwC01j1VIxfvR94QLlvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bq5Ncf/dJMcahqKJEJ/9OiwC01j1VIxfvR94QLlvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bq5Ncf/dJMcahqKJEJ/9OiwC01j1VIxfvR94QLlvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbq5Ncf%2FdJMcahqKJEJ%2F9OiwC01j1VIxfvR94QLlvK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1003&quot; height=&quot;633&quot; data-origin-width=&quot;1003&quot; data-origin-height=&quot;633&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;7) ChatGPT&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;891&quot; data-origin-height=&quot;696&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2xqKR/dJMcahRMKoz/19pOJy0FWde0s2vriXxlqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2xqKR/dJMcahRMKoz/19pOJy0FWde0s2vriXxlqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2xqKR/dJMcahRMKoz/19pOJy0FWde0s2vriXxlqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2xqKR%2FdJMcahRMKoz%2F19pOJy0FWde0s2vriXxlqk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;601&quot; height=&quot;469&quot; data-origin-width=&quot;891&quot; data-origin-height=&quot;696&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 강화학습 구성이론&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Markov Chain&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;인공지능경영최적화를 수강하는 어떤 한 학생의 지식 수준 상태&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;839&quot; data-origin-height=&quot;334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eqvwIX/dJMcabxgrGb/cnE9LCdGd3nGt5u7Ksy7IK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eqvwIX/dJMcabxgrGb/cnE9LCdGd3nGt5u7Ksy7IK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eqvwIX/dJMcabxgrGb/cnE9LCdGd3nGt5u7Ksy7IK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeqvwIX%2FdJMcabxgrGb%2FcnE9LCdGd3nGt5u7Ksy7IK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;658&quot; height=&quot;262&quot; data-origin-width=&quot;839&quot; data-origin-height=&quot;334&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Markov Decision Process (MDP)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Dynamic Programming (DP)의 한 분야&lt;/li&gt;
&lt;li&gt;Markov Decision Process (MDP) is a discrete time stochastic control process.&lt;/li&gt;
&lt;li&gt;MDP deals with multiple number of Markov Chain.&lt;/li&gt;
&lt;li&gt;For a given time, your state will be affected by one of the Markov chains in the MDP model, depending on your action!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1231&quot; data-origin-height=&quot;346&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/O6YVG/dJMcaiXqQfM/nSjYFyUEfqsl0mQhoEoKk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/O6YVG/dJMcaiXqQfM/nSjYFyUEfqsl0mQhoEoKk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/O6YVG/dJMcaiXqQfM/nSjYFyUEfqsl0mQhoEoKk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FO6YVG%2FdJMcaiXqQfM%2FnSjYFyUEfqsl0mQhoEoKk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1231&quot; height=&quot;346&quot; data-origin-width=&quot;1231&quot; data-origin-height=&quot;346&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;What would you get from each your action?&lt;/li&gt;
&lt;li&gt;From your action, what&amp;rsquo;s the gain and/or loss?&lt;/li&gt;
&lt;li&gt;What&amp;rsquo;s your goal (i.e. objective function)?&lt;/li&gt;
&lt;li&gt;What would be the optimal &amp;ldquo;policy&amp;rdquo; for achieving your goal?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1231&quot; data-origin-height=&quot;346&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dvZDBT/dJMcaiJTZPF/Nh9ojuqltmZfoWW9AV0lWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dvZDBT/dJMcaiJTZPF/Nh9ojuqltmZfoWW9AV0lWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dvZDBT/dJMcaiJTZPF/Nh9ojuqltmZfoWW9AV0lWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdvZDBT%2FdJMcaiJTZPF%2FNh9ojuqltmZfoWW9AV0lWK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1231&quot; height=&quot;346&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1231&quot; data-origin-height=&quot;346&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Reward = 30*지식레벨 + 2*컨디션&lt;/li&gt;
&lt;li&gt;Let&amp;rsquo;s say your objective is to score as much as you can!&lt;/li&gt;
&lt;li&gt;The higher reward you get, the higher score you would get!&lt;/li&gt;
&lt;li&gt;So, maximizing your (discounted, overall, average) reward throughout the planning horizon would be your goal for this problem.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1258&quot; data-origin-height=&quot;455&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/q7Srj/dJMcafNf1Vu/PcfHzw3wA4sLaLphyUnbtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/q7Srj/dJMcafNf1Vu/PcfHzw3wA4sLaLphyUnbtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/q7Srj/dJMcafNf1Vu/PcfHzw3wA4sLaLphyUnbtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq7Srj%2FdJMcafNf1Vu%2FPcfHzw3wA4sLaLphyUnbtK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1258&quot; height=&quot;455&quot; data-origin-width=&quot;1258&quot; data-origin-height=&quot;455&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;MDP 구성요소&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Elements of MDP&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;260&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b600FF/dJMcagyzy5q/mT2S82aHDYkbmjhZgtMKz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b600FF/dJMcagyzy5q/mT2S82aHDYkbmjhZgtMKz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b600FF/dJMcagyzy5q/mT2S82aHDYkbmjhZgtMKz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb600FF%2FdJMcagyzy5q%2FmT2S82aHDYkbmjhZgtMKz0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;370&quot; height=&quot;121&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;260&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;At the decision epoch (current time=t)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;999&quot; data-origin-height=&quot;177&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7Idn5/dJMcaiXqQj9/AZNXTwyfxHz6nnGHa5q4F0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7Idn5/dJMcaiXqQj9/AZNXTwyfxHz6nnGHa5q4F0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7Idn5/dJMcaiXqQj9/AZNXTwyfxHz6nnGHa5q4F0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7Idn5%2FdJMcaiXqQj9%2FAZNXTwyfxHz6nnGHa5q4F0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;492&quot; height=&quot;87&quot; data-origin-width=&quot;999&quot; data-origin-height=&quot;177&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Policy = a series of actions&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;How to solve: Bellman&amp;rsquo;s Equation&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;An optimal policy has the property that whatever the initial state and initial decision are, the remaining decisions must constitute an optimal policy with regard to the state resulting from the first decision&lt;br /&gt;&amp;ndash; Bellman&amp;rsquo;s the Principle of Optimality(1957) &lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;: 전체 계획이 진짜 최적이라면, 첫 선택을 하고 난 뒤의 나머지 선택들도 그 이후 상황만 놓고 봤을 때 최적이어야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;There exists a policy that is optimal for every state, at every stage&lt;br /&gt;&amp;ndash; Denardo(1982)&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1260&quot; data-origin-height=&quot;238&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TL1qX/dJMcadBMLbr/g8kYtmRHUFyw9T5vgxpWdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TL1qX/dJMcadBMLbr/g8kYtmRHUFyw9T5vgxpWdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TL1qX/dJMcadBMLbr/g8kYtmRHUFyw9T5vgxpWdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTL1qX%2FdJMcadBMLbr%2Fg8kYtmRHUFyw9T5vgxpWdk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1260&quot; height=&quot;238&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1260&quot; data-origin-height=&quot;238&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Bellman&amp;rsquo;s Equation (finite horizon)&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;939&quot; data-origin-height=&quot;208&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dgBBDT/dJMcab47qfy/IKPv4ckFEcfsGjQdV7EHB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dgBBDT/dJMcab47qfy/IKPv4ckFEcfsGjQdV7EHB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dgBBDT/dJMcab47qfy/IKPv4ckFEcfsGjQdV7EHB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdgBBDT%2FdJMcab47qfy%2FIKPv4ckFEcfsGjQdV7EHB0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;635&quot; height=&quot;141&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;939&quot; data-origin-height=&quot;208&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1182&quot; data-origin-height=&quot;540&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Eyjcl/dJMcagk2Pxs/4w8rOYYBk6rklR78w7ekc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Eyjcl/dJMcagk2Pxs/4w8rOYYBk6rklR78w7ekc0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Eyjcl/dJMcagk2Pxs/4w8rOYYBk6rklR78w7ekc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEyjcl%2FdJMcagk2Pxs%2F4w8rOYYBk6rklR78w7ekc0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;652&quot; height=&quot;298&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1182&quot; data-origin-height=&quot;540&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Categories of MDP&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Planning horizon: Finite vs. Infinite&lt;/li&gt;
&lt;li&gt;Reward Criterion: Discounted Reward, Total Reward, Average Reward&lt;/li&gt;
&lt;li&gt;Decisions Interval: constant(DTMDP), randomly(SMDP, CTMDP)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1008&quot; data-origin-height=&quot;438&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qnD1i/dJMcahxAvhi/45ZjQXUHDFOL8zv75P5Hz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qnD1i/dJMcahxAvhi/45ZjQXUHDFOL8zv75P5Hz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qnD1i/dJMcahxAvhi/45ZjQXUHDFOL8zv75P5Hz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqnD1i%2FdJMcahxAvhi%2F45ZjQXUHDFOL8zv75P5Hz0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;671&quot; height=&quot;292&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1008&quot; data-origin-height=&quot;438&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>인공지능과 경영최적화</category>
      <author>bye0nzn</author>
      <guid isPermaLink="true">https://bye0nzn.tistory.com/463</guid>
      <comments>https://bye0nzn.tistory.com/463#entry463comment</comments>
      <pubDate>Fri, 1 May 2026 14:50:03 +0900</pubDate>
    </item>
    <item>
      <title>[세미나6] Exploring search space trees using an adapted version of Monte Carlo tree search for combinatorial optimization problems</title>
      <link>https://bye0nzn.tistory.com/462</link>
      <description>&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;게임 AI 분야에서 많이 사용되던 &lt;b&gt;Monte Carlo Tree Search, MCTS&lt;/b&gt;를 조합최적화 문제에 맞게 변형하여 적용한 연구이다. 논문은 2023년 Computers &amp;amp; Operations Research에 게재되었고, 대상 문제로는 &lt;b&gt;Quay Crane Scheduling Problem, QCSP&lt;/b&gt;와 &lt;b&gt;0-1 Knapsack Problem&lt;/b&gt;을 사용하였다. (&lt;a href=&quot;https://www.sciencedirect.com/science/article/abs/pii/S0305054822003008?utm_source=chatgpt.com&quot;&gt;ScienceDirect&lt;/a&gt;)&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;1. 연구 배경&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;조합최적화 문제는 가능한 해의 수가 매우 많기 때문에 모든 해를 직접 탐색하는 것이 어렵다. 예를 들어 knapsack problem에서는 각 item을 넣을지 말지를 결정해야 하고, scheduling problem에서는 작업의 순서나 자원 배정을 결정해야 한다. 문제 크기가 커질수록 가능한 조합의 수가 폭발적으로 증가한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;전통적으로 이런 문제를 풀기 위해 &lt;b&gt;Branch-and-Bound&lt;/b&gt;, &lt;b&gt;Beam Search&lt;/b&gt;, &lt;b&gt;Metaheuristic&lt;/b&gt;, &lt;b&gt;Local Search&lt;/b&gt;와 같은 방법들이 사용되어 왔다. Branch-and-Bound는 탐색 트리를 이용해 최적해를 보장할 수 있지만, 문제 크기가 커지면 계산 시간이 커질 수 있다. Beam Search는 일부 유망한 후보만 남기기 때문에 빠르지만, 최적성을 보장하지는 않는다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 논문은 이러한 배경에서 &lt;b&gt;조합최적화 문제의 해 공간을 search space tree로 보고, 이를 MCTS 방식으로 탐색하는 알고리즘&lt;/b&gt;을 제안한다. 논문의 핵심은 단순히 기존 MCTS를 그대로 가져오는 것이 아니라, 조합최적화 문제의 구조에 맞게 여러 요소를 변형했다는 점이다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;2. 기본 MCTS 개념&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;MCTS는 원래 게임 트리를 탐색하기 위해 사용된 알고리즘이다. 바둑이나 체스처럼 현재 상태에서 여러 선택지가 있고, 그 선택의 결과가 이후 상태로 이어지는 문제에서 효과적으로 사용된다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;MCTS는 크게 네 단계로 구성된다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style8&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;단계&lt;/td&gt;
&lt;td&gt;의미&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Selection&lt;/td&gt;
&lt;td&gt;현재까지의 탐색 결과를 바탕으로 어떤 node를 따라 내려갈지 선택&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Expansion&lt;/td&gt;
&lt;td&gt;선택한 node에서 새로운 child node 생성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Simulation / Rollout&lt;/td&gt;
&lt;td&gt;해당 node에서부터 끝까지 빠르게 시뮬레이션하여 결과 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backpropagation&lt;/td&gt;
&lt;td&gt;시뮬레이션 결과를 상위 node들에 반영&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;게임에서는 시뮬레이션 결과가 주로 &lt;b&gt;승리/패배&lt;/b&gt;로 표현된다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;하지만 조합최적화 문제에서는 결과가 승패가 아니라 &lt;b&gt;objective value&lt;/b&gt;, 즉 목적함수 값으로 나온다. 예를 들어 makespan 최소화 문제라면 완료 시간이 작을수록 좋은 해이고, knapsack problem이라면 총 가치가 클수록 좋은 해이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;따라서 조합최적화에 MCTS를 적용하려면 기존 게임용 MCTS와 다른 방식의 조정이 필요하다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;3. 조합최적화 문제를 tree로 보는 방식&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;조합최적화 문제는 여러 의사결정의 조합으로 하나의 해가 만들어진다. 따라서 각 의사결정을 tree의 한 단계로 볼 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;예를 들어 0-1 Knapsack Problem에서는 각 item에 대해 다음 두 가지 선택을 한다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;item을 넣는다 / 넣지 않는다&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;그러면 root node에서 시작해서 item 1, item 2, item 3 &amp;hellip; 에 대한 결정을 차례대로 내리면 하나의 complete solution이 만들어진다.&amp;nbsp;Scheduling 문제도 마찬가지다. 어떤 작업을 먼저 배정할지, 어떤 기계에 배정할지, 어떤 순서로 처리할지를 하나씩 결정하면 하나의 schedule이 완성된다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;즉, 조합최적화 문제의 해 공간은 다음과 같이 볼 수 있다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하나의 path = 하나의 feasible solution 또는 complete assignment&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 논문은 이 search space tree를 MCTS로 탐색한다. 다만 조합최적화 문제에서는 게임과 달리 몇 가지 차이가 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;첫째, 결과가 승패가 아니라 실수값 형태의 objective value이다.&lt;/u&gt;&lt;br /&gt;&lt;u&gt;둘째, 문제마다 tree의 구조를 다르게 설계해야 한다.&lt;/u&gt;&lt;br /&gt;&lt;u&gt;셋째, 같은 문제라도 instance가 달라지면 search tree도 달라진다.&lt;/u&gt;&lt;br /&gt;&lt;u&gt;넷째, 조합최적화 문제의 search space는 매우 크기 때문에 단순 MCTS만으로는 효율이 떨어질 수 있다.&lt;/u&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;그래서 논문은 MCTS를 조합최적화에 맞게 변형한다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;4. 논문에서 제안한 MCTS 변형&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 논문에서 중요한 변형 요소는 크게 네 가지이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;4.1 Pruning subtrees&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Pruning&lt;/b&gt;은 더 이상 탐색할 필요가 없는 subtree를 제거하는 것이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;조합최적화에서는 어떤 node 아래에 있는 모든 해가 현재 알고 있는 좋은 해보다 나쁠 것이 확실하다면, 그 subtree는 더 이상 탐색하지 않아도 된다. 이는 Branch-and-Bound의 아이디어와도 연결된다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;예를 들어 최소화 문제에서 어떤 node의 lower bound가 현재 best solution보다 크다면, 그 node 아래에서는 더 좋은 해가 나올 수 없다. 따라서 해당 subtree를 제거할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;정리하면 pruning은 다음과 같은 역할을 한다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좋은 해가 나올 가능성이 없는 탐색 영역을 미리 제거하여 계산량을 줄이는 방법&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;4.2 Domain Reduction&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Domain Reduction&lt;/b&gt;은 decision variable이 가질 수 있는 값의 범위를 줄이는 방법이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;논문에서는 특히 &lt;b&gt;dominated value assignment&lt;/b&gt;를 제거하는 방식으로 domain을 줄인다. 쉽게 말하면, 어떤 선택지가 다른 선택지보다 명백히 나쁘다는 것이 증명되면 그 선택지는 고려하지 않는 것이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;예를 들어 어떤 node에서 선택 A가 선택 B보다 항상 나쁜 결과로 이어진다면, 선택 A는 제거할 수 있다. 이렇게 하면 tree의 branching factor가 줄어들고, 탐색해야 할 후보도 줄어든다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;즉, domain reduction은 다음과 같은 의미이다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;애초에 선택할 필요가 없는 값을 제거하여 search space를 축소하는 방법&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;4.3 Heuristic Simulation Policy&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;기본 MCTS에서는 simulation 단계에서 random rollout을 수행하는 경우가 많다. 하지만 조합최적화 문제에서는 완전히 random하게 남은 결정을 채우면 품질이 낮은 해가 많이 생성될 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;그래서 이 논문은 &lt;b&gt;heuristic simulation policy&lt;/b&gt;를 사용한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이는 simulation 단계에서 남은 결정을 무작위로 채우는 것이 아니라, 문제에 맞는 휴리스틱을 이용해 complete solution을 만드는 방식이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;예를 들어 knapsack problem에서는 item을 무게 대비 가치 비율 기준으로 정렬한 뒤, 가능한 item부터 넣는 방식으로 rollout할 수 있다. Scheduling 문제에서는 남은 작업을 특정 규칙에 따라 크레인이나 기계에 배정할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 방식의 장점은 다음과 같다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;rollout에서 더 좋은 품질의 solution을 생성할 수 있고, 그 결과 MCTS가 더 정확한 방향으로 search tree를 탐색할 수 있다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;논문의 computational results에서도 heuristic simulation policy가 성능에 중요한 영향을 준 것으로 설명된다. (&lt;a href=&quot;https://www.sciencedirect.com/science/article/abs/pii/S0305054822003008?utm_source=chatgpt.com&quot;&gt;ScienceDirect&lt;/a&gt;)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;4.4 Beam Width&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Beam Width&lt;/b&gt;는 한 단계에서 유지할 후보 node의 수를 제한하는 개념이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;일반적인 tree search에서는 가능한 모든 child node를 고려할 수 있지만, 조합최적화 문제에서는 branching factor가 커질 수 있다. 이때 beam width를 사용하면 유망한 일부 node만 남기고 나머지는 탐색하지 않는다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;즉, beam width는 다음과 같은 역할을 한다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;너무 많은 후보를 모두 탐색하지 않고, 유망한 후보만 남겨 탐색을 집중시키는 방법&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이는 Beam Search와 유사한 아이디어이다. MCTS의 탐색 구조에 beam width를 결합함으로써 계산량을 줄이고, 제한된 시간 안에 더 좋은 해를 찾도록 한다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;5. Selection Policy와 Normalization&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;MCTS의 selection 단계에서는 어떤 child node를 선택할지 결정해야 한다. 일반적으로는 exploitation과 exploration 사이의 균형이 중요하다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;조합최적화 문제에서는 objective value의 범위가 문제마다 다를 수 있다. 예를 들어 어떤 문제의 objective value는 0~100 사이일 수 있지만, 다른 문제에서는 수천 또는 수만 단위일 수 있다. 이 경우 값을 그대로 사용하면 selection policy가 제대로 작동하지 않을 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;그래서 논문에서는 objective value를 적절히 비교하기 위해 &lt;b&gt;normalization&lt;/b&gt;이 필요하다고 본다. 또한 rank를 활용한 방식 등 여러 selection policy를 비교한다. 다만 computational results에서는 selection policy 간 차이가 아주 크게 나타나지는 않았고, 오히려 heuristic simulation policy 같은 요소가 더 중요한 역할을 한 것으로 보인다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;6. Case Study A: Quay Crane Scheduling Problem&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;첫 번째 case study는 &lt;b&gt;Quay Crane Scheduling Problem with non-crossing constraints&lt;/b&gt;이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 문제는 항구에서 배에 실린 컨테이너를 여러 대의 quay crane을 이용해 하역하는 상황을 다룬다. 목적은 모든 작업을 가능한 한 빠르게 완료하는 것이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;6.1 문제 상황&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;배에는 여러 작업이 있고, 각 작업은 특정 위치에 존재한다. 여러 대의 크레인이 이 작업들을 처리해야 한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이때 중요한 제약이 있다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;크레인들이 같은 rail 위에서 움직이기 때문에 서로 지나칠 수 없다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;즉, 크레인들이 나란히 배치되어 있고, 왼쪽에 있는 크레인이 오른쪽 크레인을 넘어갈 수 없다. 이것이 &lt;b&gt;non-crossing constraint&lt;/b&gt;이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;목적은 다음과 같다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 container handling 작업을 가장 빠른 시간 안에 완료하는 schedule을 찾는 것&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;즉, 대표적인 scheduling problem이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;6.2 Relaxation 아이디어&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;논문에서는 원래의 QCSP를 그대로 다루기보다, 문제를 relaxation한 형태로 MCTS에 적용한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;핵심 아이디어는 다음과 같다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작업을 어떤 크레인에 allocation할지만 결정하면, 그 이후의 scheduling은 자동으로 결정될 수 있다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;즉, MCTS는 모든 세부 scheduling 결정을 직접 탐색하는 것이 아니라, &lt;b&gt;allocation decision&lt;/b&gt;을 중심으로 search tree를 구성한다. 이렇게 하면 원래 문제보다 탐색 공간을 줄일 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;6.3 QCSP에서의 Domain Reduction&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;QCSP에서는 각 node에서 lower bound를 계산하여 탐색 가능성을 판단한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;네가 정리한 것처럼 lower bound는 대략 다음 두 가지 관점에서 계산된다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;첫째, 현재까지 걸린 시간에 가장 오래 걸리는 남은 작업 시간을 더한 값이다.&lt;br /&gt;둘째, 현재까지 걸린 시간에 남은 작업들을 크레인에 고르게 분배했을 때 필요한 시간을 더한 값이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;그리고 이 두 값 중 더 큰 값을 lower bound로 사용한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;즉, '&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;현재까지의 소요 시간 + 남은 작업을 고려했을 때 최소한 이 정도 시간은 필요하다'&lt;/span&gt;라는 값을 계산하는 것이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 lower bound가 현재 best solution보다 나쁘다면, 해당 node 아래에서는 더 좋은 해가 나올 수 없으므로 pruning할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;6.4 QCSP에서의 Heuristic Simulation Policy&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;QCSP의 rollout에서는 남은 작업을 무작위로 배정하기보다, 문제 구조를 반영한 휴리스틱을 사용한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;즉, 크레인의 위치, 작업 순서, non-crossing constraint 등을 고려하여 남은 allocation을 빠르게 완성한다. 이를 통해 random rollout보다 더 현실적이고 품질 좋은 schedule을 얻을 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;결과적으로 MCTS는 단순히 random하게 tree를 내려가는 것이 아니라, scheduling 문제의 구조를 반영하면서 search space를 탐색하게 된다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;7. Case Study B: 0-1 Knapsack Problem&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;두 번째 case study는 &lt;b&gt;0-1 Knapsack Problem&lt;/b&gt;이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;0-1 Knapsack Problem은 각 item에 대해 선택 여부를 결정하는 문제이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;각 item에는 value와 weight가 있고, 가방의 capacity가 정해져 있다. 목적은 capacity를 넘지 않으면서 total value를 최대화하는 것이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;7.1 기본 아이디어&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;MCTS의 tree에서는 각 level이 하나의 item에 대한 결정을 의미한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;각 item에 대해 가능한 선택은 두 가지다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;넣는다 / 넣지 않는다&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;따라서 root에서 시작해 모든 item에 대한 선택을 완료하면 하나의 feasible solution이 만들어진다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;7.2 Item 정렬&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;논문에서는 item을 &lt;b&gt;value-to-weight ratio&lt;/b&gt;, 즉 무게 대비 가치 기준으로 내림차순 정렬한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 기준은 knapsack problem에서 자주 사용되는 greedy heuristic이다. 가치가 높고 무게가 가벼운 item을 먼저 고려하면 좋은 해를 빠르게 만들 가능성이 높다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;7.3 Knapsack에서의 Domain Reduction&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Knapsack problem에서는 capacity constraint가 있기 때문에, 이미 가방이 꽉 찼다면 더 이상 item을 추가할 수 없다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;따라서 어떤 node에서 남은 capacity가 부족하다면, capacity를 초과하는 선택지는 제거할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;즉,&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 상태에서 물리적으로 불가능한 선택을 domain에서 제거하는 것&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 domain reduction이 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;7.4 Upper Bound를 이용한 Pruning&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Knapsack problem에서는 현재 node에서 앞으로 얻을 수 있는 최대 possible value를 upper bound로 계산할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;예를 들어 현재까지 담은 item의 가치에, 남은 capacity로 이론적으로 추가할 수 있는 최대 가치를 더해 upper bound를 만든다. 만약 이 upper bound가 현재 best solution보다 낮다면, 그 node 아래에서는 더 좋은 해가 나올 수 없다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;따라서 해당 subtree를 pruning할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;최대화 문제이기 때문에 QCSP와 방향이 반대다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 61px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style8&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;문제&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;Bound 사용 방식&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;height: 22px;&quot;&gt;QCSP&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot;&gt;lower bound가 현재 best보다 나쁘면 pruning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;height: 22px;&quot;&gt;Knapsack&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot;&gt;upper bound가 현재 best보다 낮으면 pruning&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;7.5 Knapsack에서의 Heuristic Simulation Policy&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Knapsack의 simulation 단계에서는 남은 item을 value-to-weight ratio 순서대로 하나씩 담는 방식의 heuristic을 사용할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;즉, random하게 item을 넣는 것이 아니라,&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;효율이 좋은 item부터 capacity가 허용하는 만큼 넣는다&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;는 방식으로 complete solution을 만든다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이렇게 하면 rollout 결과가 더 좋은 해에 가까워지고, MCTS가 어떤 node가 유망한지 더 잘 판단할 수 있다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;8. Computational Results&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;논문은 두 case study에 대해 computational experiments를 수행했다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;8.1 QCSP 결과&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;QCSP에서는 제안한 MCTS 기반 알고리즘이 기존 state-of-the-art 결과를 능가했으며, benchmark instance에서 여러 개의 새로운 best known solution을 찾았다. (&lt;a href=&quot;https://www.sciencedirect.com/science/article/abs/pii/S0305054822003008?utm_source=chatgpt.com&quot;&gt;ScienceDirect&lt;/a&gt;)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이는 MCTS가 단순한 게임 탐색 알고리즘이 아니라, scheduling problem의 search space를 탐색하는 데에도 효과적으로 사용될 수 있음을 보여준다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;특히 QCSP에서는 문제 구조를 반영한 pruning, domain reduction, heuristic simulation policy가 결합되면서 좋은 성능을 낸 것으로 볼 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;8.2 Knapsack 결과&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;0-1 Knapsack Problem에서는 제안 알고리즘이 state-of-the-art보다 약간 낮은 품질의 해를 내는 경우가 있었지만, 훨씬 짧은 시간 안에 near-optimal solution을 찾았다. (&lt;a href=&quot;https://www.sciencedirect.com/science/article/abs/pii/S0305054822003008?utm_source=chatgpt.com&quot;&gt;ScienceDirect&lt;/a&gt;)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;즉, knapsack에서는 최고의 성능을 완전히 넘어서기보다는,&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;짧은 시간 안에 꽤 좋은 해를 빠르게 찾는 알고리즘&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;으로서의 장점이 두드러진다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;8.3 알고리즘 구성요소 비교&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;논문에서는 알고리즘의 여러 구성요소가 성능에 어떤 영향을 미치는지도 비교한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;그중에서도 중요한 요소는 &lt;b&gt;heuristic simulation policy&lt;/b&gt;였다. Rollout을 완전히 random하게 하는 것보다, 문제에 맞는 heuristic을 적용했을 때 훨씬 좋은 성능을 기대할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;반면 selection policy의 경우 rank 기반 normalization, objective value를 직접 사용하는 방식, 기존 문헌의 방식을 비교했을 때 차이가 아주 크지는 않았던 것으로 정리할 수 있다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;9. 논문의 Contribution&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 논문의 contribution은 크게 세 가지로 정리할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;첫째, MCTS를 조합최적화 문제의 search space tree 탐색에 맞게 변형한 heuristic algorithm을 제안했다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;둘째, pruning, domain reduction, heuristic simulation policy, beam width와 같은 전통적인 최적화 아이디어를 MCTS와 결합했다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;셋째, 서로 다른 성격의 두 문제인 QCSP와 0-1 Knapsack Problem에 적용하여 경쟁력 있는 성능을 보였다. 특히 QCSP에서는 기존 최고 성능을 넘어서는 결과와 새로운 best known solution을 발견했다. (&lt;a href=&quot;https://www.sciencedirect.com/science/article/abs/pii/S0305054822003008?utm_source=chatgpt.com&quot;&gt;ScienceDirect&lt;/a&gt;)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 점에서 이 논문은 MCTS를 단순히 게임 AI 알고리즘으로 보는 것이 아니라, &lt;b&gt;조합최적화 문제를 위한 일반적인 search framework로 확장했다는 점&lt;/b&gt;에서 의미가 있다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;10. Future Work&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;논문에서 제시하는 future work도 흥미롭다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;게임에서는 같은 게임에 대해 하나의 game tree 구조가 반복적으로 사용될 수 있다. 하지만 조합최적화 문제에서는 같은 문제 유형이라도 instance가 달라질 때마다 search tree가 달라진다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;예를 들어 knapsack problem이라도 item의 개수, weight, value, capacity가 달라지면 tree의 구조와 좋은 탐색 방향도 달라진다. 따라서 매 instance마다 MCTS가 새롭게 search tree를 탐색해야 하는 부담이 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이와 관련하여 논문은 향후 연구 방향으로 다음과 같은 아이디어를 제시한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;첫째, 여러 instance에서 학습한 경험을 활용할 수 있는 &lt;b&gt;policy network&lt;/b&gt;를 결합하는 방향이다. 이는 MCTS가 매번 처음부터 탐색하는 것이 아니라, 이전 instance들에서 얻은 탐색 지식을 활용하도록 하는 접근이다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;둘째, &lt;b&gt;matheuristic&lt;/b&gt; 방향이다. 특히 simulation policy에 exact algorithm이나 mathematical programming 기법을 결합하면, 단순 heuristic rollout보다 더 강력한 solution을 만들 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;셋째, MCTS의 병렬화이다. MCTS는 여러 simulation을 반복하는 구조이기 때문에 병렬화와 잘 맞을 수 있다. 이를 통해 더 큰 규모의 조합최적화 문제에도 적용 가능성을 높일 수 있다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;11. 개인적인 정리&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 논문의 핵심은 &amp;ldquo;MCTS를 조합최적화 문제에 적용했다&amp;rdquo;는 사실 자체보다, &lt;b&gt;조합최적화 문제의 구조를 이용해 MCTS를 어떻게 바꾸었는가&lt;/b&gt;에 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;기본 MCTS는 game tree를 탐색하는 알고리즘이다. 하지만 조합최적화 문제에서는 outcome이 승패가 아니라 objective value이고, 문제마다 decision variable과 constraint가 다르다. 따라서 MCTS를 그대로 적용하기보다는, 각 문제의 구조를 반영해 search space를 줄이고 rollout 품질을 높여야 한다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;이 논문은 그 방법으로 pruning, domain reduction, heuristic rollout, beam width를 사용했다. 특히 QCSP와 knapsack이라는 서로 다른 문제에 적용했다는 점에서, MCTS가 특정 문제에만 국한된 알고리즘이 아니라 다양한 조합최적화 문제에 적용 가능한 framework가 될 수 있음을 보여준다.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;나에게 특히 흥미로웠던 부분은 &lt;b&gt;MCTS와 전통적인 최적화 기법의 결합 가능성&lt;/b&gt;이었다. MCTS는 탐색 방향을 학습적으로 조정하는 장점이 있고, pruning이나 bound 계산은 OR 분야의 전통적인 강점이다. 두 접근을 결합하면, 단순 metaheuristic보다 구조적인 탐색이 가능하고, exact algorithm보다 빠르게 좋은 해를 찾을 수 있다는 장점이 있다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;12. 한 문단 요약&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;Jooken et al.의 논문은 게임 AI 분야에서 주로 사용되던 Monte Carlo Tree Search를 조합최적화 문제의 search space tree 탐색에 맞게 변형한 연구이다. 조합최적화 문제에서는 하나의 해가 여러 decision variable의 값 배정으로 구성되기 때문에, 전체 해 공간을 tree로 표현할 수 있다. 논문은 이 tree를 효율적으로 탐색하기 위해 pruning, domain reduction, heuristic simulation policy, beam width를 MCTS에 결합하였다. 제안 알고리즘은 Quay Crane Scheduling Problem과 0-1 Knapsack Problem에 적용되었으며, QCSP에서는 기존 state-of-the-art를 넘어서는 성능과 새로운 best known solution을 발견했고, knapsack에서는 짧은 시간 안에 near-optimal solution을 찾았다. 이 연구는 MCTS가 게임 탐색을 넘어 조합최적화 문제를 해결하기 위한 유연한 heuristic search framework로 활용될 수 있음을 보여준다.&lt;/p&gt;</description>
      <category>Lab/[2026] AAPL 세미나</category>
      <author>bye0nzn</author>
      <guid isPermaLink="true">https://bye0nzn.tistory.com/462</guid>
      <comments>https://bye0nzn.tistory.com/462#entry462comment</comments>
      <pubDate>Thu, 30 Apr 2026 19:03:03 +0900</pubDate>
    </item>
  </channel>
</rss>