liuqiao 7 bulan lalu
induk
melakukan
dd7060bed5
4 mengubah file dengan 336 tambahan dan 12 penghapusan
  1. 6 1
      src/style/index.css
  2. 1 0
      src/style/style.css
  3. 326 11
      src/views/home.vue
  4. 3 0
      src/views/vuetree/index.vue

+ 6 - 1
src/style/index.css

@@ -549,7 +549,7 @@ box-sizing: border-box;
 .colortext .el-tabs__item{
   font-family: Source Sans Pro, Source Sans Pro;
   font-weight: 400;
-  font-size: 20px;
+  font-size: 18px;
   color: #333333;
   line-height: 23px;
   text-align: left;
@@ -664,3 +664,8 @@ width: 200px;
   width: 100%;
   padding-right: 10px;
 }
+.dlheight{
+  height: 440px;
+  overflow-y: auto;
+
+}

+ 1 - 0
src/style/style.css

@@ -550,3 +550,4 @@ background: #FFFFFF;
 border-radius: 0px 0px 0px 0px;
 border: 1px solid #2267B1;
 }
+

+ 326 - 11
src/views/home.vue

@@ -363,7 +363,7 @@
             </template>
           </el-dialog>
           <!-- 优化算法 -->
-          <el-dialog v-model="dialog.sufun" v-if="tabactive == '优化算法'" align-center :modal="false"
+          <!-- <el-dialog v-model="dialog.sufun" v-if="tabactive == '优化算法'" align-center :modal="false"
             :close-on-click-modal="true" :append-to-body="true" draggable :fullscreen="false"
             :modal-append-to-body="false" modal-class="summary-dlg" :before-close="handleClose" width="480"
             class="dialog_class sel bgcolor tianjia sel">
@@ -431,7 +431,7 @@
                 </el-button>
               </div>
             </template>
-          </el-dialog>
+          </el-dialog> -->
           <!-- 加点方法 -->
           <el-dialog v-model="dialog.addfun" v-if="tabactive == '加点方法'" align-center :modal="false"
             :close-on-click-modal="true" :append-to-body="true" draggable :fullscreen="false"
@@ -685,7 +685,7 @@
             </template>
           </el-dialog>
           <!-- 进步优化器 -->
-          <el-dialog v-model="dialog.jboptimizer" align-center :modal="false" :close-on-click-modal="false"
+          <!-- <el-dialog v-model="dialog.jboptimizer" align-center :modal="false" :close-on-click-modal="false"
             :append-to-body="true" draggable :fullscreen="false" :modal-append-to-body="false" modal-class="summary-dlg"
             :before-close="handleClose" width="430" class="dialog_class bgcolor tianjia sel">
 
@@ -753,7 +753,7 @@
                 </el-button>
               </div>
             </template>
-          </el-dialog>
+          </el-dialog> -->
           <!-- Xfiol改版之前 -->
           <!-- <el-dialog v-model="dialog.Xfiol" align-center :modal="false" :close-on-click-modal="false"
             :append-to-body="true" draggable :fullscreen="false" :modal-append-to-body="false"
@@ -969,7 +969,7 @@
             </template>
           </el-dialog>
           <!--梯度优化器  -->
-          <el-dialog v-model="dialog.tidu" align-center :modal="false" :close-on-click-modal="false"
+          <!-- <el-dialog v-model="dialog.tidu" align-center :modal="false" :close-on-click-modal="false"
             :append-to-body="true" draggable :fullscreen="false" :modal-append-to-body="false" modal-class="summary-dlg"
             :before-close="handleClose" width="430" class="dialog_class bgcolor tianjia sel">
 
@@ -1018,7 +1018,7 @@
                 </el-button>
               </div>
             </template>
-          </el-dialog>
+          </el-dialog> -->
            <!--CST  -->
            <!-- <el-dialog v-model="dialog.CSTt" align-center :modal="false" :close-on-click-modal="false"
             :append-to-body="true" draggable :fullscreen="false" :modal-append-to-body="false" modal-class="summary-dlg"
