roundoff limited 오류에 대한 질문입니다.
조회수 1839회
최근에 파이썬을 이용해서 프로그래밍을 하고 있는 사람입니다.
엑셀에 있는 '해찾기' 기능을 이용해서 최적화를 수행중에 있는데
파이썬 라이브러리중 nlopt 라이브러리가 비슷한 기능을 수행하여 해당 라이브러리를 이용해서 작업하고 있습니다.
다음은 nlopt를 설명해주는 사이트입니다.
http://ab-initio.mit.edu/wiki/index.php/NLopt
nlopt 내에 해찾기 알고리즘 종류가 여러개 있는데, 엑셀과 가장 유사한 알고리즘으로
라고 알고있어서 해당 함수를 활용해서 프로그래밍을 하였습니다.(COBYLA)
파이썬 내 소스에서 함수를 활용하기 위해서
http://ab-initio.mit.edu/wiki/index.php/NLopt_Python_Reference
위의 url에서 함수를 호출하여 활용중에 있습니다.
여기서 제가 궁금한것은 종료허용범위가 제대로 작동하지 않는것인지 대부분의 입력값에는 제대로 작동하다가 특정값을 입력하게 되면 무한루프가 돌아가게 되는 roundoff-limited 상태에 빠져서 오류로 프로그램이 멈추게됩니다.
(1/3 = 0.333333과 유사한 상황으로 판단중)
해당 라이브러리를 활용해서 프로그래밍을 할 경우 저 오류가 나타나지 않게 하는법을 알고싶습니다.(라이브러리를 수정하는 방법이라던지 해당 오류가 나타나지 않도록 종료허용범위 활용방법이라던지....)
다른 고수분들의 조언 부탁드립니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
http://ab-initio.mit.edu/wiki/index.php/NLopt_Python_Reference#Exceptions 에 보니RoundoffLimited라는 Exception이 발생해서 그런것 같은데요. RoundoffLimited라는 Exception에 대해서 예외처리를 해 주면 되지 않을까요?
파이썬에서 예외처리는 아래와 같이 합니다.
try: # 에러가 발생할 가능성이 있는 코드 except Exception: # 에러 종류 #에러가 발생 했을 경우 처리할 코드
예외처리를 모르신다면 이 강의를 참고해 주세요.
- 답변 감사합니다. 예외처리쪽이랑 관련있다고는 생각했는데 java처럼 예외처리코드를 따로 작성할수 있는지는 몰랐네요. 강의보고 다시 시도해보겠습니다. 알 수 없는 사용자 2017.3.8 07:09
댓글 입력