Portfolio

http://www.sirindhornpark.or.th

เสร็จแล้ววว !

งานนี้อาศัยความสามารถของ Drupal ล้วนๆ บวกกับจินตนาการในการประยุกต์ใช้งานอีกนิดหน่อย และที่สำคัญต้องยกเครดิตทางด้านกราฟฟิกในการ Edit Theme ให้กับ www.zreal.net

ส่ิงที่ทำให้ประทับใจมากที่สุดสำหรับงานนี้ คงเป็นเรื่องของการร่วมงาน โดยผู้ร่วมงานที่ไม่เคยเจอหน้ากันเลย (Contact กันผ่านโทรศัพท์ และ e-mail อย่างเดียว ว่างๆ คงต้องนัดคุยกันบ้างแล้วเน๊อะ) ก็คือ พี่เก่ง ซึ่งเป็น พี่ที่ทำงานอยู่ที่อุทยานสิ่งแวดล้อมนานาชาติสิรินธร หรืออีกนัยหนึ่งก็คือ ผู้ที่จัดการว่าจ้างให้เราทำงานให้นั่นเอง ซึ่งให้ความช่วยเหลือ และเตรียมข้อมูลให้เป็นอย่างดี และอำนวยความสะดวกต่างๆ เป็นอย่างดีในทุกๆ เรื่อง

เพราะสำหรับประสบณ์การที่ผ่านมาสำหรับการทำ freelance ที่ไม่ค่อยจะประทับใจเลย (บางงานนะ ไม่ใช่ทุกงานหรอก แต่ขอบ่นหน่อยนะ 555) ก็คือ ผู้ว่าจ้างไม่ค่อยให้ความช่วยเหลือทางด้านข้อมูลซักเท่าไหร่ บางทีตัวเว็ปหรือระบบเสร็จเรียบร้อยไปแล้ว แต่ข้อมูลมักมาล่าช้า (ไม่ว่าจะเป็นเนื้อหา หรือว่ารูปภาพประกอบของสถานที่) ทำให้ปิดงานไม่ลง และยืดเยื้อกันไปเรื่อยๆ

แต่เรื่องแก้งานคงเป็นเรื่องปรกติที่ต้องทำใจยอมรับให้ได้ เพราะยังไงก็คงต้องให้ถูกใจผู้จ้างมากที่สุดนั่นหล่ะ

แต่สำหรับงานนี้ Happy มาก ... เจอแบบนี้ก็อยากทุ่มเทใจทำให้เกินร้อยเลย :)

Web Profile : งานก็คงใช้ Drupal นั่นหล่ะ เพราะดูแล้ว ส่ิงต้องการทั้งหมดนั้น Drupal ทำได้หมดเลย สำหรับ Theme ก็คงนำที่มีอยู่แล้วมา modify เอาใหม่ง่ายกว่าสร้างเอาเองใหม่หมด สำหรับ Credit ของ Original Theme ก็คงเป็นไปตามที่ใส่ไว้ในส่วยของ Footer บนหน้าเว็ป

URL : http://www.sirindhornpark.or.th



Genetic Algorithm for Traveling Salesman Problem

กำลังศึกษาขั้นตอนการทำงานของ Genetic Algorithm ว่ามีขึ้นตอนและการทำงานอย่างไรอยู่ในตอนนี้

เลยลองหา Case Study มาศึกษาเพื่อให้เข้าใจ และเห็นการทำงานของ GA ได้ดียิ่งขึ้น สำหรับกรณีศึกษาที่ง่ายที่สุดเท่าที่จะนึกออกสำหรับปัญหาประเภท Combinatorial Optimization Problem ก็คงหนีไม่พ้น Traveling Salesman Problem (TSP)

ทดลองเขียนโปรแกรมเล็กขึ้นมา เพื่อทดลองและศึกษาขึ้นตอนการทำงานของ GA ก่อนสำหรับรายละเอียดของการทดลงคงมีดังนี้
ี้

1. Chromosome Encoding ใช้แบบ Permutation Encoding

2. Selection ใช้แบบ Tournament คือสุ่ม Chromosome ขึ้นมา 10 ตัวเลือกเอา 2 ตัวที่ดีที่สุดมาดำเนินการต่อไป

3. Crossover ใช้การ Crossover ในแบบที่กระทำกับข้อมูลที่อยู่ในรูปแบบ Permutation Encoding

4. Population Size ตั้งขนาดไว้ที่ 50 ประชากรต่อรุ่น

5. Stop Condition เมื่อค่าคำตอบที่เป็นค่าที่ดีที่สุดของแต่ละรุ่นไม่มีการเปลี่ยนแปลง (มีลักษณะเร่ิมลู่เข้าสู่คำตอบ) ติดต่อกัน 100 Generations

6. การสร้างเมืองใช้การสุ่มจุดขึ้นตามจำนวนเมืองที่เป็น Input ของโปรแกรม และจุดตั้งต้นสำหรับการเดินทางจะเร่ิมจากจุดที่ 1 เสนอ การเดินทางจะคิดขาไปอย่างเดียว ดั้งนั้นเส้นทางจะไม่เป็นวงรอบ

7. พัฒนาด้วย Python 2.4

8. ต้องการ Module wxPython, Numeric














