MS60 실습을 시작하면서 사용법과 메뉴 설명, 2주차 예제를 가지고 실습해보겠습니다.
* MS60을 시작할 때 마우스 오른쪽 버트 클릭 -> '관리자 권한으로 실행' 클릭
* 'Continue...' 버튼 클릭
* Linear Programming은 LP Relaxation으로 문제를 해결할 때 사용
* Integer Linear Programming은 '최적해가 정수'라는 제약조건이 추가로 붙거나,
'최적해가 0 혹은 1' 즉 Binary를 이용하여 의사결정변수의 채택 여부에 관한 문제를 해결할 때 사용
<모듈 선택 후 왼쪽 상단 버튼 설명>
* File 탭 : New(새로운 자료를 입력한다), Open(기존에 저장된 자료를 불러온다), Change Module(모듈을 바꾼다), Save Problem(입력한 문제를 자료 파일로 저장한다), Exit(나가기)
* Edit 탭 : Display/Edit the Problem(Solution 탭의 Solve로 문제를 풀고 최적해가 나온 화면에서 다시 의사결정변수 및 제약조건을 입력하는 화면으로 돌아감), Add Constraints(제약조건을 추가함. 입력하는 숫자의 개수만큼 제약조건의 칸이 늘어남.), Delete Constraint(제약조건 삭제. 입력하는 번호에 해당하는 제약조건이 삭제됨.), Add Variables(의사결정변수를 추가함), Delete Variable(의사결정변수를 삭제함.), Change Optimization Type(Max와 Min 즉, 의사결정 방향을 변경함)
* Solution 탭 : Solve(입력한 문제를 풀이함), Print(Solve 기능으로 나온 결과 창을 프린트함), Save As Text File(결과 창을 한글 및 워드 파일의 형식으로 저장함)
<2주차 부동산 임대업 예시로 LP와 ILP의 사용법 익히기>
1. LP
*Linear Programming 선택 후 'OK'
*저는 File 탭 -> Open 버튼으로 교수님께서 제공하신 파일을 그대로 불러오기 했습니다.
직접 작성하실 분들은 File 탭 -> New 버튼을 이용하세요!
* Solution 탭 -> Solve 버튼을 눌러 나온 결과입니다.
- 최적해가 정수여야 한다는 조건 없이 LP Relaxation으로 문제를 우선 풀어보기 위해 ILP가 아닌 LP를 이용했습니다
- 최적해의 값이 정수로 떨어지지 않고 소수점으로 나오는 것을 볼 수 있습니다
2. ILP
* 굳이 프로그램 종료 후 시작 화면에서 모듈을 선택하지 않고 결과창에서 Edit 탭 -> Display/Edit the Problem 버튼을 이용하여 자료 입력 창으로 간 후 File 탭 -> Change Module 버튼을 이용하여 위 창을 띄웠습니다.
* LP에서 이용했던 자료에 '최적해는 정수로 구함'이라는 제약 조건을 추가하고 ILP 모듈을 선택합니다.
* 저는 이전 LP 실습과 마찬가지로 File 탭 -> Open 버튼으로 교수님께서 제공하신 파일을 그대로 불러오기 했습니다.
* LP와 ILP는 자료 입력 창의 형태가 같은데요, LP에서 불러온 파일이 ILP에서도 불러오기가 가능한 것을 보니 확장자가 '.LPM'인 파일은 LP와 ILP 모듈 모두 이용가능한 것으로 보입니다.
* Solution 탭 -> Solve 버튼을 눌렀을 때, LP와는 다른 창이 하나 뜹니다.
* 우리는 해당 문제에서 모든 의사결정변수의 최적해를 정수(Integer)로 구할 것이기 때문에 'All Variables Are General Integer' 옵현을 누르고 'Select General Integer Variables'(정수로 구할 의사결정변수를 선택하는 기능)에서 T와 A를 모두 클릭한 상태에서 'Solve' 버튼을 누릅니다.
* LP를 이용하여 문제를 풀었을 때와는 확연히 다른 값이 나옵니다.
- T, A가 각각 정수인 4, 2의 값을 가집니다.
- '최적해는 정수'라는 제약조건이 추가되었기 때문에 선택의 폭이 줄며, 조건이 없을 때에 비해 의사결정이 '불리'해져서 73.574->70으로 목적함수값이 줄어든 것을 볼 수 있습니다. 목적함수의 방향이 MAX(최대화)이기 때문에 불리해진다는 것은 값이 줄어듦을 의미합니다.
첫댓글 잘했어~ ^^
ㅎㅎ 감사합니다 :)