人工智能决策

时间:2011-03-16 02:48:08

标签: artificial-intelligence

您是否知道此主题的任何示例? 我搜索了谷歌,但没有运气使用人工智能的任何决策实例(至少任何真正开发的)

5 个答案:

答案 0 :(得分:4)

我有一个人工智能决策的例子。这是关于选择一件衣服来购买。它要求输入如下: 1)无论你是男性还是女性 2)价格范围必须小于1000或大于1000 3)年龄<20或> 20

根据这些输入,我的代码将分析哪种类型的礼服适合您以及您可以在哪个商店购买。我刚刚在代码中提供了一些知识。我保留在我的知识库中只有3个商店的名字。 它以百分比形式给出输出。 例如)A店:20.5%     B铺:40.5&amp;     C店:39.0% 这意味着你很有可能在B铺找到你喜欢的衣服。

    $   import java.util.*;
import java.lang.*;
import javax.swing.*;
import java.util.Collection.*;
import java.util.Set.*;
public class dress1
{
    static int i,j;

    static float[] count=new float[3];static int[] count1=new int[3];
    static String[] shop=new String[] {"Jean and Tops","Jean and T-shirt","Jean and Shirt/T-shirt","Sherwani","Pyjamas","Formal shirt and Pant","Shorts and shirt","Coat Suit","Sari","Skirt and Tops","Ghagra Choli","Salwar kameez","Churidaar","Pattu Pavadai","Frock"};
    static int[] divac= {10,9,8,1,1,2,1,1,7,1,1,1,5,1,1};
    static int[] kalac=  {1,1,1,2,1,1,1,1,10,1,8,2,2,9,1};
    static int[] megac= {7,5,6,3,2,8,2,6,2,4,2,1,2,2,2};
    static String[] selected=new String[15];
    static boolean value;
    public static void main(String arg[])
    {

    count[0]=0;count[1]=0;count[2]=0;
    Set uni = new HashSet();
    uni.add("Jean and Tops");
    uni.add("Jean and T-shirt");
    uni.add("Sari");
    uni.add("Skirt and Tops");
    uni.add("Ghagra Choli");
    uni.add("Salwar kameez");
    uni.add("Churidaar");
    uni.add("Pattu Pavadai");
    uni.add("Sherwani");
    uni.add("Frock");
    uni.add("Formal shirt and Pant");
    uni.add("Jean and Shirt/T-shirt");
    uni.add("Shorts and shirt");
    uni.add("Coat Suit");
    uni.add("Pyjamas");

    Set male = new HashSet();
    male.add("Sherwani");
    male.add("Pyjamas");
    male.add("Formal shirt and Pant");
    male.add("Jean and Shirt/T-shirt");
    male.add("Shorts and shirt");
    male.add("Coat Suit");
    Set fem = new HashSet();
    fem.add("Jean and Tops");
    fem.add("Jean and T-shirt");
    fem.add("Sari");
    fem.add("Skirt and Tops");
    fem.add("Ghagra Choli");
    fem.add("Salwar kameez");
    fem.add("Churidaar");
    fem.add("Pattu Pavadai");
    fem.add("Frock");

    Set l20=new HashSet();
    l20.add("Jean and Tops");
    l20.add("Jean and T-shirt");
    l20.add("Skirt and Tops");
    l20.add("Churidaar");
    l20.add("Pattu Pavadai");
    l20.add("Frock");
    Set g20=new HashSet();
    g20.add("Jean and T-shirt");
    g20.add("Sari");
    g20.add("Salwar kameez");
    g20.add("Churidaar");

    Set ml20=new HashSet();
    ml20.add("Pyjamas");
    ml20.add("Shorts and shirt");
    Set mg20=new HashSet();
    mg20.add("Sherwani");
    mg20.add("Formal shirt and Pant");
    mg20.add("Coat Suit");
    mg20.add("Jean and Shirt/T-shirt");

    Set mpl1000= new HashSet();
    mpl1000.add("Pyjamas");
    mpl1000.add("Shorts and shirt");
    mpl1000.add("Formal shirt and Pant");
    Set mpg1000=new HashSet();
    mpg1000.add("Sherwani");
    mpg1000.add("Coat Suit");
    mpg1000.add("Jean and Shirt/T-shirt");

    Set pl1000=new HashSet();
    pl1000.add("Frock");
    pl1000.add("Skirt and Tops");
    pl1000.add("Churidaar");
    pl1000.add("Salwar kameez");
    Set pg1000=new HashSet();
    pg1000.add("Jean and Tops");    
    pg1000.add("Jean and T-shirt");
    pg1000.add("Sari");
    pg1000.add("Ghagra Choli");
    pg1000.add("Pattu Pavadai");

    Scanner input=new Scanner(System.in);
    System.out.println("Enter M for Male and F for Female");
    String st=input.nextLine();
            Set int1 = new HashSet (uni);
    if(st.equals("M"))
    {
        System.out.println("Male");
        int1.retainAll(male);

    Scanner input1=new Scanner(System.in);
    System.out.println("Enter 1 if age <20 or enter 2 if age > 20");
    String st1=input1.nextLine();
            Set int2= new HashSet (int1);
    if(st1.equals("1"))
           {
    System.out.println("Age Less than 20 Male");
    int2.retainAll(ml20);
    }
    else if(st1.equals("2"))
    {
        System.out.println("Age Greater than 20 Male");
        int2.retainAll(mg20);
    }
    Scanner input2=new Scanner(System.in);
    System.out.println("Enter 1.Price Range < 1000 or 2. Price Range >1000");
    String st2=input2.nextLine();
            Set int3= new HashSet (int2);
            if(st2.equals("1"))
            {
                System.out.println("Price Less than 1000 ,Male");
                int3.retainAll(mpl1000);
            }
            else if(st2.equals("2"))
            {
                System.out.println("Price Greater than 1000 ,Male");
                int3.retainAll(mpg1000);
            }

            i=0;    
            for(Object object : int3)
            {
                String element = (String) object;
                selected[i++]=element;
                System.out.println(element);
            }
            calc();

        } /*end of male*/

        else if(st.equals("F"))
        {

            System.out.println("Female");
                int1.retainAll(fem);
            Scanner input1=new Scanner(System.in);

            System.out.println("Enter 1 if age <20 or enter 2 if age > 20");
            String st1=input1.nextLine();
            Set int2= new HashSet (int1);
            if(st1.equals("1"))
            {
                System.out.println("Age Less than 20 Female");
                int2.retainAll(l20);
            }
            else if(st1.equals("2"))
            {
                System.out.println("Age Greater than 20 Female");
                int2.retainAll(g20);
            }   
    Scanner input2=new Scanner(System.in);
    System.out.println("Enter 1.Price Range < 1000 or 2. Price Range >1000");
    String st2=input2.nextLine();
            Set int3= new HashSet (int2);
            if(st2.equals("1"))
            {
                System.out.println("Price Less than 1000 ,Female");
                int3.retainAll(pl1000);
            }
            else if(st2.equals("2"))
            {
                System.out.println("Price Greater than 1000 ,Female");
                int3.retainAll(pg1000);
            }

            i=0;
            for(Object object : int3)
            {
                String element = (String) object;
                selected[i++]=element;
                System.out.println(element);
            }
            calc();
        }/*end of female*/

    }/*end of main*/

