다목적 최적화란 무엇인가?

현실의 의사결정에는 목적이 하나뿐이지 않다

비용, 탄소배출량, 재활용 원료, 공급 안정성처럼 여러 목표와 제약이 동시에 존재할 때 어떻게 의사결정을 내려야 할까? 전기차 배터리 조달 사례를 통해 다목적 최적화를 설명합니다.

이전 글: 파레토 최적화란 무엇인가? 모두에게 완벽한 식당이 없다면

지난 글에서는 친구들과 저녁을 먹을 식당을 고르고 있었습니다. 가격, 이동시간, 맛이 충돌하면 모두에게 완벽한 식당 하나 대신 여러 파레토 최적해가 남을 수 있었습니다.

그런데 회사에서 만나는 문제는 식당보다 조금 더 복잡했습니다.

전기차 배터리 제조사에서 고객이 이런 요구를 한다고 해봅시다.

  • 제품 탄소발자국(Product Carbon Footprint, PCF)을 일정 수준 이하로 낮춰주세요.
  • 그렇다고 가격 경쟁력이 떨어지면 안 됩니다.
  • 재활용 소재도 일정 비중 이상 들어가야 합니다.
  • 일부 원료는 저탄소 소재로 바꿀 수 있을까요?
  • 물론 필요한 물량은 제때 공급할 수 있어야 합니다.

하나씩 보면 이해가 됩니다. 그런데 동시에 만족시키려니 이야기가 달라집니다.

“탄소도 낮추고, 가격도 낮추고, 재활용 원료도 늘리고, 공급 안정성도 높이고 싶다면 무엇을 최적화해야 할까?”

처음에는 모델이 최적해 하나를 주면 되는 줄 알았습니다. 그런데 실제 업무에서 중요했던 것은 다른 데 있었습니다. 조건이 바뀔 때마다 어떤 선택지가 남고, 각각 무엇을 얻고 잃는지 빠르게 비교할 수 있어야 했습니다.

식당 대신 배터리 원료를 조달한다면

아래 사례는 제가 실제 업무에서 접했던 문제의 구조를 단순화한 것입니다. 설명을 위해 수치와 공급사 구성은 가상으로 만들었으며, 실제 고객·계약·공급망 정보와는 무관합니다. 이 글의 모든 숫자, 기준, 가중치와 시나리오는 설명용입니다.

같은 규격의 원료를 공급할 수 있는 공급사 1·2·3·4·5가 있다고 하겠습니다. 비교할 정보는 단가만이 아닙니다. 원료의 탄소배출계수, 재활용 함량, 최대 공급 물량, 위치, 물류비, 운송 과정의 배출량, 공급 위험까지 필요합니다.

싸지만 탄소배출이 많은 공급사가 있을 수 있습니다. 탄소가 적지만 물량이 부족한 공급사도 있을 수 있습니다. 가격표만 보면 좋아 보이는데 운송비를 더하면 그렇지 않은 곳도 있습니다.

우리가 결정할 것은 다음과 같습니다.

x_i = 공급사 i에서 조달하는 물량

한 공급사를 고르는 것으로 끝나지 않습니다. 여러 공급사에서 얼마씩 가져올지 정합니다. 이것이 이 문제의 의사결정 변수입니다.

물론 실제 배터리는 원료 하나로 만들지 않습니다. 여기서는 같은 제품·생산량·원료 소요량을 전제로 한 원료군의 조달을 설명하겠습니다. 원료별 품질과 대체 가능성도 충족한다고 가정합니다. 서로 다른 원료를 단순히 같은 물량으로 바꿔도 된다는 뜻은 아닙니다.

이 기호를 실제 모델의 뼈대로 옮기면 다음처럼 쓸 수 있습니다. cost_i, carbon_i, recycled_i는 공급사 i의 단가, 탄소 지수, 재활용 함량이고 capacity_i는 공급 가능 물량입니다.

Minimize Total Cost = Σ cost_i × x_i