@@ -1542,8 +1542,6 @@
                 </el-table>
               </div>
                     </div>
-               
-                
                     <!-- 分析参数 v-show="currentTab=='0'"-->
                     <div  v-show="currentTab2=='3'">
                       <div class="eldesign classtable" style="margin-top: 10px;">
@@ -1578,6 +1576,255 @@
               </div>
             </template>
           </el-dialog>
+          <!-- 优化器 -->
+             <el-dialog v-model="dialog.optgroup" align-center :modal="false" :close-on-click-modal="false"
+            :append-to-body="true" draggable :fullscreen="false" :modal-append-to-body="false" modal-class="summary-dlg"
+            :before-close="handleClose" width="700" class="dialog_class bgcolor tianjia sel colortext">
+
+            <template #header="{ titleId, titleClass }">
+              <div class="my-header ">
+                <h4 :id="titleId" :class="titleClass">优化器</h4>
+              </div>
+            </template>
+            <div class="numberinput lefttext ">
+              <el-form>
+                    <!-- 代理优化器 -->
+                <el-tabs tab-position="left" class="demo-tabs" v-model="activeadf" @tab-click="adfhandleClick">
+              <el-tab-pane label="代理优化器" name="代理优化器">
+                <div class="XFpdding">
+                  <div class="numberinput lefttext  dlheight">
+                    <el-form-item label="优化算法:" :label-width="formLabelWidth200">
+                  <el-select v-model="youhua.algorithm" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in yslist" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="屏幕输出等级:"  :label-width="formLabelWidth200">
+                <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="续算开关:" :label-width="formLabelWidth200">
+                  <el-select v-model="youhua.algorithm" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in yslist" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="实验设计方法:"  :label-width="formLabelWidth200">
+                <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="样本点数:"  :label-width="formLabelWidth200">
+                  <div style="display: flex;">
+                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
+                  <!-- <template #prepend>X方向</template> -->
+                  <template  #prefix>初始 </template>
+                </el-input>
+                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
+                  <template  #prefix>最大</template>
+                </el-input>
+              </div>
+              </el-form-item>
+              <el-form-item label="低可信度样本点数:"  :label-width="formLabelWidth200">
+                  <div style="display: flex;">
+                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
+                  <!-- <template #prepend>X方向</template> -->
+                  <template  #prefix>初始 </template>
+                </el-input>
+                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
+                  <template  #prefix>最大</template>
+                </el-input>
+              </div>
+              </el-form-item>
+              <el-form-item label="各可信度样本点数:"  :label-width="formLabelWidth200">
+                  <div style="display: flex;">
+                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
+                  <!-- <template #prepend>X方向</template> -->
+                  <template  #prefix>初始 </template>
+                </el-input>
+                <el-input type="text" style="margin-right: 10px;" v-model="cstnum">
+                  <template  #prefix>最大</template>
+                </el-input>
+              </div>
+              </el-form-item>
+              <el-form-item label="最优解收敛性容差:"  :label-width="formLabelWidth200">
+                <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="真实函数约束容差:"  :label-width="formLabelWidth200">
+                <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="代理模型约束容差:"  :label-width="formLabelWidth200">
+                <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="选择代理模型:" :label-width="formLabelWidth200">
+                  <el-select v-model="dlival" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in daililist" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="相关函数:" :label-width="formLabelWidth200">
+                  <el-select v-model="dlival1" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in daililist1" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="是否优化超参数:" :label-width="formLabelWidth200">
+                  <el-select v-model="dlival2" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in daililist2" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="Kriging模型阶数:" :label-width="formLabelWidth200">
+                  <el-select v-model="dlival3" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in daililist3" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="相关矩阵分解法:" :label-width="formLabelWidth200">
+                  <el-select v-model="dlival4" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in daililist4" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="超参数优化算法:" :label-width="formLabelWidth200">
+                  <el-select v-model="dlival5" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in daililist5" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="正则化方法:" :label-width="formLabelWidth200">
+                  <el-select v-model="dlival6" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in daililist6" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="加点准则:"  :label-width="formLabelWidth200">
+                <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="KB加点数量:"  :label-width="formLabelWidth200">
+                <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="子优化方法:"  :label-width="formLabelWidth200">
+                <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="约束处理方法:"  :label-width="formLabelWidth200">
+                <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="种群规模:"  :label-width="formLabelWidth200">
+                <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="最大进化代数:"  :label-width="formLabelWidth200">
+                <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="交叉概率:"  :label-width="formLabelWidth200">
+                <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="变异概率:"  :label-width="formLabelWidth200">
+                <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+            </div>
+                </div>
+              </el-tab-pane>
+              <!-- 进步优化器 -->
+              <el-tab-pane label="进化优化器" name="进化优化器">
+                <div class="XFpdding">
+                  <div class="numberinput lefttext">
+              <el-form>
+                <el-form-item label="优化算法:" :label-width="formLabelWidth1">
+                  <el-select v-model="youhua.algorithm" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in yslist" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="种群规模:" :label-width="formLabelWidth1">
+                  <el-input-number v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="迭代次数:" :label-width="formLabelWidth1">
+                  <el-input-number v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="交叉概率:" :label-width="formLabelWidth1">
+                  <el-input-number v-model="youhua.probcrossover" :step="0.1" :min="0" :max="1000"
+                    controls-position="right" />
+                </el-form-item>
+                <el-form-item label="变异概率:" :label-width="formLabelWidth1">
+                  <el-input-number v-model="youhua.probmut" :step="0.1" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="交叉算子:" :label-width="formLabelWidth1">
+                  <el-select v-model="youhua.proboperator" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in addlist2" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="竞赛规模:" :label-width="formLabelWidth1">
+                  <el-input-number v-model="youhua.probscale" :min="0" :max="100" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="保留优选策略:" :label-width="formLabelWidth1">
+                  <el-select v-model="youhua.strategy" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in addlist3" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="变异算子选择:" :label-width="formLabelWidth1">
+                  <el-select v-model="youhua.operator" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in addlist4" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="gpu加速:" :label-width="formLabelWidth1">
+                  <el-select v-model="youhua.gpu" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in addlist8" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+              </el-form>
+            </div>
+                </div>
+              </el-tab-pane>
+              <!-- 梯度优化器 -->
+              <el-tab-pane label="梯度优化器" name="梯度优化器">
+                <div class="XFpdding">
+                  <div class="numberinput lefttext">
+              <el-form>
+                <el-form-item label="优化算法:" :label-width="formLabelWidth1">
+                  <el-select v-model="youhua.algorithm" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in yslist" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="最大外迭代步数:" :label-width="formLabelWidth1">
+                  <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="输出精度等级:" :label-width="formLabelWidth1">
+                  <el-input v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="线性约束容差:" :label-width="formLabelWidth1">
+                  <el-input v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="非线性约束容差:" :label-width="formLabelWidth1">
+                  <el-input v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="最优性度量容差::" :label-width="formLabelWidth1">
+                  <el-input v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
+                </el-form-item>
+                <el-form-item label="梯度验证级别:" :label-width="formLabelWidth1">
+                  <el-select v-model="tdval" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-option v-for="item in tdlist" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+              </el-form>
+            </div>
+                </div>
+              </el-tab-pane>
+            </el-tabs>
+              </el-form>
+            </div>
+            <template #footer>
+              <div class="dialog-footer">
+                <el-button @click="dialog.optgroup = false">取消</el-button>
+                <el-button type="primary">
+                  确定
+                </el-button>
+              </div>
+            </template>
+          </el-dialog>
           <!-- 内容区 -->
           <div class="main  mianflex">
             <!--left菜单栏  -->
