2010-11-26 2 views
1

저는 컴퓨터로 이차 프로그래밍을 풀 수있는 방법을 알고 싶습니다. 내가 읽을 수있는 수학 자료는 없나요? 감사!이차 프로그래밍 풀

+3

[수학적 최적화 문제의 특정 종류] (http://en.wikipedia.org/wiki/Quadratic_programming) ... –

+0

예. 그 수학적 문제를 풀 수있는 계산 방법 – franziga

+0

나는이 물건에 대한 단서가 없지만 뷰 클릭은 [this Wikipedia article] (https://secure.wikimedia.org/wikipedia/en/wiki/Sequential_quadratic_programming)에서 여러 패키지. –

답변

1

블랙 박스 소프트웨어 패키지를 사용하고 싶습니다. 견고한 QP 솔버를 구현하는 것은 유명한 일입니다.

사용하는 언어는 언급하지 않았지만 C++ 인 경우 QuadProg ++는 경량이며 무료입니다.

+0

정말 어렵다면 패키지를 사용해야 할 것 같습니다. .NET을 사용하고 있으며 무료 라이브러리가 있기를 바랍니다. – franziga

1

어떤 종류의 내부 점 방식을 사용할 수 있습니다. 종종 QP 문제는 매우 특별하며 예를 들어 SVM에서 발생하는 QP에 대한 Platt의 알고리즘과 같이 일반적인 방법을 사용할 수 없습니다.

+0

감사합니다. 실제로 코드가 있습니다 (비 컴퓨터 과학 학생이 잘 쓰지 않았습니다). SVD와 LU 작업을 사용하는 것을 보았습니다.하지만 전체 그림을 얻을 수는 없습니다. – franziga

1

코드가 짧고 SVD 및 LU를 사용하는 경우 동일성 제약 조건 또는 제약 조건이없는 문제에 대한 간단한 해결 방법 일 수 있습니다. 불평등 제약 조건을 가진 QP는 quadprog (matlab), quadprog ++ (C++), mosek (matlab 및 C++)와 같은 도구를 사용하여 해결할 수 있습니다. C++ 라이브러리는 .net 언어로 사용할 수 있습니다.

0

답변은 문제의 크기와 2 차 함수의 convexity에 따라 크게 달라집니다. 문제가 볼록하고 파이썬을 사용하는 것을 좋아한다면 freecvxmod을 사용할 수 있습니다. 수학 자료의 경우 볼록 최적화 도서 인 freely available도 있습니다. 비 볼록 문제의 경우, 코인 또는 프로젝트의 IPopt 패키지는 지역 최적 솔루션을 찾기 위해 노력할 것입니다.