subject to:
  Σ x_i = Required Volume
  Σ recycled_i × x_i / Required Volume ≥ Minimum Recycled Content
  Σ carbon_i × x_i / Required Volume ≤ Carbon Limit
  0 ≤ x_i ≤ capacity_i

실제 모델에서는 물류비와 운송 배출량을 cost_i와 carbon_i에 포함하거나 별도 항으로 더할 수 있습니다. 이 식은 실제 계약의 숫자를 공개하는 것이 아니라, 어떤 값을 모아 어떤 조건으로 계산하는지 보여주는 구조입니다.

무엇을 좋게 만들고, 무엇을 반드시 지킬 것인가?

1편에서 구분했던 두 가지가 다시 나옵니다. 목적함수와 제약조건입니다.

목적함수는 가능한 선택들 중 무엇을 더 좋게 만들지 정합니다. 제약조건은 애초에 어떤 선택이 허용되는지 정합니다.

고객이 “PCF는 반드시 70 이하이어야 한다”고 하면, PCF ≤ 70은 제약조건입니다. 70을 넘는 조합은 아무리 싸도 제안할 수 없습니다. 여기서 70은 단위와 평가 범위를 생략한 가상의 기준이며, 뒤의 차트에서도 실제 배출량 대신 지수를 사용합니다.

반면 기준은 만족하더라도 가능한 한 탄소가 더 낮은 제품을 제안하고 싶다면, Minimize PCF는 목적함수가 될 수 있습니다. 같은 탄소라도 “여기까지만 지키자”인지 “그 안에서도 더 줄이자”인지에 따라 역할이 달라집니다. 상한을 두면서 동시에 더 낮추려는 목적을 둘 수도 있습니다.

최적화에서 가장 중요한 작업 중 하나는 무엇을 목적함수로 두고 무엇을 제약조건으로 둘 것인지 결정하는 일이다.

이 구분은 계산을 시작하기 전의 비즈니스 질문입니다. 고객이 반드시 지켜야 한다고 한 조건과, 협상하며 개선할 수 있는 목표를 먼저 알아야 합니다.

탄소를 고려한다고 모두 다목적 최적화는 아니다

일단 가장 단순하게 만들어보겠습니다.

Minimize Total Cost

subject to:
  PCF ≤ 고객의 탄소 상한
  재활용 원료 비중 ≥ 고객의 최소 요구 비중
  공급사별 조달 물량 ≤ 해당 공급사의 공급 가능 물량
  전체 조달 물량 = 필요한 물량
  모든 조달 물량 ≥ 0

이 모델에서 목적은 비용 최소화 하나입니다. 탄소, 재활용 원료, 공급 가능 물량은 지켜야 할 조건입니다. 모두 중요한 항목이지만 모두 목적함수인 것은 아닙니다.

공급사의 총 생산능력이 크다는 사실만으로는 충분하지 않습니다. 우리가 그 공급사에 배정한 물량이 실제 공급 가능 물량을 넘지 않아야 합니다. 이를 x_i ≤ capacity_i로 표현합니다.

필요량보다 많이 사도 되는 문제라면 전체 조달 물량을 필요량 이상으로 둘 수 있습니다. 여기서는 불필요한 초과 구매를 제외하고 정확히 필요량을 맞춥니다. 재활용 비중은 공급사 수의 평균이 아니라, 조달 물량에 각 공급사의 재활용 함량을 곱해 합산한 뒤 전체 물량으로 나눈 값입니다.

제약조건이 많다는 것과 목적이 많다는 것은 다르다

Minimize Cost에 제약조건이 열 개 붙어도 단일 목적 최적화(single-objective optimization)입니다.

반면 비용을 낮추는 것과 탄소를 낮추는 것을 각각 개선할 목표로 두면 다목적 최적화(multi-objective optimization)가 됩니다.

Objective 1: Total Cost ↓
Objective 2: Product Carbon Footprint ↓