@@ -2188,6 +2435,65 @@ let yslist = ref([
   { label: 'PSO', value: 'PSO' },
   { label: 'NSGA2', value: 'NSGA2' },
 ])
+
+let dlival=ref('Kriging')
+let daililist = ref([
+  { label: 'Kriging', value: 'Kriging' },
+  { label: 'GEK', value: 'GEK' },
+  { label: 'Co-Kriging', value: 'Co-Kriging' },
+  { label: 'HK', value: 'HK' },
+  { label: 'MHK', value: 'MHK' },
+])
+let dlival1=ref('三次样条函数')
+let daililist1= ref([
+  { label: '各向异性高斯指数函数', value: '各向异性高斯指数函数' },
+  { label: '各向同性高斯指数函数', value: '各向同性高斯指数函数' },
+  { label: '三次样条函数', value: '三次样条函数' },
+
+])
+let dlival2=ref('0')
+let daililist2= ref([
+  { label: '不优化超参数', value: '0' },
+  { label: '使用随机初值优化超参数', value: '1' },
+  { label: '上一轮建模数据作为初值优化超参数', value: '2' },
+
+])
+let dlival3=ref('0')
+let daililist3= ref([
+  { label: '普通Kriging', value: '0' },
+  { label: '泛Kriging', value: '1' },
+
+])
+let dlival4=ref('0')
+let daililist4= ref([
+  { label: 'LU分解', value: '0' },
+  { label: 'Cholesky分解', value: '1' },
+  { label: '采用第三方库并行分解', value: '2' },
+
+])
+let dlival5=ref('0')
+let daililist5= ref([
+  { label: 'HookeJeeves', value: '0' },
+  { label: 'BFGS', value: '1' },
+  { label: '单纯形搜索方法', value: '2' },
+
+])
+let dlival6=ref('0')
+let daililist6= ref([
+  { label: '不进行正则化', value: '0' },
+  { label: '常数正则化', value: '1' },
+  { label: '优化正则化', value: '2' },
+
+])
+let tdval=ref('0')
+let tdlist= ref([
+  { label: '约束详细验证', value: '0' },
+  { label: '不验证', value: '1' },
+  { label: '简单验证', value: '2' },
+  { label: '目标详细验证', value: '3' },
+  { label: '目标+约束详细验证', value: '4' },
+
+])
 let ad1=ref('二维')
 let adlist1 = ref([
   { label: '二维', value: '二维' },
@@ -2252,6 +2558,7 @@ let dialog = ref({
   sufun: false,
   task: false,
   guanli: false,
+  optgroup:false,
 })
 let tableDatacst=ref([
   {date:"上表面CST参数"},{date:"下表面CST参数"}
@@ -2484,15 +2791,23 @@ const optimizerfalse = (val) => {
   console.log(val);
   if (val == '优化器') {
     dialog.value.optimizer = true;
+
   } else if (val == '进化优化器') {
-    dialog.value.jboptimizer = true;
+    activeadf.value='进化优化器';
+    dialog.value.optgroup = true;
+   // dialog.value.jboptimizer = true;
     getoptimize();
-  } else if (val == 'Xfiol' || val == 'Rosenbrock') {
+  } else if (val == '代理优化器') {
+    activeadf.value='代理优化器';
+    dialog.value.optgroup = true;
+   // dialog.value.jboptimizer = true;
+  }  else if (val == 'Xfiol' || val == 'Rosenbrock') {
     importget();
     dialog.value.Xfiol = true;
 
   }else if(val == '梯度优化器'){
-    dialog.value.tidu = true;
+    activeadf.value='梯度优化器';
+    dialog.value.optgroup = true;
   }else if(val == 'CST'){
    /// dialog.value.CSTt = true;
    activeadf.value='CST';

+ 3 - 0
src/views/vuetree/index.vue

@@ -285,6 +285,9 @@ function onNodeDoubleClick(e) {
   }else if(e.node.data.name=="进化优化器"){
     emit('optimizerfalse','进化优化器');
 
+  }else if(e.node.data.name=="代理优化器"){
+    emit('optimizerfalse','代理优化器');
+
   }else if(e.node.data.name=="Rosenbrock"||e.node.data.name=="Xfiol"){
     emit('optimizerfalse','Xfiol');
   }else if(e.node.data.name=="梯度优化器"){