Wikipedia editor
Subpages
- /sandbox (personal sandbox)
- /sandbox/ex
- /sandbox/ex2
- /sandbox/ex3
- /sandbox/Template:NumBlk (for Special:TemplateSandbox)
- /Private Note
- /Glossary
- /Valuables
- /IRC
- /Blog comments
- /.emacs
- /mtbv
- /regtst.cpp
- /CheckPrintCall.cxx
Links
- List of XML and HTML character entity references
- Wikipedia:WikiProject User scripts/Scripts
- How to mount LVM volumes, help! (keyword="mount LVM fedora")
- Template:AD
- Ubuntu 下安装 JRE (Java Runtime Environment)
- Red/Black Tree Demonstration
- Multi Thread Programming
- epoll()簡單介紹(轉貼)
- AVL Trees vs. Red-Black Trees?
- Virtual memory areas (VMAs) are tracked with red-black trees, as are epoll file descriptors
- Epoll calls rb_set_parent(n, n) to initialize the rb-tree node
- reentrant,thread-safe 和 async-signal-safe
- Linux Interprocess Communications
- Comparing the aio and epoll event frameworks
- Linux Kernel IPC 的介紹
- 可重入性 线程安全 Async-Signal-Safe
- Bash Shell Script可以做到光棒上下移動選單的功能嗎 ?
- ANSI escape code
- Understanding the Linux Kernel
- (IEEE make manual) The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition manual
- 在Emacs裡面使用Cscope
- IEs4Linux
- 將隨身碟格式化成 NTFS
- [17] Exceptions and error handling
- Performance (Apple Developer Connection)
- What every programmer should know about memory
- Polymorphic Inline Cache
- Context Threading: A Flexible and Efficient Dispatch Technique for Virtual Machine Interpreters
- Branch prediction
- http://www.open-std.org/jtc1/sc22/wg...1997/N1124.pdf
- All about Linux signals
- LLVM - Low-Level Virtual Machine
- C++ Literal Constants
- mips 和 mipsel 的差異
- Garbage Collection
- Re: Problems with glibc-2.2.2 and threads (realtime signal)
- 搭建LLVM實驗環境(轉貼)
- Simple VM JIT with LLVM
- Communicating sequential processes (CSP) mentioned in Go language
- The Very Basics of Garbage Collection (see 'Myths' section)
- Ch interpreter (an embeddable C/C++ interpreter)
- JDownloader
- Log-Out of Google Account
- 在 Ubuntu 9.04 設置 Android 開發環境
- Java not found. Java is required for Android
- How to install Android SDK and play with Android 2.0 in the emulator
- Access Android Market from Android Emulator
- Dalvik spends 7.4% of its time garbage collecting => Android UI spends 7.4% of its time unresponsive
- Kernel : likely/unlikely macros (gcc branch prediction information `__builtin_expect()')
- [資料] Dalvik VM的JIT編譯器的資料堆積(dumping...work in progress)
- How does garbage collection work? (generational garbage collector)
- Using Generational Garbage Collection To Implement Cache-Conscious Data Placement
- gcc 預先定義的巨集 (__func__, __FUNCTION__, __PRETTY_FUNCTION__)
- Re: Force GCC to unroll a loop? (loop unrolling could consume instruction cache and reduce performance)
On-line Linux manual
- Linux man
- POSIX:2008
- phpMan
- Ubuntu Manpage
- die.net
- About.com
Notes
C++
- Try-catch makes the code tidy and readable, without try-catch the code becomes ugly as you need to check the result and handle exceptions after each function call. However, it is performed in run-time and have overhead each time a function is called?
Firefox
- Gmail Manager: A Gmail notifier which allows you to receive new mail notifications.
Interactions
- Signals
- File system
- Out of memory (heap)
- Add/remove code usually changes the execution speed of the program. Which could affects the timing between different tasks, such as timeout mechanism or time restrictions in real-time systems. In the extreme case, the execution could be blocked and causes starvations/deadlocks. Add/remove code actually affects the program counter.
- It should be helpful to prevent deadlock by checking each statement one by one in the locked area and make sure each one will not block the execution.
Power loss
## Sharing folder
## Modify '/etc/exports', for example:
##
## /nfstmp *(rw,sync)
sudo /etc/init.d/nfs-kernel-server restart
Emacs
- Ask community if it's a bug: Emacs seems to hang when some of SCIM are killed or closed.
;; You can also use `M-x customize-variable <RET> x-select-enable-clipboard <RET>' to change the variable by Emacs UI.
(setq-default x-select-enable-clipboard t)
;;(defun x-clipboard-edit-key()
;; (global-set-key [(shift delete)] 'clipboard-kill-region)
;; (global-set-key [(control insert)] 'clipboard-kill-ring-save)
;; (global-set-key [(shift insert)] 'x-clipboard-yank))
Emacs for MS Windows:
<S-delete> runs the command kill-region
<C-insert> runs the command kill-ring-save
<S-insert> runs the command yank
SVN tips
svnadmin cteate /tmp/tstprj
mkdir /tmp/workdir
cd /tmp/workdir
svn co file:///tmp/tstprj
cd tstprj
cp /etc/fstab .
svn add fstab
svn ci --username=justin
cat << 'EOF' > /tmp/PrintPos.sh
#!/bin/bash
c=$#
i=1
while [ $i -le $c ]; do
echo "\$$i='$1'"
shift
i=$(($i + 1))
done
EOF
chmod a+x /tmp/PrintPos.sh
cat << 'EOF' > /tmp/ConcurDiffWrap.sh
#!/bin/bash
## !! There is interval between @a1@ and @a2@ such that other process would
## interfere the execution within the interval.
NewTmpDir()
{
local Node
while :; do
Node=$RANDOM
if [ ! -e /tmp/${Node} ]; then # @a1@
mkdir /tmp/${Node} # @a2@
eval "${1}=/tmp/${Node}"
return
fi
done
}
NewTmpDir Dir
mv "$6" "${Dir}/Old" || echo 'Cannot move $6'
echo '' > "$6"
mv "$7" "${Dir}/New" || echo 'Cannot move $7'
echo '' > "$7"
meld "$1" "$2" "$3" "$4" "$5" "${Dir}/Old" "${Dir}/New" &
## Print positional parameters.
##
## Put this segment at positions where positional parameter are no longer used,
## becasue there are `shift' in this segment.
c=$#
i=1
while [ $i -le $c ]; do
echo "\$$i='$1'"
shift
i=$(($i + 1))
done
echo '==================================================================='
EOF
chmod a+x /tmp/ConcurDiffWrap.sh
svn di -r 2:3 --diff-cmd /tmp/ConcurDiffWrap.sh
minicom
$ LANG=en_US.UTF-8 sudo minicom
- Ctrl-A Z T and change terminal setting from VT102 to ANSI
RAM disk
mkdir /tmp/ramdisk
sudo mount -t tmpfs -o size=16 tmpfs /tmp/ramdisk
sudo umount /tmp/ramdisk
Bra-ket notation
Column vector & row vector
"The scalar product or action is written as
![{\displaystyle \langle \phi {\mid }\psi \rangle .}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cebd01d950172f55bc03184ee0b546ce2d6c8b63)
The right part is called the ket ; it is a vector, typically represented as a column vector, and written
The left part is called the bra, ; it is the Hermitian conjugate of the ket with the same label, typically represented as a row vector, and written
" - Bra–ket notation
and ![{\displaystyle |1\rangle ={\begin{bmatrix}0\\1\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/138b70e71118d01fa7c2c52f596b343e18100cf2)
![{\displaystyle |\psi _{1}\rangle =a|0\rangle +b|1\rangle =a{\begin{bmatrix}1\\0\end{bmatrix}}+b{\begin{bmatrix}0\\1\end{bmatrix}}={\begin{bmatrix}a\\0\end{bmatrix}}+{\begin{bmatrix}0\\b\end{bmatrix}}={\begin{bmatrix}a\\b\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/da2ad0e59299e574758db36462ae2c0efa4ab69c)
![{\displaystyle |\psi _{2}\rangle =c|0\rangle +d|1\rangle ={\begin{bmatrix}c\\d\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/652626881d9070dbcf7b303c0e1ce965e2056984)
![{\displaystyle |00\rangle =|0\rangle \otimes |0\rangle ={\begin{bmatrix}1\\0\end{bmatrix}}\otimes {\begin{bmatrix}1\\0\end{bmatrix}}={\begin{bmatrix}1\\0\\0\\0\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b79688a1e41c3b12e954171f80f93e243c0f4213)
![{\displaystyle |01\rangle =|0\rangle \otimes |1\rangle ={\begin{bmatrix}1\\0\end{bmatrix}}\otimes {\begin{bmatrix}0\\1\end{bmatrix}}={\begin{bmatrix}0\\1\\0\\0\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/80836a84bc85a837ced8026311b826215be7a3ce)
![{\displaystyle |10\rangle =|1\rangle \otimes |0\rangle ={\begin{bmatrix}0\\1\end{bmatrix}}\otimes {\begin{bmatrix}1\\0\end{bmatrix}}={\begin{bmatrix}0\\0\\1\\0\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/eb8c8977344efa5fb129bf9343981f47aecd56d2)
![{\displaystyle |11\rangle =|1\rangle \otimes |1\rangle ={\begin{bmatrix}0\\1\end{bmatrix}}\otimes {\begin{bmatrix}0\\1\end{bmatrix}}={\begin{bmatrix}0\\0\\0\\1\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/66fa55396628f51948eb9012a9fd527220f27a2e)
![{\displaystyle |\psi _{1}\psi _{2}\rangle =|\psi _{1}\rangle \otimes |\psi _{2}\rangle =(a|0\rangle +b|1\rangle )\otimes (c|0\rangle +d|1\rangle )=ac|0\rangle \otimes |0\rangle +ad|0\rangle \otimes |1\rangle +bc|1\rangle \otimes |0\rangle +bd|1\rangle \otimes |1\rangle =ac|00\rangle +ad|01\rangle +bc|10\rangle +bd|11\rangle =ac{\begin{bmatrix}1\\0\\0\\0\end{bmatrix}}+ad{\begin{bmatrix}0\\1\\0\\0\end{bmatrix}}+bc{\begin{bmatrix}0\\0\\1\\0\end{bmatrix}}+bd{\begin{bmatrix}0\\0\\0\\1\end{bmatrix}}={\begin{bmatrix}ac\\ad\\bc\\bd\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/16a0b247eea1ebd1ce25b39be7fe001edaca0f51)
![{\displaystyle |\psi _{1}\psi _{2}\rangle =|\psi _{1}\rangle \otimes |\psi _{2}\rangle ={\begin{bmatrix}a\\b\end{bmatrix}}\otimes {\begin{bmatrix}c\\d\end{bmatrix}}={\begin{bmatrix}ac\\ad\\bc\\bd\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/99af1a1a035a664fc057399b234ea6ac13aaa1fa)
Quantum computer
- "Any quantum circuit can be simulated to an arbitrary degree of accuracy using a combination of CNOT gates and single qubit rotations." - Controlled NOT gate
- "The first implementation scheme for a controlled-NOT quantum gate was proposed by Ignacio Cirac and Peter Zoller in 1995" - Trapped_ion_quantum_computer#History_of_trapped_ion_quantum_computing
- "Because the number of elements in the matrices is
, where x is the number of qubits the gates act on, it is intractable to simulate large quantum systems using classical computers." - Quantum_gate#Circuit_composition_and_entangled_states
Quantum gate - Square root of NOT gate (√NOT)
.
![{\displaystyle {\sqrt {X}}={\sqrt {NOT}}={\frac {1}{2}}{\begin{bmatrix}1+i&1-i\\1-i&1+i\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/14bb5eb9c771d7d0ed1e8320a6c3a3474543f891)
![{\displaystyle {\sqrt {NOT}}\,{\sqrt {NOT}}=\left({\frac {1}{2}}{\begin{bmatrix}1+i&1-i\\1-i&1+i\end{bmatrix}}\right)\left({\frac {1}{2}}{\begin{bmatrix}1+i&1-i\\1-i&1+i\end{bmatrix}}\right)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/306ef16610557f614c82e2c05af6c871ad7360cc)
![{\displaystyle ={\begin{bmatrix}{\frac {1}{2}}(1+i)&{\frac {1}{2}}(1-i)\\{\frac {1}{2}}(1-i)&{\frac {1}{2}}(1+i)\end{bmatrix}}{\begin{bmatrix}{\frac {1}{2}}(1+i)&{\frac {1}{2}}(1-i)\\{\frac {1}{2}}(1-i)&{\frac {1}{2}}(1+i)\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cb69d1f4691880641ac2e3cca4fea345c4d1e5ab)
![{\displaystyle ={\begin{bmatrix}{\frac {1}{2}}(1+i){\frac {1}{2}}(1+i)+{\frac {1}{2}}(1-i){\frac {1}{2}}(1-i)&{\frac {1}{2}}(1+i){\frac {1}{2}}(1-i)+{\frac {1}{2}}(1-i){\frac {1}{2}}(1+i)\\{\frac {1}{2}}(1-i){\frac {1}{2}}(1+i)+{\frac {1}{2}}(1+i){\frac {1}{2}}(1-i)&{\frac {1}{2}}(1-i){\frac {1}{2}}(1-i)+{\frac {1}{2}}(1+i){\frac {1}{2}}(1+i)\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/995fc77e10c09f59db50286801be5147005f4f92)
![{\displaystyle ={\begin{bmatrix}{\frac {1}{2}}(1+i){\frac {1}{2}}(1+i)+{\frac {1}{2}}(1-i){\frac {1}{2}}(1-i)&{\frac {1}{2}}(1+i){\frac {1}{2}}(1-i)+{\frac {1}{2}}(1-i){\frac {1}{2}}(1+i)\\{\frac {1}{2}}(1+i){\frac {1}{2}}(1-i)+{\frac {1}{2}}(1-i){\frac {1}{2}}(1+i)&{\frac {1}{2}}(1+i){\frac {1}{2}}(1+i)+{\frac {1}{2}}(1-i){\frac {1}{2}}(1-i)\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e45ac989bd22609338f793736515c56323465c40)
![{\displaystyle ={\begin{bmatrix}{\frac {1}{2}}{\frac {1}{2}}(1+i)(1+i)+{\frac {1}{2}}{\frac {1}{2}}(1-i)(1-i)&{\frac {1}{2}}{\frac {1}{2}}(1+i)(1-i)+{\frac {1}{2}}{\frac {1}{2}}(1-i)(1+i)\\{\frac {1}{2}}{\frac {1}{2}}(1+i)(1-i)+{\frac {1}{2}}{\frac {1}{2}}(1-i)(1+i)&{\frac {1}{2}}{\frac {1}{2}}(1+i)(1+i)+{\frac {1}{2}}{\frac {1}{2}}(1-i)(1-i)\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/dbba85fcfa55e353e3c3aaa40447df13f8a0c3b4)
![{\displaystyle ={\begin{bmatrix}{\frac {1}{4}}(1+i)(1+i)+{\frac {1}{4}}(1-i)(1-i)&{\frac {1}{4}}(1+i)(1-i)+{\frac {1}{4}}(1-i)(1+i)\\{\frac {1}{4}}(1+i)(1-i)+{\frac {1}{4}}(1-i)(1+i)&{\frac {1}{4}}(1+i)(1+i)+{\frac {1}{4}}(1-i)(1-i)\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e463045cd0e4fb16fc9693e175e5165e4e52ba83)
![{\displaystyle ={\begin{bmatrix}{\frac {1}{4}}[(1+i)(1+i)+(1-i)(1-i)]&{\frac {1}{4}}[(1+i)(1-i)+(1-i)(1+i)]\\{\frac {1}{4}}[(1+i)(1-i)+(1-i)(1+i)]&{\frac {1}{4}}[(1+i)(1+i)+(1-i)(1-i)]\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/db3d286f3c43f8c18c4e6e23a515a4e92b3fefd7)
![{\displaystyle ={\frac {1}{4}}{\begin{bmatrix}(1+i)(1+i)+(1-i)(1-i)&(1+i)(1-i)+(1-i)(1+i)\\(1+i)(1-i)+(1-i)(1+i)&(1+i)(1+i)+(1-i)(1-i)\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e5465cfd10aceaeed8cb56dadaf702b67b4213c5)
![{\displaystyle ={\frac {1}{4}}{\begin{bmatrix}(1+i+i+i^{2})+(1-i-i+i^{2})&(1-i+i-i^{2})+(1+i-i-i^{2})\\(1-i+i-i^{2})+(1+i-i-i^{2})&(1+i+i+i^{2})+(1-i-i+i^{2})\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2b9f006633d1892d03d9da15afdffe230a13960e)
![{\displaystyle ={\frac {1}{4}}{\begin{bmatrix}(1+2i-1)+(1-2i-1)&(1-(-1))+(1-(-1))\\(1-(-1))+(1-(-1))&(1+2i-1)+(1-2i-1)\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/73d06dc8fefb1a0474a637daa870689741d77531)
![{\displaystyle ={\frac {1}{4}}{\begin{bmatrix}2i+(-2i)&2+2\\2+2&2i+(-2i)\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5f392315110cf42090f2f29cc8d9af6fa40d8667)
![{\displaystyle ={\frac {1}{4}}{\begin{bmatrix}0&4\\4&0\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b3495f78997fdbd0f9c7192fa90f4e5dac010941)
![{\displaystyle ={\begin{bmatrix}0&1\\1&0\end{bmatrix}}=NOT=X}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ff1c30cc04e110ff06cbf08eb8304cddf9380eeb)
In fact, you can use the service of online symbolic mathematics to do the above work for you. Related links:
- Mathics
- Online tools for doing symbolic mathematics - Mathematics Stack Exchange
Quantum gate - Example of operation parallelism
![{\displaystyle p_{00}:\,\,|00\rangle \mapsto |00\rangle }](https://wikimedia.org/api/rest_v1/media/math/render/svg/f9d51b2ea05733987ec8fbc49992a5fdeac6e3d4)
![{\displaystyle p_{01}:\,\,|01\rangle \mapsto |01\rangle }](https://wikimedia.org/api/rest_v1/media/math/render/svg/31ec663bef469e0106e82949a144837124cfe5ae)
![{\displaystyle p_{10}:\,\,|10\rangle \mapsto |11\rangle }](https://wikimedia.org/api/rest_v1/media/math/render/svg/6e990af17a272ddcb1da8f557bd55a5ec79a5ceb)
The meaning of notation above:
- For example, state
means that the first qubit is 0 and the second qubit is 1. If, for example,
, it means that state
appears with probability 0.7 after measurements.
The above map is the result of a series of quntum program executions which applying CNOT gate on the system. But you can not know the map beforehand, so how to know the value of the second qubit after applying the quantum gate operation above? Here is what you may do:
- You should be able to encode the system so that each state appears with the probability according to your design. Suppose that you encode the system so that the probability distribution is
![{\displaystyle p_{00}=0.4}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a8a89aa215da305c230d25b0894b819ba5c1fa35)
![{\displaystyle p_{01}=0.3}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a04474a4d78550256f08cf9b2d72750bb3d5fe72)
![{\displaystyle p_{10}=0.2}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f20f4f18efa145e9e92a187e039af82afad7d0fd)
![{\displaystyle p_{11}=0.1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f0078dc767dc169bf4405821681439f6438566f5)
- (note that
)
- Suppose that you want to know the second qubit's value of state
after the quantum operation. Because the corresponding probability you have encoded is
, you should be able to find one of 4 after-operation states
,
,
and
appears with probability 0.2 as you repeat the quantum program over and over several times. And you will finally realize that state
appears with probability 0.2 after you repeat enough the quantum program, so it means the state transition is from
to
and therefore the second qubit's value changes from 0 to 1 after the quantum operation.
Applying a 2-qubit CNOT gate to 3 qubits
![{\displaystyle {\mbox{CNOT}}=\left({\begin{array}{cccc}1&0&0&0\\0&1&0&0\\0&0&0&1\\0&0&1&0\end{array}}\right)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f8a079b5e554dd1060946bdb74fcd3f4ff8c048b)
![{\displaystyle I\otimes {\mbox{CNOT}}=\left({\begin{array}{cc}1&0\\0&1\end{array}}\right)\otimes \left({\begin{array}{cccc}1&0&0&0\\0&1&0&0\\0&0&0&1\\0&0&1&0\end{array}}\right)=\left({\begin{array}{cccccccc}1&0&0&0&0&0&0&0\\0&1&0&0&0&0&0&0\\0&0&0&1&0&0&0&0\\0&0&1&0&0&0&0&0\\0&0&0&0&1&0&0&0\\0&0&0&0&0&1&0&0\\0&0&0&0&0&0&0&1\\0&0&0&0&0&0&1&0\end{array}}\right)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/098252baf641a4150f91c7ac256a14dd8ed2ceb0)
![{\displaystyle |\psi \rangle =\left({\begin{array}{c}a\\b\\c\\d\\e\\f\\g\\h\end{array}}\right)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7bdffd15b273885a434107736e30d472bbe8a045)
![{\displaystyle (I\otimes {\mbox{CNOT}})|\psi \rangle =\left({\begin{array}{cccccccc}1&0&0&0&0&0&0&0\\0&1&0&0&0&0&0&0\\0&0&0&1&0&0&0&0\\0&0&1&0&0&0&0&0\\0&0&0&0&1&0&0&0\\0&0&0&0&0&1&0&0\\0&0&0&0&0&0&0&1\\0&0&0&0&0&0&1&0\end{array}}\right)\left({\begin{array}{c}a\\b\\c\\d\\e\\f\\g\\h\end{array}}\right)=\left({\begin{array}{c}a\\b\\d\\c\\e\\f\\h\\g\end{array}}\right)\,\,\,{\begin{array}{c}{\text{qubits 000}}\\{\text{qubits 001}}\\{\text{qubits 010}}\\{\text{qubits 011}}\\{\text{qubits 100}}\\{\text{qubits 101}}\\{\text{qubits 110}}\\{\text{qubits 111}}\end{array}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/543477854c02c2c18d2fe935b2d9a6d75ced3e04)
Reinforcement learning
- "If the discount factor meets or exceeds 1, the
values may diverge." - State–action–reward–state–action#Discount_factor_(gamma)
Deterministic and simplified Q functions of reinforcement learning
Simplify by letting
. The result should be more close to dynamic programming.
Q-learning
![{\displaystyle Q(s_{t},a_{t})\leftarrow (1-\alpha )\cdot \underbrace {Q(s_{t},a_{t})} _{\rm {old~value}}+\underbrace {\alpha } _{\rm {learning~rate}}\cdot \overbrace {{\bigg (}\underbrace {r_{t}} _{\rm {reward}}+\underbrace {\gamma } _{\rm {discount~factor}}\cdot \underbrace {\max _{a}Q(s_{t+1},a)} _{\rm {estimate~of~optimal~future~value}}{\bigg )}} ^{\rm {learned~value}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1df368653bf2eb16081f8738486ef4c9d60e9d03)
![{\displaystyle Q(s_{t},a_{t})\leftarrow (1-\alpha )\cdot Q(s_{t},a_{t})+\alpha \cdot \overbrace {{\bigg (}r_{t}+\gamma \cdot \max _{a}Q(s_{t+1},a){\bigg )}} ^{\rm {learned~value}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/465ad46f7f8c39d97bee012ad2c7b5f5d0e31c2a)
![{\displaystyle Q(s_{t},a_{t})\leftarrow (1-\alpha )\cdot Q(s_{t},a_{t})+\alpha \cdot {\bigg (}r_{t}+\gamma \cdot \max _{a}Q(s_{t+1},a){\bigg )}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/33fe298f527af0552e33e23aefea099828ef803a)
![{\displaystyle Q(s_{t},a_{t})\leftarrow r_{t}+\max _{a}Q(s_{t+1},a)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ebad54b1ef77b3e94bb26715b03c26d5baae22d2)
SARSA
![{\displaystyle Q(s_{t},a_{t})\leftarrow Q(s_{t},a_{t})+\alpha [r_{t}+\gamma Q(s_{t+1},a_{t+1})-Q(s_{t},a_{t})]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4ea76ebe74645baff9d5a67c83eac1daff812d79)
![{\displaystyle Q(s_{t},a_{t})\leftarrow Q(s_{t},a_{t})+[r_{t}+\gamma Q(s_{t+1},a_{t+1})-Q(s_{t},a_{t})]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/48a97ca1be07771dbebdae3c1f8d0e40d2036d22)
![{\displaystyle Q(s_{t},a_{t})\leftarrow Q(s_{t},a_{t})+r_{t}+\gamma Q(s_{t+1},a_{t+1})-Q(s_{t},a_{t})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d8d63b568c9af49e633651cd589c9e1635652afb)
![{\displaystyle Q(s_{t},a_{t})\leftarrow r_{t}+Q(s_{t+1},a_{t+1})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f8a5e94d561b63be21f30b67fac8963f0c3f7431)
Self-pipe trick
int pipefd[2];
void handler(int signum)
{
char ch = 0;
write(pipefd[1], &ch, sizeof(ch));
}
void startRoutine(SIMP_SOCK_Arg_T *arg)
{
// ...
pipe(pipefd);
fcntl(pipefd[0], F_SETFL, fcntl(pipefd[0], F_GETFL) | O_NONBLOCK);
fcntl(pipefd[1], F_SETFL, fcntl(pipefd[1], F_GETFL) | O_NONBLOCK);
signal(SIGTERM, handler);
FD_ZERO(&rfds);
FD_SET(arg->mSock.mSocket, &rfds);
FD_SET(pipefd[0], &rfds);
// ...
while (1)
{
_rfds = rfds;
// ...
if (select(maxfd + 1, &_rfds, &_wfds, NULL, NULL) == -1)
{
if (errno == EINTR) continue;
break;
}
// ... read()/write() socket and process data ...
// There could be resource allocation somewhere
void *p = malloc(...);
// ... do something about *p ...
free(p);
if (FD_ISSET(pipefd[0], &_rfds))
{
char ch;
read(pipefd[0], &ch, sizeof(ch));
break;
}
}
// ...
}
Raw Watchlist
Adiabatic quantum computation
BKL singularity
BadVista
Bing
Bing (Search)
Bing (search engine)
Bing (web search engine)
Cavity quantum electrodynamics
Classical test theory
Cluster state
Coherence (physics)
Convolution
Criticism of Google
Criticism of Microsoft
Criticism of Wikipedia
Criticism of Windows 7
Device driver
Dirac delta function
Direct Rendering Manager
Euler's theorem (differential geometry)
Evolute
Fourier series
Freedesktop.org
Git (software)
Google
Google platform
Graphics Execution Manager
Guievict
Internet Explorer 8
Jordan curve theorem
Keith Packard
LOCC
Lagrange's identity
Library (computing)
List of unsolved problems in physics
Loadable kernel module
MeeGo
MeeGo (operating system)
Method of characteristics
Metric tensor
MicroXwin
Microsoft
Microsoft Office 2007
Möbius transformation
Nitrogen-vacancy center
O(1) scheduler
Office Open XML
One-way quantum computer
OpenDocument
OpenDocument software
Optical lattice
Optical pumping
Overlap-add method
Overlap–add method
Phasor
Phasor (sine waves)
Pseudo-differential operator
Pythagorean triple
Qt (framework)
Quantum channel
Quantum cryptography
Quantum error correction
Quantum gate
Quantum information
Quantum key distribution
Quantum mechanical Bell test prediction
Quantum programming
Quantum teleportation
Quasiconformal mapping
Qubit
Ratio test
Riesz transform
Selection rule
Separable state
Separable states
Squashed entanglement
Standardization of Office Open XML
Sturm-Liouville theory
Sturm–Liouville theory
Superconducting quantum computing
Topological computing
Topological quantum computer
Trapped ion quantum computer
Universal quantum simulator
Unsolved problems in physics
Wayland (display server)
Wayland (display server protocol)
Wayland display server
Windowing system
Windows 7
Windows 7/Archive 7
X Window System
Xmove
Xpra
User:HAl
User:Justin545/Blog comments
User:Justin545/Blogger
User:Justin545/IRC
User:Justin545/Private Note
User:Silly rabbit
Template:NumBlk
Template:NumBlk/doc
template:NumBlk & lists
![{\displaystyle f(x)=ax+b}](https://wikimedia.org/api/rest_v1/media/math/render/svg/75c655df4be41082c4bba924beab2c1dc27d019c) | | (77) |
![{\displaystyle f(x)=ax+b}](https://wikimedia.org/api/rest_v1/media/math/render/svg/75c655df4be41082c4bba924beab2c1dc27d019c) | | (37) |
-
![{\displaystyle f(x)=ax+b}](https://wikimedia.org/api/rest_v1/media/math/render/svg/75c655df4be41082c4bba924beab2c1dc27d019c) | | (17) |
-
![{\displaystyle f(x)=ax+b}](https://wikimedia.org/api/rest_v1/media/math/render/svg/75c655df4be41082c4bba924beab2c1dc27d019c) | | (57) |
![{\displaystyle f(x)=ax+b}](https://wikimedia.org/api/rest_v1/media/math/render/svg/75c655df4be41082c4bba924beab2c1dc27d019c) | | (97) |
![{\displaystyle f(x)=ax+b}](https://wikimedia.org/api/rest_v1/media/math/render/svg/75c655df4be41082c4bba924beab2c1dc27d019c) | | (67) |
Pages may be with issues
Carbon sink