여기에 공급 위험을 낮추거나 재활용 원료 비중을 높이는 목적을 더할 수도 있습니다. 다만 처음부터 네 가지를 동시에 그리면 직관을 놓치기 쉽습니다. 우선 비용과 탄소 두 목적에 집중하겠습니다.

공급사 다섯 곳인데, 왜 복잡할까?

공급사가 다섯 곳이면 다섯 번만 비교하면 될까요?

그렇지 않습니다. 공급사마다 조달 비중을 자유롭게 나누면 선택은 다섯 개보다 훨씬 많아집니다. 연속적인 물량을 허용하는 모형에서는 가능한 조합이 무한히 많을 수도 있습니다. 여기에 원료 종류, 생산공장, 고객별 요구, 공급 한도, 운송경로와 계약조건까지 붙습니다.

엑셀에 표를 만드는 것 자체가 문제는 아닙니다. 사람이 모든 조합을 직접 만들고, 조건이 바뀔 때마다 다시 확인하는 방식이 금방 어려워진다는 겁니다.

총비용에는 원료 구매비뿐 아니라 물류비도 포함해야 합니다. PCF 역시 조달 원료의 배출량만 더해서 완성되는 것은 아닙니다. 비교하는 제품의 기능단위와 평가 범위를 맞추고, 그 범위에 포함되는 운송·제조 등의 배출량도 반영해야 합니다. 여기서는 다른 생산 조건은 고정하고, 조달 변경에 따라 달라지는 부분을 비교한다고 하겠습니다.

그럼 이런 질문이 나옵니다.

“그냥 조건을 만족하는 가장 싼 조합 하나를 찾으면 되지 않을까?”

그것이 회사의 결정 기준이라면 맞습니다. 하지만 가장 싼 조합이 항상 가장 전략적인 제안은 아닐 수 있습니다. 비용을 조금 더 쓰면 탄소를 크게 줄일 수 있다면, 적어도 그 대안은 보고 싶습니다.

비용을 조금 더 쓰면 무엇을 얻을 수 있을까?

아래 시나리오 A–E는 공급사 이름이 아니라 여러 공급사를 조합한 조달 시나리오의 이름입니다. 앞에서 소개한 공급사 1–5와 이름이 겹치지 않도록 의도적으로 구분했습니다. 공급사별 상세 물량은 생략했습니다. 모두 동일한 필요량과 기본 품질·공급 한도·재활용 최소 기준을 만족하며, 최초 탄소 상한은 지수 100이라고 가정합니다.

이제 설명을 위해 이 다섯 시나리오만 선택 가능한 후보로 놓겠습니다. 연속적인 공급 비중 전체를 풀어 얻은 최적화 결과는 아닙니다. 따라서 ‘파레토 효율적’이라는 판단도 이 후보 집합 안에서의 판단입니다.

비용 지수 100은 최저비용 후보 A의 비용, 탄소 지수 100은 A의 PCF를 뜻합니다. 서로 다른 기준값을 각각 100으로 놓았으며, 실제 금액이나 실제 탄소배출량이 아닙니다.

비용과 탄소의 trade-off가상 조달 시나리오의 비용·탄소 산점도. A: 비용 100, 탄소 100; B: 비용 102, 탄소 85; C: 비용 104, 탄소 75; D: 비용 108, 탄소 90; E: 비용 106, 탄소 70. 두 지표 모두 낮을수록 좋다. 원형 A·B·C·E는 이 후보 집합에서 파레토 효율적이고 사각형 D는 B·C·E에 밀린다.탄소 지수 ↓708090100100102104106108ABCDE비용 지수 ↓↙ 왼쪽 아래가 더 좋음 · Lower is better

● A·B·C·E: 파레토 효율적 · □ D: 밀리는 후보 · ⋯ 안내선

