资源简介
分支界限算法解决作业分配问题 利用C#语言实现
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;
namespace job
{
class Program
{
int njob; //工人数量、作业数量
int[] job; //分配给操作员的作业,用作最后的输出
int[] cost; //工人完成作业的时间
[Serializable()] //标记为可序列化的
struct Node
{
public int[] job; //分配给操作员的作业
public int time; //当前搜索深度下已分配的作业所需的时间
public int bound; //当前节点的时间下界
}
static List list = new List();//存储节点的列表
//结构体中含有数组,实现两个结构体赋值时是变量复制的形式
public static T DeepClone(T obj)
{
using (var ms = new MemoryStream())
{
var formatter = new BinaryFormatter();
formatter.Serialize(ms obj);
ms.Position = 0;
return (T)formatter.Deserialize(ms);
}
}
//对列表冒泡排序
static void Sort(List list)
{
Node temp;
for (int i = 0; i < list.Count - 1; i++)
{
for (int j = 1; j < list.Count - i; j++)
{
if (list[j - 1].bound > list[j].bound)
{
temp = list[j];
list[j] = list[j - 1];
list[j - 1] = temp;
}
}
}
}
public static int JobAssign(int[] c int n int[] job)
{
Node xNode;
Node yNode;
int bound = 10000000;
int k = 0; //搜索深度
xNode = new Node();
xNode.job = new int[n];
for (int i = 0; i < n; i++)
{
xNode.job[i] = -1; //job[i]元素值为-1表示员工i还没有分配工作
}
xNode.time = xNode.bound = 0;
while (k != n)
{
for (int i = 0; i < n; i++)
{
if (xNode.job[i] == -1)
{
yNode = new Node();
yNode = DeepClone(xNode);
yNode.job[i] = k;
yNode.time += c[i k];
yNode.bound = yNode.time;
for (int j = k + 1; j < n; j++)
{
int min = 1000000;
for (int m = 0; m < n; m++)
{
if (yNode.job[m] == -1 && c[m j] <= min)
{
min = c[m j];
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 187 2015-05-25 10:05 job\job\App.config
文件 7168 2015-05-25 10:18 job\job\bin\Debug\job.exe
文件 187 2015-05-25 10:05 job\job\bin\Debug\job.exe.config
文件 15872 2015-05-25 10:18 job\job\bin\Debug\job.pdb
文件 22984 2015-05-25 10:18 job\job\bin\Debug\job.vshost.exe
文件 187 2015-05-25 10:05 job\job\bin\Debug\job.vshost.exe.config
文件 490 2012-06-06 02:06 job\job\bin\Debug\job.vshost.exe.manifest
文件 2547 2015-05-25 10:05 job\job\job.csproj
文件 6466 2015-05-25 10:05 job\job\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 257 2015-05-25 10:18 job\job\obj\Debug\job.csproj.FileListAbsolute.txt
文件 7168 2015-05-25 10:18 job\job\obj\Debug\job.exe
文件 15872 2015-05-25 10:18 job\job\obj\Debug\job.pdb
文件 0 2015-05-25 10:05 job\job\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
文件 0 2015-05-25 10:05 job\job\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
文件 0 2015-05-25 10:05 job\job\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
文件 4783 2015-05-25 10:21 job\job\Program.cs
文件 1326 2015-05-25 10:05 job\job\Properties\AssemblyInfo.cs
文件 899 2015-05-25 10:05 job\job.sln
..A..H. 19968 2015-05-25 10:21 job\job.v11.suo
目录 0 2015-05-25 10:05 job\job\obj\Debug\TempPE
目录 0 2015-05-25 10:21 job\job\bin\Debug
目录 0 2015-05-25 10:21 job\job\obj\Debug
目录 0 2015-05-25 10:21 job\job\bin
目录 0 2015-05-25 10:21 job\job\obj
目录 0 2015-05-25 10:21 job\job\Properties
目录 0 2015-05-25 10:21 job\job
目录 0 2015-05-25 10:21 job
----------- --------- ---------- ----- ----
106361 27
............此处省略0个文件信息
- 上一篇:基于QT4的列车时刻表查询系统
- 下一篇:自己写的51单片机基本程序,适合初学者
评论
共有 条评论