Thursday, May 14, 2009

Cây khung nhỏ nhất với thuật toán Kruskal và Prim

Bài toán tìm cây khung tối thiểu (hay cây khung nhỏ nhất - Minimmum Spanning Tree - MST) của một đồ thị vô hướng là một bài toán rất nổi tiếng và có ứng dụng rất lớn, bài toán được phát biểu một cách cụ thể theo lý thuyết đồ thị như sau:

Cho đồ thị vô hướng có trọng số G=(V,E) được cho trước dữ liệu (bằng một trong các cách: Ma trận kề, Danh sách cạnh, Danh sách liên kết...). Tìm cây khung nhỏ nhất của G hay tìm một tập cạnh ECK Ì E có n-1 cạnh, n đỉnh, không có một chu trình nào và có tổng trọng số của các cạnh là nhỏ nhất.

Hiện nay, đã có rất nhiều thuật toán giải quyết bài toán MST trong các trường hợp cụ thể để giải quyết các bài toán thực tế. Các công trình nghiên cứu về đồ thị nói chung và Cây khung nói riêng vẫn tiếp tục được phát triển, nhằm mở rộng thêm phạm vi ứng dụng của đồ thị, các công bố mới nhất vào cuối năm 2003 của một số giáo sư người Israel.

1. Vấn đề biểu diễn đồ thị:
Đồ thị G như vậy có thể được biểu diễn theo nhiều cách. Tuy nhiên có hai cách thông dụng nhất, đơn giản cho việc lập trình, và càng đơn giản cho bài toán chúng ta đang xét đó là Ma trận kề và Danh sách cạnh.

a) Ma trận kề (Adjacency Matrix):
Giả sử G có n đỉnh, khi đó ma trận kề A có kích thước (n*n), nếu A[i,j]=0 nghĩa là đỉnh i và đỉnh j không có cạnh nối, nếu A[i,j]<>0 nghĩa là giữa đỉnh i và j có đường đi trực tiếp với trọng số chính là A[i,j].
Như vậy G vô hướng thì A[i,j]=A[j,i] với m-i i, j. Do đó ma trận A có thể được rút gọn một nửa để trở thành 'Tam giác kề' khi lưu trữ, nhưng khi cấp phát tĩnh bộ nhớ trong chương trình ta vẫn phải dùng ma trận A (n*n).
Ma trận kề là cấu trúc dữ liệu truy xuất nhanh nhất và sử dụng đơn giản nhất trong các bài toán đồ thị, trừ một số trường hợp cá biệt nó kém CTDL khác. Chẳng hạn với giải thuật tìm chu trình Euler, CTDL Danh sách kề liên kết mới là hiệu quả nhất về m-i mặt. Tuy nhiên ma trận kề lưu trữ rất tốn bộ nhớ, giới hạn của vùng nhớ cơ sở là 64K, như vậy ma trận kề chỉ được tối đa 256*256 phần tử kiểu byte, chưa tính các biến khác phải dùng.

b) Danh sách cạnh (Edges List):

Giả sử G có m cạnh, khi đó danh sách cạnh L có m phần tử, mỗi phần tử có 3 trường thể hiện đỉnh đầu, đỉnh cuối (của cạnh) và trọng số giữa chúng.
Danh sách cạnh như vậy có thể biểu diễn bằng một mảng một chiều m phần tử record 3 trường, hoặc 3 mảng một chiều rời nhau. Đây cũng là CTDL đơn giản, dễ sử dụng. Danh sách cạnh có những hạn chế như việc xác định 2 đỉnh có kề nhau hay không, loại bỏ cạnh, nhưng nó tốn ít bộ nhớ và trong một số trường hợp cụ thể nó tỏ ra rất ưu việt, như trong giải thuật Kruskal chẳng hạn.