그림 1. 비용을 낮추는 것과 탄소배출량을 낮추는 것은 동시에 완벽하게 달성하기 어려울 수 있다. Pareto frontier는 추가 비용을 지불했을 때 얼마나 많은 탄소 감축을 얻을 수 있는지를 보여준다. 모든 수치는 가상이며, 점선은 후보를 잇는 안내선이다.
모든 수치는 설명용 가상 데이터. 비용·탄소 지수 100은 A 기준이며 낮을수록 좋다. 재활용 비중은 높을수록 좋다. 위험은 Low < Medium < High 순이다.
시나리오비용 지수 ↓탄소 지수 ↓재활용 비중 ↑공급 위험 ↓
A10010020%Medium
B1028530%Medium
C1047540%Low
D1089025%High
E1067045%Medium

가로축은 비용, 세로축은 탄소입니다. 둘 다 낮을수록 좋으니 왼쪽 아래가 좋은 방향입니다.

  • A: 가장 싼 기준안입니다. 재활용 비중은 20%입니다.
  • B: A 대비 비용 +2%, 탄소 −15%입니다. 재활용 비중은 30%입니다.
  • C: A 대비 비용 +4%, 탄소 −25%입니다. 재활용 비중은 40%입니다.
  • E: A 대비 비용 +6%, 탄소 −30%입니다. 재활용 비중은 45%입니다.

D는 B보다 비싸고 탄소도 많습니다. C와 E에도 두 기준 모두 밀립니다. 반면 A·B·C·E는 서로 밀리지 않습니다. 이 후보들 사이에서는 탄소를 낮추려면 비용을 더 부담해야 합니다.

여기서 세 가지를 구분해야 합니다. 다목적 최적화는 비용과 탄소처럼 여러 목적함수를 함께 정의하는 문제 구조입니다. 시나리오 분석은 그 모델에서 나온 서로 다른 조달안을 비교하는 방법입니다. 파레토 프런티어(Pareto frontier)는 그 후보 중 다른 후보에게 모든 기준에서 밀리지 않는 선택들을 보여주는 결과입니다. 모델, 분석 방법, 결과 표현은 서로 연결되어 있지만 같은 말은 아닙니다.

이것이 앞 글에서 본 파레토 프런티어가 회사의 의사결정에 등장하는 모습입니다. 점선은 네 후보를 따라가기 위한 안내선입니다. 두 시나리오를 섞어 중간점을 구현할 수 있는지는 별도의 물량·계약·생산 조건을 확인해야 합니다.

B 정도의 추가 비용은 고객이 받아들일 수 있을까요? C의 재활용 함량과 낮은 공급 위험이 장기 계약에 도움이 될까요? E만큼 탄소를 낮추는 것이 이번 제안에 필요할까요?

고객 요구 수준, 수주 경쟁력, 장기 공급 전략, ESG·탄소 목표와 원가 부담을 함께 보아야 합니다. 그림은 이런 질문을 구체적으로 만들어줍니다.

점수로 합칠 것인가, 기준을 바꿔 다시 풀 것인가

비용과 탄소를 함께 보겠다고 정했다면, 그다음 질문은 이 둘을 어떻게 다루느냐입니다. 점수로 합칠 수도 있고, 한쪽을 기준으로 바꿔가며 다시 풀 수도 있습니다.

방법 1: 여러 목표를 점수 하나로 합치기

지난 글에서 남겨둔 질문입니다.

“그냥 점수 하나를 만들면 안 되나?”

가능합니다. 가중합(weighted sum)은 각 목적에 가중치를 붙여 하나의 점수로 합치는 방법입니다. 비용과 탄소는 둘 다 낮을수록 좋으므로 다음 점수를 최소화합니다.

Minimize Score = w_cost × Scaled Cost + w_carbon × Scaled Carbon

원 단위 비용과 kgCO₂e 단위 탄소를 그대로 더하면 숫자의 크기에 판단이 끌려갈 수 있습니다. 기준값으로 나누거나 범위를 맞추는 정규화·스케일링을 고려해야 합니다. 위 차트의 지수도 각 기준값을 100으로 맞춘 한 가지 방식입니다. 지수화했다고 중요도까지 자동으로 같아지는 것은 아닙니다.

