在最优化领域,有几个你绝对不能忽略的关键词:拟牛顿、DFP、BFGS。名字很怪,但是非常著名。下面会依次地说明它们分别“是什么”,“有什么用” 以及 “怎么来的”。
但是在进入正文之前,还是要先提到一个概念上的区别,否则将影响大家的理解:其实DFP算法、BFGS算法都属于拟牛顿法,即,DFP、BFGS都分别是一种拟牛顿法。
在最优化领域,有几个你绝对不能忽略的关键词:拟牛顿、DFP、BFGS。名字很怪,但是非常著名。下面会依次地说明它们分别“是什么”,“有什么用” 以及 “怎么来的”。
但是在进入正文之前,还是要先提到一个概念上的区别,否则将影响大家的理解:其实DFP算法、BFGS算法都属于拟牛顿法,即,DFP、BFGS都分别是一种拟牛顿法。
电信提供的HG255d家庭网关(就是一台网络设备),作为光纤到户宽带赠送的网络设备,在使用上有诸多限制。本文向大家介绍了如何破解家庭网关以拿到其超级用户权限,以及使用自己的无线路由器桥接HD255d直连光纤猫,从而避开HG255d对BT下载的限制的方法。
警告:本文仅作学习用途,对造成的任何损失及后果不承担任何责任!
在安装光纤到户宽带的时候,电信提供了两台设备:一是光纤猫,我们不需要动它;另一台是华为产的HD255d网络设备,它是一台融合了无线路由、IPTV、电话等功能的设备,所以你可以看到它上面不仅有LAN接口,而且有IPTV接口、电话机接口等。入户的光纤接在光猫上,从光猫出来的一根网线接到华为HG255d上,然后,我们可以采用有线或无线(WiFi)的方式连接到HG255d上,就可以上网了。光猫和HG255d每次上电的时候,HG255d会自动拨号(类似于无线路由器接ADSL猫上网一样)连接网络,所以你连接到HG255d上之后,就可以直接上网了。
在最优化的领域中,这“法”那“法”无穷多,而且还“长得像”——名字相似的多,有时让人觉得很迷惑。
在自变量为一维的情况下,也就是自变量可以视为一个标量,此时,一个实数就可以代表它了,这个时候,如果要改变自变量的值,则其要么减小,要么增加,也就是“非左即右“,所以,说到“自变量在某个方向上移动”这个概念的时候,它并不是十分明显;而在自变量为n(n≥2)维的情况下,这个概念就有用了起来:假设自变量X为3维的,即每一个X是(x1, x2, x3)这样的一个点,其中x1,x2和x3分别是一个实数,即标量。那么,如果要改变X,即将一个点移动到另一个点,你怎么移动?可以选择的方法太多了,例如,我们可以令x1,x2不变,仅使x3改变,也可以令x1,x3不变,仅使x2改变,等等。这些做法也就使得我们有了”方向“的概念,因为在3维空间中,一个点移动到另一个点,并不是像一维情况下那样“非左即右”的,而是有“方向”的。在这样的情况下,找到一个合适的”方向“,使得从一个点移动到另一个点的时候,函数值的改变最符合我们预定的要求(例如,函数值要减小到什么程度),就变得十分有必要了。
N年前,当我还是一个在校学生的时候,有一次到工厂里实习,看到某系统上运行的一个软件中显示的一条条曲线,以及其下的一些参数值,我问旁边开发那款软件的老师:某某值是怎么求出来的?老师说,是对曲线求导算出来的。当时我就心想,一个人开发出这款软件得综合多少个领域的知识才能做得到啊。从那时起,我的心中就埋下了一颗种子。时光匆匆,一眨眼就到了今天,因为学习其他算法的原因,涉及到了一些求导算法的编程,于是,本文必须得写。
求导算法应用广泛,例如,在LM算法中,需要对函数求导(但是,使用数值求导的方法来求导数值,会不会对LM算法的整个过程的效率造成较大影响,我不清楚,还没有试验),可以考虑使用数值求导算法来实现。
一台装有Raid卡的服务器要安装RHEL 5.3,而RHEL 5.3并不自带该服务器的Raid卡驱动,于是,在图形化界面的安装过程中,当要选择磁盘空间分配的时候,找不到磁盘。于是可知,应该是RHEL 5.3没有自带这块Raid卡的驱动,所以要在安装过程中加载它。
要在RHEL里的一个分区上使用xfs文件系统,不像Ubuntu那么简单。此处以RHEL 5.3为例,说明如何将一个分区格式化为xfs文件系统,并开机自动挂载。
首先,从安装RHEL 5.3说起。它默认是不支持xfs的,你无法在安装过程中指定一个分区使用xfs格式。因此,我选择了将此分区做成ext3的方法,待完全安装好系统之后再在命令行下格式化为xfs。
✔ 当你把一个文件加入distribution cache的时候,要注意:如果你是以addCacheFile()的方式添加的,而你在mapper中取出来的时候,却是以archive的方式取出来——getLocalCacheArchives(),那么,你将得不到cache文件的路径,因为放进去和取出来的方式要一致。
在一台做了Raid、只有一个>7TB的磁盘(之所以会这么大,是因为用Raid把N块物理硬盘做成了一块虚拟硬盘)的服务器上,安装了VMware EXSi后,发现数据存储可用空间只有1.27TB,神奇,另外的6T多空间哪去了呢?如下图:
前言:本文『很傻很天真』,任何稍有Java编程经验的都不用看了。
(1)Java文件编译得到class文件,jar包是若干class文件(以及其他一些文件)的集合,如果要在命令行运行jar包中的一个class文件(相当于一个Java程序),可以这样做:
java -cp /root/software/tmp/XXX.jar:/root/software/tmp/lib/* com.abc.calculate.MyClass --date 20101101
其中,-cp 表示指定classpath,后面需要以分号(:)分隔的方式将所有需要用到的依赖jar包添加进来,此处添加了 /root/software/tmp/XXX.jar 包以及 /root/software/tmp/lib/ 目录下的所有jar包。
com.abc.calculate.MyClass 是要运行的jar包 XXX.jar 中的一个class文件,这么长的名字是它在jar包中的路径全名。
--date是传给 MyClass 程序命令行参数。还可以带更多的参数,要看你在Java程序中是如何写的代码。
假设shell脚本A中的一段代码设置有文件锁,在此文件锁的后面(外部)以后台运行的方式调用了脚本B(此脚本中也有文件锁,但是与脚本A的锁文件不是同一个文件),并且脚本B执行时间相当之长,那么,在后台运行的脚本B在结束之后,是否会导致脚本A无法启动第二个进程呢?
下面就来做一个简单的试验,以确定上面的问题。
脚本A(parent.sh)内容如下:
#!/bin/sh
SHELL_DIR="/root/"
LOCKFILE_1=$SHELL_DIR".lock1"
{
echo "Go into lock1."
if ! flock -n 4; then
echo "*** Shell is running, quit."
exit 1
fi
} 4<>$LOCKFILE_1
$SHELL_DIR"child.sh" & # run shell B on background
本文描述了我在使用Nagios的过程中遇到的一些问题、解决办法以及总结的注意事项。文章很长,请使用Ctrl+F定位到你需要的部分。
Nagios是一套强大的监控报警系统,但是你不花一些时间,是绝对不可能很好地配置它的。除非你只需要监控主机的alive等简单的情况(例如ping),否则请放弃幻想,以极大的耐心去研究它吧。
在VMware管理界面中为一台Linux虚拟机新添加一块虚拟磁盘后,在系统中查看:
fdisk -l
然后将其格式化为ext3:
mkfs.ext3 /dev/sdb
然后挂载到某个目录下,例如 /mnt/disk2/ :