KR20020003381A - 자원의 할당을 최적화하는 시스템 및 방법 - Google Patents

자원의 할당을 최적화하는 시스템 및 방법 Download PDF

Info

Publication number
KR20020003381A
KR20020003381A KR1020017013165A KR20017013165A KR20020003381A KR 20020003381 A KR20020003381 A KR 20020003381A KR 1020017013165 A KR1020017013165 A KR 1020017013165A KR 20017013165 A KR20017013165 A KR 20017013165A KR 20020003381 A KR20020003381 A KR 20020003381A
Authority
KR
South Korea
Prior art keywords
bid
priority
resource
bids
unit price
Prior art date
Application number
KR1020017013165A
Other languages
English (en)
Inventor
이지안
Original Assignee
샌제이브 사이두
아이2 테크놀러지즈, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 샌제이브 사이두, 아이2 테크놀러지즈, 인크. filed Critical 샌제이브 사이두
Publication of KR20020003381A publication Critical patent/KR20020003381A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06315Needs-based resource requirements planning or analysis

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Complex Calculations (AREA)

Abstract

자원 할당을 최적화하는 시스템(8)은 상기 자원에 대한 요청 및 복수개의 입찰을 갖는 자원 할당 데이터로 이루어지는 최적화기 파일(14)을 포함하는데, 각 입찰은 상기 자원에 대한 최소의 단위 가격을 포함한다. 상기 파일(14)에 결합되는 최적화기 엔진(16)은 상기 데이터를 수신하여 그들의 단위 가격에 따라 최소의 일부 입찰에 대한 우선순위를 발생한다. 상기 엔진(16)은 상기 데이터에 따라 정수 프로그램을 발생하여 그 정수 프로그램에 관한 우선순위를 전달한다. 상기 엔진(16)에 결합된 문제풀이기(18)는 상기 우선순위 및 정수 프로그램을 수신한다. 상기 문제풀이기(18)는 상기 우선순위를 이용하는 정수 프로그램으로 솔루션을 발생하는데, 그 솔루션은 상기 요청 및 입찰에 제공되는 자원 할당을 최적화한다.

Description