예를 들어 이 가상 지수에 비용 가중치 0.9, 탄소 가중치 0.1을 주면, B의 점수는 0.9 × 102 + 0.1 × 85 = 100.3입니다. A의 100보다 높습니다. 반면 두 가중치를 0.5씩 주면 B는 93.5가 되어 A의 100보다 낮습니다. 이것은 A와 B의 비교이며, 최종 선택은 나머지 후보도 함께 계산해야 합니다.

그런데 더 중요한 질문이 남습니다.

“w_cost와 w_carbon은 누가 결정하는가?”

데이터가 알아서 정해주지는 않습니다. 의사결정자의 선호, 회사의 전략, 고객 요구와 협상 여지를 반영해야 합니다. 가중치를 정하는 것도 의사결정의 일부입니다. 가중합으로 바꾸면 계산은 하나의 목적함수로 할 수 있지만, 그 뒤에는 여러 목적의 상충 관계가 그대로 있습니다.

가중합이 편리해도, 모든 것을 해결하지는 않는다

가중치 선택에는 주관이 들어갈 수 있고 결과는 척도에 민감합니다. 같은 가중치라도 정규화 기준을 바꾸면 선택이 바뀔 수 있습니다. 그래서 한 벌의 가중치만 믿기보다 가중치를 바꿨을 때 결과가 얼마나 달라지는지도 보는 편이 좋습니다.

또 일부 비볼록 파레토 프런티어에서는 가중치를 바꾸어도 찾지 못하는 파레토 최적해가 있습니다. 가중합만으로 모든 효율적인 후보를 얻는다고 보장할 수는 없습니다. 양의 가중치로 전역 최적해를 구하면 파레토 효율성을 확보할 수 있지만, 모든 파레토 해가 반드시 그 방식으로 찾아지는 것은 아니라는 구분입니다. 이 성질은 Boyd와 Vandenberghe의 벡터 최적화 설명(§4.7)에서 더 살펴볼 수 있습니다.

방법 2: 탄소 기준을 바꾸면서 최소비용 다시 찾기

고객과 이야기할 때는 “탄소의 가중치를 얼마로 할까요?”보다 이런 질문이 더 자연스러울 수 있습니다.

“탄소 지수를 80 이하로 맞추면, 가장 낮은 비용이 얼마인가요?”

여기서 ε-제약법(epsilon-constraint method)으로 이어집니다. 한 목적을 최적화하고, 다른 목적은 상한이나 하한으로 둡니다. 그 기준값 ε를 바꾸면서 반복해서 풉니다.

Minimize Cost
subject to Carbon Index ≤ ε
           나머지 물량·품질·공급 조건 충족

상한 100, 90, 80, 75, 70에서 각각 가장 싼 후보를 다시 찾겠습니다. 앞의 A–E를 그대로 사용합니다.

탄소 요구조건 강화에 따른 최소비용가상 후보 A–E만 비교한 탄소 상한별 최소비용. 상한 100: A, 비용 100; 상한 90: B, 비용 102; 상한 80: C, 비용 104; 상한 75: C, 비용 104; 상한 70: E, 비용 106. 오른쪽으로 갈수록 탄소 요구가 강화된다. 점선은 표에 있는 결과를 잇는 안내선이며 중간값의 최적비용을 뜻하지 않는다.최소비용 지수 ↓10010210410610090807570ABCCE탄소 상한→ 오른쪽으로 갈수록 탄소 기준 강화

● 각 상한에서 선택된 후보 · ⋯ 안내선

그림 2. 고객의 탄소 요구조건을 단계적으로 강화하면, 각 조건을 만족하는 최소비용 조합을 다시 계산할 수 있다. 이 결과는 탄소 감축과 추가 비용 사이의 trade-off를 보여준다. A–E만 비교한 가상 예시이며, 점선 사이의 값은 계산하지 않았다.
동일한 가상 후보 A–E에서 계산한 결과. Carbon Target은 상한이다.
탄소 상한최소비용 지수선택실제 탄소 지수
100100A100
90102B85
80104C75
75104C75
70106E70

