열생성

Column generation

컬럼 생성 또는 지연 컬럼 생성은 대형 선형 프로그램 해결을 위한 효율적인 알고리즘이다.

중요한 아이디어는 많은 선형 프로그램들이 너무 커서 모든 변수를 명시적으로 고려할 수 없다는 것이다.따라서 그 아이디어는 그 변수의 일부만으로 고려된 프로그램을 해결하는 것으로 시작하는 것이다.그런 다음 반복적으로 객관적 기능을 개선할 가능성이 있는 변수를 프로그램에 추가한다.새로운 변수를 추가해도 목표 함수의 값이 더 이상 개선되지 않는다는 것을 증명할 수 있게 되면 절차가 중단된다.컬럼 생성 알고리즘을 적용할 때 기대되는 것은 변수의 극히 일부분만이 생성된다는 것이다.이러한 희망은 최적의 솔루션에서 대부분의 변수가 비기본적이고 0의 값을 가정하므로 이러한 변수 없이도 최적의 솔루션을 찾을 수 있다는 사실에 의해 뒷받침된다.

많은 경우에, 이 방법은 그렇지 않으면 다루기 힘든 대규모 선형 프로그램을 해결할 수 있다.그것이 성공적으로 사용되는 문제의 고전적인 예는 절삭 재고 문제다.이러한 접근방식을 사용하는 선형 프로그래밍의 한 가지 특별한 기술은 단치히-이다.울프 분해 알고리즘.또한, 칼럼 생성은 승무원 스케줄링, 차량 경로 설정, 정전식 p-median 문제와 같은 많은 문제에 적용되었다.

알고리즘.

알고리즘은 두 가지 문제를 고려한다: 마스터 문제와 서브 문제.주 문제는 일부 변수만 고려되는 원래의 문제다.하위 문제는 개선 변수(즉, 마스터 문제의 객관적 기능을 개선할 수 있는)를 식별하기 위해 만들어진 새로운 문제다.

그런 다음 알고리즘은 다음과 같이 진행된다.

  1. 마스터 문제 및 하위 문제 초기화
  2. 마스터 문제 해결
  3. 하위 문제가 있는 개선 변수 검색
  4. 개선 변수가 발견되는 경우: 변수를 마스터 문제에 추가한 후 2단계로 이동하십시오.
  5. 기타 : 마스터 문제의 해결이 최적이다.멈추다

개선 변수 찾기

이 절차에서 가장 어려운 부분은 마스터 문제의 객관적 기능을 개선할 수 있는 변수를 찾는 방법이다.이는 가장 부정적인 비용 절감 효과를 가진 변수를 찾음으로써 수행할 수 있다(일반성을 잃지 않고 문제가 최소화 문제라고 가정함).부정적인 비용 절감 효과가 있는 변수가 없다면, 마스터 문제의 현재 해결책이 최적이다.

변수의 수가 매우 클 때, 감소된 원가를 모두 계산하고 마이너스 감소된 원가를 가진 변수를 선택함으로써 개선 변수를 찾을 수 없다.따라서 최소한의 비용 절감 효과를 갖는 변수만 계산하는 것이 목적이다.이것은 원래 문제의 구조에 크게 의존하는 가격 책정 하위 문제라는 최적화 문제를 이용하여 수행할 수 있다.하위 문제의 객관적 기능은 현재의 이중 변수에 대한 검색 변수의 비용 절감이며, 제약조건은 변수가 자연적으로 발생하는 제약조건을 준수할 것을 요구한다.컬럼 생성 방법은 이 구조가 하위 문제를 효율적인 알고리즘, 즉 일반적으로 전용 결합 알고리즘으로 해결할 수 있게 하는 경우에 특히 효율적이다.

이제 우리는 감소된 변수 비용을 계산하는 방법과 이유를 자세히 설명한다.표준 형식의 다음 선형 프로그램을 고려하십시오.

이 문제를 원시 문제이중 선형 프로그램이라고 부른다.

더욱이, x u는 어떤 선형 해결사라도 제공할 수 있는 이 두 가지 문제에 대해 최적의 해결책이 되도록 하라.이러한 솔루션은 선형 프로그램의 제약조건을 검증하고 이중성에 의해 목적함수의 값( t x = t b c) which we will call . This optimal value is a function of the different coefficients of the primal problem: . Note that there exists a dual variable for each constraint of the primal lin귀 모형최적의 이중 변수 을(를) 제약조건 우측의 i z에 대해 목표함수의 최적값 z^{*}}}의 부분파생물로 해석할 수 있음을 보여줄 수 있다. ou encore . More simply put, indicates by how much increases locally the optimal value of the obj계수 가 한 단위 증가할 때 ective 함수.

초기 문제에서 그때까지 변수 을(를) 고려하지 않았다는 점을 고려해 보십시오.이는 변수 이(가) 모형에 있지만 0 값을 취했다고 말하는 것과 동일하다는 점에 유의하십시오. 을 0 displaystyle0}에서 y^{\으)로 변경하는 원시 문제에 대한 영향을 관찰한다 y {\ A y {\ 각각 y와관련된 인 경우목표함수와 제약조건에서 은 다음과 같이 수정된다

에 변수 y 을(를) 추가하는 것이 흥미로운지 여부를 알기 위해(즉, 0이 아닌 값을 취하도록 하기 위해), v ^ 의 값 y 에 따라 이 새로운 문제의 함수가 감소하는지 알고자. y (가) 증가한다.In other words, we want to know . To do this, note that can be expressed according to the value of the objective function of the initial primal problem: + ( ,A, - )}}{y 그러면 다음과 같은 관심 있는 파생상품을 계산할 수 있다.

즉, 값 }}을(를) {\에 대한 변경의 영향은 두 용어로 해석된다.첫째, 이러한 변화는 객관적 기능에 직접 영향을 미치고 둘째, 제약조건의 우측을 수정하여 이중 변수 를 사용하여 크기를 측정한 최적 x에 영향을 미친다 파생상품 d y^ y ^ d ^ d y^. {dz_ {ydisplaystyle}}}은(는) 일반적으로 변수 y의 감소된 비용으로 불리며, 다음에서 c 로 표시된다.