Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 파이썬
- 작업생리학
- 생산운영
- informationprocessing
- 공장역학
- 디스플레이 설계 원리
- 크롤러
- 생산및운영관리
- Humanfactor
- 자동화
- .get_attribute
- selenium
- Humanfactors
- 인간공학
- .text
- Sensing
- 셀레니움
- 청각손실
- 인체측정학
- Human Factors and Ergonomics
- .click
- bottleneck
- factoryphysics
- Anthropometry
- IndustrialEngineering
- hfe
- Python
- .send_keys
- 산업공학
- 크롤링
Archives
- Today
- Total
Data & Technology Manager
[생산및운영관리] Manufacturing Models with Python Solver 1 (ortools를 이용한 해 찾기 기능 소개) 본문
공부/생산및운영관리
[생산및운영관리] Manufacturing Models with Python Solver 1 (ortools를 이용한 해 찾기 기능 소개)
영철 연구원 2022. 4. 5. 17:50*해당 글은 구글 colab을 기준으로 코드를 진행하였습니다.
● 간단한 문제를 풀며 코딩을 시작해 보자
우선 필요한 라이브러리를 설치해야 한다.
!pip install ortools
ortools를 설치를 먼저 한다.
이후 linear_solver를 불러오고 solver를 선언한다.
from ortools.linear_solver import pywraplp
solver = pywraplp.Solver.CreateSolver('GLOP')
이곳에서 GLOP는 구글이 개발하고 있는 선형 해 구하는 solver이다.
solver를 지정하고 나면, 위 문제의 제약조건을 적어보기로 하자.
x = solver.NumVar(0, 1, 'x')
y = solver.NumVar(0, 2, 'y')
위 문제에서 x와 y 는 각각 0에서부터 1, 0에서부터 2까지 실수 범위이기에 위와 같은 코드를 작성하였다.
(만약 상한이 없는 경우라면, 1과 2 대신에 solver.infinity() 작성)
이후 제약조건을 달아준다. 문제에선 x+y<=2가 조건.
ct = solver.Constraint(0, 2, 'ct')
ct.SetCoefficient(x, 1)
ct.SetCoefficient(y, 1)
위의 ct는 해를 찾기 위한 제약조건을 뜻하며, x+y는 2보다 작거나 같지만, 실제 조건은 0부터 2까지이기에 위와 같이 설정하였다.
그리고 아래의 ct.SetCoefficient는 각각의 변수의 계수를 지정해주는 함수이다.
이후 우리의 목표함수인 Objective function을 작성해 보자. MAX(3x * y)를
objective = solver.Objective()
objective.SetCoefficient(x, 3)
objective.SetCoefficient(y, 1)
objective.SetMaximization()
이렇게 목표함수를 만들어 보았다. (setcoefficient설명은 이전과 동일)
이 해당 결과를 만들어 주는 함수는 Solve 함수이다.
solver.Solve()
print('Solution:')
print('Objective value =', objective.Value())
print('x =', x.solution_value())
print('y =', y.solution_value())
위 과정을 구글 colab에서 돌린 결과는 다음과 같다.
x는 1일 때, y도 1일 때 최댓값 4를 갖게 된다는 결과를 얻었다.
'공부 > 생산및운영관리' 카테고리의 다른 글
[생산및운영관리] Basic Factory Dynamics (기본 공장 역학) (0) | 2022.04.26 |
---|---|
[생산및운영관리] Manufacturing Models(제조 공정 모델) (0) | 2022.04.03 |
Comments