人工智能实验报告王浩算法的实现.docx

上传人:b****8 文档编号:9906756 上传时间:2023-05-21 格式:DOCX 页数:16 大小:31.26KB
下载 相关 举报
人工智能实验报告王浩算法的实现.docx_第1页
第1页 / 共16页
人工智能实验报告王浩算法的实现.docx_第2页
第2页 / 共16页
人工智能实验报告王浩算法的实现.docx_第3页
第3页 / 共16页
人工智能实验报告王浩算法的实现.docx_第4页
第4页 / 共16页
人工智能实验报告王浩算法的实现.docx_第5页
第5页 / 共16页
人工智能实验报告王浩算法的实现.docx_第6页
第6页 / 共16页
人工智能实验报告王浩算法的实现.docx_第7页
第7页 / 共16页
人工智能实验报告王浩算法的实现.docx_第8页
第8页 / 共16页
人工智能实验报告王浩算法的实现.docx_第9页
第9页 / 共16页
人工智能实验报告王浩算法的实现.docx_第10页
第10页 / 共16页
人工智能实验报告王浩算法的实现.docx_第11页
第11页 / 共16页
人工智能实验报告王浩算法的实现.docx_第12页
第12页 / 共16页
人工智能实验报告王浩算法的实现.docx_第13页
第13页 / 共16页
人工智能实验报告王浩算法的实现.docx_第14页
第14页 / 共16页
人工智能实验报告王浩算法的实现.docx_第15页
第15页 / 共16页
人工智能实验报告王浩算法的实现.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

人工智能实验报告王浩算法的实现.docx

《人工智能实验报告王浩算法的实现.docx》由会员分享,可在线阅读,更多相关《人工智能实验报告王浩算法的实现.docx(16页珍藏版)》请在冰点文库上搜索。

人工智能实验报告王浩算法的实现.docx

人工智能实验报告王浩算法的实现

《人工智能》实验二题目

王浩算法的实现

1.实验内容:

实现命题逻辑框架内的王浩算法。

⑴将命题逻辑中的王浩算法推广至下述命题语言的情形之下:

ⅰ命题变量符号:

ⅱ逻辑连接符:

ⅲ间隔符:

⑵在上述⑴中所定义的命题语言中实现王浩算法。

2.实验目的

熟练掌握命题逻辑中的王浩算法。

3.数据结构与算法设计

publicclassWanghao()//主体类

publicvoidinput()//输入字符,将输入字符归类的函数

publicvoidjudge()//判断公式是恒真还是恒假的函数

publicvoidmove(intl,intr)//加入王浩算法的核心公式,

publicvoidoutput()//输出函数

publicvoidreasoning()//用于推理判断的函数

publicvoidsimplify()}//化简

classalp(){//字符串的匹配,分配

alp(charfuhao,charzimu)

alp(){}}

4.源代码

importjava.io.BufferedReader;

importjava.io.InputStreamReader;

importjava.io.IOException;

importjava.util.Vector;

