Java Python CS360/SE360: Artificial Intelligence
Individual Written Assignment 1
1. Please read the following description and answer all the questions.
The diagram in (a) needs to show only those valid/necessary/useful states.
b. Represent all states in (a) and (b) using same 6-tuple (a tuple of 6 positive integers).
Mention the initial and final states also as 6-tuple. How many ways the solution can be
found? (Assume that only one missionary and one cannibal can row the boat).
2. Consider the problem 3.15 in the textbook.
What is the full search space size (assume k can be any positive integer)? If you had to choose,
would you pick breadth-first or depth-first search as a method for exploring a larger portion of
this state space? Explain your answer.
3. Imagine you have a state space where a state is represented by a tuple of three positive
integers (i,j,k), and you have three actions: decrease i by 1 (as long as i > 0), decrease j
by 1 (as long as j > 0), and decrease k by 1 (as long as k > 0). The goal state is (0,0,0).
Assume that a given search method does not revisit states it has already seen, and that
whenever there are multiple successors for a given state it first expands the state you get
from the action of decreasing i by 1 (if possible), then the action of decreasing j by 1,
then k.
a. What is the branching factor for this problem?
b. Is this state space a graph or a tree?
c. If the initial state is (2,2,2):
i. Draw the set of the state space that you can reach from this initial state.
Label the states with the upper-case letters A, B, C, …, from left to right,
top to bottom.
ii. List out the states with the upper-case letters A, B, C, …, to show the
order in which they would be expanded by depth-first search.
iii. List out the states with the upper-case letters A, B, C, …, to show the
order in which they would be expanded by breadth-first search.
iv. List out the states with the upper-case letters A, B, C, …, to showdai 写SE360、Java/c++ the
order in which they would be expanded by iterative deepening search.
d. If the initial state is (i,j,k), what is the time complexity, as a function of i, j, and k,
of:
i. Depth-first search
1
2
ii. Breadth-first search
4. Formulate Sudoku as a search problem. What are the states, actions, initial state, and
goal condition?
5. If h(s) is an admissible heuristic:
a. Is ℎ1(𝑠) = ℎ(𝑠)
0.7 an admissible heuristic?
b. Is ℎ2(𝑠) = ℎ(𝑠)
1.7 an admissible heuristic?
Please explain your answers.
6. Consider a graph with nodes A, B, C, D, E, F, G, and S. The start state is S and the goal
state is G. The edges in the graph are as follows: (A,B,4), (A,D,5), (A,S,2), (B,C,4), (B,E,6),
(B,F,3), (C,G,1), (D,E,3), (D,S,3), (E,F,4), (F,G,5). (The notation (A,B,4) means that there is
an edge between nodes A and B, and that the cost of traveling that edge is 4.)
Nodes should be expanded alphabetically if two or more nodes have the same evaluation cost.
Use the following table for the heuristic function:
n
S A B C D E F G
h(n) 10 7 3 1 5 4 2 0
Draw the graph first and then use Greedy Best First search to
a. List the nodes in the order they would be generated.
b. List the nodes that lie along the final correct path to the goal.
c. What is the cost of the solution? Is it optimal? Explain.
Requirements:
1. Type in your name, student number and class number (e.g., CS/SE-360 D?) at the top of
1
st page.
2. Use a word processor (e.g., MS word or others) to type your answers, save and print them
in hardcopy using A4 size papers and submit it to me on 18/3/2025 (for Tuesday Class),
19/3/2025 (for Wednesday class) and 20/3/2025 (for Thursday Class) in the class session.
3. Draw clearly the necessary diagrams as needed using a drawing tool.
4. For complexity analysis, represent it in terms of Big O.
5. All answers must be written in English. No Chinese answer is allowed
相关推荐
学长们的求职血泪史(C/C++/JAVA)
2014届校招基本慢慢收尾,现特将本人和小伙伴们的求职血泪史记录,并且推荐一些书籍供学弟学妹们参考,以壮我皇家理工之名。 首先得感谢百度的师兄,他教会了我很多东西,致以很深的谢意。另外还得感谢一起求职的小伙伴们,希望我们的经历能够给学弟学妹们一个参考。 以下分三个方向讲解,每个方向都是一个学长独自撰稿。 (一) C语言篇 C语言求职血泪史 华为(实习)
paip c++ 操作360浏览器总结
paip c++ 操作360浏览器总结
红队实战:绕过360/火绒,从Webshell到Cobalt Strike上线的完整免杀方案
在网络安全领域,终端检测与响应(EDR)和命令与控制(C2)是攻防对抗的核心概念。EDR通过监控端点行为来识别威胁,而C2则是攻击者用于远程控制受害主机的通信机制。其技术价值在于构建了现代威胁检测与隐蔽攻击的基础框架。在实战中,攻击者常需绕过EDR的静态与动态检测,将Webshell作为跳板,部署C2 Beacon以实现持久化控制。这涉及Webshell免杀、载荷生成、进程注入和流量伪装等多个环节,对红队人员的工程能力提出了较高要求。本文聚焦于在已部署360、火绒等安全软件的Windows服务器环境下,如何
Android面试汇总(百度+360+Tencent+淘宝+Qualcomm)
汇总笔者经历了一些来自百度,360,淘宝,腾讯,高通中国的电话面试及现场面试,还有笔试相关题目 百度:百度在北京中关村上地七街奎科科技大厦,不大但是很安静的一个办公地点。 百度技术面试分为两轮,第一轮基础技术面试,一般为项目负责人,主要考察基本知识及知识广度,第二轮面试一般为部门负责 人,主要考察技术深度。基础面试感觉个人答的还不错,主要询问了一些关于android基本知识的考察,涉及到Ac
拯救者Y9000P 2022双系统实战:Ubuntu22.04分区优化与驱动避坑指南
本文提供联想拯救者Y9000P 2022款安装Ubuntu 22.04双系统的详细实战指南。重点讲解针对该机型的磁盘分区优化方案、NVIDIA显卡驱动安装避坑技巧,以及安装后的网络、时间同步等必备配置,帮助用户高效完成双系统部署并提升使用体验。
oh-my-zsh详细安装与主题插件配置
使用Linux的小伙伴都知道默认shell是bash,但是对于喜欢折腾,喜欢酷炫的我们bash怎能够用。zsh的作为一种shell,功能更强大,但是配置复杂。后来,有大佬创建了一个名为oh-my-zsh的开源项目,使用方便,功能强大。 下面就去oh-my-zsh的配置。 ①安装zsh 想要安装oh-my-zsh,首先得安装zsh,输入命令 sudo apt-get install zsh 界面如下 ②查看是否安装成功 输入命令 zsh --version 可以查看安装zsh的版本..
【Java SE】第一章:Java的简介与简单的Java程序
本文以清晰的文字带大家初始Java,希望大家能有收获,快来看看吧!
别再只调包了!深入理解机器学习虚拟筛选中的分子指纹(ECFP/Morgan)
本文深入探讨了ECFP/Morgan分子指纹在机器学习虚拟筛选中的应用与优化策略。通过解析半径参数与比特长度的化学意义,揭示了如何通过参数调优提升模型性能20%以上,特别适用于药物发现领域的高通量筛选。文章还提供了工程实践中的参数优化策略和多指纹融合技术,为开发者提供从理论到实践的全面指导。
Java虚拟机规范(Java SE 8) 第一章
用户冲浪所使用的设备并不是其中的关键,它们仅仅是一种媒介,无论及其的性能如何,无论使用高速网络还是慢速的modem(调制解调器),用户总能看到并听到同样的内容。Java虚拟机是整个Java平台的基石,是Java技术用以实现硬件无关与操作系统无关的关键部分,是Java语言生成极小体积的编译代码的运行平台,是保障用户机器免于恶意代码损害的屏障。只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
【MATLAB】嵌入式PID控制参数整定与优化
本文提出了一种基于MATLAB仿真的嵌入式PID参数优化方法,解决了传统人工试凑法效率低、适应性差的问题。通过建立一阶滞后被控对象模型,对比分析了不同PID参数组合的性能表现,筛选出最优参数。仿真结果表明,优化后的PID参数能有效降低超调量(从传统方法的显著超调降至接近0%),缩短调节时间,提高稳态精度。最终将优化算法部署到STM32平台,实现了"仿真整定-参数优化-嵌入式落地"的完整开发流程。该方法显著提升了嵌入式系统的响应速度和控制精度,为工业控制应用提供了标准化解决方案。
5、模型预测控制与分布式MPC控制结构解析
本文深入解析了模型预测控制(MPC)中的双模式预测控制及其稳定性理论,并探讨了分布式MPC的不同控制结构。内容涵盖MPC的基本公式化、性能指标、优化问题以及相关算法步骤,同时比较了集中式MPC、单层分布式MPC和分层分布式MPC的优缺点和适用场景。最后通过流程图和表格形式总结了双模式MPC的算法步骤和控制结构选择思路,并提供了操作建议,以帮助在实际工业系统中更好地应用MPC技术。
百度,360,淘宝,腾讯,高通中国,htc上海 Android 面试题
备注:这些是我为准备面试在网上看到的,觉得还可以,挺有代表性的题目,暂且放这吧。。。 这些题我都认真的看过一遍,有个别的不会,基本还算简单,下面标绿颜色的是我目前不是特别会的,今天务必查一下答案。 汇总笔者经历了一些来自百度,360,淘宝,腾讯,高通中国,htc上海的电话面试及现场面试,还有笔试相关题目 百度:百度在北京中关村上地七街奎科科技大厦,不大但是很安静的
大厂面试级C#上位机完整项目(终极版):工业级Modbus协议封装 + 标准多线程采集 + 全链路异常处理
(Modbus统一通信接口)、(采集服务接口)职责:定义所有核心操作的标准接口,屏蔽底层差异(RTU/TCP、串口/TCP),面向接口编程的核心体现。新增协议/采集方式,只需实现接口,核心代码零改动。/// 自定义Modbus通信异常类 - 大厂标准,区分通信异常和其他异常/// 包含异常信息+内部异常,可溯源完整错误堆栈,面试必写本次项目是对标大厂工控上位机岗位的终极版实战项目,所有代码、架构、设计都遵循大厂标准,覆盖了面试官考察的所有核心考点✅ 纯手写Modbus协议,体现你对协议底层的吃透。
360度看C#编程语言
本文全方位介绍了C#编程语言及其生态系统。首先概述了.NET平台的发展历程,从.NET Framework到.NET Core再到统一的.NET 5+,分析了其开源、跨平台特性。其次介绍了主要的开发工具集(Visual Studio、VS Code等)和C#的设计哲学。文章重点对比了C#与C/C++、Java的差异,通过代码示例展示了C#在语法简洁性(如自动属性、LINQ)、内存管理(自动垃圾回收)、异常处理等方面的优势。最后指出C#作为现代编程语言,兼具性能与开发效率,是.NET生态的核心开发语言。
YOLOv11改进策略【损失函数篇】| WIoU v3:针对低质量样本的边界框回归损失函数
是一种基于IoU的损失函数,旨在解决目标检测中边界框回归损失函数在处理低质量训练数据时的问题。论文链接:https://arxiv.org/pdf/2301.10051 源码链接:https://github.com/Instinct323/wiou此处需要查看的文件是中定义了模型的损失函数和计算方法,我们想要加入新的损失函数就只需要将代码放到这个文件内即可将下方的函数替换原本的函数即可: 用于计算各种损失。在内修改如下代码,使模型调用此损失函数。 tal.py中是一些损失函数的功能应用。在内修改如下代码,
华为OD机试双机位C卷-统计差异值大于相似值二元组个数(C/C++/Py/Java/Js/Go)
华为OD机试(机考)双机位C卷 【统计差异值大于相似值二元组个数】,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 统计差异值大于相似值二元组个数
360开源项目汇总(一)
发表于21小时前| 2607次阅读| 来源优快云| 0 条评论| 作者薛梁 奇虎360开源项目开源技术基础架构编程语言缓存服务器 摘要:根据360最近的开源动向,我们整理出了其公布出来的一些开源项目,或许有些项目是你一直在使用的,但是你根本不知道这是360开源出来的,一起来认识一下吧。我们也希望有更多的开发者参与到项目开源浪潮中。 团队项目开源的话,需要走哪
温度PID控制PLC程序
温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值
cocos2dx C++调用java
1、从C++调用java时,尽量使用java的静态函数。因为静态方法调用比较简单。这样不需要先new一个对象。 2、但是因为java类中的静态方法, 只能操作静态类,而如果把类中的所有变量都定义为static的,有时候也没办法做到(可能会有一些特殊情况)。 3、可以采用封装一层的思想。就是在定义一个类中,都是静态方法,供C++端调用,但是它有一些成员变量可以是其他的类,当然这些成员变量是静态的
华为的C语言编程规范.pdf
华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
360内推笔试编程题2017
360笔试编程题一共三道:360春招&实习生招聘3.25在线编程题解 第一题是给出根据数学期望的公式编程实现,需要注意的是结果要求四舍五入保留三位小数,详情见链接。 第二题是求给定的字符串的子串中偶串的个数,偶串是指字符串中每个字母出现的次数均为偶数。 一种思路: 遍历所有子串,判断每个子串是否为偶串,判断方法为:建一个map,遍历子串的每个字符,遍历到某个字符时,判断map中是否...
NTscan扫描工具
ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。
C++和Java中字符串操作
昨天做360笔试,发现上机编程题好多需要字符串输出输出,结果在上面画了不少时间,所以先总结一下C++和Java的一些字符串的输入输出,主要参考网上和书上资料。以便以后上机调试时能够多把时间用在逻辑处理上。 C++:直接输入输出即可 #include #include using namespace std; void main() { //方式1 char s1[50]; c
360 2019校招笔试 编程题-2018.08.27
思路: 题目要求城市是平行于坐标轴的正方形,我们只需要求出最大的横坐标差和最大的纵坐标轴之差,取较大值作为正方形城市边长即可 代码: #include <iostream> #include <cmath> using namespace std; int main() { int n; cin >> n; int x...
android面试汇总(百度+360+Tencent+淘宝+HTC)
汇总自己经历了一些来自百度,360 ,淘宝,腾讯,高通中国,htc 上海 的电话面试及现场面试,还有笔试相关题目 百度:百度在北京中关村上地七街奎科科技大厦,不大但是很安静的一个办公地点。 百度技术面试分为两轮,第一轮基础技术面试,一般为项目负责人,主要考察基本知识及知识广度,第二轮面试一般为部门负责人,主要考察技术深度。基础面试感觉个人答的还不错,主要询问了一些关于android
Android面试汇总(百度+360+Tencent+淘宝+Qualcomm+HTC)
汇总笔者经历了一些来自百度,360,淘宝,腾讯,高通中国,htc上海的电话面试及现场面试,还有笔试相关题目 百度:百度在北京中关村上地七街奎科科技大厦,不大但是很安静的一个办公地点。 百度技术面试分为两轮,第一轮基础技术面试,一般为项目负责人,主要考察基本知识及知识广度,第二轮面试一般为部门负责 人,主要考察技术深度。基础面试感觉个人答的还不错,主要询问了一些关于android基本知识的考察,涉及...
求职语言篇(C/C++/JAVA)
转自:https://www.cnblogs.com/hdk1993/p/5317179.html 以下分三个方向讲解,每个方向都是一个学长独自撰稿。 (一) C语言篇 C语言求职血泪史 华为(实习):机试、一面、性格测试被鄙视、优招被鄙视、普招被鄙视 锐捷:笔试、面试莫名其妙被鄙视 创新工场:笔试、一面、二面、offer 阿里巴巴:笔试被鄙视 cvte:网测、面试没去 大众点...
3万+



被折叠的 条评论
为什么被折叠?



