分布式深度优先搜索

2023-12-29

我尝试在 C# 中实现深度优先搜索,但我不太确定如何以分布式计算方式执行此操作。如果你们能帮我解决这个问题,我将非常感激:) 你可以在下面找到我的 DFS 代码

public class DFS
{ 
static List<string> traversedList = new List<string>();
static List<string> parentList = new List<string>();

public static void Main(string[] args)
{

    int N = 100;
    int M = N * 4;
    int P = N * 16;

    Stack newstack = new Stack();

    List<string> global_list=new List<string>();

    StreamReader file = new StreamReader("my input file");

    string text = file.ReadToEnd();

    string[] lines = text.Split('\n');

    string[][] array1 = new string[lines.Length][];

    for (int i = 0; i < lines.Length; i++)
    {
        lines[i] = lines[i].Trim();
        string[] words = lines[i].Split(' ');

        array1[i] = new string[words.Length];

        for (int j = 0; j < words.Length; j++)
        {
            array1[i][j] = words[j];
        }
    }

    StreamWriter sr = new StreamWriter(args[0]);

    for (int i = 0; i < array1.Length; i++)
    {
        for (int j = 0; j < array1[i].Length; j++)
        {
            if (j != 0 )
            {
                sr.Write(array1[i][0] + ":" + array1[i][j]);
                Console.WriteLine(array1[i][0] + ":" + array1[i][j]);
                sr.Write(sr.NewLine);
            }
        }

    }

    int start_no = Convert.ToInt32(args[args.Length-1]);

    traversedList.Add(start_no.ToString());
    parentList.Add("root");
    dfs(array1, start_no);

    for (int z = 0; z < traversedList.Count; z++)
    {
            Console.WriteLine(traversedList.ElementAt(z) + " "+parentList.ElementAt(z)+" "+(z+1));
     }
    Console.ReadLine();
}

private static void dfs(string[][] array, int point)
{
    for (int z = 1; z < array[point].Length; z++)
        {
            if ((!traversedList.Contains(array[point][z])))
            {
                traversedList.Add(array[point][z]);
                parentList.Add(point.ToString());
                dfs(array, int.Parse(array[point][z]));
            }
        }
        return;
}   

}


您应该阅读计算机国际象棋(现已发展为世界冠军计算机化游戏玩家)世界的文献。他们从事分布式深度优先搜索已有大约 30 年的历史,并且有很多想法。要做到正确是很棘手的,因为您必须均匀地分配工作,而不知道特定分支可能包含多少工作。

查看蒙蒂·纽博恩 http://en.wikipedia.org/wiki/Monty_Newborn或者麦吉尔大学,大约十年前,它似乎是这种现象的温床。

当然,GIYF:“分布式深度优先搜索”产生了对这篇论文的引用:深度优先搜索的分布式算法 http://dimacs.rutgers.edu/~havas/TR0283.pdf。我猜它包含了很多来自计算机国际象棋世界的想法。