publicclassWanghao{

Vectorleft=newVector();

Vectorright=newVector();

publicstaticvoidmain(Stringargs[]){

Wanghaow=newWanghao();

w.input();

w.huajian();

w.tuili();

w.judge();

}

publicvoidinput(){

BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

Stringwords=newString();

System.out.println("请输入公式行:

(例如:

p->~(q&&r)||p<->r)");

try{

words=br.readLine();

}catch(IOExceptione){

System.out.println("inputerror");

System.exit(0);

}

charch[]=words.toCharArray();

for(inti=0;i

if(ch[i]=='~'||ch[i]=='-'||ch[i]=='&'||ch[i]=='|'){

termt=newterm();

t.fuhao=ch[i++];

t.zimu=ch[i];

right.add(t);

}

elseif(ch[i]=='<'){

termt=newterm();

t.fuhao=ch[i++];

t.zimu=ch[i++];

right.add(t);

}

else{

termt=newterm();

t.fuhao='$';

t.zimu=ch[i];

right.add(t);

}

}

}

publicvoidoutput(){

for(inti=0;i

System.out.print(left.elementAt(i).toString());

if(left.elementAt(i).fuhao=='<')

System.out.print(">");

}

System.out.print("=>");

for(inti=0;i

System.out.print(right.elementAt(i).toString());

if(right.elementAt(i).fuhao=='<')

System.out.print(">");

}

System.out.println();

}

publicvoidhuajian(){

for(inti=0;i

if(right.elementAt(i).fuhao!

='&'&&right.elementAt(i).fuhao!

='|'&&right.elementAt(i).fuhao!

='<')

continue;

elseif(right.elementAt(i).fuhao=='&'){

intcount=0;

for(intj=i-1;j>=0;j--){

if(right.elementAt(j).zimu==')')count++;

elseif(right.elementAt(j).zimu=='(')count--;

if(count==0){

right.add(j,newterm('~','('));

break;

}

}

i++;

right.elementAt(i).fuhao='-';

right.elementAt(i).zimu='>';

if(right.elementAt(i+1).fuhao=='~')

right.elementAt(i+1).fuhao='$';

elseright.elementAt(i+1).fuhao='~';

for(intj=i+1;j

if(right.elementAt(j).zimu=='(')count++;

elseif(right.elementAt(j).zimu==')')count--;

if(count==0){

if(j+1

right.add(j+1,newterm('$',')'));

elseright.add(newterm('$',')'));

break;

}

}

}

elseif(right.elementAt(i).fuhao=='|'){

intcount=0;

for(intj=i-1;j>=0;j--){

if(right.elementAt(j).zimu==')')count++;

elseif(right.elementAt(j).zimu=='(')count--;

if(count==0){

if(right.elementAt(j).fuhao=='~')

right.elementAt(j).fuhao='$';

elseright.elementAt(j).fuhao='~';

right.add(j,newterm('$','('));

break;

}

}

i++;

right.elementAt(i).fuhao='-';

right.elementAt(i).zimu='>';

for(intj=i+1;j

if(right.elementAt(j).zimu=='(')count++;

elseif(right.elementAt(j).zimu==')')count--;

if(count==0){

if(j+1

right.add(j+1,newterm('$',')'));

elseright.add(newterm('$',')'));

break;

}

}

}

elseif(right.elementAt(i).fuhao=='<'){

Vectorl=newVector();

Vectorr=newVector();

intj=i-1;

intcount=0;

while(j>=0){

if(right.elementAt(j).zimu==')')count++;

elseif(right.elementAt(j).zimu=='(')count--;

l.add(0,right.elementAt(j));

right.removeElementAt(j);

j--;i--;

if(count==0)

break;

}

j=i+1;

while(j

if(right.elementAt(j).zimu=='(')count++;

elseif(right.elementAt(j).zimu==')')count--;

r.add(right.elementAt(j));

right.removeElementAt(j);

if(count==0)

break;

}

right.removeElementAt(i);

right.add(i++,newterm('~','('));

right.add(i++,newterm('$','('));

j=0;

while(j

right.add(i++,l.elementAt(j++));

right.add(i++,newterm('-','>'));

j=0;

while(j

right.add(i++,r.elementAt(j++));

right.add(i++,newterm('$',')'));

right.add(i++,newterm('-','>'));

right.add(i++,newterm('~','('));

j=0;

while(j

right.add(i++,r.elementAt(j++));

right.add(i++,newterm('-','>'));

j=0;

while(j

right.add(i++,l.elementAt(j++));

right.add(i++,newterm('$',')'));

right.add(i++,newterm('$',')'));

i--;

}

output();

}

}

publicvoidtuili(){

for(inti=0;i

if(right.elementAt(i).fuhao!

='-')continue;

else{

right.elementAt(i).fuhao='$';

right.elementAt(i).zimu=',';

intcount=0;

for(intj=i-1;j>=0;j--){

if(right.elementAt(j).zimu==')')count++;

elseif(right.elementAt(j).zimu=='(')count--;

if(count==0){

if(right.elementAt(j).fuhao=='~')right.elementAt(j).fuhao='$';

elseif(right.elementAt(j).fuhao=='$')right.elementAt(j).fuhao='~';

break;

}

}

}

}

output();

move(0,0);

}

publicvoidmove(intl,intr){

intle,ri;

for(le=0;le

if(left.elementAt(le).fuhao=='~')break;

if(((left.elementAt(le).zimu>='a')&&(left.elementAt(le).zimu<='z'))||((left.elementAt(le).zimu>='A')&&(left.elementAt(le).zimu<='Z'))||left.elementAt(le).zimu==',')

continue;

elsebreak;

}

for(ri=0;ri

if(right.elementAt(ri).fuhao=='~')break;

if(((right.elementAt(ri).zimu>='a')&&(right.elementAt(ri).zimu<='z'))||((right.elementAt(ri).zimu>='A')&&(right.elementAt(ri).zimu<='Z'))||right.elementAt(ri).zimu==',')

continue;

elsebreak;

}

if((le==left.size())&&(ri==right.size()))return;

if(r

intcount=0,loc=0;

right.elementAt(r).fuhao='$';

if(right.elementAt(r).zimu!

='('){

if(r==0){

left.add(loc++,right.elementAt(r));

left.add(loc++,newterm('$',','));

}

else{

if(left.size()!

=0)left.add(newterm('$',','));

left.add(right.elementAt(r));

}

right.removeElementAt(r);

if(!

right.isEmpty())

right.removeElementAt(r);

}

else{

right.removeElementAt(r);

count++;

if(left.size()!

=0)left.add(newterm('$',','));

while(true){

if(right.elementAt(r).zimu=='(')count++;

elseif(right.elementAt(r).zimu==')')count--;

if(count==0){

if(r==0)left.add(loc++,newterm('$',','));

right.removeElementAt(r);

if(!

right.isEmpty())

right.removeElementAt(r);

break;

}

if(r==0)left.add(loc++,right.elementAt(r));

elseleft.add(right.elementAt(r));

right.removeElementAt(r);

}

}

}

elseif(r

intcount=1;

right.removeElementAt(r);

while(true){

if(right.elementAt(r).zimu=='(')count++;

elseif(right.elementAt(r).zimu==')')count--;

if(count==0){

right.removeElementAt(r);

break;

}

r++;

}

}

while(left.size()!

=0&&left.elementAt(left.size()-1).zimu==',')left.removeElementAt(left.size()-1);

if(l

intcount=0,loc=0;

left.elementAt(l).fuhao='$';

if(left.elementAt(l).zimu!

='('){

if(l==0){

right.add(loc++,left.elementAt(l));

right.add(loc++,newterm('$',','));

}

else{

if(right.size()!

=0)right.add(newterm('$',','));

right.add(left.elementAt(l));

}

left.removeElementAt(l);

if(!

left.isEmpty())

left.removeElementAt(l);

}

else{

left.removeElementAt(l);

count++;

if(right.size()!

=0)right.add(newterm('$',','));

while(true){

if(left.elementAt(l).zimu=='(')count++;

elseif(left.elementAt(l).zimu==')')count--;

if(count==0){

if(l==0)right.add(loc++,newterm('$',','));

left.removeElementAt(l);

if(!

left.isEmpty())

left.removeElementAt(l);

break;

}

if(l==0)right.add(loc++,left.elementAt(l));

elseright.add(left.elementAt(l));

left.removeElementAt(l);

}

}

}

elseif(l

intcount=1;

left.removeElementAt(l);

while(true){

if(left.elementAt(l).zimu=='(')count++;

elseif(left.elementAt(l).zimu==')')count--;

if(count==0){

left.removeElementAt(l);

break;

}

l++;

}

l++;

}

while(left.size()!

=0&&left.elementAt(left.size()-1).zimu==',')

left.removeElementAt(left.size()-1);

while(right.size()!

=0&&right.elementAt(right.size()-1).zimu==',')

right.removeElementAt(right.size()-1);

r=0;l=0;

if(left.size()!

=0)

while(left.elementAt(l).fuhao!

='~'&&left.elementAt(l).zimu!

='('){

l+=2;

if(l>=left.size()){

l=0;

break;

}

}

if(right.size()!

=0)

while(right.elementAt(r).fuhao!

='~'&&right.elementAt(r).zimu!

='('){

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2