최적설계

편집 역사 토론
최적설계 구조해석 마지막 수정: 2026-07-24 04:26:33

1. 개요[편집]

해석은 “이 설계가 얼마나 좋은가”를 묻고, 최적설계는 “그럼 제일 좋은 설계를 내놔”라고 요구한다.

최적설계(design optimization)는 설계 변수의 집합 위에서 정의된 목적함수를, 주어진 제약조건을 만족시키는 범위 안에서 최소(또는 최대)로 만드는 설계안을 수학적 최적화 알고리즘으로 찾아내는 분야다. 사람이 감으로 형상을 몇 개 만들어 유한요소법·전산유체역학 해석을 돌려보고 제일 나은 걸 고르는 것도 넓게 보면 최적화지만1, 최적설계라고 부를 때는 보통 “알고리즘이 다음 설계안을 스스로 정하는” 자동화된 루프를 가리킨다.

핵심은 해석 코드가 최적화 알고리즘의 함수 평가기(function evaluator)로 격하된다는 점이다. 한 번 돌리는 데 3시간 걸리는 해석을 알고리즘이 태연하게 2,000번 요구하기 시작하면, 그때부터 최적설계의 진짜 문제는 수학이 아니라 예산이 된다.

2. 문제 정식화[편집]

최적설계 문제는 거의 항상 아래 표준형으로 쓰인다.

minxRnf(x)s.t.gi(x)0,  hj(x)=0,  xLxxU\min_{\mathbf{x} \in \mathbb{R}^n} f(\mathbf{x}) \quad \text{s.t.} \quad g_i(\mathbf{x}) \le 0,\; h_j(\mathbf{x}) = 0,\; \mathbf{x}_L \le \mathbf{x} \le \mathbf{x}_U
  • 설계 변수 x\mathbf{x} — 두께, 반경, 각도, 재료 배치 밀도 등 우리가 바꿀 수 있는 것.
  • 목적함수 ff — 질량, 항력, 소비 전력, 비용. 최대화 문제는 부호만 뒤집어 최소화로 통일한다.
  • 제약조건 g,hg, h폰 미제스 응력 한계, 고유진동수 하한, 제조 가능 최소 두께 등.

목적이 둘 이상이면(가볍고 동시에 튼튼하게) 단일 최적해가 존재하지 않고 파레토 전선만 남는다. 이 경우는 다중기준 방법의 영역이다. 제약이 있는 최적해의 필요조건은 라그랑주 승수법을 부등식으로 확장한 카루시-쿤-터커 조건으로 정리된다.

3. 설계 변수를 무엇으로 잡을 것인가[편집]

같은 부품을 최적화해도 설계 변수를 어떻게 정의하느냐에 따라 완전히 다른 문제가 된다.

분류설계 변수자유도대표 문서
치수 최적화판 두께, 보 단면적 등 스칼라낮음
형상 최적화경계면 제어점 좌표중간형상 최적화
위상 최적화각 요소의 재료 밀도매우 높음위상 최적화

치수 최적화는 변수가 수십 개라 다루기 쉽지만, 애초에 준 형상보다 좋아질 수 없다. 반대로 위상 최적화는 격자 요소 수만큼(수십만 개) 변수를 잡아 구멍을 뚫고 리브를 세우는 것까지 알고리즘이 결정하므로 사람이 상상하지 못한 형상이 나온다. 대신 결과가 체커보드 패턴이나 제조 불가능한 형상으로 튀지 않도록 필터링과 제조 제약을 걸어줘야 한다.

4. 알고리즘 지도[편집]

이중 우물 목적함수 위에서 백트래킹 라인서치(울프 조건)로 스텝 길이를 실제로 축소해 가며 내려가는 모습. 최적설계 알고리즘 대부분이 이 '방향을 정하고 얼마나 갈지 다시 정하는' 두 단계로 돌아간다. 시작점을 오른쪽 우물에 두면 왼쪽 전역 최적해를 영영 못 찾는다는 것도 함께 보인다.

크게 기울기를 쓰는 쪽과 안 쓰는 쪽으로 갈린다.

4.1. 기울기 기반 (gradient-based)[편집]

f\nabla f를 구할 수 있으면 게임이 쉬워진다. 경사하강법이 출발점이고, 곡률 정보를 근사로 쌓아 올린 준-뉴턴법(BFGS)이 실무 표준이다. 제약이 있으면 매 반복마다 문제를 이차계획법으로 근사해 푸는 SQP, 혹은 제약을 목적함수에 벌점으로 녹이는 내점법(interior point)이 쓰인다. 스텝 길이는 라인서치울프 조건을 만족할 때까지 줄여가며 정하거나, 신뢰 영역 방법처럼 “이 반경 안에서만 모델을 믿는다”고 선언하고 푼다.

