2010-11-26 5 views
1

선형 제약 수학 모델을 해결할 수있는 간단한 해결 방법을 아는 사람이 있습니까? 예 간단한 모델 :해결사 제약 조건 프로그래밍 문제 해결

a + b + c = 100; 
a/b/c = 2/3/4; 
a > d 

내가 MS 솔버 기반을 사용하고 있는데이 내 C# 코드이지만 던져 UnsolvableModelException : : 어떤 도움

편집에 대한

 SolverContext solverContext = SolverContext.GetContext(); 
     Model model = solverContext.CreateModel(); 
     Decision a = new Decision(Domain.Real, "a"); 
     Decision b = new Decision(Domain.Real, "b"); 
     model.AddDecisions(a, b); 
     model.AddConstraint("fator", a/b == 4); 
     model.AddConstraint("sum", a + b == 5); 
     Solution solution = solverContext.Solve(new ConstraintProgrammingDirective()); 
     Report report = solution.GetReport(); 
     Console.WriteLine("a = {0} ; b = {1}", a, b); 

감사합니다

int CSP (제약 sstisfaction 프로그래밍) 문제 때문에 문제를 해결할 때 지시어를 사용하지 않아야합니다. 코드가 있어야한다 :

SolverContext solverContext = SolverContext.GetContext(); 
    Model model = solverContext.CreateModel(); 
    Decision a = new Decision(Domain.Real, "a"); 
    Decision b = new Decision(Domain.Real, "b"); 
    model.AddDecisions(a, b); 
    model.AddConstraint("fator", a/b == 4); 
    model.AddConstraint("sum", a + b == 5); 
    Solution solution = solverContext.Solve(); 
    Report report = solution.GetReport(); 
    Console.WriteLine("a = {0} ; b = {1}", a, b); 

그러나, 나도 몰라 나는 천천히 난 단지 솔루션 세트의 첫 번째 솔루션을 필요로하는 실행 이유.

+0

나는 MSF의 CSP의 samsple를 찾을 수 있습니다. 따라서 문제가있는 곳을 압니다. 고맙습니다. 어쨌든 – coolkid

답변

1

사용자의 필요에 따라 Wolfram Alpha가 유용 할 수 있습니다 (적어도 확인을 위해). 입력이 제한되어 있기 때문에 복잡한 문제를 해결할 수 있을지는 의문입니다. 그러나 당신의 예제처럼 간단한 문제에 대해서는 괜찮습니다.

http://www.wolframalpha.com/input/?i=solve+a+%2B+b+%2B+c+%3D%3D+100%3B+a%2Fb+%3D%3D+2%2F3%3B+b%2Fc%3D%3D3%2F4%3B+a+%3E+d

alt text

+1

하지만 내 응용 프로그램 라이브러리로 사용할 수 없습니다. – coolkid

+0

@coolkid 그들은 웹 서비스 ($$$)를 제공합니다. 그렇기 때문에 나는 당신의 필요에 따라 _ 내 대답을 시작했습니다. –