• 大小: 49KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: C#
  • 标签: 模拟退火  

资源简介

这次程序使用C#语言,使用了人工智能中的模拟退火算法解决了八皇后的问题,界面也很完整,可以给出很完整的数据。

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace QueenFinal
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button4_Click(object sender EventArgs e)
        {
            Application.Exit();
        }

        private void button2_Click(object sender EventArgs e)
        {
            MessageBox.Show(“1.请输入皇后个数\n2.点击开始按钮进行计算\n3.点击退出退出程序“);
        }

        private void button3_Click(object sender EventArgs e)
        {
            MessageBox.Show(“it is love“);
        } 

        private void button1_Click(object sender EventArgs e)
        {
            QueenNum = int.Parse(this.textBox1.Text);
            if (QueenNum == 1) richTextBox1.Text += “解为1即只有一个皇后!“;
            else if (QueenNum > 3)
            {
                init(QueenNum);
                str = “Board dimension: “ + dim + “\n“;
                this.richTextBox1.Text += str;
                str = “Initial Conflicts: “ + getConflicts() + “\n“;
                this.richTextBox1.Text += str;
                solve(1000 0.99);
            }
            else this.richTextBox1.Text += “输入的皇后数无解!\n“;
        }

        public void init(int dimension)
        {
            dim = dimension;
            internalIter = 0;
            conflictPosition = 0;
            ran = new Random(); 
            board = new int[dim];
            test = new int[dim];
            for (int i = 0; i < dim; i++)
                {  
                    board[i] = i;                 //把所有皇后初始化在对角线上
                }
            for (int i = 0; i < dim; i++)
                test[i] = board[i];
                initialConflicts = currentConflicts = this.getConflicts();
        }

        public void solve(double inInitialTemperature double inCoolingCoefficient)
        {
            currentTemperature = inInitialTemperature;
            coolingCoefficient = inCoolingCoefficient;
            testQueen();
            if (dim <= 20)
            {
                display();
            }
            else
            {
                this.richTextBox1.Text +=“\nSolution found! Too large to print!\n“;
            }
        }
        private void testQueen()
        {
            int swap1 swap2;
            while(true)
            { //控制温度
                while(true)
                { //寻找一个合理的解
                    swap1 = findConflictPosition(); //first swap position: a conflict position
                    swap2 = ran.Next(dim); //second swap position: a random position
                    swap(swap1 swap2); //swap in array test[]
                    conflictsDifference = getConflictsDifference(swap1 swap2); //the differece after and before swap by comparing board[] and test

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      12800  2010-12-08 21:30  QueenFinal\bin\Debug\QueenFinal.exe

     文件      30208  2010-12-08 21:30  QueenFinal\bin\Debug\QueenFinal.pdb

     文件      14848  2010-12-29 19:35  QueenFinal\bin\Debug\QueenFinal.vshost.exe

     文件        490  2009-06-11 05:14  QueenFinal\bin\Debug\QueenFinal.vshost.exe.manifest

     文件       8816  2010-12-29 19:36  QueenFinal\Form1.cs

     文件       5485  2010-12-08 21:30  QueenFinal\Form1.Designer.cs

     文件       5817  2010-12-08 21:30  QueenFinal\Form1.resx

     文件       4440  2010-12-08 21:30  QueenFinal\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache

     文件       6163  2010-12-08 21:30  QueenFinal\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache

     文件        172  2010-12-08 21:30  QueenFinal\obj\x86\Debug\GenerateResource.read.1.tlog

     文件        454  2010-12-08 21:30  QueenFinal\obj\x86\Debug\GenerateResource.write.1.tlog

     文件        692  2010-12-29 19:35  QueenFinal\obj\x86\Debug\QueenFinal.csproj.FileListAbsolute.txt

     文件      12800  2010-12-08 21:30  QueenFinal\obj\x86\Debug\QueenFinal.exe

     文件        180  2010-12-08 21:30  QueenFinal\obj\x86\Debug\QueenFinal.Form1.resources

     文件      30208  2010-12-08 21:30  QueenFinal\obj\x86\Debug\QueenFinal.pdb

     文件        180  2010-12-08 21:30  QueenFinal\obj\x86\Debug\QueenFinal.Properties.Resources.resources

     文件       7897  2010-12-08 21:30  QueenFinal\obj\x86\Debug\ResolveAssemblyReference.cache

     文件        491  2010-12-08 21:30  QueenFinal\Program.cs

     文件       1352  2010-12-08 21:30  QueenFinal\Properties\AssemblyInfo.cs

     文件       2868  2010-12-08 21:30  QueenFinal\Properties\Resources.Designer.cs

     文件       5612  2010-12-08 21:30  QueenFinal\Properties\Resources.resx

     文件       1093  2010-12-08 21:30  QueenFinal\Properties\Settings.Designer.cs

     文件        249  2010-12-08 21:30  QueenFinal\Properties\Settings.settings

     文件       3679  2010-12-08 21:30  QueenFinal\QueenFinal.csproj

     文件        861  2010-12-08 21:30  QueenFinal\QueenFinal.sln

    ..A..H.     18432  2010-12-29 19:35  QueenFinal\QueenFinal.suo

     目录          0  2010-12-08 21:30  QueenFinal\obj\x86\Debug\TempPE

     目录          0  2010-12-08 21:30  QueenFinal\obj\x86\Debug

     目录          0  2010-12-08 21:30  QueenFinal\bin\Debug

     目录          0  2010-12-08 21:30  QueenFinal\obj\x86

............此处省略7个文件信息

评论

共有 条评论