Nhận xét:
Mỗi CTDL có những ưu điểm, nhược điểm khác nhau trong từng tình huống, từng giải thuật. Nhưng nhìn chung từ cách biểu diễn này hoàn toàn có thể biểu diễn sanh cách kia. Vậy chúng ta chọn CTDL nào cho bài toán này?
Cây khung thực chất là một đồ thị con G' của G với cùng tập đỉnh nhưng số cạnh ít hơn (hoặc bằng nếu G đã là một cây khung) sao cho G' thoả mãn là: Liên thông, Không có chu trình và có n-1 cạnh. Ta biểu diễn G' bằng danh sách cạnh là thích hợp nhất. Còn G để đơn giản và nhanh chóng chúng ta dùng ma trận kề.

2. Thuật toán Kruskal:
- Tư tưởng: Để xây dựng tập n-1 cạnh của cây khung nhỏ nhất? tạm gọi là tập K, Kruskal đề nghị cách kết nạp lần lượt các cạnh vào tập đó theo nguyên tắc như sau: Ưu tiên các cạnh có trọng số nhỏ hơn, kết nạp cạnh khi nó không tạo chu trình với tập cạnh đã kết nạp trước đó. Đó là một nguyên tắc chính xác và đúng đắn, đảm bảo tập K nếu thu đủ n-1 cạnh sẽ là cây khung nhỏ nhất.

- Khi lập trình để có được sự ưu tiên, cách tốt nhất là sắp xếp trước các cạnh theo trọng số tăng dần. Điều này cũng gợi ý cho chúng ta thấy nên sử dụng danh sách cạnh trong giải thuật Kruskal, tuy nhiên để thống nhất đầu vào với giải thuật Prim trong chương trình, chúng ta sẽ sử dụng ma trận kề sau đó chuyển thành danh sách cạnh.

- Để kiểm tra xem cạnh đang xét có tạo chu trình không với tập cạnh đã kết nạp, chúng ta sử dụng một phương pháp đặc biệt mỗi khi kết nạp đó là: cho một đỉnh trở thành 'dad' của đỉnh kia. Với 2 đỉnh x, y bất kỳ, nếu 'dad cao nhất' của chúng bằng nhau thì cạnh nối x, y sẽ tạo nên chu trình (chu trình này đi qua 'dad' chung đó.

3. Thuật toán Prim:
- Do thuật toán Kruskal làm việc trên các cạnh nên sẽ kém hiệu quả nếu có quá nhiều cạnh? như các đồ thị dày (số cạnh m ≈ n(n-1)/2).
- Đối nghịch với Kruskal, thuật toán Prim làm việc trên các đỉnh, sẽ hiệu quả hơn với các đồ thị dày. Có thế thấy đa số các đồ thị trong thực tế có số đỉnh không lớn còn số cạnh rất lớn nên Prim tỏ ra hiệu quả hơn và?đắt giá? hơn Kruskal, mặc dù cài đặt có phức tạp hơn. Ngoại lệ, trong các trường hợp số cạnh rất ít còn số đỉnh rất nhiều thì Prim kém hiệu quả hơn Kruskal.
- Tư tưởng: Prim đề xuất cách xây dựng đồng thời tập đỉnh đã kết nạp (VH) và tập cạnh đã kết nạp T cho cây khung nhỏ nhất theo nguyên tắc như sau: Lần lượt kết nạp một đỉnh u thuộc VVH vào VH sao cho tồn tại v thuộc VH mà trọng số (u,v) là nhỏ nhất trong m-i cặp đỉnh nối VH và VVH

Wednesday, May 13, 2009

Nhận diện thực thể có tên (NER)

Nhận diện thực thể có tên (Named Entity Recognization) là xác định các đối tượng như địa danh, tên người, tổ chức ... xuất hiện trong văn bản. Tùy theo mỗi mức, mỗi mục tiêu mà có số loại thực thể khác nhau.

Nhận dạng tên người, tên tổ chức là một bài toán khó trong nhận dạng tiếng nói vì có rất nhiều sự khác nhau trong cánh nói của mỗi người, sự phong phú về ngôn ngữ và cách phát âm tên người. tên tổ chức.

Các link tham khảo:

http://www.aclweb.org/anthology-new/E/E06/E06-3004.pdf
http://
pages.cs.wisc.edu/~bsettles/pub/bsettles-nlpba04.pdf
http://www.nii.ac.jp/pi/n4/4_5.pdf
http://www.springerlink.com/index/M27U265246L64570.pdf
http://research.nii.ac.jp/~collier/papers/RIAO%202007.pdf

Gán nhãn từ loại tiếng Việt (VietPOS)

Gán nhãn từ loại (còn được viết viết tắt là POS Tagger) là nghiên cứu nền tảng của xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP).

