소개
슬롯 무료체험 수학적 모델을 인공 지능(AI)과 결합하여 복잡한 문제에 대한 해결책을 찾을 수 있습니까? 이 블로그 게시물에서는 이 질문을 다루고 몇 가지 시작 코드와 애플리케이션 예제를 제공합니다.
슬롯 무료체험에 내장된 수학 프로그램은 단일 시나리오 문제에 대한 내생 변수의 최적 값을 찾는 데 능숙합니다. 예를 들어, 경제 전반에 걸친 CGE 모델의 경우 이러한 변수는 부문별 생산량, 요소 공급, 무역 또는 가격이 될 수 있습니다. 그러나 수학적 프로그램이 여러 시나리오에서 세금/보조금 비율, 정부 이전과 같은 외생 매개변수를 기반으로 전략을 효율적으로 찾는 것이 더 어렵습니다.
이 문제를 해결하기 위해 Mohammed Basheer, Victor Nechifor, Alvaro Calzadilla, Julien Harou 등은 슬롯 무료체험 모델을 MOEA(다목적 진화 검색 알고리즘) 및 기타 AI 알고리즘에 연결하는 프레임워크를 개발했습니다. 이 접근 방식은 잠재적으로 다른 슬롯 무료체험 사용자에게 흥미로울 수 있습니다.
연구원들은 슬롯 무료체험를 사용하여 많은 선형 또는 비선형 결정 변수가 있는 대규모 시스템을 안정적으로 시뮬레이션한 다음 외부 '블랙 박스' 솔버를 사용하여 외생 매개변수를 해결했습니다. 선택한 블랙박스 솔버는 MOEA(Multi-Objective Evolutionary Algorithms)였으며, 이들 중 다수는 오픈 소스 소프트웨어로 제공되며 매우 효과적일 수 있습니다.
마지막으로 그룹은 파이프라인을 기계 학습에 연결하여 MOEA에서 생성된 파레토 프론트(다차원 효율적인 솔루션)를 이해하는 데 도움을 주었습니다.
기술적 구현
MOEA는 다음이라는 Python 오픈 소스 라이브러리에서 액세스되었습니다.오리너구리. Platypus는 MOEA 알고리즘에 중점을 두고 높은 수준의 API(응용 프로그래밍 인터페이스)를 통해 해당 알고리즘에 대한 액세스를 제공하는 프레임워크입니다. NSGA-II, NSGA-III, MOEA/D, IBEA, Epsilon-MOEA, SPEA2, GDE3, OMOPSO, SMPSO 및 Epsilon-NSGA-II를 포함한 여러 MOEA 알고리즘은 Platypus를 통해 액세스할 수 있습니다.
그림 1은 슬롯 무료체험 기반 모델, 기타 Python 기반 모델 및 MOEA 알고리즘 통합의 기술적 구현을 보여줍니다. 슬롯 무료체험를 사용하면 다음을 통해 모델에 액세스하고 수정할 수 있습니다.파이썬 API. API를 사용하면 모델 매개변수를 수정하고, 변수 값에 액세스하고, Python 패키지를 통해 슬롯 무료체험 모델을 해결할 수 있습니다.
Python의 슬롯 무료체험 모델 액세스
슬롯 무료체험 모델을 Python에 노출하려면 API를 통해 슬롯 무료체험 모델 인스턴스를 생성해야 하며 이를 통해 모델을 실행하고 수정할 수 있습니다. Python에서 모델 인스턴스 생성은 다음 단계를 통해 수행되었습니다.
작업공간=GamsWorkspace("슬롯 무료체험 모델이 포함된 디렉토리")
모델=작업공간.add_job_from_file("슬롯 무료체험 모델 파일 경로")
선택=작업공간.add_options()선택.all_model_types= "해결사 이름"
체크포인트=GamsCheckpoint(작업공간=작업공간, checkpoint_name= "체크포인트 이름")
모델.실행(선택, 체크포인트)model_instance=GamsModelInstance(체크포인트=체크포인트,모델인스턴스_이름= "인스턴스 이름 추가")
"model_instance"를 사용하면 슬롯 무료체험 모델을 실행하고 수정할 수 있습니다. 액세스해야 하는 모든 변수는 다음과 같이 선언됩니다.
var1=model_instance.sync_db.추가_변수(식별자= "슬롯 무료체험의 변수 이름",
차원= "가변 차원을 나타내는 정수")
마찬가지로 시뮬레이션 도중 또는 MOEA에 의해 수정되어야 하는 매개변수는 다음과 같이 선언되었습니다:
par1=model_instance.sync_db.추가_매개변수(식별자= "슬롯 무료체험의 매개변수 이름",
차원= "매개변수 차원을 나타내는 정수")
모델 인스턴스 생성의 마지막 단계는 모델 인스턴스를 인스턴스화하는 것입니다.
model_instance.인스턴스화(모델_정의= "모델 정의를 추가하세요",
수정자=[par1, para2,...],옵션=선택)이제 모델 인스턴스가 생성되었으므로 슬롯 무료체험 모델은 다른 Python 기반 모델과 통신할 수 있습니다. 이는 다른 모델에서 슬롯 무료체험 모델로 들어오는 값을 다음과 같이 수정하여 수행되었습니다.
par1.add_record().값= "매개변수 값"
슬롯 무료체험에 대한 입력이 설정되면 모델은 다음과 같이 해결될 수 있습니다:
model_instance.해결()또한 슬롯 무료체험 모델의 일부 변수 값이 추출되어 다음과 같이 다른 모델에 제공되었습니다.
value_to_provide_to_other_models=model_instance.sync_db["슬롯 무료체험의 변수 이름"].find_record()Python의 MOEA 래퍼
MOEA 래퍼는 MOEA 최적화 문제를 생성하고 MOEA와 통합 시뮬레이션 모델 간의 통신을 촉진하도록 설계된 Python 클래스입니다. 그림 1에서 볼 수 있듯이 래퍼는 통합 모델의 각 실행이 끝날 때 객관적인 값의 값을 수집하고 각 MOEA 평가 후 통합 모델에 결정 변수의 값을 제공합니다. 래퍼에는 통합 모델의 인스턴스가 제공됩니다. 인스턴스는 다음 메서드를 포함하는 클래스입니다.
- get_variables: MOEA 결정 변수의 이름과 상한 및 하한을 제공하는 메소드입니다.
- get_objectives: MOEA 목표의 이름을 제공하는 메소드입니다.
- get_constraints: MOEA 제약조건의 이름을 제공하는 메소드입니다.
- apply_variables: 의사결정 변수에 값을 적용하는 메소드
- get_objective_values: 통합모델에서 MOEA 목적값을 추출하는 방법.
- 실행: 단일 시뮬레이션을 위한 통합 모델을 실행하는 방법
래퍼는 다음과 같이 구성됩니다:
클래스 래퍼(객체): def__init__(self, Integrated_models,*인수,**kwargs): 슈퍼(래퍼, 자체).__init__(*인수,**크와르그스)변수= 목록(integrated_models.get_variables())목표= 목록(integrated_models.get_objectives())제약조건= 목록(integrated_models.get_constraints())자신.문제=오리너구리.문제( len(변수), len(목표), len(제약조건))자신.문제.함수=자신.평가자신.문제.래퍼=자신
fori, varin 열거하다(변수):자신.문제.유형[i]=오리너구리.실수(var.하한, var.상한_바운드)
fori, 제약조건in 열거하다(제약조건):자신.문제.제약조건[i]=오리너구리.제약조건(제약.연산자,값=제약.한계)
def 평가(자체, 솔루션):자신.통합_모델.apply_variables(솔루션)자신.통합_모델.실행()
목표=[] for목적in통합_모델.get_objective_values():목표.추가(목적)
제약조건=[] for제약in통합_모델.get_constraint_values():제약조건.추가(제약)
반환목표, 제약조건마지막으로 MOEA 최적화에 액세스하고 실행하려면:
moea_wrapper=래퍼(integrated_models="통합 모델의 인스턴스")
NSGAIII 알고리즘을 사용하여 실행되는 예시는 최대 반복 횟수가 n인 경우 다음과 같이 수행됩니다.
moea_algorithm=오리너구리.NSGAIII(moea_wrapper.문제)moea_algorithm.실행(n)위의 모든 코드 블록은 데모용이며 사용 사례 및 전체 코드 디자인에 맞게 크게 조정되어야 합니다.
MOEA 결과에 적용된 머신러닝
어떤 결정 변수가 목표 값에 큰 영향을 미치는지 이해하는 데 도움을 주기 위해 기계 학습이 MOEA의 출력에 적용되었습니다. MOEA 최적화 프로세스는 MOEA 알고리즘과 통합 시뮬레이터 간의 각 반복에 대해 결정 변수 값과 해당 목적 값을 생성합니다. 이러한 값은 최적화 목표에 대한 각 결정 변수의 영향 수준을 도출하기 위해 기계 학습 모델을 훈련하는 데 수집되고 사용됩니다. 우리는 다음을 통해 Random Forest Regression Machine Learning 알고리즘을 사용했습니다.Python의 scikit-learn 라이브러리. 이 경우 각 목표값은 머신러닝 모델을 학습하기 위한 목표값으로 사용되었고, 결정값은 특성으로 사용되었습니다. 먼저, 다음과 같이 scikit-learn의 'train_test_split' 메서드를 사용하여 데이터를 테스트 데이터와 학습 데이터로 분할했습니다.
X_트레인, X_테스트, Y_트레인, Y_테스트=train_test_split(기능,대상,테스트_크기= "데이터의 비율을 0-1로 나누기")
다음 단계는 다음과 같이 훈련 데이터를 기반으로 랜덤 포레스트 모델을 훈련하는 것입니다.
모델=RandomForestRegressor(최대_깊이="최대 나무 깊이",
n_estimators= "나무의 수")
모델.적합(특성,대상)중요사항=모델.feature_importances또한 데이터의 과적합 또는 과소적합을 방지하기 위해 학습 데이터와 비교하여 테스트 데이터로 모델의 성능을 검사하는 것도 중요합니다. 예를 들어 r2는 다음과 같이 scikit-learn의 'r2_score' 메서드를 통해 계산할 수 있습니다.
Y_predicted_train=모델.예측(X_train)Y_predicted_test=모델.예측(X_test)
R2_train=r2_score(y_true=Y_train,y_pred=Y_predicted_train)R2_test=r2_score(y_true=Y_test,y_pred=Y_predicted_test)사용예
이 접근법의 이점을 예를 들어 설명하는 것이 가장 좋습니다. 아래에서는 슬롯 무료체험-AI 연계가 성공적으로 적용된 세 가지 응용 분야를 간략하게 설명합니다.
연구 분야 1: 수자원 시스템
물의 경제적 가치를 추정하면 계획자가 물을 더 잘 관리하는 데 도움이 될 수 있습니다. 이 응용 프로그램은 캘리포니아 최대의 상호 연결된 수자원 시스템인 캘리포니아 센트럴 밸리와 주변 산맥을 고려했으며, 이는 30개의 저수지, 22개의 대수층, 51개의 도시 및 농업용 물 수요 장소로 구성되었습니다. 물은 여러 가지 경제적 용도로 사용됩니다. 농부는 식물을 재배하고, 산업계는 생산을 하고, 수력 발전소는 전기를 생산할 수 있습니다. 동시에 시스템 운영과 관련된 비용이 있습니다. 지하수와 지표수를 이동하려면 에너지 집약적인 펌프를 사용해야 합니다. 비용과 이점은 시스템 저장소의 수위에 비선형적으로 의존하는 경향이 있습니다. 계획자는 물을 할당하고 분배하는 것 외에도 불확실성을 관리해야 합니다. 미래의 강수량과 온도에 따른 증발량은 알려지지 않았지만 향후 몇 년 동안 저장된 물의 양이 얼마나 필요할지 결정합니다. 이러한 불확실성을 고려하여 물 관리자는 올해 용도에 맞는 방출량과 절약할 물의 양을 결정해야 합니다.
이 연구는 "저장 가치 이월 함수", 즉 저장된 물의 가치를 정량화하는 곡선을 추정합니다. 오픈 액세스로 출판된 작품에서수자원 연구, 저자는 슬롯 무료체험 모델을 사용하여 수행된 여러 시나리오 시뮬레이션을 MOEA(다목적 진화 알고리즘)에 연결하여 캘리포니아에서 물 사용의 장기적인 경제적 이점을 공동으로 최대화하는 각 지표 저수지 저장소의 가치 평가 곡선을 찾습니다. 이후 건조할 가능성이 있는 해 동안 대형 댐에 물을 남겨두는 것의 지역적 경제적 가치를 알면 물 관리자와 계획자가 더 나은 인프라 운영 결정을 내리는 데 도움이 됩니다.
연구 분야 2: 경제 모델링
전 세계 국가에서는 지속 가능한 개발 목표(SDG)를 달성하고 사회, 경제, 환경 측면에서 국가 수준의 성과를 향상시키는 것을 목표로 하는 정책을 계획하고 있습니다. 그러나 실제로는 서로 다른 목표 간에 절충안이 존재할 수 있습니다. 예를 들어, CO2 배출을 줄이는 것은 빈곤 감소 및 경제 성장과 상충되는 경우가 많습니다. 동시에 여러 SDG 목표를 달성하기 위한 국가 경제 정책을 설계하는 것은 관련된 상충 관계로 인해 복잡한 문제입니다. 에 발표된 논문에서네이처 커뮤니케이션즈에서 저자는 인공지능(AI) 기반 검색과 머신러닝이 이러한 절충안을 탐색하는 데 유용할 수 있음을 보여줍니다. 슬롯 무료체험와 AI의 이러한 적용은 경제 전반 모델(슬롯 무료체험에서 개발됨)과 다목적 진화 알고리즘을 결합하여 여러 SGD 목표에 걸쳐 성과의 균형을 동시에 맞추고 가능한 가장 낮은 절충안을 식별하는 외생적인 국가 수준의 경제 개입을 검색합니다. 이는 앞서 기술 구현에서 설명한 대로 경제 전반 모델과 검색 알고리즘 간의 수천 번의 반복을 통해 달성됩니다. 각 반복의 결과는 47개의 외생적 경제 개입(직접세, 생산세, 판매세/보조금 및 가계 이전에 대한 변경) 세트이며, 관련 성과는 SGD 지표(즉, 목표)로 측정됩니다. 연구에 포함된 SDG 목표는 GDP 성장과 가계 소득을 극대화하고, 소득 불평등을 최소화하며, CO2 배출을 최소화하는 것입니다. 이 프레임은 이집트 경제의 경우에 적용됩니다. 연구 결과에 따르면 다양한 성과 목표에 걸쳐 지속 가능한 개발을 달성하려면 경제의 비선형적 특성으로 인해 반드시 직관적이지 않은 외생적 개입의 조합이 필요하다는 것이 밝혀졌습니다. 여러 목표에 걸쳐 성능을 향상시키는 이집트 사례에 대한 절충 솔루션은 47개의 개별 외생 매개변수를 조정하여 달성할 수 있는 것으로 나타났습니다. 검색 프로세스에서 고려된 다양한 경제적 개입(예: 47개의 외생적 결정 변수)이 지속 가능성 성과에 어떻게 영향을 미칠 수 있는지 이해하기 위해 기계 학습이 사용되었습니다. 머신러닝 분석 결과, 47개 의사결정 변수 중 석유 판매에 대한 세금/보조금 변경이 다양한 SDGs 달성을 위한 가장 효과적인 정책 수단이고, 생산자세/민간 서비스에 대한 보조금, 그리고 정부가 가구에 직접 이전하는 순으로 나타났습니다. 그만큼오픈 액세스 출판 논문연구 및 결과에 대한 자세한 내용을 제공합니다.
연구 분야 3: 통합 경제 및 수자원 모델링
나일강은 세계에서 가장 긴 강 중 하나이며 지리적으로 11개 국가가 공유합니다. 나일강은 아프리카 대륙의 약 10%를 차지하는 넓은 유역 면적을 갖고 있지만 유역 면적이 비슷하거나 더 작은 콩고, 니제르, 미시시피 강에 비해 유속이 적습니다. 나일강의 제한된 수자원과 나일강 연안 국가의 수자원 수요 증가는 정치적 긴장을 야기했습니다. 그러한 긴장의 한 예는 그랜드 에티오피아 르네상스 댐의 건설과 운영에 관해 에티오피아, 수단, 이집트 사이에 계속되는 불일치입니다. 이 댐은 현재 에티오피아에서 건설 중이며, 완공되면 에티오피아의 전력 생산량을 두 배로 늘리고 전 세계적으로 가장 빈곤한 지역 중 하나에서 전력 접근성을 향상시킬 것으로 예상됩니다. 그러나 이웃 국가인 수단과 이집트는 댐이 자신들에게 흐르는 강의 양과 질을 변화시키고 나일강 이용에 부정적인 영향을 미칠 것을 우려하고 있습니다. 이는 국가의 일부 목표 간의 상충 관계에 대한 문제를 나타냅니다. 최근에 발표된 연구자연 기후 변화그림 1에 설명된 결합된 시뮬레이션 및 AI 프레임워크를 사용하여 장단점을 탐색하고 세 국가 간의 성능 균형을 맞출 수 있는 솔루션을 찾았습니다.
이 연구는 에티오피아, 수단, 이집트의 경제 전반 모델(슬롯 무료체험에서 개발됨)과 나일강의 수자원 시스템 모델(사용하여 개발됨)을 통합합니다.파이워in Python), AI 검색 및 기계 학습 알고리즘. 이러한 조합을 통해 경제 전반의 목표(예: 3개국의 GDP)와 공학적 목표(예: 수력 발전 및 관개수 공급)를 동시에 고려하여 그랜드 에티오피아 르네상스 댐(의사결정 변수)을 관리할 수 있는 방법을 모색할 수 있습니다. 결과는 특히 극도의 습하거나 건조한 예측의 경우 그랜드 에티오피아 르네상스 댐 관리를 위한 협력적 적응 전략을 구현하는 것이 경제 및 물 관리 측면 모두에서 에티오피아, 수단 및 이집트에 이점을 가져오는 것으로 나타났습니다. 그럼에도 불구하고 적응형 관리 계획이 한 국가의 경제적 이익 극대화에만 초점을 맞추면 나머지 두 국가 중 적어도 한 국가에는 부정적인 결과를 초래합니다. 검색 프로세스의 결과는 그랜드 에티오피아 르네상스 댐 관리에 대한 다양한 결정이 세 강변 국가 각각의 성능 목표에 어떻게 영향을 미치는지 이해하기 위해 기계 학습 모델을 훈련하는 데 사용되었습니다. 머신러닝 분석에 따르면 이집트 GDP는 가뭄 시 물 방출에 가장 큰 영향을 받고, 수단과 에티오피아 GDP는 댐의 수력 발전 목표에 더 많은 영향을 받는 것으로 나타났습니다. 연구에 대한 자세한 내용은 공개 액세스 논문에 대한 다음 링크를 통해 확인할 수 있습니다.https://www.nature.com/articles/s41558-022-01556-6 .