ಶುಕ್ರವಾರ, ಜನವರಿ 3, 2014

ಆಲ್ಗರಿದಮ್ ಅಂದರೇನು?

ಟಿ. ಜಿ. ಶ್ರೀನಿಧಿ

ಕಂಪ್ಯೂಟರ್ ವಿಜ್ಞಾನದ ಪ್ರಾಥಮಿಕ ಪಾಠಗಳನ್ನು ಕಲಿಯಲು ಹೊರಟವರು ಮೊದಲಿಗೆ ಕೇಳುವ ಹೆಸರುಗಳಲ್ಲಿ 'ಆಲ್ಗರಿದಮ್' ಪ್ರಮುಖವಾದದ್ದು. ಇದನ್ನು ಕನ್ನಡದಲ್ಲಿ 'ಕ್ರಮಾವಳಿ' ಎನ್ನೋಣ.

ನಾವೀಗ ಯಾವುದೋ ಒಂದು ಪ್ರೋಗ್ರಾಮ್ (ಕ್ರಮವಿಧಿ) ಬರೆಯುತ್ತಿದ್ದೇವೆ ಎನ್ನುವುದಾದರೆ ಅದರಲ್ಲಿ ಪ್ರತಿಯೊಂದು ಹೆಜ್ಜೆಯನ್ನೂ ಪ್ರತ್ಯೇಕವಾಗಿ ವಿವರಿಸಬೇಕು ತಾನೆ, ಅಷ್ಟೆಲ್ಲ ಹೆಜ್ಜೆಗಳ ಸರಣಿಯೇ ಆಲ್ಗರಿದಮ್, ಅಂದರೆ ಕ್ರಮಾವಳಿ. ಆಲ್ಗರಿದಮ್ ಎನ್ನುವ ಪದ ಕ್ರಿ.ಶ. ೮೨೫ರ ಸುಮಾರಿಗೆ ಪರ್ಶಿಯಾದಲ್ಲಿದ್ದ ಅಲ್-ಖೋವಾರಿಜ್ಮಿ (al Khowarizmi) ಎನ್ನುವ ಗಣಿತಜ್ಞನ ಹೆಸರಿನಿಂದ ರೂಪುಗೊಂಡಿತು ಎಂದು ಇತಿಹಾಸ ಹೇಳುತ್ತದೆ.

ಕಂಪ್ಯೂಟರಿಗೆ ನೀಡುವ ಇನ್‌ಪುಟ್ ಅನ್ನು ಸೂಕ್ತವಾಗಿ ಸಂಸ್ಕರಿಸಿ ನಮಗೆ ಬೇಕಾದ ರೂಪದ ಔಟ್‌ಪುಟ್ ನೀಡುವಂತೆ ನಿರ್ದೇಶಿಸುವುದು ಆಲ್ಗರಿದಮ್, ಅಂದರೆ ಕ್ರಮಾವಳಿಯ ಕೆಲಸ. ಇದು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಕ್ಷೇತ್ರದ ಪ್ರಾಥಮಿಕ ಪಾಠ ಎಂದರೂ ಸರಿಯೇ.

ಕ್ರಮಾವಳಿಯ ಪ್ರಾಮುಖ್ಯ ಏನು ಎಂದು ವಿವರಿಸುವುದು ಬಹಳ ಸುಲಭ. ಏಕೆಂದರೆ ನಮ್ಮ ಬದುಕಿನ ಬಹುತೇಕ ಕೆಲಸಗಳೆಲ್ಲ ಒಂದಲ್ಲ ಒಂದು ಕ್ರಮಾವಳಿಯನ್ನು ಆಧರಿಸಿರುತ್ತವೆ. ಮನೆಗೆ ಇನ್ಸ್‌ಟಂಟ್ ನೂಡಲ್ಸ್ ತಂದಿರುತ್ತೇವಲ್ಲ, ಆ ಪೊಟ್ಟಣದ ಹಿಂಭಾಗ ನೋಡಿ: ಎಷ್ಟು ನೀರು ಹಾಕಬೇಕು, ಎಷ್ಟು ಹೊತ್ತು ಬೇಯಿಸಬೇಕು, ಮಸಾಲೆ ಯಾವಾಗ ಹಾಕಬೇಕು ಎಂಬ ಪ್ರತಿಯೊಂದು ವಿವರವನ್ನೂ ಅದರಲ್ಲಿ ಒಂದಾದಮೇಲೆ ಒಂದರಂತೆ ಪಟ್ಟಿಮಾಡಿರುತ್ತಾರೆ.
ಅದು ನೂಡಲ್ಸ್ ತಯಾರಿಸುವ ಆಲ್ಗರಿದಮ್.