Gán nhãn từ loại tiếng Việt hiện nay đã có một số nghiên cứu (Nhóm ở Jaist, ở HCMUNS, ở HCMUT), tuy nhiên kết quả chỉ mới dựng lại trong từng nhóm nghiên cứu chứ chưa được phổ biến rộng rãi trong cộng đồng nghiên cứu cũng như ứng dụng trong các ứng dụng cao hơn, lớn hơn.

Xác định từ loại chính xác cho các từ trong văn bản tiếng Việt là vấn đề rất quan trọng trong lĩnh vực xử lý ngôn ngữ tự nhiên.Việc xác định này sẽ hỗ trợ cho việc phân tích cú pháp các văn bản, góp phần giải quyết tính đa nghĩa của từ, và trợ giúp các hệ thống rút trích thông tin hướng đến ngữ nghĩa, v.v…

Gắn nhãn từ loại là việc xác định các chức năng ngữ pháp của từ trong câu. Đây là bước cơ bản trước khi phân tích sâu văn phạm hay các vấn đề xử lý ngôn ngữ phức tạp khác. Thông thường, một từ có thể có nhiều chức năng ngữ pháp, ví dụ: trong câu “con ngựa đá đá con ngựa đá”, cùng một từ “đá” nhưng từ thứ nhất và thứ ba giữ chức năng ngữ pháp là danh từ, nhưng từ thứ hai lại là động từ trong câu.

Các link tham khảo :
http://www.jaist.ac.jp/~bao/VLSP-text/ICTrda08/ICT08-VLSP-SP83.pdf
http://www.vietlex.com/lib/compuLinguistics/ITCra03POSTagging.pdf
http://www.vnulib.edu.vn:8000/dspace/bitstream/123456789/1801/1/sedev0206-02.pdf
http://gralib.hcmuns.edu.vn/greenstonelib/library?e=d-000-00---0bckh2006--00-0-0--0prompt-10---4------0-1l--1-vi-50---20-about---00031-001-1-0utfZz-8-00&cl=CL1.3&d=HASH01b48a28e6ab967248d8e5b1&x=1

Friday, May 8, 2009

Truy cập máy tính từ xa bằng LogMeIn

Nhiều lúc bạn có nhu cầu truy cập một máy tính nào đó từ xa, ví dụ như máy tính của khách hàng, ở nhà truy cập máy tính công ty, ở công ty truy cập lấy dữ liệu từ máy tính ở nhà...... Hệ thống Logmein là chương trình có thể giúp bạn theo dõi các hoạt động của PC từ một máy tính khác thông qua đường truyền Internet chất lượng ổn định như kết nối ADSL hiện nay.

Giao diện trang web khi kiểm soát máy tính từ xa.

Trước hết, bạn cần lưu ý về cấu hình khi sử dụng LogMeIn:

+ Giả sử có hai tính được kết nối Internet, một là máy muốn kiểm soát từ xa (đóng vai trò SERVER) và máy dùng để kiểm soát (gọi là Client).

+ Cần có tài khoản trong hệ thống Logmein, chúng ta có thể tạo tài khoản tại đây: https://secure.logmein.com/createaccount.asp. Vì bạn là người mới dùng nên phải tạo một account (tài khoản), hãy nhập địa chỉ e-mail của bạn và gõ password dành riêng cho LogMeIn, nhấn Create Account.

+ Cài đặt chương trình LogMeIn trên máy đóng vai trò Server: https://secure.logmein.com/go.asp?page=home. Đặt con trỏ ở dòng LogMeIn Pro, bạn sẽ thấy hiện lên dòng Get Free Trial, nhấn vào đó. Lúc này, hãy nhấn vào dòng chữ Add Computer => Yes. Một file sẽ bắt đầu được download về máy của bạn. Khi quá trình install kết thúc, một cửa sổ hiện ra, bạn nhấn vào chữ Next => I Agree, chọn đường dẫn để cài đặt file => Next => Finish.

