주요 컨텐츠로 이동

Gurobi & Databricks를 이용한 토이 브릭 세트 조립: 최적화에 대한 부드러운 소개

Assembling Toy Brick Sets with Gurobi & Databricks: A Gentle Introduction to Optimization

Published: March 31, 2025

리테일 및 소비자 상품1분 이내 소요

Summary

  • 의사결정을 위한 수학적 최적화: 전통적인 머신러닝과 달리, 수학적 최적화는 제품 구성, 재고, 가격, 물류, 공급 체인 관리와 같은 문제를 해결하면서 여러 제약 조건을 관리하면서 기업이 최선의 행동 방향을 결정하는 데 도움을 줍니다.
  • 최적화를 위한 예시 시나리오: 이 블로그는 장난감 벽돌 세트 시나리오를 사용하여 최적화 개념을 설명하며, 솔버는 가능한 벽돌 조합의 방대한 수를 지능적으로 탐색하여 남는 조각을 최소화하면서 만들어야 할 최적의 세트를 결정합니다.
  • Gurobi & Databricks 통합: 기업은 Gurobi의 솔버를 Databricks 내에서 효율적으로 최적화 문제를 해결하는 데 활용할 수 있으며, 이를 통해 원활한 데이터 준비, 확장 가능한 문제 해결, 운영 워크플로우에 대한 통합을 보장하여 더 나은 의사결정을 할 수 있습니다.

점점 더 많은 조직들이 분석을 받아들이면서, 해결해야 할 문제의 범위가 넓어지고 있습니다. 데이터 과학 팀은 종종 통계 분석 및 머신 러닝과 같은 전통적인 기법에 능숙하며, AI와 같은 신흥 기술에도 익숙하지만, 수학적 최적화를 사용하여 더 쉽게 해결할 수 있는 문제 클래스가 여전히 존재합니다.

비즈니스 기능은 종종 여러 가지, 때로는 상충하는 제약 조건을 관리하면서 프로세스의 이점을 최대화하는 결정을 내리는 업무를 맡게 됩니다. 현재 상태 변수를 기반으로 미래 결과를 예측하는 고전적인 머신러닝과 달리, 최적화는 의사결정자가 특정 결과를 최적으로 달성하기 위해 필요한 행동 집합을 식별하는 데 도움을 줍니다. 이 문제들의 해결책은 거의 직설적이지 않으며, 최적의 해결책을 찾기 위해 수많은 상호 작용하는 구성 요소를 검토해야 합니다. 이러한 유형의 자주 만나는 도전 과제는 다음과 같습니다:

  • 제품 구성 - 제한된 진열 공간을 다루면서 고객의 요구를 충족시키고 이익을 극대화하기 위해 적절한 제품 조합을 찾는 것
  • 재고 - 고객의 수요를 충족시키면서도 재고에 묶인 자본을 최소화하기 위한 재고 관리
  • 가격 및 프로모션 - 소비자 수요의 복잡성과 잠재적인 경쟁자 반응을 고려하여 이익을 극대화하는 최적의 기본 가격과 프로모션 할인을 식별하는 것
  • 레이아웃 - 상품의 이상적인 레이아웃을 식별하여 공간 단위의 수익 가능성을 극대화하면서, 제품 크기의 변동성과 소비자에게 다양한 제품 옵션을 제공해야 하는 필요성을 다룹니다
  • 광고 - 도달력과 비용이 다른 광고 수단과 채널의 적절한 조합을 찾아, 투자를 최소화하면서 소비자 반응을 최대화하는 것입니다.
  • 생산 스케줄링 - 주어진 생산 능력에 대해 유한한 노동력과 재료 자원을 할당하여 수요를 충족시키기 위한 효율적이고 시기적절한 상품 생산을 지원합니다
  • 장비 이용률 - 예정된 유지 보수를 통해 장비 고장이나 비효율성으로 인한 다운타임을 최소화합니다
  • 물류 - 운전자와 차량 용량 제약 조건 내에서 배송 목표를 충족시키기 위해 적절한 품목 묶음과 차량 경로를 식별하는 것
  • 공급 체인 - 공급 업체, 배송 센터, 그리고 상점 간의 상품 배송 및 저장을 균형있게 관리하여 신뢰성 있는 수요를 충족시키면서 비용을 최소화합니다.

