From 1e2ef91da888e3e98955180bd86d91ce2d91b736 Mon Sep 17 00:00:00 2001 From: phfb3vlou <1323801688@qq.com> Date: Thu, 30 Apr 2026 18:33:01 +0800 Subject: [PATCH] =?UTF-8?q?Add=20=E5=86=B3=E7=AD=96=E8=BE=85=E5=8A=A9?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=20DecisionSupportSystem.h?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 决策辅助模块 DecisionSupportSystem.h | 83 ++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 决策辅助模块 DecisionSupportSystem.h diff --git a/决策辅助模块 DecisionSupportSystem.h b/决策辅助模块 DecisionSupportSystem.h new file mode 100644 index 0000000..0242c41 --- /dev/null +++ b/决策辅助模块 DecisionSupportSystem.h @@ -0,0 +1,83 @@ +#ifndef DECISION_SUPPORT_SYSTEM_H +#define DECISION_SUPPORT_SYSTEM_H + +#include "DataStructures.h" +#include +#include +#include + +namespace Battlefield { + +class DecisionSupportSystem { +public: + DecisionSupportSystem(); + virtual ~DecisionSupportSystem() = default; + + // 生成决策建议 + virtual std::vector generateSuggestions( + const BattlefieldSituation& situation, + const std::map& constraints) = 0; + + // 评估决策效果 + virtual double evaluateDecision(const DecisionSuggestion& decision, + const BattlefieldSituation& situation) = 0; + + // 设置决策规则 + virtual void setRules(const std::map& rules) = 0; + +protected: + std::map ruleWeights_; + double timeHorizon_{300.0}; // 决策时间范围(秒) +}; + +// 战术决策系统 +class TacticalDecisionSystem : public DecisionSupportSystem { +public: + TacticalDecisionSystem(); + + std::vector generateSuggestions( + const BattlefieldSituation& situation, + const std::map& constraints) override; + + double evaluateDecision(const DecisionSuggestion& decision, + const BattlefieldSituation& situation) override; + + void setRules(const std::map& rules) override; + +private: + // 威胁应对决策 + DecisionSuggestion generateThreatResponse( + const BattlefieldSituation& situation, + const std::vector& highThreatTargets); + + // 侦察任务决策 + DecisionSuggestion generateReconnaissanceMission( + const BattlefieldSituation& situation, + const std::vector& unknownAreas); + + // 防御部署决策 + DecisionSuggestion generateDefenseDeployment( + const BattlefieldSituation& situation, + const std::vector& criticalPoints); + + // 古代防御工事保护决策 + DecisionSuggestion generateAncientFortificationProtection( + const BattlefieldSituation& situation); + + // 计算最优路径 + std::vector calculateOptimalPath( + const GeoCoordinate& start, + const GeoCoordinate& end, + const std::vector& obstacles); + + // 计算火力覆盖范围 + double calculateCoverageArea(const std::vector& positions, + double effectiveRange) const; + + std::vector decisionTemplates_; + std::map resourceAvailability_; +}; + +} // namespace Battlefield + +#endif // DECISION_SUPPORT_SYSTEM_H \ No newline at end of file