상한이 90이면 A의 탄소 지수 100은 허용되지 않습니다. 남은 후보 중 가장 싼 것은 B입니다. 상한 80이면 B도 탈락하고 C가 남습니다. 70까지 낮추면 E를 선택해야 합니다.

상한 80과 75의 최소비용이 같은 이유도 보입니다. 두 경우 모두 C를 선택하기 때문입니다. 요구조건이 바뀐다고 항상 비용이 조금씩 연속적으로 변하는 것은 아닙니다. 이 표에서는 후보를 통째로 선택합니다. 공급 물량을 연속적으로 재조정하는 모델을 실제로 풀면 다른 결과가 나올 수 있습니다.

탄소 상한은 달성값과 다릅니다. 90 이하를 요구했는데 선택된 B는 85입니다. 기준에 딱 맞아야 하는 것이 아니라 그 이하이면 됩니다. 반대로 70보다 더 낮은 상한을 요구하면 이 다섯 후보에는 해가 없습니다. 그때는 새 공급원을 검토하거나 조건을 다시 논의해야 합니다.

한 번의 계산만 보면 이것도 비용 최소화라는 단일 목적 문제입니다. 하지만 탄소 기준을 바꿔가며 반복해서 풀면 비용과 탄소라는 두 목적 사이의 선택지를 탐색하는 방법이 됩니다. 최소비용이 같은 후보가 여러 개라면 그중 탄소가 더 낮은 후보를 고르는 후속 비교로 밀리는 동률 해를 걸러낼 수 있습니다.

이런 반복적 제약 설정은 ε-constraint 방법을 다루는 연구에서도 사용됩니다. 여기서는 알고리즘의 세부사항보다 “요구 수준을 바꾸면 최저비용이 어떻게 바뀌는가”라는 질문을 기억하면 충분합니다. 탄소 상한을 계속 낮추면 어느 순간 현재 공급망으로는 조건을 만족하는 조합이 사라질 수도 있습니다. 이때 모델은 실패한 것이 아니라, 추가 공급원·기술 투자·가격 재협상이 필요하다는 사실을 보여줍니다.

재활용 원료, 저탄소 소재, 물류를 다시 넣으면

재활용 원료를 더 쓰면 원가도 항상 내려갈까요?

그렇지는 않을 수 있습니다. 시장 상황에 따라 더 비싸거나 공급 물량이 제한적일 수 있고, 조달 가능한 지역이나 운송경로도 다를 수 있습니다. 재활용 원료 비중을 높이려다가 비용이 올라가고 공급 제약이 더 빡빡해질 수 있습니다.

재활용 함량이 높다는 것과 PCF가 낮다는 것도 같은 말은 아닙니다. 처리 공정, 에너지와 물류 등을 같은 범위에서 평가해야 합니다. 일부 원료에 저탄소 소재를 반드시 쓰라는 요구가 있다면 그 원료군에 별도 사용량·인증 조건을 두어야 합니다. 제품 평균 탄소만 낮다고 그 조건까지 자동으로 충족하는 것은 아닙니다.

공급사가 멀어지면 물류비, 운송 배출량과 조달 소요기간(리드타임)이 늘고 공급 위험도 커질 수 있습니다. 다만 거리 하나로 모든 것이 결정되지는 않습니다. 운송수단과 경로, 재고 운영에 따라 달라집니다. 그래서 공급사 단가가 가장 낮은 선택과 전체 조달비용이 가장 낮은 선택은 다를 수 있습니다.

공급 위험까지 목적함수에 넣으려면 무엇을 위험으로 볼지도 정해야 합니다. 특정 공급사 의존도인지, 납기 변동인지, 공급 중단 때의 손실인지에 따라 모델이 달라집니다. 앞의 Low·Medium·High는 설명용 비교 항목이며 실제 위험 점수나 내부 의사결정 규칙이 아닙니다.

모델이 놓칠 수 있는 것