Kiểm soát máy từ xa từ một máy khác:

+ Vào địa chỉ logmein.com, đăng nhập bằng email và mật khẩu đã khai báo khi lập account trước đây.

+ Vào mục My Computers, bạn sẽ thấy My Home PC và My Work PC.

+ Hãy nhấn vào PC mà bạn muốn kiểm soát và nhập username, password như khi bạn ngồi trước màn hình máy tính đó, còn nếu máy tính không cài mật khẩu thì bạn nhập mã truy cập máy tính đã được tạo ra khi bạn cài đặt chương trình LogMeIn trên Target PC.

Lúc này, bạn có thể sử dụng máy tính ở xa như thể đang ngồi trực tiếp trước nó vậy.

Wednesday, May 6, 2009

Định giá hồ thủy sinh

Ngồi lượng giá cái hồ thủy sinh phát:
Hồ vòng cung (50x30x40)250K
Lọc nước chìm55K
2đèn NEON mặt trời BEN XIANG (50cm)260K
Timer hẹn giờ bật đèn, tắt đèn90K
Đất nền, sỏi nhỏ200K
Lũa, đá tạo cảnh50K
Cây thủy sinh trồng trong hồ100K
Bình CO2 loại vừa450K
Cốc thủy tinh thổi CO230K
Cá (neon/mũi đỏ, cá kiếm/hạt lựu, bút chì)100K

TỔNG CỘNG: 1.585K

Tuesday, May 5, 2009

Hồ thủy sinh 5/2009

So với cái ngày đầu tiên setup cái hồ, giờ nhìn cũng có vẽ đẹp hơn chút đỉnh rồi. :D
http://ngo2uochung.blogspot.com/2008/08/thuy-cung-than-tien-082008.html










Saturday, May 2, 2009

SnapIt 9 - Công cụ chụp ảnh màn hình cực mạnh

SnapIt hiện đã có phiên bản mới nhất là SnapIt 9. Ở phiên bản này, SnagIt có sự lột xác cả về giao diện lẫn chức năng.

Tải về (link trực tiếp)
Sử dụng Serial sau để đăng kí: AM5SC-8LWML-MVMWU-DTLGE-ERMBE
SnapIt 9 chụp ảnh màn hình theo các bước:
Khởi động SnapIt > chọn kiểu chụp > nhấn phím Screen trên bàn phím > nhấn giữ chuột trái chọn vùng muốn chụp > chỉnh sửa bằng công cụ có sẵn của SnagIt > Lưu lại sản phẩm

Friday, May 1, 2009

Trường Đại học Arkansas

University of Arkansas là một trong những trường được thành lập lâu đời ở Mỹ. Khuôn viên của trường rộng lớn, đội ngũ nhân viên/giáo viên đông đảo được đào tạo có trình độ cao cùng với nhiều năm kinh nghiệm trong giảng dạy đã thu hút đông đảo sinh viên đến học...

Sơ lược về trường:

Trường Đại học Arkansas là trường đại học cộng đồng thành lập năm 1871 với tên là Arkansas Industrial University (tên hiện thời có từ 1899). Trường này nằm trong hệ thống University of Arkansas System với 42.000 sinh viên, 13.700 nhân viên, 11 chi nhánh . Diện tích của trường là 356 acre (= 143 ha).

untitled 7 696339 300146.jpg

Các chương trình đào tạo: có 230 chương trình mang tính học thuật

Bao gồm các ngành như: kế toán, quản trị kinh doanh, marketing, sinh học, kỹ sư hóa, kỹ sư cơ khí, kinh tế nông nghiệp, vi tính, thiết kế nội thất, kiến trúc, thú y, dinh dưỡng, môi trường, tiếng Anh, tiếng Pháp, …