ಕಂಪ್ಯೂಟರಿನಲ್ಲಿ ಪ್ರೋಗ್ರಾಮ್ (ಕ್ರಮವಿಧಿ) ಬರೆಯುವುದಕ್ಕೂ ಇಂತಹುದೇ ಕ್ರಮ ಇರಬೇಕು ತಾನೆ. ಉಳಿಸಿಟ್ಟ ಕಡತದ ಮೇಲೆ ಕ್ಲಿಕ್ಕಿಸಿದಾಗ ಅದು ತೆಗೆದುಕೊಳ್ಳುವುದರಿಂದ ಹಿಡಿದು ಅತ್ಯಂತ ಕ್ಲಿಷ್ಟವಾದ ಸಮಸ್ಯೆಯನ್ನು ಬಿಡಿಸುವವರೆಗೆ ಕಂಪ್ಯೂಟರಿನಲ್ಲಿ ಯಾವ ಕೆಲಸ ಆಗಬೇಕಾದರೂ ಅದಕ್ಕೆ ಸಂಬಂಧಪಟ್ಟ ಪ್ರತಿಯೊಂದು ಹೆಜ್ಜೆಯನ್ನೂ ಆ ಕ್ರಮವಿಧಿಯ ಆಲ್ಗರಿದಮ್ (ಕ್ರಮಾವಳಿ) ಪರಿಗಣಿಸಿರಬೇಕು. ಕ್ರಮವಿಧಿಯನ್ನು ಬರೆಯುವ ಮುನ್ನ ಅದರ ತರ್ಕ (ಲಾಜಿಕ್) ಹೇಗಿರಬೇಕು ಎನ್ನುವುದನ್ನು ಅಂತಿಮಗೊಳಿಸುವಲ್ಲಿ ಕ್ರಮಾವಳಿಯದ್ದೇ ಪ್ರಮುಖ ಪಾತ್ರ.

ಪ್ರತಿ ಕೆಲಸವನ್ನೂ ಮಾಡುವ ಹಲವಾರು ವಿಧಾನಗಳಿರುತ್ತವಲ್ಲ, ನಾವು ಬರೆಯುವ ಕ್ರಮವಿಧಿಯಲ್ಲಿ ಆ ವಿಧಗಳ ಪೈಕಿ ಅತ್ಯಂತ ಸಮರ್ಥವಾದುದನ್ನೇ ಬಳಸಬೇಕಾದ್ದು ನಮ್ಮ ಜವಾಬ್ದಾರಿ. ಏಕೆಂದರೆ ಕ್ರಮಾವಳಿಯಲ್ಲಿ ನಾವು ಬಳಸುವ ವಿಧಾನ ಎಷ್ಟು ಸಮರ್ಥವಾಗಿರುತ್ತದೋ ಅಂತಿಮವಾಗಿ ಸಿದ್ಧವಾಗುವ ಕ್ರಮವಿಧಿಯ ಸಾಮರ್ಥ್ಯವೂ ಅಷ್ಟೇ ಇರುತ್ತದೆ.