*共享内存”DFS 的问题稍微简单一些;您不必向分布式助手发送消息,您只需传递一个指针即可:-}拥有一种为您提供并行性并管理爆炸性并行性的语言会有所帮助如果你的程序在每个分支上分叉,就会出现增长。我提供了一个4x4 N 谜题求解器示例 https://stackoverflow.com/a/1866161/120163用我设计的并行编程语言构建的。 (这个例子是我最早的 SO 帖子之一!)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分布式深度优先搜索 的相关文章

  • 以 ISO 8601 格式输出日期

    如何在 C 中获取以下格式的日期 2016 04 26T19 50 48Z include
  • 求 a 范围内的 pow(a^b)modN

    对于给定的b and N以及一系列a say 0 n 我需要找到ans 0 n 1 where ans i 没有a s为此pow a b modN i 我在这里搜索的是可能的重复pow a b modN对于一系列a 以减少计算时间 例子 i
  • 在子目录中构建共享库

    我正在尝试构建一个使用一些 C 代码的 R 包 我有一个编译为可执行文件的 C 库 可以从命令行调用 有一个与之关联的 Makefile 我正在尝试获取信息here http cran r project org doc manuals R
  • 以编程方式更改 Excel 中的字体(Trebuchet MS、Calibari)C#

    我目前正在使用一个 C 应用程序 该应用程序有一个将生成 Excel 文件的类 一切都很顺利 Excel 工作表上填充的数据具有 Times New Roman 字体 我想将其更改为其他字体 Calibari 我怎样才能以编程方式做到这一点
  • 如何将 CroppedBitmap 转换为 BitmapImage

    我正在尝试将 CroppedBitmap 转换为 BitmapImage 编辑 不使用内存流 我尝试过直接转换它 似乎这不是一个选择 这应该没那么难 我正在尝试剪切 BitmapImage 的一部分 并创建一个仅包含新裁剪的 Bitmap
  • C# Visual Studio 动态代码片段

    我正在开发一个 WinForms 项目 每天都会执行一些重复性的任务 所以我认为创建代码片段 https msdn microsoft com en us library ms165394 v vs 110 aspx会帮助我 但它仅适用于固
  • 用 C# 中的字典中的值替换字符串中的单词

    我有一个简单的dictionary像这样 var fruitDictionary new Dictionary
  • 如何在 C++ 中从模板基类的构造函数调用模板超类的构造函数?

    我正在使用 sublimetext3 用 c 进行编程 我的程序有一个名为 Array 的超类和一个名为 IntArray 的子类 这两个类都是模板类 目前 我在编译该程序时遇到问题 它不断在我的 IntArray cpp 文件中给出错误
  • MVVM 同步集合

    是否有一种标准化方法可以将 Model 对象集合与 C 和 WPF 中匹配的 ModelView 对象集合同步 我正在寻找某种类 可以使以下两个集合保持同步 假设我只有几个苹果 并且可以将它们全部保存在内存中 换句话说 我想确保如果我将 A
  • 用于 C/C++ 的独立跨平台 (Windows/Linux) 文件压缩?

    我正在寻找一个 最好是小的 C 或 C 开源库 我可以将其包含在我的 MIT 许可项目中 托管在 google 代码上 我是一名业余爱好 C C 程序员 所以我并不那么先进 但我只知道为名为 SA MP 的应用程序 适用于 Windows
  • 解析通过asp:FileUpload上传的XML文件

    我有一个场景 用户将上传 XML 文件 我想将该文件添加到数据库中的表中 不过 困难的部分是我需要解析文件 然后将一些信息添加到一些不同的表中 显示如何获取 XML 文件的每个示例都使用 URI 来获取文件 但是如何直接从数据库获取文件 或
  • 第三方引用的 dll 未被复制来构建

    我有一个第三方 net dll 被我的 dll 类库项目 A 引用和使用 我的控制台应用程序项目 B 引用项目 A 我的问题是第三方 dll 没有被复制到控制台应用程序项目 B 的构建中 这里有什么问题呢 我的 dll 类库中引用的第三方
  • 除法时的小数舍入误差 (C#)

    我基本上有四个数字 比如 100 200 300 400 我需要计算概率为 100 100 200 300 400 200 100 200 300 400 等等在 当我使用小数数据类型来存储这些概率时 由于舍入问题 它们不会达到 1 在不使
  • 实体框架中的导航属性是什么

    我是实体框架的新手 当Visual Studio创建模型图时我们主要可以看到Entities Propertie和Navigation Properties这两个东西 那么这些Navigation Properties是什么 如何使用它们
  • 链接错误:xxx 已在 *****.LIB 中定义:: 究竟出了什么问题?

    Problem 我正在尝试使用一个名为DCMTK http dicom offis de dcmtk它使用了一些其他外部库 zlib libtiff libpng libxml2 libiconv 我已经从同一网站下载了这些外部库 LIB
  • 在 C# 中为 ListBox 分配数据源时,如何从 ListBox 中删除所选项目?

    在 C 中为 ListBox 分配数据源时 如何从 ListBox 中删除所选项目 尝试删除时出现错误 设置 DataSource 属性后 无法修改项目集合 但是当我尝试从数据源 数据表 中删除项目时 它会抛出错误 因为 数据行不在当前行集
  • 更快的 WinSock sendto()

    我使用的是 Windows Server 2008 我的程序是用 C 编写的 我在 while true 循环中使用 WinSock2 和 sendto 来发送数据包 代码如下 while true if c snd gt max c sn
  • 使用反射检测属性的访问修饰符类型

    我编写了一些代码来使用反射查看属性 我已经使用反射从类中检索了属性列表 但是我需要查明该财产是公共的还是受保护的 例如 public string Name get set protected int Age get set Propert
  • 如何以一对一/零关系更新员工和身份用户

    我正在尝试更新员工记录 也想更新身份用户 如果我先单独更新身份用户 例如 UserManager Update user Context Entry employee State System Data Entity EntityState
  • 有关 Endian 性和 .Net 的详细信息?

    我有几个关于字节顺序的问题 这些问题足够相关 我保证将它们作为一个问题提出 1 字节顺序是由 Net还是由硬件决定的 2 如果是由硬件决定的 我怎样才能在C 中找出硬件的字节序 3 字节序是否影响二进制交互 例如 OR AND OR 或移位

随机推荐

  • ASP.NET MVC 5身份应用程序用户作为外键

    我知道 Visual Studio 2013 明天将正式发布 希望会有更多随附文档 特别是有关 ASP NET Identity 的文档 我希望与此同时有人可以帮助我 我想做的就是获取当前登录用户的 UserID 作为我称为 Retaile
  • jQuery:复选框不会失去焦点(模糊)[IE]

    我有一个脚本 可以让表格行在单击复选框后移动到顶部 在这里查看我的问题 jQuery 将表格行移动到第一个位置然后返回 https stackoverflow com questions 9699081 jquery move table
  • 高效实现一系列矩阵向量乘积/特定“张量”矩阵乘积

    我有一个特殊的算法 作为最后的步骤之一 我需要执行 3 D 数组与 2 D 数组的乘法 以便 3 D 数组的每个矩阵切片与 3 D 数组的每一列相乘 二维数组 换句话说 如果说A is an N x N x N矩阵和B is an N x
  • 解析这种json字符串化字符串 "{\"value\":[\"18\"]}"

    我就是想不通这个问题 已经尝试使用 JsonConvert SerializeObject item 我也得到了一个奇怪的字符串 如何从这个字符串化字符串中取出价值 value 18 Edit 这是我将其字符串化的地方 var data n
  • 在 eclipse 中更新我的 gradle 依赖项

    我的 eclipse 中有一个简单的 gradle 项目 我更新了 build gradle 以包含一些 apache http jar dependencies compile group commons collections name
  • 对不同类别运行多个卡方检验

    我有二进制数据 具体取决于个人是否通过 未通过测试 以及 df data 中的特征信息 例如性别 以及他们属于哪个部门 例如 x y z head data 9 department gender pass x Male 1 y Femal
  • Eclipse 增量生成器插件不起作用

    我最近开始在 Eclipse RCP 4 2 1 Juno 上使用 Eclipse 的插件开发环境 我使用增量构建器模板创建了一个项目 我的目标是在 Java 构建结束后对用户代码执行构建过程 问题是 我不知道如何使用生成器 我尝试将项目导
  • 提取 MS 访问表并将其放入 python 中的数据框中

    我尝试了许多不同的方法来从 Access 中提取数据并将其放入一个整洁的数据框架中 现在我的代码看起来像这样 from pandas import DataFrame import numpy as np import pyodbc fro
  • Unity 中的 NuGet 包

    我想在 Unity 中使用一些 NuGet 包 我根据这篇文章实现了Unity找到下载的DLL https www what c ould possible go wrong com unity and nuget https www wh
  • 仅从类层次结构中检索超类

    我有一个场景如下 Entity Table name ANIMAL Inheritance strategy InheritanceType JOINED public class Animal implements Serializabl
  • 有没有办法用一种类型声明多个函数参数?

    我对编程很陌生 无法真正理解为什么我不能只声明参数 类型与我处理普通变量的方式相同 并且必须一次又一次地声明类型 我的意思是 为什么我必须 Func int a int b float c 代替 Func int a b float c 当
  • 如何将 Syntastic 设置为 python3 检查器而不是 python2

    在 MacVim 中 我将以下代码保存为 test py print Hello world python2 这对于 python3 来说显然是错误的 但是 我运行 w 保存文件后 没有错误消息 以下是 vimrc 的一部分 都是关于 Sy
  • 如何在 Xamarin.android 中更改输入光标颜色

    在我的应用程序中需要更改 xamarin android 条目默认颜色 在我的应用程序中 背景图像是黑色 xamarin android 中条目的默认颜色也是相同的颜色 因此需要设置不同的颜色 请就此提出任何想法 我正在尝试以下代码 但没有
  • 在 Azure 自动化 Runbook 中执行时 Set-AzureRmContext 错误

    Update 似乎其他人也遇到了同样的问题reported https feedback azure com forums 246290 automation suggestions 16304161 add azurermaccount
  • 如何将 .sql 文件加载到 Scala?

    我有一个很长的 SQL 查询存储在 data sql 文件中 我想在我的 Scala 代码中执行这个文件 对于 sqlQuery 字符串 我使用 Spark sql sqlQuery 来执行 sql 但是对于 sql 文件 我应该如何执行它
  • 如何制作倒置的边框半径(反应本机)?

    我怎样才能在react native中做出这样的形状 在CSS中 解决方案之一是使用 webkit mask image 但我不知道如何在react native中做到这一点 倒边界半径 https i stack imgur com Yj
  • Realm Cocoa:通过 PK 查找多个对象

    潜伏已久 第一次提问 我在一个项目中使用 Realm Cocoa 来自 Realm io 并且正在努力通过 PK 执行搜索 假设我有一个名为RLMFoo它有一个主键称为bar 我还有一个 PK 列表 假设存储在一个数组中 NSArray p
  • 面试题:在php中,是123==0123吗?

    我已经回答了 这是假的 然后他问为什么 我无法回答 有人能回答吗 我很有兴趣学习它 这段代码 var dump 123 var dump 0123 会给你 int 123 int 83 这是因为0123是八进制表示法 因为0在开始时 whi
  • Erlang 和 JavaScript MD5 摘要匹配

    在这里测试 MD5 的 Javascript 实现 http www webtoolkit info javascript md5 htmlhttp www webtoolkit info javascript md5 html http
  • 分布式深度优先搜索

    我尝试在 C 中实现深度优先搜索 但我不太确定如何以分布式计算方式执行此操作 如果你们能帮我解决这个问题 我将非常感激 你可以在下面找到我的 DFS 代码 public class DFS static List