Các chương trình học khác nhau sẽ có ý nghĩa khác nhau, được thiết kế sao cho sinh viên dễ hiểu và có thể nắm vững các kiến thức chuyên ngành để có thể thi lấy bằng cấp, học lên cao hơn hoặc áp dụng vào công việc thực tế.

Chi phí:

Phí ghi danh: 50 USD (có thể trả bằng thẻ tín dụng)

Học phí: 8.123,76 USD

Phí ghi danh chương trình tiếng Anh: 100 USD

Học phí khóa tiếng Anh: 2.400 USD/khóa học

untitled 5 696339 300146.jpguntitled 1 696339 300146.jpg

- Website: www.uark.edu

Thursday, April 30, 2009

LACVIET mtdEVA 2002

LACVIET mtdEVA 2002 là bộ từ điển đa dạng của công ty Lạc Việt, bao gồm 4 bộ từ điển (Anh-Việt; Việt-Anh; Anh-Anh; Thuật Ngữ Tin Học).
Bạn có thể thêm bớt nghĩa của các từ, cập nhật từ mới, tạo ra bộ từ điển của riêng mình. Chức năng Quick View và tra từ chéo, đọc văn bản (tiếng Anh và tiếng Việt) đều rất thích hợp cho những người cần học tiếng Anh.

Download LACVIET mtdEVA 2002 Full CD
Part 1: http://www.megaupload.com/?d=URHSOLS1
Part 2: http://www.megaupload.com/?d=0IO3S9ZD
Part 3: http://www.megaupload.com/?d=4QSOITI8
Part 4: http://www.megaupload.com/?d=S5EQ9GZJ
Part 5: http://www.megaupload.com/?d=8Y4S539T

Download về rồi để chung trong một thư mục, dùng WinRAR để giải nén.
Sau khi giải nén sẽ có file .ISO, có thể dùng Nero ghi ra CD rồi xài hay dùng WinRAR (3.6x) để giải nén tiếp file .ISO ra một thư mục là có thể cài đặt LACVIET mtd2002 (chạy file Setup.exe và coi Serials trong tập tin .txt)

Bản portable :
Tuy nhiên, bạn cần một phần mềm MTD 2002 chạy thẳng mà không cần cài đặt. Bản MTD 2002 portable với dung lượng khoảng 42Mb và chạy file MTD2002EVA.exe là bạn có một phần mềm MTD 2002 hoàn hảo rồi đó. Download tại đây hoặc
Part1 : http://www.megaupload.com/?d=8TU0IVH3
Part2 : http://www.megaupload.com/?d=F669HEXS
Part3 : http://www.megaupload.com/?d=ZDLXU45M
Part4 : http://www.megaupload.com/?d=RYEBFTX3
Part5 : http://www.megaupload.com/?d=RYEBFTX3

Sunday, April 26, 2009

Download video từ YouTube

YouTube - website chia sẻ video rất nổi tiếng thuộc Google - cho phép bạn upload và chia sẻ các video của mình với mọi người miễn phí, quản lý và tìm kiếm các video theo chủ đề. Tuy nhiên, Youtube lại chỉ cho phép xem trực tuyến, còn việc download hết sức khó khăn. Những thủ thuật sau sẽ giúp bạn down video một cách dễ dàng.

Tuy nhiên, công việc của bạn nhiều lúc cần show một số clip từ youtube, nhưng lại trong môi trường không có Internet, như vậy sẽ là một khó khăn. Giải pháp là download clip này và trình chiếu offline. Để thực hiện công việc này chúng ta có thể sử dụng website lấy link download Youtube. Đây là trang hỗ trợ lấy link của khá nhiều website với tốc độ nhanh. Địa chỉ nó như sau: keepvid.com

Trang web keepvid.com

Bạn hãy copy link của video bên Youtube vào ô trống, chọn site ở ô bên cạnh rồi click Download. Khi ấy Keepvid sẽ bắt link của video có hai dạng là FLV (xem trực tuyến) và Mp4 (lưu trữ trên host của Google).


Để play file video kết quả download ở dạng flv , bạn cần cài đặt chương trình FLV Player