자원의 할당을 최적화하는 시스템 및 방법{SYSTEM AND METHOD FOR OPTIMIZING THE ALLOCATION OF A RESOURCE}
대다수의 사업체 및 다른 종류의 조직체들은 비용을 절감하고 효율을 향상시키도록 각종 자원을 할당하는 방법을 최적화 하길 바란다. 예컨대, 상품을 선적하는 사람들은 그들의 보상 범위, 장비, 서비스 및 다른 요건들을 충족시키면서 선적 비용을 최소화하는 방법으로 다수의 경쟁하고 있는 운송업자들의 운송 능력의 할당을 최적화 하길 바란다. 표준 "억지(brute force)"법들을 이용하여 최적화 문제들을 해결하기 위하여 특별히 만들어진 소프트웨어가 설치된 컴퓨터 기반 시스템을 이용하여 상기 자원의 할당을 최적화하는 것이 바람직한 경우가 가끔 있다. CPLEX 및 XPRESS 등의 판매용 정수 프로그램 문제풀이기(solver)는 선적하는 사람들의 운송 능력의 할당을 최적화하기 위한 시도로 일부 환경에서 이용될 수 있다.
사업체 및 다른 조직체들의 자원 할당 필요성은 그들이 복잡해지고 중요해지면서 계속 증가하고 있기 때문에, 자원을 할당하는 속도, 효율 및 정확성은 조직체의 성공에 점점 더 중요한 역활을 하게 되었다. 그러나, 자원의 할당을 최적화하는종래의 시스템 및 방법은 대다수의 최적화 시나리오에 대하여 부적합하다. 예컨대, CPLEX 및 XPRESS 등의 정수 프로그램 문제풀이기는 정수 프로그램들로서 만들어진최적화 문제들을 해결하기 위한 시도에서 표준 분기 및 한정(branch-and-bound) 기법을 이용하지만, 가장 강력한 컴퓨터의 메모리에 과부하가 걸리기 전에 억지법으로 비교적 작은 크기의 최적화 문제 조차도 해결할 수 없는 경우가 가끔 있다. 이러한 문제풀이기가 최적화 문제의 크기 및 복잡성을 줄이기 위한 시도로 알고리즘을 더 부가하거나 다른 기법들을 부가하더라도, 그 문제풀이기는 가끔 너무 느리고너무 많은 처리를 필요하기 때문에 실용값이 될 수 없다. 이러한 결점 및 다른 결점들은 많은 목적에 부적합한 자원 할당을 최적화하는 종래의 시스템 및 방법에서 발생한다.
본 발명은 일반적으로 최적화 시스템 및 방법 분야에 관한 것으로써, 특히 자원의 할당을 최적화하는 시스템 및 방법에 관한 것이다.
도 1은 본 발명에 따른 자원의 할당을 최적화하는 시스템의 예시도.
도 2는 분기 및 한정 트리를 도시하는 예시도.
도 3은 본 발명에 따른 자원의 할당을 최적화하는 예시적인 방법을 도시하는 흐름도.
도 4는 본 발명에 따른 예시적인 자르기 프로세스를 도시하는 흐름도.
도 5는 본 발명의 자르기 프로세스의 예시적인 세부사항을 도시하는 흐름도.
도 6은 본 발명에 따른 예시적인 우선순위 프로세스를 도시하는 흐름도.
본 발명에 따르면, 종래의 최적화 시스템 및 방법과 관련된 단점과 문제점들은 상당히 줄어들거나 해결된다.
본 발명의 일 실시예에 따르면, 자원의 할당을 최적화하는 시스템에는 상기 자원에 대한 요청 및 복수의 입찰로 이루어지는 자원 할당 데이터를 갖는 최적화기 파일이 있는데, 이러한 각 입찰은 상기 자원에 대한 최소의 단위 가격을 포함하고 있다. 상기 파일에 결합되는 최적화기 엔진은 상기 데이터를 수신하여 그 단위 가격에 따른 최소의 일부 입찰에 다하여 우선순위를 발생한다. 또한, 상기 엔진은 상기 데이터에 따른 정수 프로그램을 발생하여 그 정수 프로그램과 관련된 우선순위를 전달한다. 문제풀이기는 상기 우선순위를 이용하여 정수 프로그램에 솔루션을발생하는데, 그 솔루션은 상기 요청 및 입찰에 제공되는 자원의 할당을 최적화한다. 다른 실시예에 있어서, 상기 엔진은 한 개 이상의 자르기를 포함하여 상기 최적화 프로세스를 더욱 개선하는 강화된 정수 프로그램을 발생한다.
본 발명의 시스템 및 방법은 복수개의 중요한 기술적인 장점을 제공한다. 본 발명에 의하여 한 개 이상의 선적 항로 등의 자원의 할당이 정수 프로그램을 푸는 표준 "억지"법에 비하여 빠르고, 효율적이며, 정확하게 최적화될 수 있다. 또한, 본 발명은 종래의 방법 및 시스템이 불충분한 메모리 또는 다른 한계로 인하여 특정 솔루션을 제공할 수 없는 자원의 할당을 최적화 할 수 있다. 본 발명은 상기 항로상에 그 단위 가격을 비교함으로서 항로상에 최소의 일부 입찰에 대한 우선순위를 발생하여, 문제풀이기가 수용가능한 솔루션을 종래의 최적화 기법에 비하여 빠르고, 효율적이며, 정확하게 정수 프로그램으로 수용가능한 솔루션을 발생할 수 있다. 본 발명에 따라 발생된 우선순위는 본 발명에 따라 발생되는 자르기와 결합하여 이용될 때 최적화 문제를 해결하는데 특히 효과적이다. 다른 중요한 기술적인 장점들은 당업자라면 쉽게 이해할 것이다.
도 1은 사업체 또는 다른 적합한 환경내에서 자원의 할당을 최적화하는 예시적인 시스템(8)을 도시한다. 한 명 이상의 선적인 또는 상품의 다른 선적인의 선적 요청을 만족시키기 위하여 복수의 운송업자들 사이에 할당되어야 하는 선적 항로와 같이 우선적으로 자원들이 논의되더라도, 본 발명은 임의의 적합한 자원의 할당을 최적화하는 시스템(8)을 의도하고 있다. 일예로서, 다른 특정 자원들은 제조 프로세스에 이용되는 부품이 될 수도 있고, 상기 자원들의 할당은 다수의 부품 공급업자로부터 부품을 얻어서 이러한 부품에 대한 요청을 만족시킬 수 있다. 다른 예로서, 다른 특정 자원들은 판매되고 있는 다른 상품 또는 식료 잡화류가 될 수 있고, 상기 자원의 할당은 이러한 상품의 다수의 공급업자로부터 상품을 구입하여 이러한 제품에 대한 요청을 만족시킬 수 있다. 이러한 2개의 다른 예들을 도시함으로서, 상기 자원들의 할당은 다수의 자원에서 자원들을 얻는 것을 포함하고, 이러한 것을 본 발명과 결합하여 이용하는 할당은 선적 항로의 경우와 같이 복수의 수취인사이의 자원 분배에 국한되는 것은 아니다.
선적 항로는 한 명 이상의 선적인에 의해, 선적용 상품을 운반하는 한 명 이상의 운송업자에 의해, 또는 임의의 다른 적합한 방법으로 정해질 수 있다. 일 실시예에 있어서, 각 항로는 2개의 지형 위치사이에 해당하는 운송 경로를 나타내고, 또 장비 제한 사항, 서비스 제한 사항 및 임의의 다른 적합한 제한 사항과 같이 그것의 명확한 제한 사항에 포함할 수 있다. 예컨대, 선적인은 달라스, 텍사스, 보스톤 및 메사츄세츠 사이를 냉동차를 이용하여 급송(rush delivery)되어야 할 특정 항로를 정할 수 있다. 시스템(8)은 항로들 및 때때로 항로 묶음으로 언급되는 항로의 그룹에 입찰하는 다수의 경쟁관계에 있는 운송업자들사이에 선적 항로의 할당을 최적화하여 그러한 항로에 관한 일부 또는 모든 선적인의 요청을 만족시킬 권리를 얻는다. 일 실시예에 있어서, 항로의 묶음에 의해 운송업자는 지역 운송망을 양호하게 이용하여 많은 연속적인 경로를 식별하고 그들의 장점을 더욱 이용할 수 있다.
시스템(8)은 최적화기(10) 및 데이터베이스(12)를 포함한다. 일 실시예에 있어서, 데이터베이스(12)는 (a) 항로들 및 항로 묶음의 선적인 또는 운송업자가 제공한 정의, (b) 각 항로에 관한 선적인의 선적 요청, (c) 하나 이상의 장비, 서비스 또는 임의의 다른 선적인과 관련된 제한, (d) 하나 이상의 수용능력, 선택, 고정 비용 또는 임의의 다른 운송업자가 발생한 제한, (e) 하나 이상의 항로들 또는 항로 묶음과 관련되고, 상기 운송업자가 기꺼이 각 항로로 선적해야 하는 단위의 갯수를 반영하는 입찰량과, 이러한 단위를 상기 항로로 선적하는데 필요한 비용을 반영한 입찰 가격과, 상기 항로에서 단위당 선적 비용을 반영하는 입찰 단위 가격을 포함하는 운송업자 입찰, (f) 한 개 이상의 항로 또는 항로 묶음과 관련되고, 운송업자가 단위마다 각 항로로 기꺼이 선적해야 하는 단위의 갯수를 반영하는 최대 입찰량 및 상기 항로에서 단위마다 선적 비용을 반영하는 단위 가격, (g) 복수의 운송업자들 사이에 운송 수용 능력의 할당을 최적화하는데 적합한 임의의 다른정보를 제한하지 않고 포함할 수 있다.
일 실시예에 있어서, 데이터베이스(12)는 MICROSOFT ACCESS 데이터베이스이고, 그 데이터베이스 일부 또는 모든 내용은 한 개 이상의 엑셀 또는 다른 적합한 스프레드 시트(spread sheets)를 이용하여 데이터베이스(12)에 반입된다. 데이터베이스(12) 및 관련 데이터베이스 관리 시스템(DBMS)은 시스템(8)이 동작하는 동안 적합한 정보를 최적화기(10)에 제공하는데 협조한다. 데이터베이스(12)는 단일 또는 복수의 물리적인 위치에서 한 개 또는 복수의 컴퓨터 상에 임의의 적합한 형태로 한 개 이상의 기억 위치를 포함한다. 데이터베이스(12)는 적합한 유선, 무선 또는 다른 통신 링크를 이용하여 직간접적으로 최적화기(10)에 결합된다.
최적화기(10)는 최적화기 파일(14), 최적화기 엔진(16) 및 정수 프로그램 (IP) 문제풀이기(18)를 포함한다. 시스템(8)이 동작하는 동안, 데이터베이스(12)의 내용은 최적화기(10)의 동작전, 동작동안 또는 이러한 2가지 경우에 최적화기 파일 (14)로 전체 또는 일부분이 전달되고 기억된다. 파일(14)은 로드될 수 있고, 그 내용은 최적화기(10) 및 컴퓨터(20)와 관련된 그래픽 사용자 인터페이스(GUI)를 이용하여 볼 수 있다. 또한, 사용자는 관련된 GUI를 이용하는 파일에서 최적화 문제에 대한 솔루션 등의 정보를 기억하게 선택권을 가질 수 있다. 파일(14)이 한 개의 파일로 논의되더라도, 본 발명은 임의의 적합한 데이터 기억 포멧을 갖는 파일(14)을 의도한다.
일반적으로, 최적화기(10)는 선적자가 복수의 경쟁 관계에 있는 운송업자로부터 항로들 또는 항로들 묶음의 형태로 운송 수송 능력을 할당하는데 이용하는 전략적인 판정 지원 도구이다. 최적화기(10)에 의해 선적인 및 운송업자가 일부의 상황에서 서로에게 이익이 되는 방법으로 선적 비용을 억제하거나 줄이는데 협조할 수 있다. 특히, 선적인은 최적화기(10)를 이용하여 선적인의 적용 범위, 장비, 서비스 및 다른 요건들을 충족시키면서 선적인이 감수해야 하는 총 선적 비용을 가능한 많이 줄이는 방법으로 운송업자에게 항로들 및 항로 묶음들을 할당할 수 있다.
일 실시예에 있어서, 시스템(8)과 관련된 선적인은 운송업자들을 초대하거나 재촉하여 하나 이상의 항로들 또는 항로 묶음의 범위를 재는 입찰서를 제출한다. 이러한 일부 또는 모든 운송업자로부터 받은 입찰의 결과로, 그 가격을 측정하는 입찰에 대하여, 각 항로는 해당하는 입찰량, 입찰 가격 및 입찰 단위 가격을 가질 것이다. 상기 입찰 단위 가격은 입찰로 제출되거나, 입찰량 및 입찰 가격을 토대로 차후에 결정될 수 있다. 입찰은 전체적으로 낙찰되거나, 전체적으로 거절될 수 있지만, 부분적으로 낙찰될 수는 없다. 예컨대, 특정 항로상에 200개의 단위를 선적하기 위한 입찰이 이루어지는 경우, 특정 항로상에 200개의 단위가 그 입찰과 관련된 수송업자에게 낙찰되거나, 그 입찰과 관련된 수송업자에게 하나의 단위도 낙찰되지 않는다. 또한, 수송업자는 개별 항로에 관하여 예약 입찰서를 제출할 수 있다. 예약 입찰은 최대의 입찰량까지 단위를 토대로 제출되기 때문에, 전체적으로 낙찰되거나, 전체적으로 거절되거나, 특정 부분으로 낙찰될 수 있다. 예약 입찰은 단위 가격에 비하여 훨씬 비싸지만, 선적인에게 유연성을 제공하여 특별한 필요에 따라 전체 예약 입찰 또는 적합한 부분의 입찰을 이용할 수 있다. 최적화기(10)는 선적인의 요청 및 다른 요구 사항을 충족시키면서 총 선적 비용을 줄이는 방법으로다수의 경쟁 관계에 있는 운송업자 사이의 입찰 및 예약 입찰을 허용한다. 일 실시예에 있어서, 최적화기(10)는 수용 능력, 선택 사항, 고정 비용 및 이와 유사한 사항 등의 운송업자 제한에 제공된 일부 또는 모든 이러한 입찰 및 예약 입찰을 허용할 수 있다.
최적화기(10)에 의해 선적인이 복수의 입찰 횟수를 수행하여 운송업자 사이의 또 다른 경쟁을 통하여 비용을 떨어뜨릴 수 있다. 각각의 입찰 후에, 최적화기 (10)는 모든 항로에 걸쳐 총 선적 비용을 최소화하는 입찰과 예약 입찰의 결합을 선택하고, 이러한 정보를 상기 입찰 프로세스에 포함된 일부 또는 모든 운송업자에게 제공한다. 이러한 피드백 정보를 토대로, 운송업자는 그들의 입찰 및 예약 입찰을 교정하여 그 결과를 변경하거나 승리를 확신할 수 있게 다음번 입찰 차례에 새로운 입찰서 및 예약 입찰서를 제출할 수 있다. 이러한 프로세스는 미리 정해진 반복 한도에 도달할 때까지 지속한다. 운송업자가 매 입찰 후에 피드백하고 정보를 얻어 그들의 입찰 및 예약 입찰을 교정할 수 있기 때문에, 그 선적인의 비용은 통상적인 경합 프로세스의 결과로 억제된다. 또한, 모든 항로들이 처음 또는 차후의 입찰 후에 측정될 수 없기 때문에, 여러번의 입찰은 선적인의 요청을 완전히 충족시킬 수 있는 확률을 증가시킨다.
일 실시예에 있어서, 최적화기(10)는 모든 입찰이 예비적으로 낙찰 또는 거절되는지 여부를 최종 입찰이 종료할 때까지 모든 입찰 및 모든 입찰에 대한 예약 입찰을 유지한다. 예컨대, 4번째 입찰에 있어서, 최적화기(10)는 4번째 입찰시 제출된 입찰서 및 예약 입찰 이외에 일부 또는 모든 3번의 입찰과 예약 입찰을 처리할 수 있다. 이러한 방법으로 입찰 및 예약 입찰을 유지하는 것은 이전의 차례에 제출된 입찰 또는 예약 입찰이 선적인이 받을 최상의 입찰 또는 예약 입찰로 판명될 확률을 고려하는 것이다. 입찰은 특정 결합으로 데이터베이스(12), 파일(14) 또는 최적화기 엔진(16)과 관련된 국부 메모리를 이용하여 유지될 수 있다.
일반적으로, 최적화기 엔진(16)은 일부 또는 모든 파일 내용(14)을 엑세스하여 최적화기(10)의 동작동안 적합한 정보를 검색하여 이러한 정보에 따라 한 개 이상의 솔루션을 발생한다. 일 실시예에 있어서, 솔루션은 제출된 모든 입찰 및 예약 입찰로부터 낙찰되는 특정 입찰 및 예약 입찰을 식별할 것이다. 최적화기 엔진(16)은 최적화기 파일(14)에서 정보를 엑세스하여 정수 프로그램으로 적용가능한 선적 비용 최소화 문제, 일반적으로 일부 또는 모든 변수에 의한 특정 부등식 제한, 등식 제한 및 통합 제한에 제공되는 다양한 변수의 기능을 최소화 또는 최대화하는 문제을 나타낸다. 상기 입찰은 전체가 낙찰되거나 전체가 거절됨으로 2진 변수로서 처리되며, 상기 예약 입찰은 전체가 낙찰되거나, 전체가 거절되거나, 특정 부분이 낙찰됨으로 연속 변수로 처리된다. 일부 또는 모든 변수의 통합 제한 사항이 제거되거나 다른 방법으로 완화될 때, 정수 프로그램은 선형 프로그램(LP)으로 언급될 수 있다.
정수 프로그램은 생산성을 향상하고 비용을 줄이기 위하여 폭넓고 다양한 대규모 관리 및 설계 문제를 모델링하는데 이용된다. 정수 프로그램은 "비 다항식" (NP) 문제로 언급되는 문제들의 부류에 속하는데, 여기서, 그 문제들을 해결하는 다항식 시간 알고리즘이 발견되고, 그 해결 시간은 문제가 커짐으로써 지수적으로증가한다. 상대적으로 작은 정수 프로그램은 CPLEX 또는 XPRESS 등의 판매용 IP 문제풀이기에 대하여 매우 곤란할 수 있다. 이것은 LP 완화에 상기 표준 분기 및 한정 기법을 이용하여 정수 프로그램을 풀거나 풀기를 시도한다. 상기 분기 및 한정 기법은 도 2를 참조로 더욱 완벽하게 설명된다.
정수 프로그램의 LP 완화 솔루션은 일부 또는 모든 변수의 통합 제한 사항을 제거한 후에, 즉 일부 또는 모든 변수를 2진 변수보다는 오히려 연속 변수로 처리했을 때 얻어진 솔루션이다. 상기 LP 완화 솔루션은 각 변수, 예컨대 관련 최적화 문제에 포함된 각 입찰 및 예약 입찰에 대한 값을 제공하고, 이러한 예로서, 상기 제공된 값과 관련된 총 선적 비용을 포함한다. 상기 LP 완화 솔루션은 통상 효율적으로 얻어지고, 낮은 회차를 정수 프로그램에 제공한다. 즉, 상기 LP 완화 솔루션은 상기 정수 프로그램에 대한 최적의 리얼 솔루션으로써 좋다. 따라서, 리얼 솔루션은 상대적으로 바람직한 것을 결정하는 LP 솔루션과 비교될 수 있다. 그러나, LP 완화 솔루션은 특정 환경에서 잘못 이끌어질 수 있다. 즉, 상기 솔루션 공간 특정 부분 집합은 실제로 바람직하지 않은 리얼 솔루션이 이러한 부분집합에서 발견되는 경우를 지시할 수 있다.
최적화기 엔진(16)은 IP 문제풀이기(18)로/로부터 정보를 전달하고 수신하는데, 일 실시예에 있어서, 이러한 문제풀이기는 CPLEX 또는 XPRESS 등의 판매용 IP 문제풀이기이다. 최적화기 엔진(16)은 파일(14)로부터 수신되는 선택된 자원 할당 데이터, IP 문제풀이기(18)로부터 수신되는 한 개 이상의 LP 완화 솔루션 또는 이러한 정보의 적합한 결합을 이용하여 적용가능한 최적화 문제를 반영하는 한 개 이상의 진일보한 정수 프로그램을 구성한다. 본 발명에 따르면, 최적화기 엔진(16)은 자르기 프로세스, 우선순위 프로세스 또는 이러한 모든 프로세스를 이용하여 표준 정수 프로그램을 개선함으로써 IP 문제풀이기(18)가 특별한 필요에 따라 해당하는 최적화 문제를 해결할 수 있는 속도, 효율 및 정확성을 개선한다.
일 실시예에 있어서, 최적화기 엔진(16)은 표준 정수 프로그램을 만들어 본 발명의 우선순위 프로세스에 적용함으로써 일부 또는 모든 입찰에 대한 우선순위를 부여한다. 최적화기 엔진(16)은 표준 정수 프로그램을 IP 문제풀이기(18)에 선형 프로그램으로서 전달하고, 이에 응답하여, IP 문제풀이기(18)로부터 선형 프로그램으로서 LP 완화 솔루션을 수신한다. IP 문제풀이기(18)로부터 솔루션을 수신하지 않은 경우 또는 상기 선형 프로그램으로 LP 완화 솔루션이 부분적이거나 동일한 이유때문에 다른 방법으로 수용할 수 없는 경우에, 최적화기 엔진(16)은 본 발명의 자르기 프로세스에 따라 정수 프로그램을 강화시킬 것이다. 최적화기 엔진(16)은 상기 강화된 정수 프로그램을 선형 프로그램으로서 IP 문제풀이기(18)에 전달하고, 이에 응답하여 IP 문제풀이기(18)로부터 선형 프로그램으로 LP 완화 솔루션을 수신할 수 있다. IP 문제풀이기(18)로부터 솔루션을 수신하지 못한 경우 또는 선형 프로그램으로 LP 완화 솔루션이 부분적이거나 동일한 이유때문에 다른 방법으로 수신할 수 없는 경우, 최적화기 엔진(16)은 상기 절단기 프로세스에 따라 상기 강화시킨 정수 프로그램을 더욱 강화시킨다. 최적화기 엔진(16)은 그 결과로 강화된 정수 프로그램을 선형 프로그램으로서 IP 문제풀이기(18)에 전달하고, 이에 응답하여 IP 문제풀이기(18)로부터 선형 프로그램으로 LP 완화 솔루션을 수신할 수 있다. 이러한 절차는 최적화기(16)가 IP 문제풀이기(18)로부터 선형 프로그램으로 수용가능한 통합 LP 완화 솔루션을 수신할 때까지 또는 반복 한도에 도달할 때까지 반복적으로 지속한다.
선형 프로그램에 대한 수용가능한 통합 솔루션이 IP 문제풀이기(18)로부터 수신될 때, 최적화기 엔진(16)은 상기 강화된 정수 프로그램을 IP 문제풀이기(18)에 선형 프로그램보다는 오히려 정수 프로그램으로 전달한다. IP 문제풀이기(18)는 통합 솔루션을 상기 강화된 정수 프로그램에 발생하여 그 솔루션을 최적화기 엔진(16)에 전달한다. 최적화기 엔진(16)은 그 관련된 GUI를 이용하여 기억하고 볼 수 있는 최적화기(10)의 사용자로부터 입력 또는 입력없이 그 솔루션을 파일(14)로 전달할 수 있다. 일 실시예에 있어서, 사용자에게 가시적으로 상기 솔루션에 제공되어 파일(14)에 상기 솔루션을 기억하는 선택사항을 제공함으로써 적합한 부가 정보를 제공하고, 다른 솔루션 또는 이러한 선택사항의 모든 것을 요청한다. 본 발명의 우선 순위 및 자르기 프로세스와 관련된 시스템(8)의 동작은 도 3내지 6을 참조로 더욱 충분히 설명된다.
최적화기(10)는 최적화기 파일(14), 최적화기 엔진(16) 및 IP 문제풀이기 (18)를 제공하는 하드웨어 및 소프트웨어로부터 통합 또는 구별되는 한 개 이상의 컴퓨터(20)를 동작할 수 있다. 컴퓨터(20)에는 정보를 입력하기 위한 키패드, 마우스, 터치 스크린, 마이크 또는 다른 장치가 있다. 출력 장치(24)는 디지털 아날로그 데이터, 가시 정보 또는 오디오 정보를 포함하는 최적화기(10)의 동작과 관련된 정보를 운반할 수 있다. 컴퓨터(20)는 착탈가능한 자기 컴퓨터 디스크, CD-ROM 또는 다른 적합한 매체 등의 기억 매체를 포함하여 최적화기(10)의 출력을 수신하여 최적화기(10)로 제공한다. 컴퓨터(20)는 프로세서(26) 및 휘발성 또는 비휘발성 메모리를 포함하여 최적화기(10)의 동작에 따른 명령들을 실행하고 정보를 조작한다. 단지 한개의 컴퓨터(20)가 도시되더라도, 파일(14), 최적화기 엔진 (16) 및 IP 문제풀이기(18)는 개별 컴퓨터(20)상에서 각각 동작하거나, 본 발명의 범위에 벗어남이 없이 한 개 이상의 공유 컴퓨터(20)상에서 동작할 수 있다. 더욱더, 데이터베이스(12)는 한 개 이상의 컴퓨터(20) 또는 다른 적합한 컴퓨터 상에서 동작할 수 있다.
LP 완화 솔루션을 정수 프로그램으로 발생하는 분기 및 한정 기법은 상기 노드와 관련된 2진 변수의 2개의 예상 값에 따라 분기를 연장하는 노드를 구비한 솔루션 트리를 포함한다. 도 2는 해당하는 정수 프로그램의 솔루션 공간 내의 복수의 레벨에서 노드(32, 34, 36 및 38)를 포함하는 예시적인 분기 및 한정 트리(30)를 나타낸다. 노드(32)는 트리(30)의 루트로 칭하여지고, 그 트리 (30)는 그 값이 "0" 또는 "1"인 임의적으로 선택된 2진 변수 x[1]상에서 분기된다. 2진 변수 x[1]는 전술한 바와 같이 단지 전체적으로 낙찰되거나 거절되는 특정 운송업자 입찰에 해당한다. x[1]이 상기 정수 프로그램에 특정 솔루션에서 2개의 값 중 한 개의 값을 단지 취하기 때문에, 2개의 브랜치는 루트 노드(32)로부터 노드 (34)까지 연장하는데, 그 각 브랜치는 x[1]의 다른 값과 관련된다.
LP 완화 솔루션은 루트 노드(32)에 대하여 처음에 발생된다. 이러한 솔루션이 적어도 하나의 2진 변수가 상기 솔루션에서 분수값을 갖는 통합 솔루션이 아닌경우, 한 개의 2진 변수 x[1]는 트리(30) 내에서 처음에 분기하는 상기 모든 변수의 집합으로부터 선택된다. 통상적으로, 상기 선택된 x[1]는 상기 LP 완화 솔루션 내의 분수 값을 갖는다. 트리(30) 내의 어떤 분기에서 특정 2진값을 선택하고, 그 2진 변수들이 트리(30)내에서 분기되는 순서를 결정하는 전략은 하나 이상의 사용자 특정 우선순위, 이전의 기번에 따라 발생된 우선순위 또는 이후에 상세히 논의되는 본 발명의 우선순위 프로세스에 따라 발생된 바람직한 우선순위에 의존할 수 있다.
간단한 예로서, 3개의 2진 변수{ x[1], x[2] 및 x[3]}에 대한 입찰량이 항로에 각각 "200"개의 단위가 있고, 상기 항로에 대한 선적인의 요청이 "250"개 단위인 경우, 루트 노드(32)에 대한 LP 완화 솔루션은 x[1] = 0.5, x[2] = 0.75, 및 x[3] = 0 이며, 이러한 특정값의 결합은 그 항로상에 선적인의 요청을 만족시키면서 총선적 비용을 줄이는 것을 의미한다. 그러나, 이러한 LP 완화 솔루션은 리얼 솔루션이 아닌데, 그 이유는 상기 변수{x[1] 및 x[2]}에 해당하는 리얼 솔루션이 LP 완화 솔루션이 요구하는 것 같이 부분적으로 낙찰될 수 없기 때문이다. 따라서, 상기 LP 완화 솔루션은 낮은 차례의 정수를 제공한다. 프로그램 솔루션은 상기 최적화 문제로 모든 솔루션이 같아야 하거나, 또는 통상적인 최적화 시나리오와 같이 초과해야 한다.
상기 LP 완화 솔루션은 x[1]이 전술한 간단한 예로서 분수값을 갖도록 x[1]에 대한 통합 솔루션을 산출하지 않으면, 상기 분기 및 한정 기법은 2개의 부분집합으로 분할되는 최적화 문제를 요구한다. 상기 처음의 부분집합은 x[1] = 0에 해당하고, 제2 부분집합은 x[1] = 1에 해당한다. 상기 정수 프로그램의 부분집합 중 하나, 예컨대, x[1] = 1은 이러한 예로서 모든 나머지 변수{x[2] 및 x[3]}에 대한 통합 솔루션을 이상적으로 산출하는 LP 완화를 이용하여 풀린다. 이러한 경우에, x[1] = 1 인 제한 사항이 제공되는 최적의 리얼 솔루션은 발견되고, 상기 LP 완화 솔루션과 같다. 주목할 점은 x[1]이 x[1] = 1 이 되도록 제한되기 때문에, 해당하는 노드(34)에 대한 LP 완화 솔루션이 루트 노드(32)용 LP 완화 솔루션보다 덜 최적화되며, 이것은 통합 제한 요소가 없는 것으로 판정되는 것이다. 전술한 간단한 예를 계속하여 설명하면, 항로상에 각각 "200" 단위인 변수{x[1], x[2], x[3]}에 대한 입찰량 및 "250" 단위인 항로에 대한 선적인의 요청으로서, 노드(34)에 대한 LP 완화 솔루션은 x[1] = 1, x[2] = 0.25 및 x[3] = 0이 될 수 있다.
LP 완화가 하나 이상의 나머지 변수(변수 x[2])에 대하여 분수값을 산출하면 (x[1]이 x[1] = 1 되도록 제한되는 것을 상기하자), 분기화는 x[2]의 값을 "0" 또는 "1"로 제한하기 위한 노드(34)에 필요하고, 그 문제는 2개의 부분집합으로 분할된다. 그 제1 부분집합은 x[1] = 1 및 x[2] = 0 에 해당하고, 제2 부분집합은 x[1] = 1 및 x[2] = 1 에 해당한다. 상기 정수 프로그램의 한 개의 부분집합( x[1] = 1 및 x[2] = 0)은 이러한 예에서 모든 나머지 변수(x[3])에 대하여 통합 솔루션을 이상적으로 산출하는 LP 완화를 이용하여 풀려진다. 이러한 경우에, x[1] = 1 및 x[2] = 0 인 제한사항을 제공하는 최적의 솔루션은 발견되고, 상기 LP 완화 솔루션과 같다. 다시, 주목할 점은 x[1] 및 x[2]이 그 값에 대하여 제한되기 때문에, 노드(36)에 해당하는 LP 완화 솔루션이 루트 노드(32) 또는 노드(34) 중 하나에 대한LP 완화 솔루션보다 덜 바람직하다는 것이다.
이러한 절차는 LP 완화 솔루션이 상기 정수 프로그램과 관련된 모든 2진 변수에 대한 통합 솔루션을 갖는 것이 발견될 때까지 이전의 LP 완화 솔루션에서 분수값을 갖는 각 변수를 분기하여 반복적으로 지속된다. 분기 및 한정 트리(30)는 분기에 해당하는 4개의 높이 및 단지 3개의 2진 변수{x[1], x[2], x[3]}만을 포함하는 LP 완화를 갖는 것이 도시된다. 트리(30) 상에 각 노드와 관련되는 대괄호들은 트리(30)내의 노드상에 분기되는 변수의 제한값을 지시한다. 예컨대, 특정 노드와 관련된 {1, 0, 1}는 x[1] = 1, x[2] = 0, x[3] = 1인 제한 요소를 나타낸다. 분기 및 한정 트리(30)는 순수하게 깊이로 조사될 수 있는데, 여기서, 케이스 트리 (30)는 루트 노드(32), 단일 노드(34), 단일 노드(36) 및 단일 노드(38)를 접속하는 일련의 분기를 따라 가능한 깊게 조사된다. 트리(30)는 순수하게 폭으로 조사될 수 있는데, 이러한 경우에, 한 레벨내의 모든 노드는 인접한 낮은 레벨내의 특정 노드가 조사되기 전에 조사된다. 일 실시예에 있어서, 트리(30)는 깊이 및 폭 조사의 적합한 결합을 이용하여 조사된다. 상기 간단한 트리(30) 및 전술한 예들은 예시용이고, 본 발명의 범위를 벗어난 것은 아니다. 당업자라면 많은 그러한 최적화 시나리오가 고안될 수 있고, 본 발명이 모든 그러한 시나리오를 포함하고 있다는 것을 쉽게 이해할 것이다.
일반적으로, 상기 분기 및 한정 기법의 성공은 트리(30)의 크기에 의존한다. 한 개 이상의 LP 완화 솔루션에서 상당히 적은 분수값이 있으면, 상당히 적은 분기에 따른 상당히 적은 처리력 및 메모리가 필요할 수 있다. 그러나, LP 완화를 통한통합 제한 요소의 제거는 너무 커서 실제로 취급될 수 없는 트리(30)를 만드는 많은 분수값을 갖는 LP 완화 솔루션에 기인한다. 예컨대, 단지 50개의 입찰이 (2)50노드가 있는 분기 및 한정 트리(30)로 되기 때문에, 이용가능한 가장 강력한 컴퓨터는 메모리를 모두 소모하여 분기 및 한정 기법이 직접 적용되는 경우 정수 프로그램을 풀 수 없다. 더욱더, 복수의 항로들을 측정하는 결합 입찰의 결과로 항로들이 서로 관련이 있기 때문에, 그러한 상황의 복잡성을 증가시킴으로 전체 최적화 시나리오에 대하여 단지 한 개의 트리(30)가 있을 수 있다. 이러한 결함 및 다른 결함의 결과로서, CPLEX 또는 XPRESS 등의 판매용 IP 문제풀이기(18)는 수용가능한 통합 솔루션을 선적 비용 최소화 또는 다른 최적화 문제에 가끔 제공할 수 없고, 많은 조직체들이 끈임없이 요구하는 속도, 효율 및 정확성을 상기 솔루션에 제공한다. 상기 자원의 할당을 최적화하는 이전의 기법들은 많은 조직체의 최적화 필요성이 부적합하다.
항로상에 선적 수용 능력과 같은 자원의 할당을 최적화하는 것과 관련된 많은 정수 프로그램을 성공적으로 풀기위하여, 트리(30)의 한 개 이상의 부분을 잘라내는 것을 통하여 분기 및 한정 트리(30)의 크기를 줄이는 것이 필요하다. 일반적으로, 트리(30)내의 특정 분기와 관련된 부분집합은 그 관련 LP 완화 솔루션이 정수 솔루션이 아니거나 충분한 정수값을 산출하지 않는 경우 잘라질 수 있고, 그 관련 LP 완화 솔루션이 더욱 비싸고 덜 바람직하거나, 한 개 이상의 공지된 통합 솔루션이 틀림없는 경우에 잘라지거나, LP 완화가 몇가지 이유때문에 실행할 수 없는경우에 잘라질 수 있다. 이러한 상황에 있어서, 보조트리를 자르는 것은 LP 완화 솔루션이 상기 보조트리를 지속적으로 조사함으로써 덜 바람직해지는데, 그 이유는 앞서 논의된 바와 같이, 또 다른 변수들이 조사되는 각 레벨에 대하여 제한되어야 하기 때문이다.
상기 정수 프로그램에 반영된 선적 비용 또는 다른 최적화 문제를 해결하기 위하여, 최적화기 엔진(16)은 화살표(42)로 지시한 바와 같이 본 발명의 절단 프로세스에 따라 자르기를 유도한다. 일 실시예에 있어서, 최적화기 엔진(16)이 각 항로에 대하여 요구 제한 요소를 토대로 절단을 시도하기 때문에, 및 적용가능한 최적화 문제가 수백 또는 수천의 항로들을 포함하기 때문에, 최적화기 엔진(16)은 통상적으로 수백 또는 수천의 절단을 발생할 수 있다. 상기 정수 프로그램의 해결을 시도하기 전에 정수 프로그램을 강화시키는 절단 프로세스를 적용하는 것은 절단하기 쉽게 트리(30)를 만들고 상기 선형 프로그램이 풀이되는 속도 및 효율을 개선하기 위하여 최소의 루트 노드(32)용 LP 완화 솔루션에서 분수값의 갯수를 줄이거나 제거한다. 본 발명의 절단 프로세스에 따른 LP 완화 솔루션으로부터 제거되는 각 분수값으로, CPLEX 및 XPRESS와 같은 판매용 IP 문제풀이기(18)는 거의 2배 만큼 빠른 관련 선형 프로그램을 풀이함으로써, 최적화기(10)와 관련된 상기 편성으로 상당한 속도를 얻고 효율적인 이득을 얻는다.
또한, 이러한 절단 프로세스는 LP 완화 솔루션이 제공하는 하한(총 선적 비용의 낮은 한계의 이론적인 한계)을 개선한다. 즉, 상기 절단 프로세스에 따라 유도되는 절단에 의해 루트 노드(32)용 LP 완화 솔루션이 최적의 리얼 솔루션에 더욱근사할 수 있다. 결과적으로, 트리(30)는 LP 완화 솔루션을 확실하게 하는 것을 토대로 더욱 효율적이고 정확하게 잘라질 수 있다. 일 실시예에 있어서, 한 개 이상의 절단을 루트 노드(32)에서 솔루션 프로세스로 가능한 빨리 유도되더라도, 본 발명은 상기 절단 프로세스를 적용하여 분기 및 한정 트리(30)내의 적합한 노드 및 노드에서 절단을 유도하는 것을 고려한다. 이후에 더욱 기술된 바와 같이, 상기 절단 프로세스에 따라 발생된 절단은 IP 문제풀이기(18)에서 수신된 LP 완화 솔루션의 값이 참이 아니고 벗어나는 적합한 부등식이다. 이후에 상세히 기술되고, 화살표(40)가 지시한 바와 같이, 상기 정수 프로그램에 반영되는 선적 비용 및 다른 바람직한 문제점을 해결하기 위하여, 최적화기 엔진(16)은 절단하는 대신에 또는 이외에 본 발명에 따른 우선 순위를 발생할 수 있다.
본 발명의 절단 프로세스는 냅색(Knapsack) 문제로 일반적으로 언급되는 최대의 문제점으로 중요하고 기술적인 장점에 기초한다.
c[i] x [i] subject to a[i] x [i] ≤b }
여기서, x[i]는 2진 변수이다. 어떤 물품을 얼마 만큼 운반할 수 있는지 냅색 중량 한계를 결정할 때 하이커의 딜레마(hiker's dilemma)와 유사하기 때문에 냅색 문제로 언급된다. 상기 c[i]는 상기 물품의 값으로 해석되고, 상기 a[i]는 상기 물품의 중량으로 해석될 수 있다. 일반적으로, 냅색 문제는 이러한 종류의 여러 제한 사항을 포함하는데, 이러한 경우에, 그 최대의 문제점은 다차원 냅색 문제로 언급될 수 있다.
앞서 논의된 냅색 문제에 관하여, 선적인의 요청 억제는 다음과 같은 형태가 될 수 있다.
A[i] x [i] + y[j]R≥D[1]
여기서, D[1]는 항로(1)에 대한 요청이고, x[i]는 입찰에 대한 2진 판정 변수이고, A[i]는 해당하는 입찰량이고, y[j]는 예약 입찰에 기초하여 낙찰된 단위의 갯수에 대한 연속 변수이고, 상기 제1 가산은 모든 입찰(B)의 집합이며, 제2 가산은 모든 예약 입찰(R)의 집합이다. 특정 예약 입찰에 기초하여 낙찰된 단위 갯수는 y[j]는 상기 예약 입찰의 최대 입찰량 u[j]이며, 제로와 u[j] 사이의 어떤 숫자일 수 있다.
커버 부등식의 개념을 소개하기 위하여, C1이 모든 입찰(B) 집합의 부분집합인 모든 낙찰된 입찰의 집합이라고 가정하자. C2가 모든 예약 입찰(R)의 집합의 부분집합인 모든 낙찰된 예약 입찰의 집합이라고 가정하자. 그리고, C가 C1및 C2의 병합이라고 가정하자. C는 상기 커버(C)의 총 입찰량이 상기 요청을 커버하기에 일반적으로 불충분하더라도 상기 커버로 언급될 것이다. 상기 커버(C)의 총 입찰량은 다음과 같다.
∑A[i] + ∑u[j]
여기서, 상기 A[i]에 해당하는 x[i]는 C1이고, 상기 u[j]에 해당하는 y[j]는 C2이다. 상기 커버(C)의 총 입찰량이 상기 요청 D[1]를 충족시키기에 충분하지 않은 경우, 나머지 낙찰되지 않은 입찰 및 예약 입찰로부터 최소의 λ단위는 상기 요청을 충족시키는데 필요하다.
λ= D[1] - (∑A[i] + ∑u[j])
다음과 같이 다른 방법으로 표현된다.
여기서, 상기 제1 가산은 B의 나머지 낙찰되지 않은 입찰의 집합이고 [커버(C)에서 낙찰된 입찰(C1)의 부분집합을 포함), 상기 제2 가산은 R에서 나머지의 낙찰되지 않은 예약 입찰의 집합이다[커버(C)에서 낙찰된 예약 입찰(C2)의 부분집합을 포함]. 상기 λ의 최소 및 A[i], min(λ, A[i])은 만약 x[i] = 1 및 A[i] >1 인 경우, 단지 λ단위는 부등식(5)를 충족시키는데 필요하다. x[i] = 0 인 경우, x[i]의 변수가 무엇인지는 상관없다.
편리성을 위하여, 부등식(5)의 양측은 λ만큼 나누어서 다음과 같은 커버 부등식을 산출한다.
여기서, 상기 제1 가산은 B에 낙찰되지 않은 입찰의 나머지 집합이고[상기 커버(C)에서 낙찰된 입찰(C1)의 부분집합을 배체], 상기 제2 가산은 R에 낙찰되지 않은 예약 입찰의 나머지 집합이다[상기 커버(C)에서 낙찰된 예약 입찰(C2)의 부분집합을 배체]. 커버 부등식(6)은 표준 냅색 커버 부등식이 단지 2진 변수 x[i]를 포함하는 표준 냅색 커버 부등식의 한도인 반면, 커버 부등식(6)은 부가적으로 연속적인 변수 y[j]를 설명한다. 통상적으로, LP 완화 솔루션에 있어서, 커버 부등식 (6)의 변수 x[i] 중 하나는 0이 아닌 정수값을 갖는 반면, 모든 다른 변수 x[i]는 0의 값을 가질 것이다. 이것은 전체적으로 낙찰되는 입찰 중 하나에 해당하고, 모든 다른 입찰은 전체적으로 거절된다. 이러한 통상적인 경우에, 부등식(6)은 명백히 벗어난다. 일 실시예에 있어서, 본 발명의 절단 프로세스는 커버 부등식(6) 또는 이후에 논의되는 커버 부등식(6)의 확장 버젼을 이용하여 각 입찰이 전체적으로 낙찰되거나 거절되는 요건을 통하여 LP 완화 솔루션으로부터 일부 또는 모든 분수값을 제거한다.
일반적으로, 제1 부등식은 제1 부등식이 제2 부등식을 암시하는 경우에 제2 부등식보다 강력할 것으로 사료된다. 예컨대, 상기 부등식 x ≥5은 x ≥3 보다 강력하다. 일 실시예에 있어서, 커버 부등식(6)은 C1에 있는 낙찰된 입찰이 커버 부등식(6)에 포함되는 경우 강화될 수 있는데, 프로세스는 상기 커버 부등식 올림으로일컬어진다. 앞서 논의된 바와 같이, 커버 부등식(6)은 C1의 입찰이 낙찰된다는 가정하에 유도된다. C1에서 특별히 낙찰된 입찰 b이 턴오프(즉, x[b] = 0)된다고 가정하면, 커버 부등식(6)의 왼쪽편의 값은 상기 요청 제한(2)을 충족시키기 위하여 증가시켜야 한다. 부등식(6)의 왼쪽편의 최소값 α은 다음과 같이 결정된다.
제한(2) 및 x[b] = 0을 요청에 제안하자. 상기 변수 x[b]는 다음과 같이 올림 변수(α- 1)에 따라 올려질 수 있다.
상기 커버(C)의 모든 다른 2진 변수 x[i]는 동일한 방법으로 올려질 수 있다. 그 결과로 올려진 커버 부등식은 올림 냅색 커버 부등식의 확장으로, 본 발명에 따라 강화된다. 올림 커버 부등식(8)은 상기 왼쪽편이 α로 변경되고, (α- 1) x [b]이 그 왼쪽편에 부가되는 커버 부등식(6)보다 강력한 것으로 고려되며, 여기서, x[b] ≤1 인 경우에는 α- 1 ≥(α- 1) x [b] 이다. 최적화기 엔진(16)은 아래에 기술된 방법으로 올려지는 한 개 이상의 변수에 대한 올림 계수를 결정한다.
본 발명의 자르기 프로세스를 실행하기 위하여, 최적화기 엔진(16)은 파일 (14), IP 문제풀이기(18) 또는 이 2개로부터의 적합한 입력으로 상기 요청 제한의 모든 변수의 객체값에 따라 각 항로상에 선적인의 요청 제한을 취한다. 상기 변수들의 객체값은 상기 LP 완화 솔루션의 값이고, 여기서, 최적화기 엔진(16)은 IP 문제풀이기(18)로부터 직접 받거나, IP 문제풀이기(18)가 상기 LP 완화 솔루션을 발생하고 그 객체 값이 파일(14)에 기억된 후에 파일(14)로부터 검색할 수 있다. 이러한 정보를 이용하면, 최적화기 엔진(16)은 벗어난 커버 부등식, 벗어난 올림 커버 부등식 또는 이러한 부등식의 적합하게 결합한 형태로 한 개 이상의 자르기를 발생하고, 그 자르기를 상기 LP 완화 솔루션을 발생한 어떤 IP 문제풀이기(18)로부터 상기 정수 프로그램에 포함한다. 상기 자르기 프로세스의 결과로 한 개 이상의 자르기를 포함하는 정수 프로그램은 상기 우선순위 프로세스가 있는지 또는 적용되는지에 의해 진일보한 정수 프로그램으로 언급될 수 있다. IP 문제풀이기(18)는 이전의 정수 프로그램보다 최적화 시나리오를 반영하는 이러한 진일보한 정수 프로그램을 더욱 쉽게 풀 수 있다.
일 실시예에는 제한 없이 본 발명의 자르기 프로세스에 따라 벗어난 커버 부등식 또는 벗어난 올림 커버 부등식과 같이 자르기할 때 포함된 최소한 2개의 일반적인 단계가 있다. 첫째, 적합한 커버(C)는 적합한 커버 부등식을 발생하기 위하여 찾아야 한다. 둘째, 상기 커버 부등식은 벗어난 올림 커버 부등식을 발생하기 위하여 올려진다. 커버 부등식이 처음의 발견적 학습에 따라 올려지고, 상기 LP 완화 솔루션의 객체값이 상기 올림 커버 부등식을 벗어나는 경우, 상기 올림 커버 부등식은 자르기와 같이 정수 프로그램에 포함될 수 있다. 최적화기 엔진(16)은 한 개 이상의 특정 순서 집합과 관련된 한 개 이상의 문제의 특정 제한 요소들을 상기 올림 커버 부등식을 벗어나는지 여부를 결정하기 전에 및 상기 정수 프로그램에 상기벗어난 올림 커버 부등식을 포함하기 전에 상기 올림 커버 부등식에 포함할 수 있다. 특정 순서 집합은 이후에 충분히 설명된다. 일 실시예에 있어서, 상기 커버 부등식이 처음의 발견적 학습에 따라 올려지는 경우, 최적화기 엔진(16)은 상기 자르기 프로세스를 반복하는 동안에 한번의 자르기, 즉 벗어난 올림 커버 부등식 형태의 자르기를 발생할 수 있다.
다른 예에 있어서, 상기 커버 부등식이 상기 처음의 발견적 학습에 따라 올려지지 않는 경우, 최적화기 엔진(16)은 한 개 이상의 특정 집합을 반영하는 한 개 이상의 문제의 특정 제한 요소를 상기 커버 부등식에 포함할 수 있다. 상기 LP 완화 솔루션의 객체값이 상기 결과의 커버 부등식을 벗어나는 경우, 최적화기 엔진 (16)은 상기 벗어난 커버 부등식을 자르기로서 상기 정수 프로그램에 포함할 수 있다. 또한, 상기 커버 부등식이 제1 발견적 학습에 따라 올려지지 않는 경우, 최적화기 엔진(16)은 제2의 발견적 학습을 적용한다. 상기 커버 부등식이 제2 발견적 학습에 따라 올려지고, 상기 LP 완화 솔루션의 객체 값이 상기 올림 커버 부등식을 벗어나는 경우, 상기 벗어난 올림 커버 부등식은 자르기로 정수 프로그램에 포함될 수 있다. 최적화기 엔진(16)은 한 개 이상의 특정 순서 집합을 반영하는 한 개 이상의 문제의 특정 제한 요소를 상기 올림 커버 부등식이 벗어나는지 여부를 결정하기 전에 및 상기 벗어난 올림 커버 부등식을 상기 정수 프로그램에 포함하기 전에 상기 올림 커버 부등식에 포함할 수 있다. 일 실시예에 있어서, 상기 커버 부등식이 제1 발견적 학습에 따라 올려지지 않는 경우, 최적화기 엔진(16)은 상기 자르기 프로세스를 반복하는 동안에 2개의 자르기, 즉 벗어난 커버 부등식 형태의 제1 자르기 및 벗어난 올림 커버 부등식 형태의 제2 자르기를 발생할 수 있다.
적합한 커버(C)를 찾기 위하여, 커버 부등식(6)의 왼쪽편은 이상적으로 최소화되어야 한다. 그러나, min(1, A[i]/λ)인 변수 x[i]의 계수를 가지면, 그 문제는 비선형이고 통상적으로 풀기 어렵다는 것이다. 따라서, 커버 부등식(6)의 왼쪽편을 최소화하는 대신에, 일 실시예의 최적화기 엔진(16)은 발견적 학습을 적용하여 상기 커버(C)의 합계를 최대화한다. 판정 변수 z[i]는 x[i]가 상기 커버(C)에 있는 경우 z[i] = 1로서 x[i]에 대하여 유도될 수 있고, 판정 변수 w[j]는 y[j]가 커버 (C) 내에 있는 경우 w[j] = 1로서 y[j]에 대하여 유도될 수 있다. 그 결과의 최대 문제점은 다음과 같이 설명될 수 있다.
z[i] 및 w[j]는 2진수이고,
부가적인 문제의 특정 제한 요소
여기서, 상기 x*[i] 및 y*[j]는 상기 LP 완화 솔루션에서 변수 x[i] 및 y[j]의 객체값이다. 상기 제한 요소(9b)의 처음은 상기 커버(C)의 총 입찰량이 엄격하게 상기 요청 D[1] 이하라는 것이다. 정수 프로그램을 최적화기 엔진(16)으로부터 (9a) 내지 (9d)에 언급된 최대 문제의 형태로 수신한 후에, IP 문제풀이기(18)는 상기 커버(C)의 집합(C1및 C2)을 결정하고, 이러한 정보를 최적화기 엔진(16)으로 전달한다.
(9d)에 지시된 바와 같이, 한 개 이상의 특정 순서 집합을 반영하는 한 개 이상의 부가적인 문제의 특정 제한 요소들은 상기 커버(C)를 결정할 때 이용될 수 있다. 예컨대, 제한없이, 상기 변수{x[1], x[2] 및 x[3]}에 대한 기껏해야 하나의 입찰이 0이 아닌 값을 갖도록 낙찰되는 경우, 그 문제의 특정 제한 요소는 z[1] + z[2] + z[3] ≤1이 되도록 부가될 수 있다. 이러한 제한은 x[1], x[2] 및 x[3]이 제1, 제2 및 제3 입찰시에 제출되는 입찰과 실제로 동일하다는 사실을 반영할 수 있다. 명백하게, 이러한 예로서, 시스템(8)은 특정 순서 집합{x[1], x[2], x[3]}으로부터 기껏해야 한 번의 입찰을 낙찰할 수 있다. 고작 한 개의 변수가 알려진 특정 최적화 문제에 따라 0이 아닌 값을 가질 수 있는 변수의 집합은 특정 순서 집합의 형태이다. 본 발명은 적합한 특성 순서 집합 및 해당하는 문제의 특정 제한 요소를 (9a) 내지 (9d)에 착수된 최대의 문제에 포함하여 고려한다.
특성 순서 집합의 다른 예로서, 예약 입찰 y[1], y[2] 및 y[3]이 낙찰되어, 변수 y[1], y[2] 및 y[3] 중 고작 하나가 0이 아닌 값을 갖는 경우, y[1] + y[2] + y[3] ≤U 및 문제의 특정 제한 요소는 w[1] + w[2] + w[3] ≤1 이되게 부가될 수 있다. 이러한 예에서 상기 특정 순서 집합은 {y[1], y[2], y[3]}이다. 본 발명은(9a) 내지 (9d)에 착수된 최대의 문제점에서 임의의 적합한 특정 순서 집합을 반영하는 임의 적합한 문제의 특정 제한 요소들을 포함하여 고려하고 있다. 일 실시예에 있어서, 상기 문제의 특정 제한 요소를 포함하는 것에 의해 최적화기 엔진(16)이 보다 강력한 자르기를 발생하여, LP 완화를 더욱 제한하고, 시스템(8)이 자원의 할당을 최적화하는 속도, 효율 및 정확성을 강화시킨다. 커버(C)를 결정하는데 이용되는 최대의 문제에 특정 순서 집합을 반영하는 문제의 특정 제한 요소의 포함은 종래의 기술에 중요한 기술적인 장점을 제공한다. 또한, 정수 프로그램에 포함되는 커버 부등식 또는 올림 커버 부등식에 특정 순서 집합을 반영하는 문제의 특정 제한 요소를 포함하는 것은 종래의 기술에 더욱 기술적인 장점을 제공한다.
최적화기 엔진(16)은 IP 문제풀이기(18)를 이용하여 (9a) 내지 (9d)에 설정된 최대의 문제를 해결한다. IP 문제풀이기(18)는 상기 커버(C)에 낙찰된 입찰 {x[j] │z[1]}의 집합으로서 C1및 상기 커버(C)에 낙찰된 예약 입찰{y[j]│w[j]=1 }의 집합으로 C2를 산출하는 솔루션을 발생하는데, 여기서, IP 문제풀이기(18)는 최적화기 엔진(16)에 전달한다. 최적화기 엔진(16)은 IP 문제풀이기(18)로부터 수신된 집합(C1 및 C2)의 단위로 상기 커버(C)를 결정할 수 있고, 다른 방법으로, IP 문제풀이기(18)는 상기 집합(C1 및 C2)의 단위로 상기 커버(C)를 결정한 다음, 그 커버(C)를 최적화기 엔진(16)에 전달할 수 있다.
상기 커버(C)를 발견하거나 다르게 결정된 때, 최적화기 엔진(16)은 적합한 올림 계수를 이용하여 상기 커버(C)에서 상기 입찰에 해당하는 변수의 올림을 시도한다. 상기 올림 계수는 상기 최적화 문제에 포함되는 일부 또는 모든 2진 변수의 계수에 의존하고, 일부 변수에 대하여 0이 될 수 있다. 상기 커버(C)의 2진 변수에 대하여, 큰 계수는 큰 올림 계수를 암시한다. 상기 커버(C)에서 2진 변수가 아닌 계수가 상기 커버(C)의 2진 변수의 계수보다 큰 경우, 올림은 어렵거나 훨씬 불가능해 질 수 있다. 일반적으로, 상기 커버(C)에서 일부의 2진 변수가 아닌 것이 연속 변수로 대신에 처리되는 경우, 큰 올림 계수는 발생될 수 있다. 그러나, 상기 커버 부등식(6)에서 이러한 2진 변수의 계수들은 커버 부등식(6)을 약화시키는 min(1, A[i]/λ) 대신에 A[i]/λ가 될 것이다. 따라서, 커버 부등식(6)의 올림과 세기의 프로세스 사이에 고유의 평형을 이룬다. 이러한 평형을 알리기 위하여, 최적화기 엔진(16)은 본 발명에 따른 한 개 이상의 발견적 학습을 적용하여, 종래의 기술에 비하여 다른 중요한 기술적인 장점을 제공한다.
상기 제1 발견적 학습은 연속 변수로서 임의 2진 변수를 처리하지 않음으로써, 커버 부등식(6)이 가능한 강력하게 만들어진다. 일 실시예에 있어서, λ보다 큰 B에 남아있는 낙찰되지 않은 입찰 집합의 모든 2진 변수의 계수[상기 커버(C)에서 낙찰된 입찰(C1)의 부분 집합을 배체]들은 결정된 순서 및 α를 감소시킬 때 분류된다. 이러한 2진 변수의 계수가 A[1]≥A[2]≥...A[N]≥λ 및 A[0]=0인 경우, 계수 A[b]를 갖는 특정 입찰(b)에 대한 올림 계수(α-1)는 다음과 같이 결정된다.
(a) A[0]+.....+A[m] ≤A[b] ≤A[0]+....A[m+1]-λ, 0 ≤m ≤N인 경우, α= m + 1,
(b) A[0]+.....+A[m+1]-λ ≤A[b] ≤A[0]+....A[m+1], 0 ≤m ≤N인 경우, α= m + 2 - A[1]+.....+A[m+1]-A[b])/λ,
(c) A[b] ≥A[0]+....A[N]인 경우, α= N + 1 +(A[b] - A[1]-...- A[N])/λ
일 실시예에 있어서, 최적화기 엔진(16)은 m을 결정하고 이후에 논의된 바와 같이 이용하기 위하여 어떤 수학식 (10a), (10b) 또는 (10c)를 결정한다. 일반적으로, 소정의 m에 대하여, A[b]〉A[1]+....+A[m]인 경우, 최적화기 엔진(16)은 A[b]와 A[1]+......A[m+1]-λ를 비교한다. A[b]≤A[1]+....+A[m+1]-λ인 경우, 최적화기 엔진(16)은 A[b]와 A[1]+......A[m]〈A[b]≤A[1]+....+A[m+1]-λ이고, 수학식 (10a)은 특정 m에 대하여 충족된다. 주목할 점은 A[m+1]이 λ보다 크다는 것이다. 다른 방법으로, A[b]〉A[1]+....+A[m+1]-λ인 경우, 최적화기 엔진(16)은 A[b]와 A[1]+......A[m+1]를 비교한다. A[b]≤A[1]+....+A[m+1]인 경우, A[1]+......A [m+1]-λ〈A[b]≤A[1]+....+A[m+1]이고, 수학식(10b)은 특정 m에 대하여 충족된다. 상기 절차는 올림 변수가 A[b]가 상기 값 이하로 될 때까지 m의 증가값에 해당하는 증가합과 A[b]를 비교하는 최적화기 엔진(16)으로 이러한 방법을 지속할 수 있다. 일 실시예에 있어서, 최적화기 엔진은 초기에 m=0을 선택한다.
m=0으로 시작하는 이러한 절차를 도시하기 위하여, A[b]는 처음에 A[1]-λ와 비교된다. A[b]≤A[1]-λ인 경우, 0≤A[b]≤A[1]-λ이고, 수학식(10a)는 충족된다. 다른 방법으로, A[b]〉A[1]-λ인 경우, A[b]는 다음에 A[1]와 비교된다.A[b]≤A[1]인 경우, A[1]-λ〈A[b]≤A[1]이고, 수학식(10b)는 충족된다. 수학식 (10a) 및 (10b)가 m=0을 충족시키지 않는 경우, 최적화기 엔진(16)은 m=1이 되도록 m을 증가시킬 것이다. m=1 및 A[b]〉A[1]로서, A[b]는 다음에 A[1]+A[2]-λ와 비교된다. A[b]≤A[1]+A[2]-λ인 경우, A[1]〈A[b]≤A[1]+A[2]-λ이고, 수학식(10a)은 충족된다. 다른 방법으로, A[b]≤A[1]+A[2]-λ인 경우, A[b]는 다음에 A[1]+A[2]와 비교된다. A[b]≤A[1]+A[2]인 경우, A[b]≤A[1]+A[2]-λ〈A[b]≤A[1]+A[2]이고, 표현식(10b)은 충족된다. 상기 절차는 A[b]가 비교 값 이하로 되고, 적합한 식(10a) 또는 (10b)가 선택될 때까지 이러한 방법으로 지속할 것이다. 모든 A[i]가 식(10a) 또는 (10b)를 충족시키지 않고 이용되는 경우, 수학식(10c)이 이용된다.
올림 커버 부등식(8)에 따라 적합한 2진 변수의 올림후에, 올림 커버 부등식 (8)은 앞서 설명한 방법으로 한 개 이상의 부가 특정 순서 집합 및 관련된 문제의 특정 제한 요소를 포함하여 보강될 수 있다. 단지 한가지 방법으로, 제한없이, 상기 입찰(x[1], x[2] 및 x[3]) 중 하나가 낙찰되는 경우, 특정 순서 집합은 {x[1], x[2] 및 x[3]} 이다. x[1]이 상기 커버(C)에 있고, 올림이 없는 경우, x[2] 및 x[3]의 계수, 즉 A[2] 및 A[3]은 A[2] 및 A[3]이 A[1] 이하인 경우에 0으로 설정될 수 있다. 당업자라면 다른 특정 순서 집합이 적용될 수 있고, 본 발명이 모든 그런한 특정 순서 집합을 포함할 수 있다는 것을 이해할 것이다. 본 발명은 적합한 특정 순서 집합 및 관련된 문제의 특정 제한을 올림 커버 부등식에 포함하여 상기 올림 커버 부등식을 보강하는 것을 고려한다. 한 개 이상의 특정 순서 집합 및 관련 문제의 특정 제한을 포함하여 보강되었는지 여부에 대하여 상기 제1 발견적 학습을이용하여 발생된 상기 올림 커버 부등식은 IP 문제풀이기(18)로부터 수신되는 LP 완화 문제풀이기의 객체 값이 상기 올림 커버 부등식을 벗어나는 경우에 자르기라고 생각될 수 있다.
일부의 경우에, 올림은 상기 제1 발견적 학습을 적용하는 최적화기 엔진(16)의 결과로 발생하지 않음으로서, 상기 올림 커버 부등식(8)에서 모든 올림 계수 (α-1)가 0이 된다. 일 실시예에 있어서, 상기 커버(C)에 없는 일부 또는 모든 2진 변수의 계수가 상기 커버(C)의 일부 또는 모든 변수의 계수보다 큰 경우, 상기 커버(C)에 변수들을 올리는 것은 불가능하다. 결과적으로, 위쪽 절단은 올림이 불가능한 것이 존재할 수 있다. 예컨대, A[b]가 상기 커버(C)에서 2진 변수에 대하여 가장 큰 계수인 경우, 상기 위쪽 절단은 일반적으로 A[b]+cλ인데, 여기서, 0≤C≤1 및 C를 이용하여 x[b]의 올림 계수가 얼마나 커질 수 있는지를 결정한다. 일반적으로, 보다 작은 c는 낮은 위쪽 절단 및 큰 올림 계수에 기인할 것이다. 양호하게, 상기 위쪽 절단은 올림이 더욱 유사해지도록 가능한 크게 만들어질 수 있다.
올림이 상기 제1 발견적 학습을 적용하는 최적화기 엔진(16)으로부터 발생되지 않는 경우, 최적화기 엔진(16)은 앞서 충분히 논의된 방법으로 한 개 이상의 특정 순서 집합 및 해당하는 문제의 특정 제한을 포함하여 커버 부등식(6)을 보강할 수 있다. 제한 없이 단지 예시하기 위하여, 입찰(x[1], x[2], x[3]) 중 단지 한 개가 낙찰되는 경우, 특정 순서 집합은 {x[1], x[2], x[3]}이다. x[1]이 상기 커버 (C)에 있는 경우, x[2] 및 x[3]의 계수, 즉 A[2] 및 A[3]은 A[2] 및 A[3]이 A[1]이하인 경우에 0으로 설정될 수 있다. 당업자라면 다른 특정 순서 집합이 특정 시나리오에 적용가능하고, 본 발명이 모든 그러한 특정 순서 집합을 포함한다는 것을 이해할 것이다. 본 발명은 적합한 특정 순서 집합 및 관련 문제의 특정 제한을 커버 부등식에 포함하여 상기 커버 부등식을 보강하는 것을 고려한다. 상기 보강된 커버 부등식은 한 개 이상의 특정 순서 집합 및 관련 문제의 특정 제한을 포함하고, IP 문제풀이기(18)로부터 수신되는 LP 완화 문제풀이기가 상기 보강된 커버 부등식을 벗어나는 경우를 자르기로 생각할 수 있다.
커버 부등식(6)의 가능한 보강 이외에, 상기 제1 발견적 학습을 적용하는 최적화기 엔진(16)으로부터 올림이 없는 경우, 최적화기 엔진(16)은 상대적으로 큰 계수를 갖는 2진 변수가 연속 변수로 처리되는 제2 발견적 학습을 적용한다. 일 실시예에 있어서, 이것에 의해 상기 커버(C)에서 가장 큰 계수를 갖는 2진 변수가 올려질 수 있다. 최적화기 엔진(16)은 상기 한 개 이상의 A[i]가 제2 발견적 학습에 따라 배제되어 쉽게 올리는 것 이외에 한 개 이상의 수학식(10a),(10b),(10c)을 이용하여 앞서 논의된 방법으로 올림 커버 부등식(8)의 모든 올림 계수(α-1)를 결정한다. 일 실시예에 있어서, 최적화기 엔진(16)은 부등식(6)이 이미 보강되었거나 적합한 자르기가 상기 보강 커버 부등식을 이용하여 이미 발견되었는지 여부에 대하여 상기 제1 발견적 학습에 따라 올림이 발생하지 않은 경우에 제2 발견적 학습을 적용할 것이다.
일 실시예에 있어서, 최적화기 엔진(16)은 상기 커버(C)에 없고 상기 위쪽 절단보다 큰 가변 계수를 갖는 연속 가변 입찰로서 처리한다. 최적화기 엔진(16)은파일(14)로부터 수신된 자원 할당 데이터의 일부분으로 c 값을 수신하거나 적합하게 c를 선택할 수 있다. 일 실시예에 있어서, 최적화기 엔진(16)은 통상적으로 c=0.5를 선택한다. 최적화기 엔진(16)은 c에 대하여 적합한 값을 선택하여, 특정 필요에 따라 1회 이상의 값을 증감할 수 있다. 전술한 예에 있어서, A[b]=200 및 c=0.5로서, 상기 위쪽 절단은 200+(0.5)(50)=225 및 계수 A[i]〉225가 연속 변수로 처리될 특정 입찰이 될 것이다.
최적화기 엔진(16)은 결과적으로 얻은 올림 커버 부등식(8)을 분석하여 상기 객체 값, 즉 상기 요청 제한에서 상기 모든 변수에 대한 LP 완화 솔루션의 값이 올림 커버 부등식(8)을 벗어나는지 여부를 결정한다. 이러한 객체 값이 올림 커버 부등식(8)을 벗어나는 경우, 적합한 자르기는 발견되고, 최적화기 엔진(16)은 상기 정수 프로그램에서 자르기를 포함하고, 그 결과로 강화된 정수 프로그램은 솔루션을 발생하기 위하여 IP 문제풀이기(18)에 전달된다. 본 발명은 상기 올림 커버 부등식을 적합한 자르기라고 생각하는지 여부를 결정하기 전후에 한 개 이상의 특정 순서 집합 및 관련된 문제의 특정 제한을 포함하는 제2 발견적 학습을 이용하여 발생된 올림 커버 부등식을 보강하는 것을 고려한다. 상기 LP 완화 솔루션에서 객체값이 올림 커버 부등식(8)을 벗어나지 않음으로써, 상기 올림 커버 부등식이 적합한 자르기라고 생각되지 않는 경우에, 최적화기 엔진(16)은 일 실시예에서 특정 순서 집합을 반영하지 않은 한 개 이상의 부가적인 제한을 (9a) 내지 (9d)에 착수된 최대의 문제에 포함하여 현재의 커버(C)를 제거하고 새로운 커버(C)를 발생한다.
예컨대, 현재의 커버(C)가 z[1]=z[2]=1인 솔루션에 해당하는 상기 낙찰된 입찰 x[1] 및 x[2]를 포함하는 경우, 일 실시예에서 부가적인 제한은 z[1] 및 z[2]=1을 동시에 갖는 것이 불가능한 z[1]+z[2]≤1이 될 수 있다. 부가적인 제한을 포함한 후에, 최적화기 엔진(16)은 IP 문제풀이기(18)를 이용하여 다시 최적화하여 새로운 커버(C)를 발생하고, 앞서 논의한 방법으로 상기 새로운 커버(C)를 올리며, 적합한 자르기가 발견되었는지 여부를 결정한다. 이러한 절차는 최적화기 엔진(16)이 수용가능한 횟수의 자르기를 찾을 때까지, 최적화기 엔진(16)이 이러한 자르기를 상기 정수 프로그램에 포함하여 한 개 이상의 강화된 정수 프로그램을 발생하고, IP 문제풀이기(18)가 수용가능한 솔루션을 적어도 하나의 강화된 정수 프로그램에 발생하는 방법으로 반복한다. 복수의 커버(C)를 발생하고 복수의 올림 기법을 적용하는 프로세스를 통하여, 최적화기 엔진(16)은 다른 방법으로 관찰될 많은 자르기를 발생하여 중요한 기술적인 장점을 제공할 수 있다.
본 발명의 자르기 프로세스에 관한 최적화기(10)의 동작은 매우 간단한 예를 이용하여 더욱 상세히 설명될 것이다. 당업자라면 최적화기(10)가 다른 적합한 최적의 시나리오에 대하여 이용될 수 있고, 본 발명이 모든 그러한 시나리오를 포함하고 있다는 것을 이해할 것이다. 특정 항로에 대하여 다음과 같은 요청 제한을 가지고 있는 경우에, 요청 제한(2)의 예시적으로 더욱 특정한 버젼은 다음과 같다.
200 x[1]+200x[2]+200x[3]+200x[4]+250x[5]+y[6] ≥250
여기서, x[1],x[2],x[3],x[4] 및 x[5]는 운송업자 입찰에 해당하는 2진 변수이고, y[6]는 운송업자 예약 입찰에 해당하는 연속 변수이다. 또한, 상기 항로에입찰의 단위 가격 P[b1]이 다음과 같은 순서로 증가한다고 가정하면, P[1/]=$1.10, P[2/]=$1.20, P[3/]=$1.30, P[4/]=$1.40, P[5/]=$1.50, 및 P[6/]=$2.00 이다. 또한, x[1] 및 x[4]에 해당하는 입찰이 다른 차례에 제출된 동일한 입찰이므로 문제의 특정 제한 x[1]+x[4]≤1을 갖는 특정 순서 집합을 구성한다고 가정하면, 이러한 경우에, 가장 최적의 통합 솔루션이 x[1]=1 및 y[6]=50 이라도, 상기 LP 완화 솔루션은 대신에 x[1]=1, x[2]=0,25 및 x[3]=x[4]=x[5]=y[6]=0을 산출할 것이다. 이러한 솔루션은 상기 분수값 x[2]=0.25를 포함하고, 실제로 실행될 수 없기 때문에 바람직하지 않다. 왜냐하면, x[2]가 그 값으로 "0" 및 "1"을 가져야 하는 2진 변수이기 때문이다. 최적화기 엔진(16)은 이러한 예에서 적어도 2개의 자르기, 즉 특정 순서 집합에 따라 보강된 벗어난 커버 부등식 형태의 제1 자르기 및 벗어난 올림 커버 부등식 형태의 제2 자르기를 발생하여 IP 문제풀이기(18)가 이러한 분수 솔루션을 발생하는 것을 예방한다.
첫째, 적합한 커버(C)를 찾기 위하여, 최적하기 엔진(16)은 상기 (9a) 내지 (9d)를 설정한 초대 문제의 특정 버젼인 적합한 최대 문제를 IP 문제풀이기 (18)에 전달한다.
Max{200x[1]+200z[2] < 250에 제공된 z[1]+0.25z[2]}
z[3], z[4], z[5] 및 w[6]은 그 계수들이 이러한 예에서 0인 x[3], x[4], x[5] 및 y[6] 값이기 때문에 최대의 문제(12)에 포함되지 않는다는 것을 주목해야 한다. x[4]=0이기 때문에, 상기 특정 순서 집합{x[1], x[4]} 및 그 해당하는 부가적인 문제의 특정 제한 z[1]+z[4]≤1을 최대 문제(12)에 포함하는 것은 이러한 예로서 도움이 될 수 없다. 그러나, 덜 간소화된 최적화 시나리오를 포함하는 통상적인 상황에서, 상기 특정 순서 집합 및 해당하는 문제의 특정 제한의 포함은 최적화기 엔진(16)이 이전의 기술에 비하여 중요한 기술적인 장점을 발생하고 제공하는 자르기의 세기를 극적으로 개선할 수 있다. 최대 문제(12)로 솔루션은 z[1]=1 및 z[2]=0이고, 이것은 상기 커버(C)가 단지 x[1](C={x[1]})를 포함하는 것을 의미한다. IP 문제풀이기(18)로부터 수신되고 (4)에 해당하는 많은 특정 부등식을 이용하는 상기 커버(C)를 토대로, 최적화기 엔진(16)은 다음식을 계산한다.
λ= 250-(200 + 0) = 50
커버 부등식(6)에 해당하는 결과적으로 더욱 특정한 커버 부등식은 다음과 같다.
x[2] + x[3] + x[4] + x[5] + y[6]/50 ≥1
이 수학식은 x[2]=0.25 이고, x[3]=x[4]=x[5]=y[60=0 일 때, 왼쪽편이 0.25이기 때문에 이러한 간단한 예에서 벗어난다. 상기 커버 부등식(14)은 x[1]=1 일 때 바람직하지 않은 분수 솔루션 x[2]=0.25를 제거한다. 이러한 것을 보기 위하여, x[1]에 해당하는 입찰이 x[1]=1이 되도록 낙찰되는 경우, 50개의 부가적인 단위들이 상기 요청을 충족시키는데 필요하다는 것을 주목하자. 이것은 x[2], x[3], x[4], x[5]에 해당하는 입찰 중 하나가 전체적으로 낙찰되어야 하고, 또한 y[6]에해당하는 예약 입찰이 50 단위로 낙찰되는 것을 암시한다. 커버 부등식(14)은 이러한 논리를 요약한다.
커버 부등식(14)에서 구현되는 포텐셜 자르기는 최적화기 엔진(16)이 x[1]을 올릴 수 있는 경우에 보강될 수 있다. 이러한 간단한 예에서, x[1]이 상기 커버(C)에 있는 변수 x[1], x[2], x[3], x[4], x[5] 및 y[6] 중에서 단지 하나라는 것을 돌이켜 보자. 최적화기 엔진(16)은 제1 발견적 학습 및 적합한 수학식(10a), (10b) 또는 (10c)를 적용하여 x[1]에 대한 올림 변수(α-1)를 결정한다. 이러한 예에서, 상기 커버(C)에 없는 변수에 대하여 가장 큰 계수가 A[5]=250이 되도록 A[1]=A[2]= A[3]=A[4]=200이기 때문에, 최적화기 엔진(16)은 m=0을 갖는 수학식(10a)을 적용하여 다음과 같은 식을 얻는다.
(A[0]=0 ≤(A[b]=A[1]=200) ≤(A[0]+A[5] - λ=250-50=200)
이 수학식은 다음식을 발생한다.
α= m+1 = 1
따라서, (α-1)=0 이다. 상기 올림 계수 (α-1)=0 는 이러한 예에서 올림이 제1 발견적 학습의 결과로 발생하지 않는다는 것을 지시한다. 수학식 (10a), (10b) 및 (10c)가 순서가 감소되는 가변 계수로 유도되기 때문에, 수학식(10a)에서 A[1]는 앞서 기술한 더욱 특정한 수학식(15)에서 A[5]=250이 된다.
이러한 예에 있어서, x[1]는 x[5]의 계수, A[5]=250이 너무 크기 때문에 올림이 없다. 일 실시예에 있어서, 상기 요청 D[/]의 전체량을 충족시키는 입찰이 존재하는 경우, 상기 제1 발견적 학습에 따라 올림이 일어나지 않는다. 이러한 예에서 상기 발견적 학습의 적용 후에 올림이 없더라도, 상기 커버 부등식(14)이 구현하는 포텐셜 자르기는 한 개 이상의 특정 순서 집합 및 해당하는 문제의 특정 제한의 협조를 통하여 보강될 수 있다. 이러한 예에 있어서, 앞서 논의된 바와 같이, x[1] 및 x[4]에 해당하는 입찰 중 한 개만이 낙찰되기 때문에, 그리고 x[1]이 커버 (C)에 있고 커버 부등식(14)에서 낙찰되기 때문에, 적합한 자르기는 다음과 같다.
x[2]+x[3]+x[5]+y[6]/50 ≥1
상기 제1 발견적 학습의 적용 결과로 올림이 없기 때문에, 최적화기 엔진 (16)은 제2 발견적 학습을 적용하여 상기 커버(C)를 올린다. 최적화기 엔진(16)은 이러한 예에서 A[b]=A[1]=200 및 c=0.5를 가지고, 상기 위쪽 절단이 200+(0.5)(50) = 225 및 A[5]=250〉225 이기 때문에 연속 변수로서 x[5]를 처리한다. 상기 커버 부등식(14)은 다음식이 된다.
x[2]+x[3]+x[4]+5 x[5]+y[6]/50 ≥1
x[5](250/50=5의 계수는 x[5]가 연속 변수로 처리되기 때문에 커버 부등식 (6)에서 제2 가산에 따라 결정된다. 커버 부등식(18)은 x[5]의 계수가 커버 부등식 (14)에서 보다 커버 부등식(18)에서 크기 때문에 커버 부등식(14)보다 약하다.
가장 큰 계수를 갖는 커버(C)의 변수는 x[1]를 남기고, 여기서 최적화기 엔진(16)은 수학식(10b)에 따라 올린다. m=1로서, 수학식(10b)은 다음과 같이 된다.
(A[0]+A[5] - λ=200) ≤(A[b]=A[1]=200) ≤(A[0]+A[5]=250)
이 수학식은 다음식을 산출한다.
α= m+2 - (A[5]-A[b])/λ= 3 -(250-200)/50 = 2
따라서, 상기 x[1]에 대한 올림 계수는 (α-1)=1이다. 주목할 점은 수학식 (10a), (10b) 및 (10c)이 순서가 감소할 때의 가변 계수로 유도되기 때문에, 수학식(10b)에서 A[1]이 앞서 설정된 더욱 특정한 수학식(19)에서 A[5]=250이 된다는 것이다.
올림 커버 부등식(8)의 더욱 특정 버젼 형태로 그 결과의 절단기는 다음과 같다.
x[1]+x[2]+x[3]+x[4]+5x[5]+y[6]/50 ≥2
상기 자르기(17 및 21)의 모두는 벗어난다. 이러한 자르기들은 다른 것보다 결코 강력하지 않다. 일반적으로, 특정 커버 부등식에서 가변 계수의 밀접과 해당하는 올림 커버 부등식을 발생하는 능력사이에 거래가 있다. 자르기(17)가 x[4] 및 x[5]에 대하여 더욱 바람직한 계수를 포함하더라도, 자르기(21)는 올림에 관하여 더욱 바람직하다. 최적화기 엔진(16)은 자르기(17 및 21)를 상기 적용가능한 정수 프로그램에 포함하여 그 결과로 강화된 정수 프로그램을 솔루션용 IP 문제풀이기(18)에 전달한다. 이러한 예에 있어서, 상기 LP 완화 솔루션 최적화기 엔진(16)은 IP 문제풀이기(18)로부터 수신하여 최적의 솔루션인 x[1]=1 및 y[6]=50 이 될 것이다.
전체적으로 실행되거나 적합한 부분에서 실행될 수 있는 전술한 자르기 프로세스 이외에 또는 대신에, 최적화기 엔진(16)은 우선순위 프로세스를 실행하여 시스템(8)이 자원의 할당을 최적화하는 속도, 효율 및 정확성을 증가시킨다. 일 실시예에 있어서, 본 발명의 우선순위 프로세스는 최적화기 엔진(16)의 문제의 특정 집합 변환 구조에 최소한 부분적으로 의존한다. 상기 우선순위 최적화기 엔진(16)은 IP 문제풀이기(18)가 해당하는 정수 프로그램을 풀기위하여 시도할 때 입찰에 해당하는 2진 변수를 분기 및 한정 트리(30) 내에서 분기하는 순서를 결정한다. 우선 순위는 표준 정수 프로그램에 포함되어 강화된 정수 프로그램을 발생하고, 자르기를 포함하는 다른 방법으로 강화된 정수 프로그램에 포함되어 또 다른 강화된 정수 프로그램을 발생한다. 입찰 순위가 높을 수록, 그와 관련된 변수는 트리(30)내에서 쉽게 분기된다. 일 예로서, 도 2를 참조로 논의된 트리(30)에서, x[1]는 x[1] 및 x[2]의 상대적인 우선순위를 토대로 x[2] 앞에서 분기되고, x[2]는 x[2] 및 x[3]의 상대적인 우선순위를 토대로 x[3]전에 분기된다.
최적화기 엔진(16)은 분기 순서를 결정하는 대신에 또는 이외에 우선 순위에 따라 분기 방향을 특정할 수 있다. 일 실시예에 있어서, "업(up)" 분기는 낙찰되는 입찰 및 그 값으로 "1"을 갖는 관련 2진 변수에 해당한다. 유사하게, "다운(down)" 분기는 거절되는 입찰 및 그 값으로 "0"을 갖는 관련된 2진 변수에 해당할 수 있다. 최적의 솔루션에 있어서, 특정 2진 변수가 그 값으로 "1"을 갖는 경우, 예컨대, x[1]=1 인 경우, 그 관련된 "업" 분기(이러한 예에서 x[1]=1)를 탐색하는 것은 그 관련된 "다운" 분기(이러한 예에서 x[1]=0)를 탐색하는 것보다 수용가능한 솔루션을 산출할 것 같다.
입찰에 우선순위를 할당하기 위하여, 우선 최적화기 엔진(16)은 상기 입찰이 다른 입찰의 일부 또는 전부에 비하여 얼마나 좋고 나쁜지를 평가한다. 상대적으로 양호한 입찰은 높은 우선 순위 및 업 분기 방향이 할당될 것이다. 상대적으로 나쁜 입찰은 낮은 우선 순위 및 다운 분기 방향이 할당될 것이다. 각 항로에 대하여, 최적화기 엔진(16)은 그 항로를 재는 모든 입찰을 식별한다. 일 실시예에 있어서, 가장 낮은 단위 가격을 갖는 입찰들은 상기 선택된 모든 입찰에 대한 총 입찰량이 임계치(예컨대, 상기 요청의 절단 인자 횟수)를 초과할 때까지 단위 가격을 증가시키는 순서로 선택된다. 상기 선택된 입찰의 마지막 단위 가격은 상기 항로에 대한 절단 단위 가격(wjfeks[/])으로 정의되고, 다른 입찰의 단위 가격과 비교하는데 이용된다. 모든 입찰에 대한 총 입찰량이 상기 요청보다 작은 경우, 예약 입찰은 상기 차단 단위 가격을 결정하는데 이용될 수 있다. 상기 차단 단위 가격보다 좋은 단위 가격을 갖는 입찰은 상기 항로에 대하여 양의 우선 순위 값이 할당되고, 상기 차단 단위 가격보다 작거나 같은 단위 가격을 갖는 입찰은 상기 항로에 대하여 음의 우선 순위 값이 할당된다. 이러한 방법으로, 상기 항로에 대한 차단 단위 가격은 상기 항로를 재는 각 입찰과 관련된 여분의 비용 또는 절약 비용을 평가하는데 이용될 수 있다. 최적화기 엔진(16)은 그 입찰이 걸리는 기간의 모든 항로에 걸쳐우선순위 값의 합을 토대로 입찰에 우선순위를 할당한다.
항로(/)에 입찰(b)의 우선 순위값, 즉 Value[b/]은 다음식과 같다.
Value[b/] = (Cutoff[/] - P[b/])A[b/]
여기서, Cutoff[/]는 상기 항로에 대한 차단 단위 가격이고, P[b/]는 상기 항로에 대한 입찰 단위 가격이며, A[b/]는 상기 항로에 대한 입찰량 단위이다. P[b/]<Cutoff[/]인 경우, Value[b/]는 음이고, 그 우선순위 값은 음이 될 것이다. 간단한 예로서, 상기 차단 단위 가격 Cutoff[/]=180, 상기 입찰 단위 가격 P[b/]= 150, 단위로 그 입찰량 A[b/]=50인 경우, 상기 항로상에 입찰에 대한 우선순위 값은 다음과 같다.
Value[b/]=(180-150)50=1500
앞서 논의된 바와 같이, 상기 입찰에 대한 우선순위는 그 입찰에 걸리는 모든 항로를 가로지르는 그 우선순위 값의 합이다.
입찰에 대한 우선순위는 고정 비용 또는 다른 적합한 운송업자 제한에 따라 조정될 수 있다. 일 실시예에 있어서, 선적인은 항로 그룹(g)에서 운송업자(c)에게 일에 대하여 보답하는 고정 비용 F[cg]을 특정할 수 있다. 앞서 논의된 바와 같이, 항로 그룹은 선적인, 한 명 이상의 운송업자 또는 다른 방법의 필요성에 따른 몇가지 방법과 관련된 항로 그룹이다. 상기 각 고정 비용 F[cg]에 대하여, 최적화기 엔진(16)은 양의 우선순위를 갖는 항로 그룹에서 운송업자(c)의 모든 입찰을 식별하는데, 그러한 입찰의 갯수는 n으로 표시된다. 최적화기 엔진(16)은 상기 각 우선순위로부터 F[cg]를 감산하여 이러한 입찰의 우선순위를 조정한다. 그 조정된 합의 절대값은 상기 입찰에 대하여 조정된 우선순위이다. 간단한 예로서, F[cg]=90 이고, 상기 변수 x[1], x[2], x[3]에 해당하는 입찰에 대한 우선순위가 우선순위[x1] =100, 우선순위[x2]=50 및 우선순위[x3]=15 라고 가정하자. x[1], x[2] 및 x[3]에 대하여 조정된 우선순위는 ┃100-90/3┃=┃70┃, ┃50-90/3┃=┃20┃, ┃15-90/3┃ =┃-15┃가 될 것이다. 상기 조정된 우선순위가 양이면, x[1] 및 x[2]에 해당하는 입찰에 대한 경우와 같이, 상기 분기 방향은 업될 것이다. 상기 조정된 우선순위가 음이면, x[3]에 해당하는 입찰에 대한 경우와 같이, 상기 분기 방향은 다운이다.
본 발명의 우선순위 프로세스는 발견적 학습을 이용하여 상기 입찰을 재는 모든 항로에 걸쳐 그 무게 단위 가격에 따라 각 입찰에 우선순위를 할당하는 표준 기법에 비하여 중요한 기술적인 장점을 제공한다. 예컨대, 이전의 기법은 상기 입찰이 다음식과 동일하게 측정하는 모든 항로[j]에 대하여 중량 단위 가격을 계산한다.
B[j]U[j])/( B[j])j
여기서, B[j]는 입찰량이고, U[j]는 특정 항로(j) 상에 단위 가격이다. 차단 가격은 결정되고, 상기 입찰에 걸리는 모든 항로에 걸쳐 각 입찰의 가중 단위 가격은 상기 차단 가격과 비교된다. 상기 차단 가격 이하의 가중 단위 가격을 갖는입찰에는 양의 우선순위가 할당되고, 상기 차단 가격 아래의 가중 단위 가격을 갖는 입찰은 음의 우선순위가 할당된다. 다른 이전의 기술은 모든 항로에 걸쳐 그 가중된 단위 가격에 따라 모든 입찰을 정렬하는 것을 포함한다. 입찰이 선택될 때, 양의 우선순위 또는 "업"분기 방향이 할당될 것이다. 상기 선택된 입찰로 종료하는 입찰들은 음의 우선순위 또는 "다운"분기 방향이 할당된다. 이러한 절차는 입찰이 남지 않을 때까지 반복한다.
그러한 이전의 기법은 운송업자 입찰 최적화 시나리오에 대하여 일반적으로 부적합한데, 왜냐하면, 제한없이 예시용으로, (a) 각 입찰이 일부 또는 모든 다른 입찰보다 다른 항로 및 항로들을 측정할 수 있고, (b) 다른 지형 영역에서 항로들은 때때로 가격이 극적으로 달라질 수 있기 때문이다. 이러한 이전의 기법과 대조하여, 본 발명의 우선순위 프로세스는 개별적으로 각 항로를 처리하며, 중요한 기술적인 장점을 제공하는 운송업자 입찰 최적화 및 많은 다른 자원 할당 시나리오를 효율적으로 다룬다. 일 실시예에 있어서, 앞서 설명한 자르기 프로세스로서 또는 자르기 프로세스 없이 본 발명의 우선순위 프로세스에 의해 최적화기(10)가 앞서 논의한 이전의 기법에 의존하는 시스템을 일정하게 실행할 수 있다. 상기 우선순위 프로세스는 상대적으로 강력한 운송업자 선택 제한이 존재하는 상황에서 수용가능한 솔루션을 발생할 때 특별히 효율적으로 될 수 있다.
도 3은 본 발명에 따라 자원의 할당을 최적화하는 예시적인 방법을 도시하는 흐름도이다. 그 방법은 적합한 자원 할당 데이터가 데이터베이스(12)에 기억되는 단계(100)에서 개시한다. 단계(102)에서, 일부 또는 모든 자원 할당 데이터는 기억용 최적화기 파일(14)에 전달되고, 그 관련된 GUI를 이용하여 볼 수 있다. 최적화기 엔진(16)은 단계(104)에서 파일(14)에 기억된 일부 또는 모든 자원 할당 데이터를 엑세스하고, 단계(106)에서 어드레스되는 최적화 문제를 반영하는 데이터에 따라 표준 정수 프로그램을 만든다. 최적화기 엔진(16)은 상기 우선순위 프로세스를 적용하여 단계(108)에서 상기 데이터에 따라 한 개 이상의 우선순위를 발생할 수 있고, 우선순위를 발생하는 대신에 또는 부가하여, 상기 자르기 프로세스를 적용함으로써 단계(110)에서 상기 데이터에 따라 한 개 이상의 자르기를 발생할 수 있다.
일 실시예에 있어서, 최적화기 엔진(16)은 단계(108)에서 모든 입찰에 대하여 우선순위를 발생하고, 단계(110)에서 발생할 수 있는 정도의 자르기를 발생하여, 그들이 만들 수 있을 만큼 강력한 자르기를 만드는 것에 의해, 최적화기 엔진 (16)이 상기 특별한 최적화 시나리오를 반영하는 정수 프로그램을 더욱 강화시킬 수 없도록 한다. 다른 실시예에 있어서, 최적화기 엔진(16)은 제한된 우선순위 및 자르기만을 발생하여 적절하게 상기 정수 프로그램을 강화시킴으로서 그 솔루션을 쉽게 인에이블할 수 있다. 상기 우선순위 프로세스, 상기 자르기 프로세스 또는 이러한 2개의 프로세스를 적용하여 표준 정수 프로그램을 강화시킨 후에, 최적화기 엔진(16)은 단계(112)에서 그 강화된 정수 프로그램을 IP 문제풀이기(18)로 전달한다. IP 문제풀이기(18)는 단계(114)에서 통합 솔루션을 상기 정수 프로그램에 발생하여, 그 솔루션을 단계(116)에서 최적화기 엔진(16)에 전달한다. 단계 (118)에서, 최적화기 엔진(16)은 최적화기(10)의 사용자로부터 입력에 상관없이 상기 솔루션을 파일(14)로 전달하고, 그 방법은 종료한다. 그 사용자는 파일(14)과 관련된 GUI를이용하여 상기 솔루션에 제공되고, 파일(14)에 상기 솔루션을 기억하기 위한 선택사항을 제공함으로써, 적합한 부가적인 정보를 제공하고 다른 솔루션을 요청하거나 이러한 모든 선택사항을 제공할 수 있다.
도 4는 본 발명에 따른 예시적인 자르기 프로세스를 도시한다. 일 실시예에 있어서, 최적화기 엔진(16)은 도 3을 참조로 앞서 토론한 단계(110)에서 자르기 프로세스를 제공한다. 상기 프로세스는 단계(200)에서 개시하고, 여기서, 최적화기 엔진(16)은 표준 정수 프로그램을 IP 문제풀이기(18)에 선형 프로그램으로 전달한다. IP 문제풀이기(18)는 단계(202)에서 LP 완화 솔루션을 선형 프로그램에 발생하여, 단계(204)에서 상기 LP 완화 솔루션을 최적화기 엔진(16)에 전달한다. 상기 LP 완화 솔루션이 단계(206)에서 통합 솔루션이 아닌 경우에, 단계(208)에서, 최적화기 엔진(16)은 도 5를 참조로 앞서 설명하고 이후에 설명될 바와 같이 각 항로에 대한 요청 제한에 하나 이상의 적합한 자르기의 발생을 시도한다. 한 개 이상의 적합한 자르기가 단계(210)에서 발생되는 경우, 최적화기 엔진(16)은 상기 자르기를 상기 정수 프로그램에 포함하여 강화된 정수 프로그램을 발생하고, 상기 프로세스는 단계(200)로 복귀한다. IP 문제풀이기(18)로부터 수신되는 LP 완화 솔루션이 단계(206)에서 통합하는 경우 또는 적합한 자르기가 단계(210)에서 발생되지 않는 경우, 그 프로세스는 종료한다.
도 5는 본 발명의 자르기 프로세스를 더욱 상세히 도시한다. 일 실시예에 있어서, 최적화기 엔진(16)은 도 3을 참조로 기술된 단계(208 내지 212)와 결합하여 이러한 더욱 상세한 프로세스를 실행한다. 상기 프로세스는 IP 문제풀이기(18) 또는 다른 방법을 이용하여 적합한 커버(C)를 찾는 최적화기 엔진(16)을 개시한다. 일 실시예에 있어서, 상기 최적화 시나리오에 포함된 각 항로에 대하여, 최적화기 엔진(16)은 상기 요청 제한(2)에 적합한 (9a) 내지 (9d)에 설정된 바와 같이 최적화 문제를 단계(300)에서 IP 문제풀이기(18)로 전달하여 명확하게 나타낸다. 최적화기 엔진(16)은 단계(302)에 지시된 바와 같이 한 개 이상의 부가적인 문제의 특정 제한을 포함하도록 최대의 문제를 명확하게 나타낸다. 단계(304)에서, IP 문제풀이기(18)는 상기 커버(C)에 있는 집합(C1및 C2)을 결정하고, (a) 상기 커버(C)를 최적화기 엔진(16)으로 전달하여 결정하거나, (b) 상기 커버(C)를 결정하기 위한 최적화기 엔진(16)으로 C1및 C2를 전달한다. 상기 커버(C)가 단계(304)에서 발견되거나 다른 방법으로 결정될 때, 최적화기 엔진(16)은 단계(306)에서 적합한 커버 부등식을 발생한다.
상기 프로세스는 앞서 설명한 방법으로 상기 커버(C)를 올리기 위하여 시도하는 최적화기 엔진(16)으로 지속한다. 일 실시예에 있어서, 최적화기 엔진(16)은 단계(308)에서 제1 발견적 학습을 적용하여 상기 커버(C)를 올릴 필요가 있는 올림 계수(α-1)를 결정하여 해당하는 올림 커버 부등식을 발생한다. 상기 커버(C)가 상기 제1 발견적 학습에 따라 단계(310)에서 적합하게 올려지는 경우, 상기 프로세스는 그 해당하는 올림 커버 부등식이 발생되는 단계(316)로 직접 진행한다. 상기 커버(C)가 상기 제1 발견적 학습에 따라 단계(310)에서 적합하게 올려지지 않는 경우, 최적화기 엔진(16)은 단계(312)에서 하나 이상의 문제의 특정 제한을 상기 커버 부등식에 포함할 수 있다. 단계(314)에서, 최적화기 엔진(16)은 제2 발견적 학습을 적용하여 상기 커버(C)를 올리는데 필요한 올림 계수(α-1)를 결정하여 해당하는 올림 커버 부등식을 발생한다. 단계(316)에서, 최적화기 엔진(16)은 상기 제1 발견적 학습에 따른 단계(308)에서 또는 제2 발견적 학습에 따른 단계(314)에서 결정되는 올림 계수에 해당하는 올림 커버 부등식을 발생한다. 최적화기 엔진(16)은 단계(318)에서 한 개 이상의 부가적인 문제의 특정 제한을 상기 올림 커버 부등식에 포함하여 상기 올림 커버 부등식을 보강한다.
단계(320)에서, IP 문제풀이기(18)로부터 상기 LP 완화 솔루션의 객체 값이 단계(306)에서 발생된 커버 부등식, 단계(312)에서 발생된 커버 부등식 또는 이러한 2개의 커버 부등식을 벗어나는 경우, 최적화기 엔진(16)은 단계(322)에서 자르기로 임의의 벗어난 커버 부등식을 상기 정수 프로그램에 포함한다. 또한, 단계 (320)에서, IP 문제풀이기(18)로부터 LP 완화 솔루션의 객체값이 단계(316)에서 발생된 올림 커버 부등식, 단계(318)에서 발생된 올림 커버 부등식 또는 모든 올림 커버 부등식을 벗어나는 경우, 최적화기 엔진(16)은 임의의 벗어난 올림 커버 부등식을 단계(322)에서 자르기로 상기 정수 프로그램에 포함한다. 단계(322)에서 상기 정수 프로그램에 자르기를 포함하여 적합하게 강화된 정수 프로그램을 발생한 후에, 상기 프로세스는 종료한다. 그 대안으로, 상기 IP 문제풀이기(18)로부터 LP 완화 솔루션의 객체값이 단계(320)에서 한 개 이상의 커버 부등식 및 올림 커버 부등식을 벗어나지 않는 경우, 상기 프로세스는 최적화기 엔진(16)이 현재의 커버(C)를 제거하여 IP 문제풀이기(18)를 이용하여 다시 최적화함으로서 새로운 커버(C)를 결정하는 단계(304)로 복귀한다. 일 실시예에 있어서, 상기 프로세스는 최적화기 엔진(16)이 상기 강화된 정수 프로그램을 IP 문제풀이기(18)로 전달하기 전에 상기 강화된 정수 프로그램에 포함하기 위하여 한 개 이상의 부가 자르기를 발생할 수 있도록 단계(320)에서 한 개 이상의 부등식이 벗어나고 단계(322)에서 강화된 정수 프로그램이 발생되는 경우에도 다시 최적화하기 위하여 단계(304)로 복귀한다. 상기 프로세스는 반복 한계에 도달될 때까지 또는 상기 정수 프로그램이 IP 문제풀이기(18)를 이용하는 적합한 솔루션의 적합한 갯수 및 종류를 포함하는 것으로 생각된다.
도 6은 본 발명에 따른 예시적인 우선순위 프로세스의 흐름도이다. 일 실시예에 있어서, 최적화기 엔진(16)은 도 3을 참조로 전술한 단계(108)에서 우선 순위 프로세스를 제공한다. 상기 프로세스는 각 항로에 대하여 최적화기 엔진 (16)이 상기 항로를 재는 모든 입찰을 식별하는 단계(400)에서 개시한다. 최적화기 엔진(16)은 단계(402)에서 이러한 입찰의 단위 가격을 비교하여, 단계(404)에서 가장 낮은 단위 가격을 갖는 입찰을 선택한다. 상기 총 입찰량이 단계(406)에서 임계치, 예컨대 제공된 요청의 차단 요인 횟수를 초과하지 않는 경우, 최적화기 엔진은 단계(408)에서 다음에 가장 낮은 단위 가격을 갖는 입찰을 선택하고, 단계(410)에서 선택된 모든 입찰에 대한 입찰량을 가산하여, 상기 프로세스는 단계(406)로 복귀한다. 상기 총 입찰량이 단계(406)에서 임계치를 초과하는 경우, 최적화기 엔진 (16)은 마지막으로 선택된 입찰의 단위 가격으로 단계(412)에서 상기 경로에 대한 차단 단위 가격을 정의한다.
단계(414)에서, 최적화기 엔진은 각 입찰의 단위 가격과 상기 차단 단위 가격을 비교하고, 단계(416)에서, 그 비교에 따라 각 입찰의 우선순위 값을 결정한다. 일 실시예에 있어서, 상기 차단 단위 가격보다 좋은 단위 가격을 갖는 입찰들은 각 항로에 대하여 양의 우선순위 값이 할당되고, 상기 차단 단위 가격보다 같거나 작은 단위 가격을 갖는 입찰은 상기 항로에 대하여 음의 우선 순위 값이 지정된다. 본 발명은 입찰 단위 가격과 차단 단위 가격의 비교에 기초한 다른 적합한 방법으로 우선순위 값을 할당하는 것을 고려한다. 단계(418)에서, 최적화기 엔진(16)은 일 실시예에서 입찰을 재는 모든 항로에 걸쳐 우선순위 값의 총계와 같은 항로를 재는 각 입찰에 대한 우선순위를 발생한다. 단계(420)에서, 최적화기 엔진 (16)은 이전에 상세히 논의된 바와 같이 고정 비용 또는 적합한 운송업자 제한에 기초하여 각 입찰에 대하여 조정된 우선순위를 발생할 수 있다. 또한, 최적화기 엔진(16)은 상기 우선순위에 따라 단계(422)에서 한 개 이상의 입찰에 대한 분기 방향 또는 상기 입찰의 조정된 우선순위를 할당하고, 그 프로세스는 종료한다. 일 실시예에 있어서, 최적화기 엔진(16)은 IP 문제풀이기(18)가 적용가능한 최적화 문제를 요청한 속도, 효율 및 정확성으로 풀수 없다고 결정된 후에 한 개 이상의 우선순위 또는 조정된 우선순위를 발생하고 포함할 수 있다.
본 발명이 몇개의 실시예로 기술되더라도, 당업자라면 그 변경, 대체 및 수정이 가능할 것이고, 모든 그러한 변경, 대체 및 수정이 본 발명의 범위내에 있다는 것을 알 수 있을 것이다.

Claims (30)

  1. 자원의 할당을 최적화하는 컴퓨터 기반 시스템에 있어서,
    상기 자원에 대한 요청 및 상기 자원에 대한 최소의 단위 가격을 각각 갖는 복수의 입찰로 이루어진 자원 할당 데이터를 포함하는 최적화기 파일과,
    상기 파일에 결합되어 상기 데이터를 수신하고, 입찰 단위 가격에 따라 최소의 일부 입찰에 대한 우선순위를 발생하고, 상기 데이터에 따라 정수 프로그램을 발생하여 그 정수 프로그램에 관한 우선순위를 전달하기 위한 동작이 가능한 최적화기 엔진과,
    상기 엔진에 결합되어 상기 우선순위와 정수 프로그램을 수신하고, 상기 우선순위를 이용하는 상기 요청 및 입찰에 제공된 자원 할당을 최적화하는 상기 정수 프로그램에 대한 솔루션을 발생하는 문제풀이기를 포함하는 것인 자원 할당을 최적화하는 컴퓨터 기반 시스템.
  2. 제1항에 있어서, 상기 자원은 최소한 하나의 선적 항로이고, 상기 입찰은 운송업자 입찰이며, 상기 문제풀이기는 복수의 운송업자 사이에 상기 항로의 할당을 최적화하는 것인 자원의 할당을 최적화하는 컴퓨터 기반 시스템.
  3. 제1항에 있어서, 상기 엔진은 상기 자원을 재는 입찰을 식별하여 상기 자원에 대한 차단 단위 가격을 결정하기 위한 동작이 가능하고, 상기 자원을 재는 상기입찰의 상기 단위 가격과 상기 우선순위를 발생할 때 상기 차단 단위 가격을 비교하기 위한 동작이 가능한 자원의 할당을 최적화하는 컴퓨터 기반 시스템.
  4. 제1항에 있어서, 상기 엔진은 상기 자원을 재는 입찰을 식별하여 입찰 단위 가격에 따라 입찰 순서를 정하고,
    상기 엔진은 최소의 단위 가격을 갖는 입찰을 선택된 입찰에 대한 입찰량의 합이 임계치를 초과할 때까지 선택하고,
    마지막으로 선택된 입찰의 단위 가격은 차단 단위 가격이 되며,
    상기 엔진은 상기 자원을 재는 상기 입찰의 단위 가격과 상기 차단 단위 가격을 비교하여 상기 자원을 재는 입찰에 대한 우선순위 값을 발생하기 위한 동작이 가능한 자원의 할당을 최적화하는 컴퓨터 기반 시스템.
  5. 제4항에 있어서, 상기 임계치는 상기 요청에 차단 인자를 곱한 것을 포함하는 것인 자원의 할당을 최적화하는 컴퓨터 기반 시스템.
  6. 제4항에 있어서, 상기 엔진은 복수의 자원에 걸쳐 특정 입찰의 우선순위 값에 따라 특정 입찰의 우선순위를 결정하기 위한 동작이 가능한 것인 자원의 할당을 최적화하는 컴퓨터 기반 시스템.
  7. 제1항에 있어서, 상기 엔진은 상기 입찰 제출기와 관련된 고정 비용에 따라입찰의 우선순위를 조정할 수 있는 것인 자원의 할당을 최적화하는 컴퓨터 기반 시스템.
  8. 제1항에 있어서, 상기 데이터는 최소한 일부의 상기 입찰의 제출기와 관련된 고정 비용(F)을 더 포함하고, 상기 엔진은 양의 우선순위를 갖는 제출기의 n 입찰을 식별하여 F/n를 이러한 입찰의 우선순위로부터 감산함으로써 상기 입찰의 우선순위를 조정할 수 있는 자원의 할당을 최적화하는 컴퓨터 기반 시스템.
  9. 제1항에 있어서, 상기 엔진은 입찰 우선순위에 따라 입찰에 분기 방향을 할당할 수 있는 것인 자원의 할당을 최적화하는 컴퓨터 기반 시스템.
  10. 제1항에 있어서, 상기 문제풀이기는 분기 및 한정 트리 내에서 상기 입찰의 우선순위에 따라 입찰에 해당하는 변수를 분기하는 것인 자원의 할당을 최적화하는 컴퓨터 기반 시스템.
  11. 자원 할당을 최적화하는 적어도 하나의 컴퓨터 상에서 동작하는 최적화기 엔진에 있어서,
    상기 엔진은,
    상기 자원에 대한 요청 및 상기 자원에 대한 최소의 단위 가격을 갖는 복수의 입찰을 포함하는 자원 할당 데이터를 수신하고,
    상기 단위 가격에 따라 최소의 일부 입찰에 대하여 우선순위를 발생하고,
    상기 데이터에 따라 정수 프로그램을 발생하고,
    상기 정수 프로그램에 관한 우선순위를 상기 우선순위를 이용하는 정수 프로그램에 대한 솔루션을 발생하기 위하여 문제풀이기로 전달하며,
    상기 문제풀이기는 상기 요청 및 입찰에 제공되는 자원의 할당을 최적화하는 것인 자원 할당을 최적화하고 적어도 하나의 컴퓨터 상에서 동작하는 최적화기 엔진.
  12. 제11항에 있어서, 상기 자원은 최소한 하나의 선적 항로이고, 상기 입찰은 운송업자 입찰이며, 상기 문제풀이기는 복수의 운송업자 사이에 상기 항로의 할당을 최적화하는 것인 자원 할당을 최적화하고 적어도 하나의 컴퓨터 상에서 동작하는 최적화기 엔진.
  13. 제11항에 있어서, 상기 엔진은 상기 자원을 재는 입찰을 식별하여 상기 자원에 대한 차단 단위 가격을 결정하고, 상기 자원을 재는 상기 입찰의 상기 단위 가격과 상기 우선순위를 발생할 때 상기 차단 단위 가격을 비교하기 위한 동작이 가능한 자원 할당을 최적화하고 적어도 하나의 컴퓨터 상에서 동작하는 최적화기 엔진.
  14. 제11항에 있어서, 상기 엔진은 상기 자원을 재는 입찰을 식별하여 입찰 단위가격에 따라 입찰 순서를 정하고,
    상기 엔진은 상기 입찰을 최소의 단위 가격을 갖는 입찰을 선택된 입찰에 대한 입찰량의 합이 임계치를 초과할 때까지 선택하고,
    마지막으로 선택된 입찰의 단위 가격은 차단 단위 가격이 되며,
    상기 엔진은 상기 자원을 재는 상기 입찰의 단위 가격과 상기 차단 단위 가격을 비교하여 상기 자원을 재는 입찰에 대한 우선순위 값을 발생하기 위한 동작이 가능한 자원 할당을 최적화하고 적어도 하나의 컴퓨터 상에서 동작하는 최적화기 엔진.
  15. 제14항에 있어서, 상기 임계치는 상기 요청에 차단 인자를 곱한 것을 포함하는 것인 자원 할당을 최적화하고 적어도 하나의 컴퓨터 상에서 동작하는 최적화기 엔진.
  16. 제14항에 있어서, 상기 엔진은 복수의 자원에 걸쳐 특정 입찰의 우선순위 값에 따라 특정 입찰의 우선순위를 발생하기 위한 동작이 가능한 것인 자원 할당을 최적화하고 적어도 하나의 컴퓨터 상에서 동작하는 최적화기 엔진.
  17. 제11항에 있어서, 상기 엔진은 상기 입찰 제출기와 관련된 고정 비용에 따라 입찰의 우선순위를 조정할 수 있는 것인 자원 할당을 최적화하고 적어도 하나의 컴퓨터 상에서 동작하는 최적화기 엔진.
  18. 제11항에 있어서, 상기 데이터는 최소한 일부의 상기 입찰의 제출기와 관련된 고정 비용(F)을 더 포함하고, 상기 엔진은 양의 우선순위를 갖는 제출기의 n 입찰을 식별하여 F/n를 이러한 입찰의 우선순위로부터 감산함으로써 상기 입찰의 우선순위를 조정할 수 있는 자원의 할당을 최적화하는 컴퓨터 기반 시스템.
  19. 제11항에 있어서, 상기 엔진은 입찰 우선순위에 따라 입찰에 분기 방향을 할당할 수 있는 것인 자원의 할당을 최적화하는 컴퓨터 기반 시스템.
  20. 제11항에 있어서, 상기 문제풀이기는 분기 및 한정 트리 내에서 상기 입찰의 우선순위에 따라 입찰에 해당하는 변수를 분기하는 것인 자원의 할당을 최적화하는 컴퓨터 기반 시스템.
  21. 자원 할당을 최적화하는 적어도 하나의 컴퓨터 상에서 동작하는 프로세스에 있어서,
    상기 자원에 대한 요청 및 상기 자원에 대한 최소의 단위 가격을 갖는 복수의 입찰을 포함하는 자원 할당 데이터를 수신하는 단계와,
    상기 단위 가격에 따라 최소의 일부 입찰에 대하여 우선순위를 발생하는 단계와,
    상기 데이터에 따라 정수 프로그램을 발생하는 단계와,
    상기 우선순위를 상기 정수 프로그램에 결합하는 단계와,
    상기 우선순위를 이용하여 상기 요청 및 입찰에 제공되는 자원의 할당을 최적화하는 정수 프로그램에 대한 솔루션을 상기 우선순위를 이용하는 정수 프로그램으로 발생하는 단계를 포함하는 것인 자원 할당을 최적화하는 적어도 하나의 컴퓨터 상에서 동작하는 프로세스.
  22. 제21항에 있어서, 상기 자원은 최소한 하나의 선적 항로이고, 상기 입찰은 운송업자 입찰이며, 상기 문제풀이기는 복수의 운송업자 사이에 상기 항로의 할당을 최적화하는 것인 자원 할당을 최적화하는 적어도 하나의 컴퓨터 상에서 동작하는 프로세스.
  23. 제21항에 있어서, 상기 자원을 재는 입찰을 식별하는 단계와,
    상기 자원에 대한 차단 단위 가격을 결정하는 단계와,
    상기 자원을 재는 상기 입찰의 상기 단위 가격과 상기 우선순위를 발생할 때 상기 차단 단위 가격을 비교하는 단계를 더 포함하는 자원 할당을 최적화하는 적어도 하나의 컴퓨터 상에서 동작하는 프로세스.
  24. 제21항에 있어서, 상기 자원을 재는 입찰을 식별하는 단계와,
    입찰 단위 가격에 따라 입찰 순서를 정하는 단계와,
    선택된 입찰에 대한 입찰량의 합이 임계치를 초과할 때까지 최소의 단위 가격을 갖는 입찰을 선택하는 단계와,
    마지막으로 선택된 입찰의 단위 가격과 같은 차단 단위 가격을 결정하는 단계와,
    상기 자원을 재는 상기 입찰의 단위 가격과 상기 차단 단위 가격을 비교하는 단계와,
    상기 비교에 의해 상기 자원을 재는 입찰에 대한 우선순위 값을 발생하는 단계를 더 포함하는 자원 할당을 최적화하는 적어도 하나의 컴퓨터 상에서 동작하는 프로세스.
  25. 제24항에 있어서, 상기 임계치는 상기 요청에 차단 인자를 곱한 것을 포함하는 것인 자원 할당을 최적화하는 적어도 하나의 컴퓨터 상에서 동작하는 프로세스.
  26. 제24항에 있어서, 특정 입찰의 상기 우선순위는 복수개의 자원에 걸쳐 특정 입찰의 우선순위 값의 합에 따라 결정되는 것인 자원 할당을 최적화하는 적어도 하나의 컴퓨터 상에서 동작하는 프로세스.
  27. 제21항에 있어서, 상기 입찰의 제출기와 관련된 고정 비용에 따라 입찰의 우선순위를 조정하는 단계를 더 포함하는 자원 할당을 최적화하는 적어도 하나의 컴퓨터 상에서 동작하는 프로세스.
  28. 제21항에 있어서, 상기 데이터는 최소한 일부의 상기 입찰의 제출기와 관련된 고정 비용(F)을 더 포함하고,
    양의 우선순위를 갖는 제출기의 n 입찰을 식별하는 단계와,
    F/n을 이러한 입찰의 우선순위로부터 감산하여 상기 입찰의 우선순위를 조정하는 단계를 더 포함하는 자원 할당을 최적화하는 적어도 하나의 컴퓨터 상에서 동작하는 프로세스.
  29. 제21항에 있어서, 입찰의 우선순위에 따라 분기 방향을 입찰에 할당하는 단계를 더 포함하는 자원 할당을 최적화하는 적어도 하나의 컴퓨터 상에서 동작하는 프로세스.
  30. 제21항에 있어서, 분기 및 한정 트리 내에서 상기 입찰의 우선순위에 따라 입찰에 해당하는 변수를 분기하는 단계를 더 포함하는 자원 할당을 최적화하는 적어도 하나의 컴퓨터 상에서 동작하는 프로세스.
KR1020017013165A 1999-04-15 2000-04-07 자원의 할당을 최적화하는 시스템 및 방법 KR20020003381A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/292,644 US6321207B1 (en) 1999-04-15 1999-04-15 System and method for optimizing the allocation of a resource
US09/292,644 1999-04-15
PCT/US2000/009231 WO2000063822A2 (en) 1999-04-15 2000-04-07 System and method for optimizing the allocation of a resource

Publications (1)

Publication Number Publication Date
KR20020003381A true KR20020003381A (ko) 2002-01-12

Family

ID=23125554

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017013165A KR20020003381A (ko) 1999-04-15 2000-04-07 자원의 할당을 최적화하는 시스템 및 방법

Country Status (9)

Country Link
US (1) US6321207B1 (ko)
EP (1) EP1173820A2 (ko)
JP (1) JP2002542544A (ko)
KR (1) KR20020003381A (ko)
AU (1) AU4078100A (ko)
CA (1) CA2369770A1 (ko)
MX (1) MXPA01010394A (ko)
TW (1) TW475128B (ko)
WO (1) WO2000063822A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100833540B1 (ko) * 2006-11-30 2008-05-29 인하대학교 산학협력단 다중 연속 질의에서 슬라이딩 윈도우 집계 질의 최적화를위한 시스템 및 그 방법
KR101388667B1 (ko) * 2011-12-07 2014-04-25 삼성에스디에스 주식회사 운송주문의 분할 입찰 결과 시뮬레이션 방법

Families Citing this family (125)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6606740B1 (en) * 1998-10-05 2003-08-12 American Management Systems, Inc. Development framework for case and workflow systems
US6470324B1 (en) * 1999-02-19 2002-10-22 Daimlerchrysler Corporation Dealer inventory management system
US6584452B1 (en) * 1999-07-12 2003-06-24 Northrop Grumman Corporation Communication satellite resource trading techniques
AU2001225361A1 (en) * 2000-01-14 2001-07-24 Qariba Limited Resource allocation
WO2001057614A2 (en) * 2000-02-01 2001-08-09 Digital Freight Exchange, Inc. Method and system for negotiating transportation contracts via a global computer network
US7328185B1 (en) * 2000-02-28 2008-02-05 International Business Machines Corporation Handling order (proxy) bids in an on-line auction
AU2001285262A1 (en) * 2000-08-25 2002-03-13 Joshua C. Abend Innovation engines
AU2001288765B2 (en) * 2000-09-05 2006-04-27 Board Of Control Of Michigan Technological University Genetic engineering of syringyl-enriched lignin in plants
US7457762B2 (en) * 2001-09-04 2008-11-25 Accenture Global Services Gmbh Optimization of management of maintenance, repair and overhaul of equipment in a specified time window
US8655698B2 (en) * 2000-10-17 2014-02-18 Accenture Global Services Limited Performance-based logistics for aerospace and defense programs
US7440906B1 (en) 2001-09-04 2008-10-21 Accenture Global Services Gmbh Identification, categorization, and integration of unplanned maintenance, repair and overhaul work on mechanical equipment
US6980959B1 (en) 2000-10-17 2005-12-27 Accenture Llp Configuring mechanical equipment
US7124059B2 (en) * 2000-10-17 2006-10-17 Accenture Global Services Gmbh Managing maintenance for an item of equipment
US7461008B2 (en) * 2001-09-04 2008-12-02 Accenture Global Services Gmbh Planning and scheduling modification of a configuration
US7457763B1 (en) 2001-09-04 2008-11-25 Accenture Global Services Gmbh Predictive maintenance system
WO2002048840A2 (en) * 2000-12-13 2002-06-20 Accenture Global Services Gmbh Stochastic multiple choice knapsack assortment optimizer
US20100010870A1 (en) * 2000-12-20 2010-01-14 Karl Millar System and Method for Tuning Demand Coefficients
US9165270B2 (en) * 2000-12-20 2015-10-20 International Business Machines Corporation Predicting likelihood of customer attrition and retention measures
US9785953B2 (en) * 2000-12-20 2017-10-10 International Business Machines Corporation System and method for generating demand groups
US7657470B1 (en) 2000-12-20 2010-02-02 Demandtec, Inc. Financial model engine
US9773250B2 (en) * 2000-12-20 2017-09-26 International Business Machines Corporation Product role analysis
US7302410B1 (en) * 2000-12-22 2007-11-27 Demandtec, Inc. Econometric optimization engine
US7617119B1 (en) 2000-12-20 2009-11-10 Demandtec, Inc. Price optimization with rule relaxation
US10204349B2 (en) 2000-12-20 2019-02-12 International Business Machines Corporation Analyzing customer segments
US7899691B1 (en) 2000-12-20 2011-03-01 Demandtec, Inc. Econometric engine
US7660734B1 (en) 2000-12-20 2010-02-09 Demandtec, Inc. System for creating optimized promotion event calendar
US10496938B2 (en) 2000-12-20 2019-12-03 Acoustic, L.P. Generating product decisions
US7523047B1 (en) 2000-12-20 2009-04-21 Demandtec, Inc. Price optimization system
US7877286B1 (en) 2000-12-20 2011-01-25 Demandtec, Inc. Subset optimization system
US7062447B1 (en) 2000-12-20 2006-06-13 Demandtec, Inc. Imputed variable generator
US8010404B1 (en) 2000-12-22 2011-08-30 Demandtec, Inc. Systems and methods for price and promotion response analysis
US6937992B1 (en) * 2000-12-29 2005-08-30 Arrowstream, Inc. Transport vehicle capacity maximization logistics system and method of same
EP1246097A1 (en) * 2001-03-29 2002-10-02 BRITISH TELECOMMUNICATIONS public limited company Work allocation system
US7672862B1 (en) * 2001-04-02 2010-03-02 I2 Technologies Us, Inc. Generating a supply chain plan
US6553352B2 (en) * 2001-05-04 2003-04-22 Demand Tec Inc. Interface for merchandise price optimization
US7092896B2 (en) * 2001-05-04 2006-08-15 Demandtec, Inc. Interface for merchandise promotion optimization
US7130811B1 (en) 2001-05-05 2006-10-31 Demandtec, Inc. Apparatus for merchandise promotion optimization
EP1286274A3 (en) * 2001-08-03 2003-03-19 Combinenet, Inc. Bidding language for combinatorial auctions and method of use thereof
US8266066B1 (en) 2001-09-04 2012-09-11 Accenture Global Services Limited Maintenance, repair and overhaul management
EP1433101A1 (en) * 2001-10-01 2004-06-30 Sit-Up Limited Data processing system and method
GB2382162A (en) * 2001-10-31 2003-05-21 Sit Up Ltd A data processing method for an online auction
US7249032B1 (en) 2001-11-30 2007-07-24 Demandtec Inc. Selective merchandise price optimization mechanism
US7809581B1 (en) 2001-11-30 2010-10-05 Demandtec, Inc. Rule relaxation and subset optimization system
US7249033B1 (en) 2001-11-30 2007-07-24 Demandtec Inc. Apparatus and method for selective merchandise price optimization
US7386519B1 (en) 2001-11-30 2008-06-10 Demandtec, Inc. Intelligent clustering system
US7249047B2 (en) * 2002-01-10 2007-07-24 Navitaire, Inc. Employee transfer and leave optimization processor
WO2003060625A2 (en) * 2002-01-16 2003-07-24 Earnix Ltd. Pricing optimization apparatus and method
US7324969B2 (en) * 2002-04-11 2008-01-29 Intel Corporation System and method for automated auctioning of web services
US20030216951A1 (en) * 2002-05-02 2003-11-20 Roman Ginis Automating resource management for distributed business processes
US7474995B2 (en) * 2002-05-03 2009-01-06 Sungard Energy Systems Inc. Valuing and optimizing scheduling of generation assets
EP1509825A4 (en) * 2002-05-03 2006-09-06 Caminus Corp VALUATION AND OPTIMIZATION OF THE ASSIGNMENT OF GENERATION CAPITAL
US7389209B2 (en) * 2002-05-03 2008-06-17 Sungard Energy Systems Inc. Valuing and optimizing scheduling of generation assets for a group of facilities
US7487124B2 (en) * 2002-07-11 2009-02-03 Combinenet, Inc. Method and apparatus for solving concisely expressed combinatorial auction problems
US7359905B2 (en) * 2003-06-24 2008-04-15 Microsoft Corporation Resource classification and prioritization system
US7191107B2 (en) * 2003-07-25 2007-03-13 Hewlett-Packard Development Company, L.P. Method of determining value change for placement variable
WO2005036531A2 (en) * 2003-09-12 2005-04-21 Cendant Mobility Services Corporation System and method of selecting freight forwarding companies
US7634421B2 (en) 2003-11-20 2009-12-15 Fort James Corporation System and method for tour planning
US20050114194A1 (en) * 2003-11-20 2005-05-26 Fort James Corporation System and method for creating tour schematics
US7657452B2 (en) * 2003-11-20 2010-02-02 Georgia-Pacific Consumer Products Lp System and method for tour optimization
US20050209910A1 (en) * 2004-03-22 2005-09-22 International Business Machines Corporation System, method, and computer program product for increasing the effectiveness of customer contact strategies
US7991627B2 (en) * 2005-06-21 2011-08-02 General Electric Company Injected drug identification and fail-safe system
US9858579B1 (en) 2006-02-28 2018-01-02 International Business Machines Corporation Plan tuning engine
US9785951B1 (en) 2006-02-28 2017-10-10 International Business Machines Corporation Scalable tuning engine
US7853949B2 (en) * 2006-03-13 2010-12-14 International Business Machines Corporation Method and apparatus for assigning fractional processing nodes to work in a stream-oriented computer system
US20070250342A1 (en) * 2006-04-21 2007-10-25 Ravinder Sohal Systems and methods for automatically generating bids for medical services and goods
US7698246B2 (en) * 2006-09-07 2010-04-13 International Business Machines Corporation System and method for optimal and adaptive process unification of decision support functions associated with managing a chaotic event
US7630948B2 (en) * 2006-09-07 2009-12-08 International Business Machines Corporation System and method for managing a chaotic event
US9202184B2 (en) 2006-09-07 2015-12-01 International Business Machines Corporation Optimizing the selection, verification, and deployment of expert resources in a time of chaos
US7647288B2 (en) * 2006-09-07 2010-01-12 International Business Machines Corporation System and method for optimally customizable and adaptive personalized information display for information associated with managing a chaotic event
US7653609B2 (en) * 2006-09-07 2010-01-26 International Business Machines Corporation System and method for managing a chaotic event by optimizing decision subdivisions subject to multidimensional constraints
US7647286B2 (en) * 2006-09-07 2010-01-12 International Business Machines Corporation System and method for managing a chaotic event by providing optimal and adaptive sequencing of decision sets with supporting data
US8145582B2 (en) 2006-10-03 2012-03-27 International Business Machines Corporation Synthetic events for real time patient analysis
US7809660B2 (en) * 2006-10-03 2010-10-05 International Business Machines Corporation System and method to optimize control cohorts using clustering algorithms
US20090287503A1 (en) * 2008-05-16 2009-11-19 International Business Machines Corporation Analysis of individual and group healthcare data in order to provide real time healthcare recommendations
US8055603B2 (en) 2006-10-03 2011-11-08 International Business Machines Corporation Automatic generation of new rules for processing synthetic events using computer-based learning processes
US7752154B2 (en) * 2007-02-26 2010-07-06 International Business Machines Corporation System and method for deriving a hierarchical event based database optimized for analysis of criminal and security information
US20080140469A1 (en) * 2006-12-06 2008-06-12 International Business Machines Corporation Method, system and program product for determining an optimal configuration and operational costs for implementing a capacity management service
US20080177587A1 (en) * 2007-01-23 2008-07-24 Sonia Jean Cushing Prioritizing orders using business factors
US7917478B2 (en) * 2007-02-26 2011-03-29 International Business Machines Corporation System and method for quality control in healthcare settings to continuously monitor outcomes and undesirable outcomes such as infections, re-operations, excess mortality, and readmissions
US7783586B2 (en) * 2007-02-26 2010-08-24 International Business Machines Corporation System and method for deriving a hierarchical event based database optimized for analysis of biological systems
US7853611B2 (en) * 2007-02-26 2010-12-14 International Business Machines Corporation System and method for deriving a hierarchical event based database having action triggers based on inferred probabilities
US7788203B2 (en) * 2007-02-26 2010-08-31 International Business Machines Corporation System and method of accident investigation for complex situations involving numerous known and unknown factors along with their probabilistic weightings
US7970759B2 (en) * 2007-02-26 2011-06-28 International Business Machines Corporation System and method for deriving a hierarchical event based database optimized for pharmaceutical analysis
US7792774B2 (en) * 2007-02-26 2010-09-07 International Business Machines Corporation System and method for deriving a hierarchical event based database optimized for analysis of chaotic events
US7788202B2 (en) * 2007-02-26 2010-08-31 International Business Machines Corporation System and method for deriving a hierarchical event based database optimized for clinical applications
US7702605B2 (en) * 2007-02-26 2010-04-20 International Business Machines Corporation System and method for deriving a hierarchical event based database optimized for privacy and security filtering
US7805390B2 (en) * 2007-02-26 2010-09-28 International Business Machines Corporation System and method for deriving a hierarchical event based database optimized for analysis of complex accidents
US8224739B2 (en) * 2007-07-30 2012-07-17 Hewlett-Packard Development Company, L.P. Allocating goods to bidders in combinatorial auctions
JP5104871B2 (ja) * 2007-09-26 2012-12-19 富士通株式会社 リソース割当管理プログラム、リソース割当管理装置およびリソース割当管理方法
US7930262B2 (en) 2007-10-18 2011-04-19 International Business Machines Corporation System and method for the longitudinal analysis of education outcomes using cohort life cycles, cluster analytics-based cohort analysis, and probabilistic data schemas
US7779051B2 (en) 2008-01-02 2010-08-17 International Business Machines Corporation System and method for optimizing federated and ETL'd databases with considerations of specialized data structures within an environment having multidimensional constraints
US20090299766A1 (en) * 2008-05-30 2009-12-03 International Business Machines Corporation System and method for optimizing medical treatment planning and support in difficult situations subject to multiple constraints and uncertainties
CN102884484B (zh) * 2009-12-31 2016-06-01 Abb研究有限公司 用于电厂的过程优化方法和系统
US8560365B2 (en) 2010-06-08 2013-10-15 International Business Machines Corporation Probabilistic optimization of resource discovery, reservation and assignment
US9646271B2 (en) 2010-08-06 2017-05-09 International Business Machines Corporation Generating candidate inclusion/exclusion cohorts for a multiply constrained group
US8968197B2 (en) 2010-09-03 2015-03-03 International Business Machines Corporation Directing a user to a medical resource
US9292577B2 (en) 2010-09-17 2016-03-22 International Business Machines Corporation User accessibility to data analytics
US8429182B2 (en) 2010-10-13 2013-04-23 International Business Machines Corporation Populating a task directed community in a complex heterogeneous environment based on non-linear attributes of a paradigmatic cohort member
US9443211B2 (en) 2010-10-13 2016-09-13 International Business Machines Corporation Describing a paradigmatic member of a task directed community in a complex heterogeneous environment based on non-linear attributes
US10318877B2 (en) 2010-10-19 2019-06-11 International Business Machines Corporation Cohort-based prediction of a future event
US20120215576A1 (en) * 2011-02-17 2012-08-23 International Business Machines Corporation Allocating tasks to resources
US9020830B2 (en) 2011-03-08 2015-04-28 Apptio, Inc. Hierarchy based dependent object relationships
US9275050B2 (en) 2011-10-24 2016-03-01 Apptio, Inc. Global dictionaries using universal primitives
US20130262176A1 (en) * 2012-03-30 2013-10-03 Kinaxis Inc. Hybrid balancing of supply and demand
US20140136295A1 (en) 2012-11-13 2014-05-15 Apptio, Inc. Dynamic recommendations taken over time for reservations of information technology resources
US10417591B2 (en) * 2013-07-03 2019-09-17 Apptio, Inc. Recursive processing of object allocation rules
US10325232B2 (en) 2013-09-20 2019-06-18 Apptio, Inc. Allocating heritage information in data models
US11244364B2 (en) 2014-02-13 2022-02-08 Apptio, Inc. Unified modeling of technology towers
US9260203B2 (en) 2014-04-08 2016-02-16 OMNI Consulting Solutions, LLC System and method for matching of space launch, satellite, and mission payload opportunities
US9350561B1 (en) 2015-05-27 2016-05-24 Apptio, Inc. Visualizing the flow of resources in an allocation model
US11151493B2 (en) 2015-06-30 2021-10-19 Apptio, Inc. Infrastructure benchmarking based on dynamic cost modeling
US10268979B2 (en) 2015-09-28 2019-04-23 Apptio, Inc. Intermediate resource allocation tracking in data models
US10387815B2 (en) 2015-09-29 2019-08-20 Apptio, Inc. Continuously variable resolution of resource allocation
US9384511B1 (en) 2015-12-16 2016-07-05 Apptio, Inc. Version control for resource allocation modeling
US9529863B1 (en) 2015-12-21 2016-12-27 Apptio, Inc. Normalizing ingested data sets based on fuzzy comparisons to known data sets
US10726367B2 (en) 2015-12-28 2020-07-28 Apptio, Inc. Resource allocation forecasting
US10474974B2 (en) 2016-09-08 2019-11-12 Apptio, Inc. Reciprocal models for resource allocation
US10936978B2 (en) 2016-09-20 2021-03-02 Apptio, Inc. Models for visualizing resource allocation
US10692039B2 (en) * 2016-09-20 2020-06-23 International Business Machines Corporation Cargo logistics dispatch service with integrated pricing and scheduling
US10482407B2 (en) 2016-11-14 2019-11-19 Apptio, Inc. Identifying resource allocation discrepancies
US10157356B2 (en) 2016-12-14 2018-12-18 Apptio, Inc. Activity based resource allocation modeling
US9877169B1 (en) * 2016-12-19 2018-01-23 Sap Se Multi-period assignment optimization using dynamic priority updating
US11775552B2 (en) 2017-12-29 2023-10-03 Apptio, Inc. Binding annotations to data objects
US10324951B1 (en) 2017-12-29 2019-06-18 Apptio, Inc. Tracking and viewing model changes based on time
US10268980B1 (en) 2017-12-29 2019-04-23 Apptio, Inc. Report generation based on user responsibility

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5216593A (en) * 1991-01-24 1993-06-01 International Business Machines Corporation Method and apparatus for discrete activity resourse allocation through cardinality constraint generation
US6021402A (en) * 1997-06-05 2000-02-01 International Business Machines Corporaiton Risk management system for electric utilities
AU3489000A (en) * 1999-02-12 2000-08-29 Net Exchange System and method for an automated exchange
US6064981A (en) * 1999-06-17 2000-05-16 Barni; Neil A. Method for online display and negotiation of cargo rates
WO2001016665A2 (en) * 1999-08-31 2001-03-08 Dealigence, Inc. System and method for automated contract formation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100833540B1 (ko) * 2006-11-30 2008-05-29 인하대학교 산학협력단 다중 연속 질의에서 슬라이딩 윈도우 집계 질의 최적화를위한 시스템 및 그 방법
KR101388667B1 (ko) * 2011-12-07 2014-04-25 삼성에스디에스 주식회사 운송주문의 분할 입찰 결과 시뮬레이션 방법

Also Published As

Publication number Publication date
MXPA01010394A (es) 2002-08-30
US6321207B1 (en) 2001-11-20
AU4078100A (en) 2000-11-02
EP1173820A2 (en) 2002-01-23
WO2000063822A2 (en) 2000-10-26
TW475128B (en) 2002-02-01
WO2000063822A3 (en) 2001-01-11
JP2002542544A (ja) 2002-12-10
CA2369770A1 (en) 2000-10-26

Similar Documents

Publication Publication Date Title
KR20020003381A (ko) 자원의 할당을 최적화하는 시스템 및 방법
KR20020027307A (ko) 자원의 할당을 최적화하는 시스템 및 방법
Penna et al. A hybrid heuristic for a broad class of vehicle routing problems with heterogeneous fleet
US8438051B2 (en) Rounding to transportation quantities
CN110472899B (zh) 一种物品的出库分配方法和装置
US10311358B2 (en) Systems and methods for multi-objective evolutionary algorithms with category discovery
Şahin et al. An efficient heuristic for the multi-vehicle one-to-one pickup and delivery problem with split loads
Higgins A dynamic tabu search for large-scale generalised assignment problems
EP1145138A1 (en) Automatic combinatorial auction winner determination
US20060241986A1 (en) Production optimizer for supply chain management
Bellanger et al. Three-stage hybrid-flowshop model for cross-docking
Jaszkiewicz Many-objective Pareto local search
Senarclens de Grancy et al. Vehicle routing problems with time windows and multiple service workers: a systematic comparison between ACO and GRASP
Mahvash et al. A column generation based heuristic for the capacitated vehicle routing problem with three-dimensional loading constraints
Avci et al. A matheuristic solution approach for the production routing problem with visit spacing policy
Anoop et al. A mathematical model and solution methods for rail freight transportation planning in an Indian food grain supply chain
Berahhou et al. Memetic algorithm for the dynamic vehicle routing problem with simultaneous delivery and pickup
Ben-Said et al. Using decomposition-based multi-objective algorithm to solve Selective Pickup and Delivery Problems with Time Windows
US8738417B2 (en) Method and apparatus for product management
Sooktip et al. Identifying preferred solutions for multi-objective optimization: application to capacitated vehicle routing problem
Saremi et al. Tuning the parameters of a memetic algorithm to solve vehicle routing problem with backhauls using design of experiments
CN116629495A (zh) 用于输出信息的方法和装置
Guimarães et al. The minimum area spanning tree problem: formulations, benders decomposition and branch-and-cut algorithms
US20060212340A1 (en) Method and apparatus for product management
US20060173696A1 (en) Method and apparatus for product management

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid