当前位置:  互联网>综合
本页文章导读:
    ▪fuzzy logic模糊计算的原理      为什么需要 模糊计算?  首先,弄清楚 传统计算的方式:精确的数学语言,定量化分析,无法解决 概念模糊的问题,如大房子,小个子,小伙子等。 原因就是 有一些概念模糊的问题,需.........
    ▪Distinct Subsequences      题目: Given a string S and a string T, count the number of distinct subsequences of T in S. A subsequence of a string is a new string which is formed from the original string by deleting some (can be none) of the characters without disturbing the .........
    ▪Populating Next Right Pointers in Each Node      题目: Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next; } Populate each next pointer to point to its next right node. If there is no next right node, the next pointer .........

[1]fuzzy logic模糊计算的原理
    来源: 互联网  发布时间: 2013-10-24

为什么需要 模糊计算? 

首先,弄清楚 传统计算的方式:精确的数学语言,定量化分析,无法解决 概念模糊的问题,如大房子,小个子,小伙子等。

原因就是 有一些概念模糊的问题,需要模糊计算来处理。


模糊计算与普通计算的 明显不同之处在哪里?

普通计算,一般是函数式,一一对应的关系。

而模糊计算,一个变量,可以对应于多个状态值,当然,这些个状态与普通的函数表示也不是完全相同的,并不是完全确定的,它们有一个隶属度,或者说概率,来表示这个状态。

隶属度表示程度,它的值越大,表明这个状态的概率越高,反之则表明这个状态的概率越低 。


什么是模糊函数、隶属度函数?

三角函数,梯形函数,sigmoid函数等,类似一些分段函数,或者一些变换函数。


什么是模糊逻辑,运算?

符合普通集合的计算法则。并、交、补; 幂等律、交换律、结合律、分配率、摩根律


什么是模糊推理、模糊规则?

模糊推理时,依赖的规则,就是模糊规则。一般都是 ”if,then:如果,就是“ 的形式

将输入的模糊集合,通过一定的运算对应到特定的输出模糊集,这个计算过程就是模糊推理。将输入转化为输出。


其过程模块包括:模糊规则库、模糊化、推理方法、去模糊化

模糊化:根据隶属度函数从具体的输入得到对模糊集隶属度的过程

推理方法:从模糊规则和输入对相关模糊集的隶属度得到模糊结论的方法

去模糊化: 将模糊结论转化为具体的、精确的输出的过程


其计算流程大致如下:

输入(采集数据) ——> 模糊化(分段函数、分布函数,得到 隶属度模糊集(特征数据)) ——> 规则库 + 推理方法 ——> 模糊结论——> 去模糊化


普通模糊计算的缺点:

模糊规则的专家库设计,这个目前需要人为的专家来设计,无演化能力。


特点: 推理能力强,模拟人脑的非线性、非精确的信息处理能力。


模糊计算的应用:

推荐系统

控制领域的专家系统


演化:

模糊神经网络系统

汇集神经网络和模糊计算是优点,即人工神经网络具有 较强的自学习和联想功能能力,人工干预少,精度较高,对专家知识的利用也较好;而模糊计算的特点有 推理过程容易理解、专家知识利用较好、对样本的要求较低等。

1. 利用神经网络,来学习、演化模糊规则库。类似数据挖掘的过程,模糊竞争学习算法 : 利用神经网络来增强的 模糊计算系统

2. 利用模糊控制方法,不断改善神经网络的性能,如模糊BP算法 :利用模糊计算增强的神经网络

作者:viewcode 发表于2013-6-3 17:16:33 原文链接
阅读:38 评论:0 查看评论

    
[2]Distinct Subsequences
    来源: 互联网  发布时间: 2013-10-24

题目:

Given a string S and a string T, count the number of distinct subsequences of T in S.

A subsequence of a string is a new string which is formed from the original string by deleting some (can be none) of the characters without disturbing the relative positions of the remaining characters. (ie, "ACE" is a subsequence of "ABCDE" while "AEC" is not).

Here is an example:
S = "rabbbit", T = "rabbit"

Return 3.

代码如下:

int DP(int m,int n,int **a,string &S, string &T)
    {
        if(n == -1)
            return 1;
        else if(m == -1)
            return 0;
        if(m < n)
            return 0;
        if(a[m][n] != -1)
            return a[m][n];
        if(S[m]==T[n])
        {
            a[m][n] = DP(m-1,n,a,S,T)+DP(m-1,n-1,a,S,T);
            return a[m][n];
        }
        else
        {
            a[m][n] = DP(m-1,n,a,S,T);
            return a[m][n];
        }
    }
    int numDistinct(string S, string T) {
        int **a=new int*[S.length()];
        for(int i = 0;i < S.length();i++)
            a[i] = new int[T.length()];
        for(int i = 0;i < S.length();i++)
            for(int j = 0;j < T.length();j++)
                a[i][j] = -1;
        return DP(S.length()-1,T.length()-1,a,S,T);
    }

作者:chunxia75qin 发表于2013-6-4 13:25:52 原文链接
阅读:15 评论:0 查看评论

    
[3]Populating Next Right Pointers in Each Node
    来源: 互联网  发布时间: 2013-10-24

题目:

Given a binary tree

    struct TreeLinkNode {
      TreeLinkNode *left;
      TreeLinkNode *right;
      TreeLinkNode *next;
    }

