QCES项目Windows平台运行指南
一、图表生成机制说明
本项目中的所有图表都是通过运行MATLAB代码自动生成的,而不是手动绘制的。图表生成的基本流程是:首先运行算法实验收集数值结果(包括fitness、time、feasibility等指标),然后对这些数据进行统计分析(计算mean、std、median等统计量),接着使用MATLAB的绘图命令(如plot、bar、boxplot等)创建可视化图表,最后保存为图片文件(支持PDF、PNG、EPS等格式)。这一完整流程确保了实验结果的可复现性和图表的标准化。
二、可生成的图表类型
根据项目现有的图表文件,总共可以生成三大类图表。(1)IEEE论文用的5个标准图,包括ieee_convergence.pdf收敛曲线图(展示3维度×2算法的收敛速度对比)、ieee_boxplot.pdf适应度分布箱线图(展示解质量的统计分布)、ieee_feasibility.pdf可行率对比柱状图(这是核心图表,直观展示100%对比0%的显著优势)、ieee_time.pdf计算时间对比图(展示算法的计算效率)、ieee_first_feasible.pdf首次可行迭代对比图(展示算法达到可行域的速度)。(2)主实验综合分析图main_paper_results_20251016_123210.pdf,这是一个包含6个子图的综合版本,整合了主要实验结果的全面展示。(3)30次统计测试图,包括统计分析_20251016_081106.png(6子图统计分析,使用中文标注)和适应度分布_20251016_081106.png(3维度适应度分布直方图)。
三、环境准备要求
在Windows平台上运行本项目需要满足以下环境要求。(1)安装MATLAB R2021a或更高版本。(2)确保已安装必需的MATLAB工具箱,特别是Optimization Toolbox(用于fmincon函数)和Statistics and Machine Learning Toolbox(用于ranksum等统计函数)。可以在MATLAB命令窗口中输入ver命令查看已安装的工具箱列表。(3)确保代码文件夹具有读写权限,特别是figures文件夹和results文件夹需要有写入权限以保存生成的图表和数据文件。
四、代码路径设置
首先需要解压代码包并在MATLAB中设置正确的工作路径。在MATLAB命令窗口中执行cd命令切换到实验脚本所在目录,例如cd(‘C:\Users\Student\Desktop\QCES\code\experiments’)。然后运行startup脚本,该脚本会自动将所有必需的子文件夹(algorithms、problems、utils等)添加到MATLAB搜索路径中。可以使用pwd命令验证当前工作目录是否正确,应该显示为QCES\code\experiments路径。
五、快速生成论文主图方案
如果只需要生成论文使用的5个IEEE标准图,可以采用快速方案。(1)首先运行mainPaperExperiments()函数,该函数会执行主对比实验,包括QCES_Advanced和PenaltyQGA两个算法在D=5、10、20三个维度上各运行30次,总共180次独立运行。这个过程大约需要10到15分钟,完成后会在results文件夹中生成main_paper_experiments_[时间戳].mat数据文件。(2)然后运行generateIEEEFigures()函数,该函数会自动加载最新的实验数据并生成5个IEEE格式的标准图表。这个过程大约需要1分钟,完成后会在figures文件夹中生成ieee_convergence.pdf、ieee_boxplot.pdf、ieee_feasibility.pdf、ieee_time.pdf和ieee_first_feasible.pdf五个文件,同时还会生成对应的EPS格式高分辨率版本。
六、完整实验流程方案
如果需要生成所有图表和完整的实验分析结果,应按以下顺序执行完整流程。(1)阶段一快速验证,运行quickVerification()函数,该函数会快速测试算法是否能正常工作,大约需要5分钟,不生成图表文件但会在命令窗口输出验证结果。(2)阶段二30次统计测试,运行run30TimesStatistics()函数,对QCES_Advanced算法在三个维度上各进行30次独立运行,大约需要30到60分钟,会生成统计分析_[时间戳].png(包含6个子图的综合分析)和适应度分布_[时间戳].png(3个维度的适应度分布直方图)两个图表文件。(3)阶段三主文对比实验,运行mainPaperExperiments()函数,执行完整的算法对比实验,大约需要10到15分钟,会生成main_paper_results_[时间戳].pdf和对应的PNG格式文件。(4)阶段四生成IEEE标准图,运行generateIEEEFigures()函数,基于主实验数据生成5个IEEE标准格式图表,大约需要1分钟。(5)阶段五附录实验,这是可选步骤,包括运行appendixA_ParameterSensitivity()进行参数敏感性分析、运行appendixA_StrictConstraints()进行严格约束测试、运行ablationExperiment_Advanced()进行消融实验,每个实验大约需要20到30分钟,分别会生成对应的图表文件。
七、图表生成代码示例
以生成IEEE收敛曲线为例说明图表生成的具体过程。该过程在generateIEEEFigures.m文件中实现,具体步骤包括:(1)使用load函数加载之前保存的实验数据文件main_paper_experiments_20251016_123210.mat。(2)从数据结构中提取每次运行的收敛历史convergenceHistory,对30次运行的收敛曲线进行累加求平均。(3)使用plot函数绘制平均收敛曲线,设置线宽为1.5,添加xlabel和ylabel标签。(4)使用print函数将图形保存为ieee_convergence.pdf文件,设置分辨率为300 dpi确保高质量输出。这个过程完全自动化,无需人工干预。
八、Windows平台特别注意事项
在Windows平台上运行代码需要注意以下几点。(1)路径分隔符问题,Windows使用反斜杠\而macOS和Linux使用正斜杠/,但MATLAB会自动处理这种差异,因此代码不需要修改。(2)中文路径问题,如果代码路径中包含中文字符可能会导致运行错误,建议使用纯英文路径,例如使用C:\Users\Student\Desktop\QCES\code而不是C:\用户\学生\桌面\QCES\code。(3)文件夹权限问题,确保figures文件夹和results文件夹具有写入权限,否则保存图表和数据文件时会报错。如果遇到权限问题,可以右键点击文件夹选择属性,在安全选项卡中修改权限设置。
九、生成结果验证
运行generateIEEEFigures()函数完成后,MATLAB命令窗口会显示确认信息,包括"All IEEE figures generated successfully!"以及生成文件的列表。此时应该在QCES\code\figures文件夹中看到10个新生成的文件:ieee_convergence.pdf和ieee_convergence.eps、ieee_boxplot.pdf和ieee_boxplot.eps、ieee_feasibility.pdf和ieee_feasibility.eps、ieee_time.pdf和ieee_time.eps、ieee_first_feasible.pdf和ieee_first_feasible.eps。PDF格式文件大小通常在30到200 KB之间,EPS格式文件较大通常在600 KB到1.2 MB之间。可以使用PDF阅读器打开这些文件验证图表内容是否正确生成。
十、常见问题及解决方案
在运行过程中可能遇到以下问题。(1)如果运行时报错提示找不到文件,首先使用pwd命令查看当前工作目录是否正确,应该显示为QCES\code\experiments路径。如果路径不正确,需要使用cd命令重新切换到正确目录并运行startup脚本重新设置路径。(2)如果生成的图表是空白的或者没有数据,这通常是因为没有先运行主实验生成数据文件。必须先运行mainPaperExperiments()生成实验数据,然后才能运行generateIEEEFigures()生成图表。(3)如果图表中的中文显示为乱码,需要在MATLAB中设置正确的字体。可以使用set(0, ‘DefaultAxesFontName’, ‘SimHei’)和set(0, ‘DefaultTextFontName’, ‘SimHei’)命令设置默认字体为黑体,这样可以正确显示中文字符。(4)如果运行过程中出现内存不足的提示,可以尝试关闭其他占用内存的程序,或者减少实验的运行次数,例如将numRuns从30改为20。
十一、精简执行指令
为方便学生快速生成论文图表,提供以下精简指令。在MATLAB命令窗口中依次执行:cd(‘你的代码实际路径\QCES\code\experiments’)切换到实验目录,startup运行启动脚本设置路径,mainPaperExperiments()运行主实验等待10到15分钟,generateIEEEFigures()生成IEEE图表等待1分钟,完成后查看figures文件夹中的图表文件。这个流程已经过充分测试,在Windows平台上与macOS平台完全一致,不需要修改任何代码即可正常运行。
十二、代码兼容性说明
本项目的MATLAB代码在Windows、macOS和Linux平台上完全兼容,不需要针对不同操作系统进行修改。这是因为:(1)所有文件路径操作都使用MATLAB的跨平台函数,如fullfile、filesep等,这些函数会自动适配不同操作系统的路径分隔符。(2)图表生成使用MATLAB的标准绘图函数,这些函数在所有平台上行为一致。(3)数据保存和加载使用MAT文件格式,这是MATLAB的原生格式,在所有平台上都能正常读写。(4)随机数生成使用rng函数设置种子,确保在不同平台上运行结果完全可复现。因此学生在Windows上运行代码得到的结果,应该与在macOS上运行得到的结果在数值上完全一致,生成的图表也应该完全相同。
十三、输出文件位置说明
所有生成的文件都保存在固定的位置便于查找。(1)实验数据文件保存在QCES\code\results文件夹中,文件名包含时间戳以避免覆盖,例如main_paper_experiments_20251016_123210.mat。(2)图表文件保存在QCES\code\figures文件夹中,包括所有的PDF、PNG、EPS和FIG格式文件。(3)LaTeX表格代码保存在QCES\code\results文件夹中,文件名为main_paper_tables_[时间戳].tex,可以直接复制到LaTeX论文中使用。(4)文本格式的统计报告保存在QCES\code\results文件夹中,文件名为统计测试30次_[时间戳].txt,包含详细的统计摘要信息。所有带时间戳的文件都使用yyyymmdd_HHMMSS格式,例如20251016_123210表示2025年10月16日12点32分10秒,这样便于追踪和版本管理。
十四、实验数据结构说明
保存在MAT文件中的实验数据采用结构化组织方式。主数据结构allResults包含多个字段,每个字段对应一个算法-维度组合,字段名格式为AlgorithmName_Ddimension,例如QCES_Advanced_D10表示QCES_Advanced算法在10维问题上的结果。每个字段又包含多个子字段:dimension记录问题维度,fitness是30×1的向量记录每次运行的最终适应度值,violation是30×1的向量记录约束违反度,feasible是30×1的逻辑向量记录是否可行,time是30×1的向量记录每次运行的计算时间,convergenceHistory是30×1的元胞数组记录每次运行的完整收敛历史,statistics是统计摘要结构体包含feasibilityRate可行率、meanFitness平均适应度、stdFitness标准差、minFitness最小值、maxFitness最大值、medianFitness中位数、meanTime平均时间等统计指标。这种数据结构设计便于后续的分析和可视化处理。# QCES项目Windows平台运行指南
一、图表生成机制说明
本项目中的所有图表都是通过运行MATLAB代码自动生成的,而不是手动绘制的。图表生成的基本流程是:首先运行算法实验收集数值结果(包括fitness、time、feasibility等指标),然后对这些数据进行统计分析(计算mean、std、median等统计量),接着使用MATLAB的绘图命令(如plot、bar、boxplot等)创建可视化图表,最后保存为图片文件(支持PDF、PNG、EPS等格式)。这一完整流程确保了实验结果的可复现性和图表的标准化。
二、可生成的图表类型
根据项目现有的图表文件,总共可以生成三大类图表。(1)IEEE论文用的5个标准图,包括ieee_convergence.pdf收敛曲线图(展示3维度×2算法的收敛速度对比)、ieee_boxplot.pdf适应度分布箱线图(展示解质量的统计分布)、ieee_feasibility.pdf可行率对比柱状图(这是核心图表,直观展示100%对比0%的显著优势)、ieee_time.pdf计算时间对比图(展示算法的计算效率)、ieee_first_feasible.pdf首次可行迭代对比图(展示算法达到可行域的速度)。(2)主实验综合分析图main_paper_results_20251016_123210.pdf,这是一个包含6个子图的综合版本,整合了主要实验结果的全面展示。(3)30次统计测试图,包括统计分析_20251016_081106.png(6子图统计分析,使用中文标注)和适应度分布_20251016_081106.png(3维度适应度分布直方图)。
三、环境准备要求
在Windows平台上运行本项目需要满足以下环境要求。(1)安装MATLAB R2021a或更高版本。(2)确保已安装必需的MATLAB工具箱,特别是Optimization Toolbox(用于fmincon函数)和Statistics and Machine Learning Toolbox(用于ranksum等统计函数)。可以在MATLAB命令窗口中输入ver命令查看已安装的工具箱列表。(3)确保代码文件夹具有读写权限,特别是figures文件夹和results文件夹需要有写入权限以保存生成的图表和数据文件。
四、代码路径设置
首先需要解压代码包并在MATLAB中设置正确的工作路径。在MATLAB命令窗口中执行cd命令切换到实验脚本所在目录,例如cd(‘C:\Users\Student\Desktop\QCES\code\experiments’)。然后运行startup脚本,该脚本会自动将所有必需的子文件夹(algorithms、problems、utils等)添加到MATLAB搜索路径中。可以使用pwd命令验证当前工作目录是否正确,应该显示为QCES\code\experiments路径。
五、快速生成论文主图方案
如果只需要生成论文使用的5个IEEE标准图,可以采用快速方案。(1)首先运行mainPaperExperiments()函数,该函数会执行主对比实验,包括QCES_Advanced和PenaltyQGA两个算法在D=5、10、20三个维度上各运行30次,总共180次独立运行。这个过程大约需要10到15分钟,完成后会在results文件夹中生成main_paper_experiments_[时间戳].mat数据文件。(2)然后运行generateIEEEFigures()函数,该函数会自动加载最新的实验数据并生成5个IEEE格式的标准图表。这个过程大约需要1分钟,完成后会在figures文件夹中生成ieee_convergence.pdf、ieee_boxplot.pdf、ieee_feasibility.pdf、ieee_time.pdf和ieee_first_feasible.pdf五个文件,同时还会生成对应的EPS格式高分辨率版本。
六、完整实验流程方案
如果需要生成所有图表和完整的实验分析结果,应按以下顺序执行完整流程。(1)阶段一快速验证,运行quickVerification()函数,该函数会快速测试算法是否能正常工作,大约需要5分钟,不生成图表文件但会在命令窗口输出验证结果。(2)阶段二30次统计测试,运行run30TimesStatistics()函数,对QCES_Advanced算法在三个维度上各进行30次独立运行,大约需要30到60分钟,会生成统计分析_[时间戳].png(包含6个子图的综合分析)和适应度分布_[时间戳].png(3个维度的适应度分布直方图)两个图表文件。(3)阶段三主文对比实验,运行mainPaperExperiments()函数,执行完整的算法对比实验,大约需要10到15分钟,会生成main_paper_results_[时间戳].pdf和对应的PNG格式文件。(4)阶段四生成IEEE标准图,运行generateIEEEFigures()函数,基于主实验数据生成5个IEEE标准格式图表,大约需要1分钟。(5)阶段五附录实验,这是可选步骤,包括运行appendixA_ParameterSensitivity()进行参数敏感性分析、运行appendixA_StrictConstraints()进行严格约束测试、运行ablationExperiment_Advanced()进行消融实验,每个实验大约需要20到30分钟,分别会生成对应的图表文件。
七、图表生成代码示例
以生成IEEE收敛曲线为例说明图表生成的具体过程。该过程在generateIEEEFigures.m文件中实现,具体步骤包括:(1)使用load函数加载之前保存的实验数据文件main_paper_experiments_20251016_123210.mat。(2)从数据结构中提取每次运行的收敛历史convergenceHistory,对30次运行的收敛曲线进行累加求平均。(3)使用plot函数绘制平均收敛曲线,设置线宽为1.5,添加xlabel和ylabel标签。(4)使用print函数将图形保存为ieee_convergence.pdf文件,设置分辨率为300 dpi确保高质量输出。这个过程完全自动化,无需人工干预。
八、Windows平台特别注意事项
在Windows平台上运行代码需要注意以下几点。(1)路径分隔符问题,Windows使用反斜杠\而macOS和Linux使用正斜杠/,但MATLAB会自动处理这种差异,因此代码不需要修改。(2)中文路径问题,如果代码路径中包含中文字符可能会导致运行错误,建议使用纯英文路径,例如使用C:\Users\Student\Desktop\QCES\code而不是C:\用户\学生\桌面\QCES\code。(3)文件夹权限问题,确保figures文件夹和results文件夹具有写入权限,否则保存图表和数据文件时会报错。如果遇到权限问题,可以右键点击文件夹选择属性,在安全选项卡中修改权限设置。
九、生成结果验证
运行generateIEEEFigures()函数完成后,MATLAB命令窗口会显示确认信息,包括"All IEEE figures generated successfully!"以及生成文件的列表。此时应该在QCES\code\figures文件夹中看到10个新生成的文件:ieee_convergence.pdf和ieee_convergence.eps、ieee_boxplot.pdf和ieee_boxplot.eps、ieee_feasibility.pdf和ieee_feasibility.eps、ieee_time.pdf和ieee_time.eps、ieee_first_feasible.pdf和ieee_first_feasible.eps。PDF格式文件大小通常在30到200 KB之间,EPS格式文件较大通常在600 KB到1.2 MB之间。可以使用PDF阅读器打开这些文件验证图表内容是否正确生成。
十、常见问题及解决方案
在运行过程中可能遇到以下问题。(1)如果运行时报错提示找不到文件,首先使用pwd命令查看当前工作目录是否正确,应该显示为QCES\code\experiments路径。如果路径不正确,需要使用cd命令重新切换到正确目录并运行startup脚本重新设置路径。(2)如果生成的图表是空白的或者没有数据,这通常是因为没有先运行主实验生成数据文件。必须先运行mainPaperExperiments()生成实验数据,然后才能运行generateIEEEFigures()生成图表。(3)如果图表中的中文显示为乱码,需要在MATLAB中设置正确的字体。可以使用set(0, ‘DefaultAxesFontName’, ‘SimHei’)和set(0, ‘DefaultTextFontName’, ‘SimHei’)命令设置默认字体为黑体,这样可以正确显示中文字符。(4)如果运行过程中出现内存不足的提示,可以尝试关闭其他占用内存的程序,或者减少实验的运行次数,例如将numRuns从30改为20。
十一、精简执行指令
为方便学生快速生成论文图表,提供以下精简指令。在MATLAB命令窗口中依次执行:cd(‘你的代码实际路径\QCES\code\experiments’)切换到实验目录,startup运行启动脚本设置路径,mainPaperExperiments()运行主实验等待10到15分钟,generateIEEEFigures()生成IEEE图表等待1分钟,完成后查看figures文件夹中的图表文件。这个流程已经过充分测试,在Windows平台上与macOS平台完全一致,不需要修改任何代码即可正常运行。
十二、代码兼容性说明
本项目的MATLAB代码在Windows、macOS和Linux平台上完全兼容,不需要针对不同操作系统进行修改。这是因为:(1)所有文件路径操作都使用MATLAB的跨平台函数,如fullfile、filesep等,这些函数会自动适配不同操作系统的路径分隔符。(2)图表生成使用MATLAB的标准绘图函数,这些函数在所有平台上行为一致。(3)数据保存和加载使用MAT文件格式,这是MATLAB的原生格式,在所有平台上都能正常读写。(4)随机数生成使用rng函数设置种子,确保在不同平台上运行结果完全可复现。因此学生在Windows上运行代码得到的结果,应该与在macOS上运行得到的结果在数值上完全一致,生成的图表也应该完全相同。
十三、输出文件位置说明
所有生成的文件都保存在固定的位置便于查找。(1)实验数据文件保存在QCES\code\results文件夹中,文件名包含时间戳以避免覆盖,例如main_paper_experiments_20251016_123210.mat。(2)图表文件保存在QCES\code\figures文件夹中,包括所有的PDF、PNG、EPS和FIG格式文件。(3)LaTeX表格代码保存在QCES\code\results文件夹中,文件名为main_paper_tables_[时间戳].tex,可以直接复制到LaTeX论文中使用。(4)文本格式的统计报告保存在QCES\code\results文件夹中,文件名为统计测试30次_[时间戳].txt,包含详细的统计摘要信息。所有带时间戳的文件都使用yyyymmdd_HHMMSS格式,例如20251016_123210表示2025年10月16日12点32分10秒,这样便于追踪和版本管理。
十四、实验数据结构说明
保存在MAT文件中的实验数据采用结构化组织方式。主数据结构allResults包含多个字段,每个字段对应一个算法-维度组合,字段名格式为AlgorithmName_Ddimension,例如QCES_Advanced_D10表示QCES_Advanced算法在10维问题上的结果。每个字段又包含多个子字段:dimension记录问题维度,fitness是30×1的向量记录每次运行的最终适应度值,violation是30×1的向量记录约束违反度,feasible是30×1的逻辑向量记录是否可行,time是30×1的向量记录每次运行的计算时间,convergenceHistory是30×1的元胞数组记录每次运行的完整收敛历史,statistics是统计摘要结构体包含feasibilityRate可行率、meanFitness平均适应度、stdFitness标准差、minFitness最小值、maxFitness最大值、medianFitness中位数、meanTime平均时间等统计指标。这种数据结构设计便于后续的分析和可视化处理。