    public static void calc()
    {
        float finalcount=0;


        int k=0;

        while(k<i)
        {
            for(j=0;j<15;j++)
            {
                value=selected[k].equals(shop[j]);
                if(value)
                {
                    break;
                }
            }/*end of j*/
            count[0]=count[0]+divac[j];
            count[1]=count[1]+kalac[j];
            count[2]=count[2]+megac[j];
            k++;
            }/*end of while*/

            for(int c=0;c<3;c++)
            {
            finalcount=finalcount+count[c];
            }
            for(int c=0;c<3;c++)
            {

                count[c]=((count[c]*100)/finalcount);
            }
            System.out.println("Availability of dresses available in various shops are:");
            System.out.println("Diva is "+count[0]+"%");
            System.out.println("Kalanikethan is "+count[1]+"%");
            System.out.println("Megamart is "+count[2]+"%");
    }
 }/*end of class*/

答案 1 :(得分:2)

http://msl.cs.uiuc.edu/~lavalle/cs397/

阅读本文。人工智能决策的方法有很多种。这些例子位于底部。

答案 2 :(得分:2)

有太多的例子要算!例如,专家系统开发的整个(大)领域包括构建程序,其明确目的是模仿人类决策。谷歌“专家系统”找到了数千个例子。

我将插入Jess的插件,这是我用Java编写的专家系统shell。全世界成千上万的公司都在使用它来自动化决策过程。

答案 3 :(得分:2)

决策制定(DM)是不同科学领域广泛研究的主题。 (认知科学,神经科学,计算机科学,行为经济学,运筹学等。* 1)

但是,DM问题是多种多样的,解决该问题的计算方法也会相应地变化。例如:

如果您必须频繁做出影响前一个决策的决定,则您正在处理顺序DM问题。在这种情况下,可以使用强化学习 * 2或深度强化学习 * 3解决此问题。这些问题的示例可以在视频游戏中看到,其中游戏AI需要随着时间的流逝采取不同的动作(策略)以最大化其得分。 (奖励)

如果您的问题不是连续的,而是要处理多个标准以找到最有吸引力的替代方法,那么您正在处理的是多标准决策问题,这是运筹学中广泛研究的主题。有一些常用的算法可用于辅助决策,例如 AHP * 4,TOPSIS * 5,ELECTRE * 6,PROMETREE * 7 。 MCDC的一个示例是选择要购买的房屋,您必须在其中考虑位置,价格以及其他理想或不理想的特征。

根据不确定性,主观数据和问题的不完整信息,您可能需要使用所提及算法的模糊,直觉或中智变体。 * 8

您可能需要通过不同的竞争目标来优化DM。在这种情况下,您要处理多目标决策优化问题(MODM)。请参阅决策树* 9,遗传算法* 10

