aps-agent/aps-frontend/pages/algorithm-engine.html

66 lines
4.2 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>智能算法引擎 - 智能排产系统</title>
<link rel="stylesheet" href="../css/common.css">
</head>
<body>
<div id="app">
<header class="header" id="header"></header>
<div class="body">
<aside class="sidebar" id="sidebar"></aside>
<main class="main">
<h1 class="page-title">智能算法引擎</h1>
<div class="row">
<div class="col-6">
<div class="card">
<div class="card-header">遗传算法 GA</div>
<div class="card-body">
<div class="form-row"><div class="form-group"><label>种群大小</label><input id="ga_pop" type="number" value="100"></div><div class="form-group"><label>最大迭代次数</label><input id="ga_maxGen" type="number" value="500"></div></div>
<div class="form-row"><div class="form-group"><label>交叉概率</label><input id="ga_cross" type="number" step="0.05" value="0.85"></div><div class="form-group"><label>变异概率</label><input id="ga_mut" type="number" step="0.05" value="0.15"></div></div>
<div class="form-row"><div class="form-group"><label>精英比例</label><input id="ga_elite" type="number" step="0.05" value="0.1"></div></div>
</div>
</div>
</div>
<div class="col-6">
<div class="card">
<div class="card-header">约束规划 CP-SAT</div>
<div class="card-body">
<div class="form-row"><div class="form-group"><label>最大求解时间(秒)</label><input id="cp_time" type="number" value="60"></div><div class="form-group"><label>线程数</label><input id="cp_threads" type="number" value="4"></div></div>
<div class="form-row"><div class="form-group"><label>启用 LNS</label><select id="cp_lns"><option value="true">是</option><option value="false">否</option></select></div><div class="form-group"><label>目标间隙 (%)</label><input id="cp_gap" type="number" step="0.1" value="1"></div></div>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-header">目标函数权重</div>
<div class="card-body">
<div class="form-row">
<div class="form-group"><label>延迟</label><input id="w_tard" type="number" step="0.05" value="0.40"></div>
<div class="form-group"><label>成本</label><input id="w_cost" type="number" step="0.05" value="0.30"></div>
<div class="form-group"><label>利用率</label><input id="w_util" type="number" step="0.05" value="0.20"></div>
<div class="form-group"><label>负荷均衡</label><input id="w_bal" type="number" step="0.05" value="0.10"></div>
</div>
</div>
</div>
<button class="btn btn-primary mt-2" onclick="saveAlgos()">保存算法配置</button>
</main>
</div>
</div>
<script src="../js/data.js"></script>
<script src="../js/common.js"></script>
<script>
initPage('algorithm-engine');
function saveAlgos() {
apsData.scheduleParams.ga = { populationSize: Number(document.getElementById('ga_pop').value), maxGenerations: Number(document.getElementById('ga_maxGen').value), crossoverProb: Number(document.getElementById('ga_cross').value), mutationProb: Number(document.getElementById('ga_mut').value), eliteRatio: Number(document.getElementById('ga_elite').value) };
apsData.scheduleParams.cp = { maxSolveTime: Number(document.getElementById('cp_time').value), threads: Number(document.getElementById('cp_threads').value), lns: document.getElementById('cp_lns').value === 'true', gap: Number(document.getElementById('cp_gap').value) };
apsData.scheduleParams.weights = { tardiness: Number(document.getElementById('w_tard').value), cost: Number(document.getElementById('w_cost').value), utilization: Number(document.getElementById('w_util').value), balance: Number(document.getElementById('w_bal').value) };
apsData.$utils.save(apsData);
showToast('保存成功', '算法引擎配置已更新');
}
</script>
</body>
</html>