[HDU-2209] BFS

看来写完成得自己先调试,尽量找到可能的错误。

一定自己先用几个特殊数据、大数据试验一下。

/*
 * hdu-2209
 * mike-w
 * 2012-9-30
 */
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAXSIZE 5555555
#define QSIZE 5555555

short tag[MAXSIZE];
int que[QSIZE], qhead, qtail, qlen;

int enque(int e)
{
	que[qtail++]=e;
	qtail%=QSIZE;
	qlen++;
	if(qlen==QSIZE)
		abort();
	return 0;
}

int deque(void)
{
	int ret=que[qhead++];
	qhead%=QSIZE;
	qlen--;
	return ret;
}

int main(void)
{
	char buf[32];
	while(scanf("%s", buf)!=EOF)
	{
		/* init*/
		memset(tag, 0, sizeof(tag));
		qhead=qtail=qlen=0;

		int len=strlen(buf);
		int v=0, i, w;
		for(i=1, w=1; i<=len; i++, w<<=1)
			v+=(buf[len-i]-'0')*w;
		
		/* printf("v=%d\n", v); */
		
		/* shortcut */
		if(v==1 && len==1)
		{
			puts("1");
			continue;
		}

		enque(v);
		tag[v]=1;
		while(qlen>0)
		{
			v=deque();
			int m=7, t;
			for(i=1; i+2<=len; i++, m<<=1)
				if(!tag[t=v^m])
					enque(t), tag[t]=tag[v]+1;
			if(!tag[t=v^3])
				enque(t), tag[t]=tag[v]+1;
			if(!tag[t=v^(3<<(len-2))])
				enque(t), tag[t]=tag[v]+1;
			if(tag[0])
				break;
		}
		if(tag[0])
			printf("%d\n", tag[0]-1);
		else
			puts("NO");
	}
	return 0;
}


内容概要:本文档提供了三种神经网络控制器(NNPC、MRC和NARMA-L2)在机器人手臂模型上性能比较的MATLAB实现代码及详细解释。首先初始化工作空间并设定仿真参数,包括仿真时间和采样时间等。接着定义了机器人手臂的二阶动力学模型参数,并将其转换为离散时间系统。对于参考信号,可以选择方波或正弦波形式。然后分别实现了三种控制器的具体算法:MRC通过定义参考模型参数并训练神经网络来实现控制;NNPC利用预测模型神经网络并结合优化算法求解控制序列;NARMA-L2则通过两个神经网络分别建模f和g函数,进而实现控制律。最后,对三种控制器进行了性能比较,包括计算均方根误差、最大误差、调节时间等指标,并绘制了响应曲线和跟踪误差曲线。此外,还强调了机器人手臂模型参数的一致性和参考信号设置的规范性,提出了常见问题的解决方案以及性能比较的标准化方法。 适合人群:具备一定编程基础,特别是熟悉MATLAB编程语言的研究人员或工程师,以及对神经网络控制理论有一定了解的技术人员。 使用场景及目标:①理解不同类型的神经网络控制器的工作原理;②掌握在MATLAB中实现这些控制器的方法;③学会如何设置合理的参考信号并保证模型参数的一致性;④能够根据具体的性能指标对比不同控制器的效果,从而选择最适合应用场景的控制器。 其他说明:本文档不仅提供了完整的实验代码,还对每个步骤进行了详细的注释,有助于读者更好地理解每段代码的功能。同时,针对可能出现的问题给出了相应的解决办法,确保实验结果的有效性和可靠性。为了使性能比较更加公平合理,文档还介绍了标准化的测试流程和评估标准,这对于进一步研究和应用具有重要的指导意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值