此外,DM问题可能会有不同的“代理商”决策影响到我们。因此,这被称为“多主体”决策。在计算机科学中,多主体系统仿真通常用于研究这些问题。 * 11

您还可能会遇到这样的情况,即座席必须做出影响所有座席的协作决策。这就是所谓的“团体”决策。

在行业中,可以通过广泛使用的推荐系统(例如Netflix或Amazon的系统)来看到计算DM。* 13在B2B部门中,可以在决策中看到DM中的AI支持系统和说明性分析服务* 14。

我希望您发现这些信息有用。确实,关于这个复杂的主题,我只是想总结一下。

您可能需要检查的一些资源:

参考:

    * 1 * Atkinson,J.W.(1964)。动机简介。 * 1 * Berridge,K.C。(2004)。行为神经科学中的动机概念。生理与行为,81(2),179-209。 * 1 Hwang C. L.和Yoon,K.(1981)。多属性决策方法。在《多属性决策》(第58-191页)中。施普林格,柏林,海德堡。 * 1 * Tversky,A.和Kahneman,D.(1981)。决策框架和选择科学心理学,211(4481),453-458。 * 2 * Littman,M.L。(1994)。马尔可夫游戏作为多主体强化学习的框架。在《机器学习学报》 1994年(第157-163页)中。
  • * 3 Van Hasselt,H.,Guez,A.,&Silver,D.(2016年2月)。通过双重Q学习进行深度强化学习。在AAAI(第2卷,第5页)中。

  • * 4Aczél,J.,&Saaty,T.L.(1983)。比率判断综合程序。数学心理学杂志,27(1), 93–102。 doi:10.1016 / 0022-2496(83)90028-7

  • * 4 Saaty,R.W.(1987)。层次分析流程-它是什么以及如何使用它。数学建模,9(3-5),167.
    doi:10.1016 / 0270-0255(87)90473-8

  • * 4 Saaty,T.L.(1986)。层次分析过程的公理基础。管理科学,32(7),841.
    doi:10.1287 / mnsc.32.7.841

  • * 4 Hwang,C.L.,&Yoon,K.(1981)。多属性决策方法。在多属性决策中 制作(第58-191页)。施普林格,柏林,海德堡。

  • * 6 Zhou,Y.(1915年)。软件开发中的多标准决策:系统文献综述。

  • * 7 Zhou,Y.(1915年)。软件开发中的多标准决策:系统文献综述。

  • * 8 Pramanik,S.,Biswas,P.,&Giri,B.C.(2015)。混合向量相似性度量及其
    中智在多属性决策中的应用 环境。神经计算与应用,28(5),1163
    doi:10.1007 / s00521-015-2125-3

  • * 8 Mardani,A.,Nilashi,M.,Zavadskas,E.K.,Awang,S.R.,Za​​re,H.,和Jamal,N.M.(2018)。基于模糊的决策方法 集合运营商:1986年至2017年的三个十年回顾。
    国际信息技术与决策杂志, 17(02),391–466。 doi:10.1142 / s021962201830001x

  • * 9 Zhao,H.(2007)。开发帕累托最优决策树的多目标遗传规划方法。决策支持 系统,43(3),809-826。

  • * 9 Laumanns,M.和Ocenasek,J.(2002年9月)。用于多目标优化的贝叶斯优化算法。在
    从自然界解决并行问题国际会议(pp。 298-307)。施普林格,柏林,海德堡。

  • * 9 Jin,Y.(Ed。) (2006)。多目标机器学习(第16卷)。施普林格科学与商业媒体。

  • 10 Tamaki,H.,Kita,H.&Kobayashi,S.(1996年5月)。 遗传算法的多目标优化:综述。 在《进化计算》(1996年)中,IEEE论文集
    国际会议(pp.517-522)。 IEEE。

  • * 11 Rodriguez,S.,Gaud,N.,&Galland,S.(2014年8月)。 SARL:一种通用的面向代理的编程语言。在 Web Intelligence(WI)和Intelligent Agent Technologies(IAT), 2014年IEEE / WIC / ACM国际联合会议(第3卷, pp.103-110)。 IEEE。

  • * 12 Rao,A.S.(1996年1月)。 AgentSpeak(L):BDI代理以逻辑可计算语言说出来。在关于多代理世界中的自治代理建模的欧洲研讨会上(第42-55页)。施普林格,柏林,海德堡。

  • * 13 Ricci,F.,Rokach,L.,&Shapira,B.(2015年)。推荐系统:介绍和挑战。在推荐系统中 手册(第1-34页)。马萨诸塞州波士顿,斯普林格。

  • * 14 https://www.ibm.com/analytics/prescriptive-analytics

答案 4 :(得分:1)

我在网上做了一些浏览,我遇到了这个example project

您也可以查看AI-Depot网站here

可能没有那么多工作示例的原因是因为AI决策算法(例如神经网络,遗传算法和决策树)变得非常复杂,非常快。这些算法的大多数开发人员,至少是稳定且实际工作的算法,都非常保护他们的IP。并且,有充分的理由。

无论如何,希望这会有所帮助。

  • 让它知道