최적화 결과가 정교해 보여도 입력과 범위를 벗어나면 현실을 충분히 설명하지 못합니다. 공급사의 공급 가능 물량이 실제로 유지되는지, PCF 계산에 어떤 운송·제조 범위를 넣었는지, 재활용 함량을 어떻게 검증했는지 먼저 확인해야 합니다. 공급 중단 위험과 품질 조건을 숫자로 바꾸는 과정에도 판단이 들어갑니다.

따라서 모델 결과를 발주 승인으로 바로 읽으면 안 됩니다. 최신 공급 가능 여부, 계약 조건, 인증과 품질, 예상하지 못한 물류 차질을 별도로 검토해야 합니다. 모델에 빠진 조건이 발견되면 그 조건을 추가해 다시 계산하는 것이 올바른 사용법입니다. 최적화는 현실을 자동으로 복사하는 장치가 아니라, 우리가 확인해야 할 가정과 상충 관계를 드러내는 도구입니다.

고객의 질문은 한 번으로 끝나지 않는다

고객 요구조건이 처음부터 완전히 고정되어 있으면 좋겠습니다. 하지만 논의하다 보면 질문이 달라질 수 있습니다.

“탄소 기준을 조금 더 낮출 수 있나요?”

“재활용 비중을 더 높이면 가격이 얼마나 달라지죠?”

“특정 공급사를 빼고도 가능할까요?”

“그 조건을 유지하면서 가격을 더 낮출 수는 없나요?”

질문마다 처음부터 조달표를 다시 만들면 대응 시간이 길어집니다. 모델에 변수, 계산 방식과 제약이 정리되어 있으면 해당 조건을 바꾸고 시나리오를 다시 계산할 수 있습니다. 물론 데이터 갱신과 결과 검토는 필요하고, 계산 시간도 문제 규모에 따라 달라집니다. 그래도 무엇을 다시 확인해야 하는지가 분명해집니다.

이런 모델의 가장 큰 가치는 단순히 한 번의 최적해를 찾는 데 있지 않았습니다. 고객의 요구가 바뀔 때마다 새로운 전략적 대안을 빠르게 만들어낼 수 있다는 점이 더 중요했습니다.

“안 됩니다”와 “됩니다” 사이에 설명할 공간이 생깁니다. 이 조건을 유지하면 이 정도 비용이 필요하고, 저 조건을 조정하면 이런 대안이 가능하다고 말할 수 있습니다.

회사 안에서도 서로 다른 언어를 쓴다

같은 조달안을 놓고도 구매팀은 비용을 봅니다. ESG·지속가능성 담당자는 탄소를 봅니다. 생산은 실제 공급 가능성을, 영업은 고객 요구 충족을, 경영진은 수익성과 전략적 경쟁력을 함께 봅니다.

누가 틀려서 의견이 갈리는 것이 아닙니다. 각자가 책임지는 기준이 다릅니다.

A가 싸다는 말만으로는 다른 팀을 설득하기 어렵습니다. E의 탄소가 낮다는 말만으로도 충분하지 않습니다. 하지만 같은 표에서 추가 비용, 탄소 변화, 재활용 비중과 공급 위험을 함께 보면 어느 조건에서 어느 안이 적합한지 이야기할 수 있습니다.

최적화 모델은 조직 내 서로 다른 언어를 하나의 상충 관계 표로 바꿔주는 역할을 할 수 있다.

표가 합의를 대신하지는 않습니다. 다만 무엇에 동의하고 무엇을 더 논의해야 하는지 명확하게 해줍니다.

최적화는 결정을 대신해야만 가치가 있을까?

처음에는 최적화라고 하면 컴퓨터가 하나의 답을 내주고, 사람이 그대로 실행하는 장면을 떠올렸습니다.

하지만 현실의 최적화가 항상 ‘정답 하나’를 만들어내는 시스템일 필요는 없습니다. 이번 문제는 다음 흐름으로 생각할 수 있습니다.

