Compare commits

...

19 Commits

Author SHA1 Message Date
p57492168 4f68d89ca6 注释删除 2022-06-21 21:53:24 +08:00
p57492168 9af11c5cc8 删除 2022-06-21 21:51:58 +08:00
p57492168 fa8e41cac8 注释删除 2022-06-21 21:49:43 +08:00
p57492168 f8ca8f1673 注释修改 2022-06-21 21:48:21 +08:00
p57492168 32ee95ada0 界面修改 2022-06-20 22:41:23 +08:00
p57492168 5068ae13ba 修改readme 2022-06-20 22:37:08 +08:00
p57492168 cad3cc3c21 删除注释 2022-06-20 22:34:52 +08:00
p57492168 7156ac8ce6 注释删除 2022-06-20 22:33:28 +08:00
p57492168 3aa201a9c2 修改 2022-06-20 22:31:18 +08:00
p57492168 2d695c79e9 注释删除 2022-06-19 21:08:05 +08:00
p57492168 966fbc74e0 注释添加 2022-06-19 21:06:15 +08:00
p57492168 4d9f7cdc69 字体大小修改 2022-06-19 21:03:59 +08:00
p57492168 8b167cce9b 按钮添加 2022-06-19 21:00:41 +08:00
p57492168 1e59ed6add readme修改内容 2022-06-19 20:58:15 +08:00
p57492168 ee0b753b25 readme添加内容 2022-06-19 20:56:03 +08:00
p57492168 86a71520bd 修改util 2022-06-17 23:44:29 +08:00
p57492168 a2267fd411 修改readme 2022-06-17 23:43:03 +08:00
p57492168 a72ea1c58b 修改main 2022-06-17 23:41:24 +08:00
p57492168 035ce41d9e 修改 2022-06-17 23:39:40 +08:00
19 changed files with 91 additions and 23 deletions

3
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

12
.idea/SeAIPalette.iml Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="PyDocumentationSettings">
<option name="format" value="PLAIN" />
<option name="myDocStringFormat" value="Plain" />
</component>
</module>

View File

@ -0,0 +1,13 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredIdentifiers">
<list>
<option value="runtest.ImageEditorPage" />
<option value="ImageEditorPage" />
</list>
</option>
</inspection_tool>
</profile>
</component>

View File

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

4
.idea/misc.xml Normal file
View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7 (Palette)" project-jdk-type="Python SDK" />
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/SeAIPalette.iml" filepath="$PROJECT_DIR$/.idea/SeAIPalette.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@ -2,10 +2,9 @@
# Form implementation generated from reading ui file 'MainWindow_map.ui'
#
# Created by: PyQt5 UI code generator 5.15.1
# Created by: PyQt5 UI code generator 5.12.3
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
@ -96,6 +95,9 @@ class Ui_MainWindow(object):
self.horizontalLayout.addLayout(self.formLayout_2)
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setObjectName("pushButton_2")
self.verticalLayout_2.addWidget(self.pushButton_2)
self.pushButton_run = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("宋体")
@ -110,6 +112,13 @@ class Ui_MainWindow(object):
self.pushButton_stop.setFont(font)
self.pushButton_stop.setObjectName("pushButton_stop")
self.verticalLayout_2.addWidget(self.pushButton_stop)
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
font = QtGui.QFont()
font.setFamily("宋体")
font.setPointSize(12)
self.pushButton.setFont(font)
self.pushButton.setObjectName("pushButton")
self.verticalLayout_2.addWidget(self.pushButton)
self.horizontalLayout.addLayout(self.verticalLayout_2)
self.horizontalLayout.setStretch(0, 1)
self.horizontalLayout.setStretch(1, 1)
@ -149,6 +158,8 @@ class Ui_MainWindow(object):
self.label_9.setText(_translate("MainWindow", "移动节点电池容量"))
self.lineEdit_bettery.setText(_translate("MainWindow", "100"))
self.label_4.setText(_translate("MainWindow", "算法选择"))
self.pushButton_2.setText(_translate("MainWindow", "关于我们"))
self.pushButton_run.setText(_translate("MainWindow", "运行"))
self.pushButton_stop.setText(_translate("MainWindow", "停止"))
self.pushButton.setText(_translate("MainWindow", "退出程序"))
self.label_show.setText(_translate("MainWindow", "<html><head/><body><p><br/></p></body></html>"))

View File

@ -157,6 +157,13 @@
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string>关于我们</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_run">
<property name="font">
@ -183,6 +190,19 @@
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton">
<property name="font">
<font>
<family>宋体</family>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>退出程序</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>

View File