Populate each next pointer to point to its next right node. If there is no next right node, the next pointer should be set to NULL.

Initially, all next pointers are set to NULL.

Note:

  • You may only use constant extra space.
  • You may assume that it is a perfect binary tree (ie, all leaves are at the same level, and every parent has two children).

For example,
Given the following perfect binary tree,

         1
       /  \
      2    3
     / \  / \
    4  5  6  7

After calling your function, the tree should look like:

         1 -> NULL
       /  \
      2 -> 3 -> NULL
     / \  / \
    4->5->6->7 -> NULL

代码如下:

void build(TreeLinkNode *root)
    {
        if(root->left!=NULL)
        {
            root->left->next=root->right;
            if(root->next!=NULL)
            {
                root->right->next=root->next->left;
            }
            else
            {
                root->right->next=NULL;
            }
            build(root->left);
            build(root->right);
        }
    }
    void connect(TreeLinkNode *root) {
        if(root==NULL)return;
        root->next=NULL;
        build(root);
        return;  
    }

作者:chunxia75qin 发表于2013-6-4 14:04:42 原文链接
阅读:67 评论:0 查看评论

    
最新技术文章:
▪用户及权限基础 2---- Linux权限    ▪用户及权限基础 3---- Linux扩展权限    ▪git 简明教程(1) --创建及提交
▪背包 代码    ▪json对象的封装与解析    ▪01背包,完全背包,多重背包 ,模板代码
▪apache安装详解    ▪HDU 4668 Finding string (解析字符串 + KMP)    ▪《TCP-IP详解 卷1:协议》学习笔记(二)
▪《TCP-IP详解 卷1:协议》学习笔记(持续更新...    ▪windows下使用swig    ▪gensim试用
▪Linux Shell脚本编程--nc命令使用详解    ▪solr对跨服务器表联合查询的配置    ▪递归和非递归实现链表反转
▪Linux磁盘及文件系统管理 1---- 磁盘基本概念    ▪Cholesky Decomposition    ▪HTTP协议学习
▪用C语言写CGI入门教程    ▪用hdfs存储海量的视频数据的设计思路    ▪java多线程下载的实现示例
▪【原创】eAccelerator 一个锁bug问题跟踪    ▪hadoop学习之ZooKeeper    ▪使用cuzysdk web API 实现购物导航类网站
▪二维数组中的最长递减子序列    ▪内嵌W5100的网络模块WIZ812MJ--数据手册    ▪xss 跨站脚本攻击
▪RobotFramework+Selenium2环境搭建与入门实例    ▪什么是API    ▪用PersonalRank实现基于图的推荐算法
▪Logtype    ▪关于端口号你知道多少!    ▪Linux基本操作 1-----命令行BASH的基本操作
▪CI8.7--硬币组合问题    ▪Ruby on Rails 学习(五)    ▪如何使用W5300实现ADSL连接(二)
▪不允许启动新事务,因为有其他线程正在该会...    ▪getting start with storm 翻译 第六章 part-3    ▪递归求排列和组合(无重复和有重复)
▪工具类之二:RegexpUtils    ▪Coding Interview 8.2    ▪Coding Interview 8.5
▪素因子分解 Prime factorization    ▪C# DllImport的用法    ▪图的相关算法
▪Softmax算法:逻辑回归的扩展    ▪最小生成树---Kruskal算法---挑战程序设计竞赛...    ▪J2EE struts2 登录验证
▪任意两点间的最短路径---floyd_warshall算法    ▪Sqoop实现关系型数据库到hive的数据传输    ▪FFMPEG采集摄像头数据并切片为iPhone的HTTP Stream...
▪Ubuntu 13.04 – Install Jetty 9    ▪TCP/IP笔记之多播与广播    ▪keytool+tomcat配置HTTPS双向证书认证
▪安装phantomjs    ▪Page Redirect Speed Test    ▪windows media player 中播放pls的方法
▪sre_constants.error: unbalanced parenthesis    ▪http headers    ▪Google MapReduce中文版
▪The TCP three-way handshake (connect)/four wave (closed)    ▪网站反爬虫    ▪Log4j实现对Java日志的配置全攻略
▪Bit Map解析    ▪Notepad 快捷键 大全    ▪Eclipse 快捷键技巧 + 重构
▪win7 打开防火墙端口    ▪Linux Shell脚本入门--awk命令详解    ▪Linux Shell脚本入门--Uniq命令
▪Linux(Android NDK)如何避免僵死进程    ▪http Content-Type一览表    ▪Redis实战之征服 Redis + Jedis + Spring (二)
▪Tomcat7.0.40 基于DataSourceRealm的和JDBCRealm的资源...    ▪利用SQOOP将ORACLE到HDFS    ▪django输出 hello world
▪python re    ▪unity3D与网页的交互    ▪内存共享基本演示
▪python join    ▪不再为无限级树结构烦恼,且看此篇    ▪python实现变参
▪打开文件数限制功能不断地制造问题    ▪Arduino Due, Maple and Teensy3.0 的 W5200性能测试    ▪Selenium实例----12306网站测试
▪基于协同过滤的推荐引擎    ▪C4.5决策树    ▪C#HTTP代理的实现之注册表实现
▪nosql和关系型数据库比较?    ▪如何快速比较这两个字符串是否相等?    ▪hdoj 1863 畅通工程 最小生成树---prime算法
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3