변수가 수십만 개인 위상 최적화가 그럼에도 돌아가는 이유는 민감도 해석의 수반법(adjoint) 덕분이다. 수반법은 설계 변수 개수와 무관하게 해석 한 번 + 수반 방정식 한 번으로 전체 기울기를 뽑아낸다. 유한차분으로 기울기를 구하면 변수 하나당 해석 한 번이 더 필요하니, 이 차이는 취향이 아니라 생사의 문제다.2 코드 수준에서 기울기를 자동으로 얻으려면 자동 미분을 쓴다.

4.2. 기울기 비기반 (gradient-free)[편집]

목적함수가 불연속이거나(요소 파단, 접촉 상태 변화), 상용 코드가 블랙박스라 미분이 안 나오거나, 지역 최적해가 잔뜩 깔려 있으면 확률적 탐색으로 간다. 유전 알고리즘, 입자 군집 최적화, 담금질 모사가 3대장이다. 전역 탐색 능력은 좋지만 함수 평가 횟수가 기울기 기반 대비 한두 자릿수 더 필요하다. “전역 최적해 보장”이라는 말을 마케팅에서 보면 일단 의심하는 게 좋다 — 유한 시간 안에 보장되는 건 아무것도 없다.

5. 대리 모델 기반 최적화[편집]

해석 한 번이 비싸면 알고리즘에게 해석 코드를 직접 물려주지 않는다. 대신 실험계획법으로 설계 공간에 표본점을 뿌리고, 그 결과로 대리 모델(크리깅, RBF, 가우시안 프로세스)을 학습시킨 뒤 최적화는 대리 모델 위에서 돌린다. 반응표면법이 고전적 형태이고, 대리 모델의 예측 불확실성까지 활용해 다음 표본점을 고르는 것이 베이지안 최적화다.

표본을 어디에 뿌릴지는 라틴 하이퍼큐브나 소볼 수열이 국룰이고, 어느 변수가 실제로 중요한지는 소볼 지수 같은 전역 민감도 지표로 걸러낸다. 변수 20개 중 3개만 지배적이라는 결과가 나오면, 그 순간 문제의 차원이 줄면서 최적화가 갑자기 풀리기 시작한다.

6. 실무에서의 함정[편집]

  • 제약을 덜 걸면 알고리즘이 반드시 반칙한다. 질량 최소화만 걸어두면 두께 0에 수렴한다. 최적화 결과가 이상하면 알고리즘보다 정식화를 먼저 의심하자.
  • 수치 잡음이 기울기를 죽인다. 격자를 다시 생성하는 형상 최적화에서는 설계 변수를 미세하게 바꿔도 격자 토폴로지가 바뀌면서 목적함수가 톱니 모양으로 떨린다. 유한차분 기울기가 완전한 난수가 되는 지점이다.
  • 불확실성을 무시한 최적해는 대체로 벼랑 끝에 있다. 제약 경계에 딱 붙은 설계는 공차·물성 산포가 조금만 있어도 불합격이 된다. 불확실성 정량화를 얹은 강건 설계신뢰성 기반 최적설계가 필요한 이유.3
  • 최적화 루프 안에 사람이 있으면 그건 최적화가 아니다. 자동화되지 않은 파라미터 스터디는 그냥 야근이다.4

7. 관련 문서[편집]

8. Footnotes[편집]

  1. 이걸 업계에서는 “파라미터 스터디”라고 부른다. 3안 만들어서 제일 나은 걸 고르면 최적설계라고 보고서에 쓸 수 있다는 점에서 대단히 실용적인 기법이다.

  2. 변수 10만 개짜리 위상 최적화를 유한차분 민감도로 돌린다고 가정해 보자. 해석 1회가 1분이라도 기울기 한 번 구하는 데 약 70일이 걸린다. 수반법은 같은 걸 2분에 끝낸다.

  3. 그래서 노련한 설계자는 최적화 결과를 그대로 도면에 옮기지 않고 제약 경계에서 한 발짝 물러선 값을 쓴다. 알고리즘은 공차를 모르지만 사람은 안다.

  4. 물론 실무에서 최적화 루프가 새벽 3시에 라이선스 부족으로 죽어 있는 걸 발견하는 것도 야근이다. 자동화는 야근의 종류를 바꿀 뿐이다.