@ -12,7 +12,6 @@ class Charge(WildFire):
def step(self, state, info):
if not self.empty():
# if there're actions to do
action = self.actions_to_do[0]
del self.actions_to_do[0]
return action, None

View File

@ -23,9 +23,6 @@ class MultiBoustrophedon(Boustrophedon):
self.charges = charges
self.finished_idx = [False for _ in range(ship_num)]
#self.ship_energy = ship_energy
#self.current_ship_energy = [ship_energy for _ in range(self.ship_num)]
self.delta_x = (0, 0, 1, -1, ) # 1, 1, -1, -1)
self.delta_y = (1, -1, 0, 0, ) # 1, -1, 1, -1)

View File

@ -43,8 +43,6 @@ class MultiGreedy(Boustrophedon):
if self.charges[i].empty():
redecide_directions[i] = True
continue
# Decide whether charge or not
first_charge_act, charge_len = self.charges.step(state, info, i)
if first_charge_act == FINISHED:
self.finished_idx[i] = True

View File

@ -18,13 +18,10 @@ class MultiSpiral(Spiral):
):
super().__init__()
self.ship_num = ship_num
# self.dest_direction = [None for _ in range(ship_num)]
self.wildfires = wildfires
self.charges = charges
self.finished_idx = [False for _ in range(ship_num)]
#self.ship_energy = ship_energy
#self.current_ship_energy = [ship_energy for _ in range(self.ship_num)]
self.delta_x = [0, 0, 1, -1, 1, 1, -1, -1]
self.delta_y = [1, -1, 0, 0, 1, -1, 1, -1]

View File

@ -149,7 +149,6 @@ class Spiral(object):
"""
return _turn(direction)
else:
# print(f'not turn')
return direction
def step(self, state, info):

View File

@ -7,8 +7,8 @@ class WildFire(object):
def __init__(self):
super().__init__()
self.actions_to_do = []
self.delta_x = (0, 0, 1, -1, ) # 1, 1, -1, -1)
self.delta_y = (1, -1, 0, 0, ) # 1, -1, 1, -1)
self.delta_x = (0, 0, 1, -1, )
self.delta_y = (1, -1, 0, 0, )
@ staticmethod
def _is_valid_index(index, an_array):

View File

@ -1,5 +1,4 @@
import numpy as np
import random
from math import acos, asin

View File

@ -17,7 +17,6 @@ def generate_agent_fields(fields, ship_num, splited_areas):
for _ in range(ship_num)], axis=0)
for ship_id in range(1, ship_num+1):
cur_fields = agents_fields[ship_id-1]
# print((splited_areas != ship_id) * (splited_areas != -1))
cur_fields[(splited_areas != ship_id) * (splited_areas != -1)] += 1
return agents_fields

View File

@ -4,16 +4,16 @@ SeAI Palette集智调色板是面向集群网络的多节点智能协同路径
集智调色板软件设计了参数输入模块、算法运行模块及信息输出模块,在不同节点数量要求的前提下划分区域方向,按区域进行算法的运行。并可以综合考虑固定节点、覆盖率、电池容量等条件下,给出运行步数、重复步数和重复率等等性能指标。
软件界面简单,易学用,包含参数的输入选择,程序的运行,算法结果的展示等,源代码公开,算法可修改。
软件界面简单,易学用,包含参数的输入选择,程序的运行,算法结果的展示等,源代码公开,算法可修改。
开发人员:H.P. Yu、K. Wang、J. Li、H.T. Li、Z.Q. Wang、Z.Y. Zhao、L.F. Zhang、G. Chen
开发人员:王凯、于化鹏、李晶、王兆琦、李慧涛、赵志允、张乐飞、陈光
## 1. 开发环境配置
运行以下命令:
```bash
conda env create -f create_env.yaml
```
该命令会创建一个名为`Palette`的conda虚拟环境`conda activate Palette`即可激活该虚拟环境。
该命令会根据create_env.yaml配置文件创建一个名为`Palette`的conda虚拟环境继续输入`conda activate Palette`即可激活该虚拟环境。
## 2. 软件运行
@ -21,7 +21,6 @@ conda env create -f create_env.yaml
```python
python main_tt.py
```
## 3. 一些说明
1. 程序输出的说明

View File

@ -3,7 +3,6 @@ from MainWindow_map import Ui_MainWindow
from PyQt5 import QtWidgets, QtCore, QtSql, QtGui
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import QPixmap
import threading, time, subprocess
@ -122,6 +121,5 @@ class mywindow(QtWidgets.QMainWindow, Ui_MainWindow):
if __name__ == '__main__':
app = QApplication(sys.argv)
window = mywindow()
# window.showMaximized()
window.show()
sys.exit(app.exec_())