Source Code : Genetic Algorithm for TSP

Numvarn's Web Design


ย้อนกลับไปให้พอจำได้ลางๆ ว่าเมื่อสักสองปีที่แล้ว (summer 2005) เคยคิดว่าอยากจะลองทำเว็ปไว้สักเว็บหนึ่ง ให้เป็นของเราสองคน

ตอนนั้นอยากสอนให้น้องน้ำหัดทำเว็ป แต่ก็ไม่รู้จะเริ่มสอนยังไงเหมือนกัน สำหรับการสอนคนที่ทักษะการใช้คอมเบื้องต้นยังไม่ดีนัก และยังไม่ค่อยรู้จักว่า HTML คืออะไร (ที่พูดมานี่เป็นเรื่องของสองปีที่แล้วนะ ตอนนี้รู้สึกว่าจะเก่งแล้ว สำหรับเรื่องทักษะการใช้คอม เพราะว่าตอนนี้ถูกสอนให้ใช้แต่ linux)

การสอนให้คนที่ไม่มีความรู้เรื่องทำเว็ป ให้ทำเว็ปได้นั้นก็คงจะเป็นเรื่องที่ยากมากๆ เลยหากจะสอนให้นั่งพิมพ์แต่ html และก็มีแต่หน้าจอขาวๆ ตลอดเวลา (ที่สำคัญที่สุดคือคนถูกสอนนั้นเป็นแฟนเราด้วยแล้ว ยิ่งสอนยากสอนเย็น)

ที่คิดออกตอนนั้นก็คงต้องใช้เจ้า Photo shop นี่เหล่ะทำเว็ปแบบง่ายๆ เพราะดูเหมือนว่าไม่่ต้องมานั่งพิมพ์ html เลยก็สามารถทำได้ และมันก็ดูน่าจะเป็นวิธีการที่น่าจะสนุกสนานกว่า

ผลสรุปก็โอเคเราทั้งสองคนก็สามารถสร้าง Web แบบง่ายๆ ของเราสองคนออกมาได้ หน้าตาก็โอเค เป็นที่หน้าพอใจเหมือนกันกับการทำไปงมไปด้วย (เพราะจริงๆ แล้วก็ใช้ Photo shop ไม่ค่อยเป็นหลอก เคยเห็นเค้าทำกันก็อย่ากทำบ้างหน่ะ)

แต่สุดท้ายเว็ปนี้ก็ไม่ได้คลอดออกมาใช้งานจริง อาจเป็นเพราะว่าบางทีตอนนั้นความตั้งใจคงยังไม่แรงพอ

My Calculator

หลังจากปล่อยตัวให้อยู่ในอารมณ์ความรู้สึกแบบแคว้งๆ และล่องลอย เพราะสาเหตุจากการเหนื่อยที่ต้องปรับวิถีชิวิตของตัวเองหลายๆ อย่าง

ผ่านไปแล้วครึ่งวันกับความรู้สึกแบบนี้

คงได้เวลาตั้งหลักให้มันมั่นคงซะที แต่ปัญหาอย่างแรกเลยที่คิดออกคือ จะทำอะไรหว่า ?

อืม เอาอย่างนี้ก็แล้วกันพอคิดออกอย่างคร่าวว่า เมื่อครั้งก่อนมีอะไรหลายอย่างที่เมื่อก่อนอยากจะทำ แต่ก็ยังไม่ได้ทำซักที

มีเวลาแล้วก็น่าจะทำมันซะเลย

อย่างแรกที่คิดออกเลยว่า ยังไงอนาคตก็คงต้องยึดอาชีพเป็นโปรแกรมเมอร์ต่อไป ดังนั้นตอนนี้มีเวลาหัดเขียนโปรแกรมให้เก่งๆ ขึ้นก็น่าจะรีบทำซะเลย

โดยเฉพาะตอนนี้เป็นช่วงที่กำลังเริ่มต้นใหม่อีกครั้งกับเจ้าภาษา Python คงต้องหาทางใช้มันทำอะไรให้จริงจัง และเป็นรูปเป็นร่างดูซะที แล้วจะทำอะไรดีหว่า

เคยแต่ใช้มันเขียนโปรแกรมทำ Thesis ที่ทำงานในรูปแบบของ Command line อย่างเดียว ยังไม่เคยใช้มันทำงานในรูปแบบของ GUI บ้างเลย ก็น่าจะลองดูซักครั้ง

แล้วจะทำอะไรดีว่า คิดไม่ออก

1 ชั่วโมงผ่านไป ไม่รู้จะทำอะไรดีแล้วที่มันให้ความรู้สึกว่าวิจิต พิสดาร ก็เลยกลับมาหาอะไรง่ายๆ ดีกว่าที่มันไกล้ตัวที่สุดน่ี่แหล่ะ

สิ่งนั้นก็คือ เครื่องคิดเลข นี่เอง

เอาแบบ ง่าย ไม่ต้องหรูหรา แต่ว่าใช้งานได้จริงก็โอเคแล้ว

ใช้เวลากับมัน 1 วันเต็มๆ เลย ทำไป ค้นไป ก็ดีเหมือนกันได้ความรู้อะไรใหม่ๆ เยอะเลย

Syndicate content