실행 가능 영역: 조건을 만족하는 조달 조합
    → 최적화: 목적과 조건에 따라 계산
    → 파레토 / 전략 시나리오: 상충 관계가 다른 대안
    → 사람의 의사결정: 선호와 현실을 검토해 최종 선택

다목적 최적화는 여러 목적을 함께 다루는 문제 구조입니다. 파레토 프런티어는 그 구조에서 여러 목적 간 상충 관계를 이해하는 핵심 결과 표현이자 도구입니다. 앞 글과 이번 글은 여기서 만납니다.

모델 밖의 품질 우려나 아직 반영되지 않은 공급 변화가 있다면 확인해야 합니다. 파레토 효율적이라는 이유만으로 바로 발주할 수는 없습니다. 전략적 대안을 만드는 과정에서 빠뜨린 기준이 발견되면 모델을 보완해 다시 비교할 수 있습니다.

실제 기업에서 좋은 최적화 모델은 의사결정자를 없애는 모델이 아니라, 의사결정자가 훨씬 빠르고 명확하게 선택할 수 있도록 만드는 모델인 경우가 많습니다.

무엇을 얼마나 포기할지 알게 만드는 일

친구들과 식당을 고를 때도, 배터리 원료를 조달할 때도 모든 목표를 동시에 가장 좋게 만들기는 어렵습니다. 다만 회사에서는 그 선택에 붙는 조건과 이해관계가 훨씬 많았습니다.

목적과 제약을 구분하면 문제의 모양이 보입니다. 가중합은 선호를 점수에 담고, ε-제약법은 요구조건별 비용을 비교하게 해줍니다. 파레토 프런티어는 무엇을 얻으려면 무엇을 감수해야 하는지 드러냅니다.

다목적 최적화의 목적은 모든 목표를 동시에 완벽하게 만드는 것이 아니다. 여러 목표 사이에서 어떤 선택이 가능하고, 한 목표를 개선하기 위해 무엇을 얼마나 포기해야 하는지를 명확하게 만드는 것이다.

좋은 최적화 모델은 하나의 답을 강요하는 대신, 의사결정자가 선택할 수 있는 전략적 옵션을 빠르게 만들어준다.

이제 “어느 조합이 가장 좋은가요?”라는 질문에 곧바로 공급사 이름을 말하지 않아도 됩니다.

“무엇을 반드시 지켜야 하고, 무엇을 얼마나 더 개선하고 싶으신가요?”

그 질문부터 시작할 수 있다면, 이미 문제를 훨씬 잘 이해하고 있는 것 같습니다.

다음 글: 정수계획법이란 무엇인가? 선택할 것인가, 말 것인가를 수학으로 표현하기

지금까지는 공급사에서 얼마를 살지만 정하면 됐습니다. 그런데 어떤 곳은 거래를 트는 순간 고정비가 붙고, 최소 주문량도 요구합니다. 쓸지 말지, 공장을 열지 말지처럼 중간이 없는 선택이 생깁니다.

다음 글에서는 그때 회사에서 마주친 그 선택을 가져오겠습니다. 열지 말지, 쓸지 말지를 정수계획법으로 어떻게 적었는지를 이어서 쓰겠습니다.

다음 글은 준비 중입니다. 게시 후 이곳에서 연결하겠습니다.

관련 토픽: 최적화 · 다목적 최적화 · 파레토 최적화 · 공급망 · 탄소발자국

이번 사례는 공급망 최적화와 탄소발자국 최적화가 어떻게 하나의 의사결정 문제에서 만나는지 보여주는 입문 예시입니다.

시리즈: 최적화

출처 / 데이터 / 코드

참고문헌

  1. Convex Optimization — Vector optimization (§4.7) — Stephen Boyd and Lieven Vandenberghe
  2. Multiple Objectives — Gurobi Optimization
  3. New ε-constraint methods for multi-objective integer linear programming — Mesquita-Cunha, Figueira and Barbosa-Póvoa

Discussion

토론

질문, 정정, 반례, 다른 해석이 있다면 남겨 주세요.