Wolfram 최적화 | 시도해 볼 것들
Wolfram 최적화 | 시도해 볼 것들
모든 코드는 클릭 한 다음 를 눌러 편집하거나 실행할 수 있습니다.
+
설계 모델링, 해결 및 분석 Wolfram의 최적화는 최적의 설계를 찾거나 제약 조건 내에서 최상의 결정을 내리는 도구의 포괄적 세트를 제공합니다. 이 도구는 고도로 자동화된 기계 학습 및 통계 기능 및 현장에서 계산 가능한 내장 데이터 등과 완벽하게 통합됩니다.
국소 또는 전역 극값 찾기
국소 또는 전역 극값 찾기
전역 극값과 국소 극값을 모두 가지는 함수를 그래프로 그립니다: |
In[]:=
Plot[+-5,{x,-3,3}]
4
x
3
x
2
x
수치적 방법을 사용하여 x1 |
In[]:=
FindMinimum[+-5,{x,1}]
4
x
3
x
2
x
수치적 방법을 사용하여 x-1.8 |
In[]:=
FindMinimum[+-5,{x,-1.8}]
4
x
3
x
2
x
In[]:=
Minimize[+-5,x]
4
x
3
x
2
x
제약 조건을 포함하여 제한된 영역에서 최소값을 찾을 수도 있습니다: |
In[]:=
Minimize[{+-5,0<x<2},x]
4
x
3
x
2
x
In[]:=
NMinimize[{+-5,0<x<2},x]
4
x
3
x
2
x
제한된 영역이 없는 경우, 전역 최소값을 찾고 수치적 결과를 반환하는 것을 목표로 합니다: |
In[]:=
NMinimize[+-5,x]
4
x
3
x
2
x
찾은 전역 최소값과 국소 최소값을 시각화합니다: |
In[]:=
Plot+-5,{x,-3,3},Epilog->
4
x
3
x
2
x
더 높은 차원에서 극값 찾기
더 높은 차원에서 극값 찾기
같은 기능을 더 높은 차원에서 사용할 수 있습니다. 세 차원에서 시각화할 수 있는 목표 함수와 제약 조건을 정의합니다: |
In[]:=
objective=3Sin[+]-x-2y;constraints=Norm[{x,y}]>=1&&+<=10;
2
x
2
(y-1)
4
x
4
y
제약된 영역에서 목표 함수를 시각화합니다: |
regionandobjective=ShowPlot3Dobjective,{x,-2,2},{y,-2,2},AxesLabel{x,y,z},,DiscretizeRegionImplicitRegion[constraints&&z-9,{{x,-2,2},{y,-2,2},z}],
목표 함수의 국소 최소값을 (0,1) |
In[]:=
{localmin3D,localminimizer3D}=FindMinimum[objective,{{x,0},{y,1}}]
제약된 영역에서 목표 함수의 전역 최소값을 찾습니다: |
In[]:=
{globalmin3D,globalminimizer3D}=NMinimize[{objective,constraints},{x,y}]
찾은 전역 최소값 (빨간색으로 표시)과 국소 최소값 (파란색으로 표시)을 시각화합니다: |
In[]:=
Show[regionandobjective,Graphics3D[{PointSize[Large],Blue,Point[{x,y,localmin3D}]/.localminimizer3D,Red,Point[{x,y,globalmin3D}]/.globalminimizer3D}]]
제약 조건에 따른 목표 함수 최소화
제약 조건에 따른 목표 함수 최소화
제약 조건, 교차점 및 내장된 도형을 기준으로 영역을 정의합니다: |
In[]:=
ℛ
1
,ImplicitRegion[2x-y>=3,{x,y}];
ℛ
2
,ImplicitRegion[2x-y<3,{x,y}];
이전에 정의된 영역에서 목표 함수를 시각화합니다: |
In[]:=
ShowPlot3D+,{x,y}∈,,Plot3D+,{x,y}∈,
3
(x+1)
2
(y-1)
ℛ
1
3
(x+1)
2
(y-1)
ℛ
2
위에서 정의한 두 영역 중 첫 번째 영역에서 목표 함수의 최소값을 수치적으로 찾기 위해 |
In[]:=
NMinimize[+,{x,y}∈]
3
(x+1)
2
(y-1)
ℛ
1
관심 있는 영역에서 목표 함수의 정확한 최소값을 찾기 위해 |
In[]:=
{minvalue,minimizer}=Minimize[+,{x,y}∈]
3
(x+1)
2
(y-1)
ℛ
1
제약 조건이 적용된 최소값과 목표 함수를 함께 보여줍니다: |
In[]:=
ShowPlot3D+,{x,y}∈,,Plot3D+,{x,y}∈,,Graphics3D[{Red,PointSize[Large],Point[{x,y,minvalue}/.minimizer]}]
3
(x+1)
2
(y-1)
ℛ
1
3
(x+1)
2
(y-1)
ℛ
2
볼록 최적화 문제 해결
볼록 최적화 문제 해결
두 개의 암묵적인 영역을 제약 조건을 통해 정의합니다: |
In[]:=
1
2
x
2
y
2
2
(x-2)
2
(y-1)
영역을 시각화합니다: |
In[]:=
RegionPlot[{,},{x,-1,3},{y,-1,3},PlotTheme->"Minimal",Axes->False]
1
2
각 영역에서 하나씩 선택된 점의 쌍을 찾아 그 사이의 거리를 최소화합니다: |
In[]:=
closest2D=ConvexOptimization[Norm[p1-p2],{},{p1∈ImplicitRegion[,{x,y}],p2∈ImplicitRegion[,{x,y}]}]
1
2
찾은 점의 쌍과 그 사이의 거리를 시각화합니다: |
In[]:=
RegionPlot{,},{x,-1,3},{y,-1,3},PlotTheme->"Minimal",Axes->False,Epilog->
1
2
내장된 도형을 사용하여 3D 영역을 빠르게 정의합니다: |
In[]:=
1
2
도형을 시각화합니다: |
In[]:=
Graphics3D[{,}]
1
2
각 영역에서 하나씩 선택된 점의 쌍을 찾아 그 사이의 거리를 최소화합니다: |
In[]:=
closest3D=ConvexOptimization[Norm[p1-p2],{},{p1∈,p2∈}]
1
2
찾은 점과 그 사이를 연결하는 선을 시각화합니다: |
In[]:=
Graphics3D[{,,{Red,Thick,Line[{p1,p2}/.closest3D]}}]
1
2
이전 예제의 동적 버전을 해결하고 시각화합니다: |
In[]:=
Manipulate[shape1=Dodecahedron[{0,0,0},{theta,phi}];shape2=Ellipsoid[{4,0,0},DiagonalMatrix[{2,3,1}]];dynamic3D=ConvexOptimization[Norm[p1-p2],{},{p1∈shape1,p2∈shape2}];Graphics3D[{shape1,shape2,{Red,Thick,Line[{p1,p2}/.dynamic3D]}},PlotRange->{{-1.5,5.5},{-2,2},{-1.4,1.4}}],{{theta,0,"Rotation about Z"},0,2Pi},{{phi,0,"Rotation about Y"},0,2Pi},ControlPlacement->Top,SaveDefinitions->True]
최적 적합을 사용하여 데이터 부드럽게 하기
최적 적합을 사용하여 데이터 부드럽게 하기
최단 경로 찾기
최단 경로 찾기
기호 최적화 문제에 대한 정확한 해 구하기
기호 최적화 문제에 대한 정확한 해 구하기
기호 최적화 문제에 대한 매개변수적 해 구하기
기호 최적화 문제에 대한 매개변수적 해 구하기