이러한 문제의 해결책은 종종 무엇이든 시나리오를 반복적으로 테스트하여 각 시나리오에서 다양한 조건을 모방하여 위험과 전략을 평가함으로써 찾아집니다. 이 과정을 가속화하기 위해, 특화된 소프트웨어 솔루션을 활용할 수 있습니다. 특정 유형의 최적화 문제에 맞춰진 오프-더-셸프 솔루션뿐만 아니라 맞춤형 수학 모델을 통해 다양한 비즈니스 요구를 해결할 수 있는 상업용 및 오픈 소스 최적화 솔버가 있습니다. 이 모든 솔루션의 핵심에는 가능한 모든 옵션을 완전히 열거하지 않고도 효율적으로 최적의 해결책을 찾도록 설계된 최적화 알고리즘이 있습니다.

Gurobi와 같은 상업용 솔버와 Databricks와 같은 데이터 및 분석 플랫폼은 최적화 도전 과제를 해결하기 위해 기업들에게 점점 더 사용되고 있습니다. 이러한 플랫폼들은 데이터 입력을 준비하고 솔버 출력을 실행 가능한 응용 프로그램으로 변환하는 데 도움을 줍니다. 이 블로그에서는 Gurobi와 Databricks가 어떻게 함께 작동하여 간단한 최적화 문제를 해결할 수 있는지 보여드리며, 팀들이 자신들의 조직에서 유사한 도전 과제를 해결하는 데 시작점을 제공합니다.

토이 브릭 컬렉션 빌드 최적화

Gurobi와 Databricks가 최적화 문제를 해결하는 데 어떻게 사용될 수 있는지 탐색하는 데 도움이 되기 위해, 우리는 간단하고 설명적인 시나리오로 시작하겠습니다. 당신이 어린이(또는 성인)이고 다음 네 가지 스타워즈 LEGO® 세트를 소유하고 있다고 상상해보세요:

  1. LEGO® Star Wars 75168: 요다의 제다이 스타파이터 (262개 조각)
  2. LEGO® Star Wars 75170: 팬텀 (269개 조각)
  3. LEGO® Star Wars 75162: Y-윙 (90개 조각)
  4. LEGO® Star Wars 75160: U-Wing (109개 조각)

많은 사람들처럼, 당신은 각 세트를 설명서에 따라 만들고, 그것이 끝나면 각각을 분해하여 벽돌을 하나의 큰 양동이에 합칩니다(그림 1).

우리의 네 가지 원래 세트에서 나온 큰 양동이에 든 장난감 벽돌들
Figure 1.  A big bucket of toy bricks from our four original sets

이제 궁금한 점은, 이 벽돌 양동이에서 어떤 다른 공식 세트를 만들 수 있을까요? 이에 대한 답을 얻기 위해서는, 최적화 문제의 네 가지 요소를 명확히 해야 합니다:

  • 입력 파라미터 - 입력 파라미터는 우리가 해결하려는 문제의 맥락을 정의합니다. 우리의 예시에서, 하나의 입력 매개변수는 우리의 네 가지 원래 세트에서 사용 가능한 각 유형의 벽돌 수입니다.
  • 결정 변수 - 결정 변수는 우리가 가진 선택이나 우리가 내려야 하는 결정을 정의합니다. 이 예에서, 우리가 만들 수 있는 다양한 세트는 우리의 결정 변수를 정의합니다.
  • 목표 - 우리의 목표는 최소화 또는 최대화하려는 목표로, 수학적 표현으로 표현됩니다. 이 예에서, 우리는 세트를 만드는 수와 크기를 최대화하면서도, 세트를 만든 후 남는 벽돌의 수를 최소화하려고 시도하고 있습니다.
  • 제약 조건 - 제약 조건은 제안된 해결책이 유효하다고 간주되기 위해 충족해야 하는 조건이나 제한을 나타냅니다. 우리의 예시에서, 한 가지 제약 조건은 우리가 구성하기로 결정한 어떤 세트든지 공식 세트에 의해 지정된 필요한 벽돌 부품을 사용하여 완성해야 한다는 것입니다. 또한, 우리는 우리의 벽돌 양동이가 우리가 처음 시작한 네 개의 원래 세트에서 벽돌만 들어갈 수 있도록 제한할 것입니다.

이러한 요소들이 정의되면, 이제 우리는 가능한 해결책을 정렬하기 시작할 수 있습니다. 우리의 버킷에는 730개의 개별 브릭이 있으므로, 1075 개 이상의 가능한 조합에 직면할 수 있습니다. 각 세트 내에 많은 동일한 벽돌이 있고 이 세트들 사이에 더 많은 벽돌이 있어 이 숫자가 줄어들지만, 결과적으로 가능한 조합의 수는 여전히 압도적입니다. 우리는 문제 공간을 탐색하는 데 지능적인 방법이 필요합니다. 여기서 솔버가 등장합니다.