ಹಾಗೆಂದು ಒಂದು ಕೆಲಸ ಮಾಡಲು ಇರುವ ಪ್ರತಿಯೊಂದು ವಿಧಾನಕ್ಕೂ ಒಂದೊಂದು ಕ್ರಮವಿಧಿ ಬರೆಯುತ್ತ ಕುಳಿತರೆ ಸಮಯವೂ ಹಾಳು, ಪ್ರಯೋಜನವೂ ಸೊನ್ನೆ. ಹಾಗಾಗಿ ಕ್ರಮವಿಧಿ ಬರೆಯುವ ಮೊದಲೇ ವಿವಿಧ ಆಲ್ಗರಿದಮ್‌ಗಳನ್ನು (ಕ್ರಮಾವಳಿ) ಪರಿಗಣಿಸಿ, ಆ ಪೈಕಿ ಅತ್ಯಂತ ಸೂಕ್ತವಾದದ್ದನ್ನು ಆಯ್ದುಕೊಂಡು ಆಮೇಲಷ್ಟೆ ಮುಂದುವರೆಯುವುದು ಕಂಪ್ಯೂಟರ್ ವಿಜ್ಞಾನ ಪ್ರಪಂಚದಲ್ಲಿ ಕಂಡುಬರುವ ಸಾಮಾನ್ಯ ಅಭ್ಯಾಸ. ಅಷ್ಟೇ ಅಲ್ಲ, "ಕೆಟ್ಟ ಕ್ರಮಾವಳಿ ಬಳಸಿ ಬರೆದ ಕ್ರಮವಿಧಿ ಅತ್ಯಾಧುನಿಕ ಕಂಪ್ಯೂಟರಿನಲ್ಲಿ ಕೆಲಸಮಾಡುವುದಕ್ಕಿಂತ, ಸಮರ್ಥ ಕ್ರಮಾವಳಿ ಬಳಸಿ ಬರೆದ ಕ್ರಮವಿಧಿ ಹಳೆಯ ಕಂಪ್ಯೂಟರಿನಲ್ಲೂ  ಚೆನ್ನಾಗಿ ಕೆಲಸಮಾಡಬಲ್ಲದು" ಎನ್ನುವ ಅಭಿಪ್ರಾಯ ಕೂಡ ಇದೆ.

ಇಷ್ಟಕ್ಕೂ ಸಮರ್ಥ ಕ್ರಮಾವಳಿ ಎಂದರೇನು ಎಂದು ನೀವು ಕೇಳಬಹುದು. ಲಭ್ಯವಿರುವ ಕಂಪ್ಯೂಟಿಂಗ್ ಸಂಪನ್ಮೂಲವನ್ನು ಮಿತವಾಗಿ ಬಳಸಿ ಯಾವುದೇ ಕೆಲಸವನ್ನು ಅತ್ಯಂತ ವೇಗವಾಗಿ ಮುಗಿಸಿಕೊಡುವ ತರ್ಕ (ಲಾಜಿಕ್) ಯಾವುದರಲ್ಲಿದೆಯೋ ಆ ಕ್ರಮಾವಳಿಯನ್ನೇ ಅತ್ಯಂತ ಸಮರ್ಥವಾದದ್ದು ಎಂದು ಗುರುತಿಸಬಹುದು. ಮನೆಯಿಂದ ಕಾಲೇಜಿಗೋ ಆಫೀಸಿಗೋ ಹೋಗುವಾಗ ಮೂರು ಬಸ್ ಬದಲಿಸುವುದಕ್ಕಿಂತ ಸುತ್ತಿ-ಬಳಸದ "ಡೈರೆಕ್ಟ್" ಬಸ್ಸಿನಲ್ಲಿ ಹೋಗುವುದೇ ಉತ್ತಮ ಎನ್ನುತ್ತೇವಲ್ಲ, ಹಾಗೆ.

ಇದೇ ಕೆಲಸಕ್ಕೆ ಹೆಲಿಕಾಪ್ಟರ್ ಬಾಡಿಗೆಗೆ ತೆಗೆದುಕೊಳ್ಳುವುದು - ಸಮಯ ಉಳಿಸುವ ದೃಷ್ಟಿಯಿಂದ ಉತ್ತಮ ಆಯ್ಕೆಯಾದರೂ - ಪ್ರಾಯೋಗಿಕವಾಗಿ ಸಾಧ್ಯವಿಲ್ಲದ ವಿಷಯ. ಕಂಪ್ಯೂಟರ್ ವಿಜ್ಞಾನದಲ್ಲೂ ಅಷ್ಟೆ, ಯಾವುದೇ ಕೆಲಸಕ್ಕಾಗಿ ಕ್ರಮಾವಳಿ ರೂಪಿಸುವಾಗ ಲಭ್ಯವಿರುವ ಕಂಪ್ಯೂಟಿಂಗ್ ಸಂಪನ್ಮೂಲವನ್ನು ಮಿತವಾಗಿ ಬಳಸುವತ್ತಲೂ ಸೂಕ್ತ ಗಮನ ಹರಿಸಬೇಕಾಗುತ್ತದೆ.

ಜನವರಿ ೩, ೨೦೧೪ರ ಉದಯವಾಣಿಯಲ್ಲಿ ಪ್ರಕಟವಾದ ಲೇಖನ

ಕಾಮೆಂಟ್‌ಗಳಿಲ್ಲ:

badge