资源经验分享人工智能之一般合一算法Java实现之

人工智能之一般合一算法Java实现之

2019-12-16 | |  82 |   0

原标题:人工智能之一般合一算法Java实现之

原文来自:博客园      原文链接:https://www.cnblogs.com/Kitty-/p/10678884.html


import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Unify {
    private static String EMPTY = " ";
    private static String FAIL = "Failed";
    private static Listlist1 = new ArrayList();
    private static Listlist2 = new ArrayList();
    
    public static void main(String[] args){
        //输入两个谓词公式
        System.out.println("请输入待判断的两个表达式,变量用小写字母表示,常量用大写字符或字符串表示。");
        Scanner input = new Scanner(System.in);
        String E1 = input.nextLine();
        list1 = Unify.getElements(E1);
        String E2 = input.nextLine();
        list2 = Unify.getElements(E2);
        System.out.println("最一般的表达式为:" + Unify.unify(E1, E2));
    }
    
    private static ListgetElements(String E){
        Listlist = new ArrayList();
        for(int i = 0; i < E.length(); i++){
            if(E.charAt(i) == ')')
                list.add("()");
            if((E.charAt(i) >= 'a' && E.charAt(i) = 'A' && E.charAt(i) <= 'Z')){
                int j = i+1;
                while(j < E.length() && ((E.charAt(j) >= 'a' && E.charAt(j) = 'A' && E.charAt(j)  1){
                if(E.equals("()"))
                    return true;
                if(E.contains(" ") || E.contains("(") || E.contains(")") || E.contains(","))
                    return false;
                else
                    return true;
            }
            else{
                if(E.charAt(0)>='A' && E.charAt(0)  1){
                if(E.contains(" ") || E.contains("(") || E.contains(")") || E.contains(","))
                    return false;
                else
                    return true;
            }
            else{
                if(E.charAt(0)>='a' && E.charAt(0) <= 'z')
                    return true;
                else
                    return false;                
            }
        }
        return false;
    }
    
    private static String getFirstElement(Listlist){
        String element = list.get(0);
        list.remove(0);
        return element;
    }
    //该函数查找s2在E中的位置并用s1替代E中相应的s2
    private static String apply(String subs1, String E, Listlist){
        if(subs1.equals(Unify.EMPTY))
            return E;
        String sub1 = subs1.substring(0, subs1.indexOf('/'));
        String sub2 = subs1.substring(subs1.indexOf('/') + 1, subs1.length());
        E = E.replaceAll(sub2, sub1);
        for(int i = 0; i < list.size(); i++){
            if(list.get(i).equals(sub2))
                list.set(i, sub1);
        }
        return E;
    }
    
    private static String composition(String subs1, String subs2){
        if(subs1.equals(Unify.EMPTY) && subs2.equals(Unify.EMPTY))
            return Unify.EMPTY;
        else if(subs1.equals(Unify.EMPTY))
            return subs2;
        else if(subs2.equals(Unify.EMPTY))
            return subs1;
        else 
            return subs1 + ", " + subs2;
    }
    
    private static String getRest(String E, String firstElement){
        if(!E.isEmpty()){
            String e;
            if(firstElement.equals("()"))
                e = E.replaceFirst("\(\)","0");
            else
                e = E.replaceFirst(firstElement,"0");
            if(e.length() == 1)
                return "";
            int i = e.indexOf('0');
            int j = i + 1;
            while(e.charAt(j) == ' ' || e.charAt(j) == ',')
                j++;
            e = e.substring(0, i) + e.substring(j);
            return e;
        }
        return null;
    }
}

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:DeepLab 使用 Cityscapes 数据集训练模型

下一篇:简单了解pytorch的forward

用户评价
全部评价

热门资源

  • Python 爬虫(二)...

    所谓爬虫就是模拟客户端发送网络请求,获取网络响...

  • TensorFlow从1到2...

    原文第四篇中,我们介绍了官方的入门案例MNIST,功...

  • TensorFlow从1到2...

    “回归”这个词,既是Regression算法的名称,也代表...

  • 机器学习中的熵、...

    熵 (entropy) 这一词最初来源于热力学。1948年,克...

  • TensorFlow2.0(10...

    前面的博客中我们说过,在加载数据和预处理数据时...