솔버 뒤의 마법은 입력 파라미터, 결정 변수, 으로 정의된 문제를 검토하고 수학적으로 문제 공간을 탐색하여 비즈니스 규칙을 만족시키고 결과를 개선하는 해결책만 집중할 수 있다는 것입니다. 이를 설명하기 위해, 우리의 양동이에 있는 730개의 개별 벽돌을 고려해 보세요. 1, 2, 3개의 벽돌로만 구성된 세트는 고려할 필요가 없으므로, 이러한 조합을 탐색할 수 있는 반복은 고려 대상에서 제외할 수 있습니다.

문제 정의를 자세히 살펴보면, 해결사는 탐색해야 할 문제 공간을 엄격하게 제한할 수 있습니다. 이제 가능한 조합의 압도적인 수가 훨씬 더 관리 가능해지고, 고도로 최적화된 솔루션 엔진을 통해 남은 결과를 빠르게 평가하여 정확한 답변을 빠르게 제공할 수 있습니다.

Gurobi와 Databricks: 더 나은 함께

점점 더 많은 조직들이 Databricks에 데이터 자산을 통합함에 따라, 그 데이터의 최대 잠재력을 활용하여 다양한 비즈니스 요구를 해결할 수 있도록 하는 것이 중요합니다. Gurobi와 Databricks 데이터 인텔리전스 플랫폼의 원활한 통합은 조직이 최적화 도전 과제에 직면할 때, 그들이 데이터 자산을 다른 플랫폼으로 복제할 필요 없이 현장에서 준비할 수 있음을 의미합니다. 최적화에 익숙한 운영 팀은 그런 다음 Databricks 환경의 리소스를 활용하여 문제를 확장 가능하고 시간 및 자원 효율적인 방식으로 해결할 수 있습니다.

솔버의 출력이 Databricks 내에 캡처되면, 조직은 솔버의 결과를 환경 내에서 조정된 다양한 운영 워크플로우에 통합할 수 있습니다. 그리고 Databricks의 통합 모델 관리 기능에 접근할 수 있으므로, 이들 팀은 그들의 작업을 플랫폼을 중심으로 한 기업 표준 모델 관리 및 거버넌스 관행에 펼칠 수 있습니다.

조직이 Databricks에서 Gurobi 솔버를 사용하는 것을 탐색하기 시작하는 데 도움이 되도록, 다음의 샘플 노트북을 살펴보시기 바랍니다. 이는 우리의 장난감 벽돌 예제 뒤에 있는 단계별 코드에 접근할 수 있게 해줍니다. 첫 두 개의 노트북은 Gurobi가 Python API 라이브러리 설치와 함께 제공하는 무료 체험 라이선스를 사용하여 해결할 수 있는 소규모 예제의 해결에 의존하고 있음을 유의하십시오. 세 번째 노트북은 더 큰 규모의 모델을 사용합니다: 세 번째 노트북에서 모델을 실행하기 위한 적절한 라이선스를 얻으려면 Gurobi 에 연락하십시오.

Gurobi를 Databricks와 함께 확장 사용하는 방법을 이해하기 위해, 우리는 또한 데이터와 분석 기술을 통해 가장 복잡한 비즈니스 및 경제 문제를 해결하는 선두주자인 Aimpoint Digital 에서 제공하는 다음 웹세미나 를 시청하시기 바랍니다. 이 비디오에서는 Aimpoint Digital의 사람들이 Databricks와 Gurobi 사이의 기술 통합을 더 자세히 살펴보고, 이러한 기술을 결합하여 다양한 비즈니스 문제를 해결할 수 있는 다양한 방법을 탐색합니다.

마지막으로, 우리는 여러분이 Databricks 블로그 사이트로 돌아와서 우리의 다가오는 Assortment Optimization에 대한 블로그를 검토하도록 권장합니다. 이것은 많은 소매 및 소비재 조직에 관심이 있는 더 복잡한 실제 시나리오를 다루기 위해 여기에서 설명된 개념을 확장할 것입니다.

노트북 다운로드

 

(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)

게시물을 놓치지 마세요

관심 있는 카테고리를 구독하고 최신 게시물을 받은편지함으로 받아보세요