Cigarette smokers problem
ಸಿಗರೆಟ್ ಧೂಮಪಾನಿಗಳ ಸಮಸ್ಯೆಯು ಕಂಪ್ಯೂಟರ್ ವಿಜ್ಞಾನದಲ್ಲಿ ಏಕಕಾಲೀನ ಸಮಸ್ಯೆಯಾಗಿದ್ದು, ಇದನ್ನು ಮೂಲತಃ 1971 ರಲ್ಲಿ ಸುಹಾಸ್ ಪಾಟೀಲ್ ವಿವರಿಸಿದ್ದಾರೆ. ಈ ಸಮಸ್ಯೆಯು "ಪ್ರಾಯೋಗಿಕ ಪರಿಗಣನೆಗಳಿಂದ ಸಮರ್ಥಿಸಲಾಗದ ನಿರ್ಬಂಧಗಳನ್ನು" ಹೊಂದಿದೆ ಎಂದು ಟೀಕಿಸಲಾಗಿದೆ. ಸಮಸ್ಯೆಯ ವಿವರಣೆ ಪಾಟೀಲ್ ಅವರ ಸಮಸ್ಯೆಯು ಪದಾರ್ಥಗಳನ್ನು ಪೂರೈಸುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಬದಲಾಯಿಸಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ಯಾವುದೇ ಷರತ್ತುಬದ್ಧ ಹೇಳಿಕೆಗಳನ್ನು ಬಳಸಬಾರದು ಎಂಬ "ಸಾಕಷ್ಟು ಅನಿಯಂತ್ರಿತ" ನಿರ್ಬಂಧವನ್ನು ಒಳಗೊಂಡಿದೆ. ಒಂದು ಸಿಗರೆಟ್ ತಯಾರಿಸಲು ಮತ್ತು ಧೂಮಪಾನ ಮಾಡಲು ಮೂರು ಪದಾರ್ಥಗಳು ಬೇಕಾಗುತ್ತವೆ ಎಂದು ಭಾವಿಸಿಃ ತಂಬಾಕು, ಕಾಗದ ಮತ್ತು ಮ್ಯಾಚ್ಗಳು. ಒಂದು ಮೇಜಿನ ಸುತ್ತ ಮೂವರು ಧೂಮಪಾನಿಗಳು ಇರುತ್ತಾರೆ, ಅವರಲ್ಲಿ ಪ್ರತಿಯೊಬ್ಬರೂ ಮೂರು ಪದಾರ್ಥಗಳಲ್ಲಿ ಒಂದರ ಅನಂತ ಪೂರೈಕೆಯನ್ನು ಹೊಂದಿರುತ್ತಾರೆ-ಒಬ್ಬ ಧೂಮಪಾನಿ ತಂಬಾಕಿನ ಅನಂತ ಪೂರೈಕೆಯನ್ನು ಹೊಂದಿರುತ್ತಾನೆ, ಇನ್ನೊಬ್ಬನು ಕಾಗದವನ್ನು ಹೊಂದಿರುತ್ತಾನೆ ಮತ್ತು ಮೂರನೆಯವನು ಹೊಂದಾಣಿಕೆಗಳನ್ನು ಹೊಂದಿರುತ್ತಾನೆ. ಧೂಮಪಾನಿಗಳಲ್ಲದ ಏಜೆಂಟ್ ಸಹ ಇದ್ದಾರೆ, ಅವರು ಧೂಮಪಾನಿಗಳಿಗೆ ತಮ್ಮ ಸಿಗರೆಟ್ಗಳನ್ನು ಅನಿಯಂತ್ರಿತವಾಗಿ (ನಿರ್ಣಾಯಕವಲ್ಲದ) ಮೇಜಿನ ಮೇಲೆ ಇಡಲು ಎರಡು ಸರಬರಾಜುಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡುವ ಮೂಲಕ ತಯಾರಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತಾರೆ. ಮೂರನೇ ಪೂರೈಕೆಯನ್ನು ಹೊಂದಿರುವ ಧೂಮಪಾನಿ ಮೇಜಿನಿಂದ ಎರಡು ವಸ್ತುಗಳನ್ನು ತೆಗೆದುಹಾಕಿ, ಅವುಗಳನ್ನು ಬಳಸಿ (ತಮ್ಮ ಸ್ವಂತ ಪೂರೈಕೆಯೊಂದಿಗೆ) ಸಿಗರೆಟ್ ತಯಾರಿಸಬೇಕು, ಅದನ್ನು ಅವರು ಸ್ವಲ್ಪ ಸಮಯದವರೆಗೆ ಧೂಮಪಾನ ಮಾಡುತ್ತಾರೆ. ಧೂಮಪಾನಿ ತನ್ನ ಸಿಗರೆಟ್ ಅನ್ನು ಮುಗಿಸಿದ ನಂತರ, ಏಜೆಂಟ್ ಎರಡು ಹೊಸ ಯಾದೃಚ್ಛಿಕ ವಸ್ತುಗಳನ್ನು ಮೇಜಿನ ಮೇಲೆ ಇಡುತ್ತಾನೆ. ಈ ಪ್ರಕ್ರಿಯೆಯು ಶಾಶ್ವತವಾಗಿ ಮುಂದುವರಿಯುತ್ತದೆ. ಮೇಜಿನ ಮೇಲಿರುವ ವಸ್ತುಗಳನ್ನು ಪ್ರತಿನಿಧಿಸಲು ಮೂರು ಸೆಮಾಫೋರ್ಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ; ಏಜೆಂಟ್ ಒಂದು ವಸ್ತುವನ್ನು ಮೇಜಿನ ಮೇಲೆ ಇರಿಸಲಾಗಿದೆ ಎಂದು ಸೂಚಿಸಲು ಸೂಕ್ತವಾದ ಸೆಮಾಫೋರ್ ಅನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ ಮತ್ತು ಧೂಮಪಾನಿಗಳು ವಸ್ತುಗಳನ್ನು ತೆಗೆದುಹಾಕುವಾಗ ಸೆಮಾಫೋರ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತಾರೆ. ಅಲ್ಲದೆ, ಪ್ರತಿ ಧೂಮಪಾನಿ ನಿರ್ದಿಷ್ಟ ಧೂಮಪಾನಿ ಧೂಮಪಾನ ಮಾಡುತ್ತಿದ್ದಾನೆ ಎಂದು ಏಜೆಂಟ್ಗೆ ಸಂಕೇತಿಸಲು ಬಳಸುವ ಸಂಬಂಧಿತ ಸೆಮಾಫೋರ್ ಅನ್ನು ಹೊಂದಿರುತ್ತಾನೆ; ಏಜೆಂಟ್ ಪ್ರತಿ ಧೂಮಪಾನಿಗಳ ಸೆಮಾಫೋರ್ನಲ್ಲಿ ಕಾಯುವ ಒಂದು ಪ್ರಕ್ರಿಯೆಯನ್ನು ಹೊಂದಿದ್ದು ಅದು ಹೊಸ ವಸ್ತುಗಳನ್ನು ಮೇಜಿನ ಮೇಲೆ ಇಡಬಹುದು ಎಂದು ಏಜೆಂಟ್ಗೆ ತಿಳಿಸುತ್ತದೆ. ತಂಬಾಕು ಪೂರೈಕೆಯನ್ನು ಹೊಂದಿರುವ ಧೂಮಪಾನಿಗಳ ಸರಳ ಸೂಡೊಕೋಡ್ ಅನುಷ್ಠಾನವು ಈ ಕೆಳಗಿನಂತೆ ಕಾಣಿಸಬಹುದುಃ ಡೆಫ್ ತಂಬಾಕು _ ಸ್ಮೋಕರ್ (): ಪುನರಾವರ್ತಿಸಿಃ paper.wait () matches.wait () ಸ್ಮೋಕ್ () tobacco_smoker_done.signal () ಆದಾಗ್ಯೂ, ಇದು ಬಿಕ್ಕಟ್ಟಿಗೆ ಕಾರಣವಾಗಬಹುದು; ಏಜೆಂಟ್ ಕಾಗದ ಮತ್ತು ತಂಬಾಕನ್ನು ಮೇಜಿನ ಮೇಲೆ ಇರಿಸಿದರೆ, ತಂಬಾಕು ಹೊಂದಿರುವ ಧೂಮಪಾನಿ ಕಾಗದವನ್ನು ತೆಗೆದುಹಾಕಬಹುದು ಮತ್ತು ಮ್ಯಾಚ್ಗಳನ್ನು ಹೊಂದಿರುವ ಧೂಮಪಾನಿ ತಂಬಾಕನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು, ಇದರಿಂದಾಗಿ ಇಬ್ಬರೂ ತಮ್ಮ ಸಿಗರೆಟ್ ತಯಾರಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಏಜೆಂಟ್ ಅನ್ನು ಮಾರ್ಪಡಿಸದೆ, ಡೆಡ್ಲಾಕ್ ಅನ್ನು ತಡೆಯುವ ಹೆಚ್ಚುವರಿ ಪ್ರಕ್ರಿಯೆಗಳು ಮತ್ತು ಸೆಮಾಫೋರ್ಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವುದು ಪರಿಹಾರವಾಗಿದೆ. ಟೀಕಾಕಾರರಾದ ಪಾಟೀಲ್ ಅವರು ಸಿಗರೆಟ್ ಧೂಮಪಾನಿಗಳ ಸಮಸ್ಯೆಯ ಮೇಲೆ ಈ ಕೆಳಗಿನ ನಿರ್ಬಂಧಗಳನ್ನು ಹಾಕಿದರುಃ ಏಜೆಂಟ್ ಕೋಡ್ ಅನ್ನು ಮಾರ್ಪಡಿಸಲಾಗುವುದಿಲ್ಲ. ಷರತ್ತುಬದ್ಧ ಹೇಳಿಕೆಗಳನ್ನು ಬಳಸಲು ಪರಿಹಾರವನ್ನು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ. ಎಡ್ಸ್ಗರ್ ಡಿಜ್ಕ್ಸ್ಟ್ರಾ ಅವರ ಸೆಮಾಫೋರ್ ಪ್ರಿಮಿಟಿವ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸಿಗರೆಟ್ ಧೂಮಪಾನಿಗಳ ಸಮಸ್ಯೆಗೆ ಪರಿಹಾರವು ಅಸಾಧ್ಯವೆಂದು ಹೇಳಲು ಮತ್ತು ಹೆಚ್ಚು ಶಕ್ತಿಯುತವಾದ ಪ್ರಾಚೀನವು ಅಗತ್ಯವೆಂದು ಸೂಚಿಸಲು ಪಾಟೀಲ್ ಪೆಟ್ರಿ ಬಲೆಗಳ ವಿಷಯದಲ್ಲಿ ಪುರಾವೆಯನ್ನು ಬಳಸಿದರು. ಆದಾಗ್ಯೂ, ಡೇವಿಡ್ ಪಾರ್ನಾಸ್ ಅವರು ಸೆಮಾಫೋರ್ಗಳ ಸರಣಿಗಳನ್ನು ಬಳಸಿದರೆ ಪಾಟೀಲ್ ಅವರ ಪುರಾವೆ ಅಸಮರ್ಪಕವಾಗಿದೆ ಎಂದು ತೋರಿಸಿದರು, ಇದು ಸೂಕ್ತ ಧೂಮಪಾನಿಗಳನ್ನು ಮುಂದುವರಿಸಲು ಸೂಚಿಸಲು ಅಂಕಗಣಿತವನ್ನು ಮಾಡುವ ಸಹಾಯಕ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಬಳಸುವ ಪರಿಹಾರವನ್ನು ನೀಡುತ್ತದೆ. ಅಲೆನ್ ಬಿ. ಡೌನಿಯವರ ಪ್ರಕಾರ, ಮೊದಲ ನಿರ್ಬಂಧವು ಅರ್ಥಪೂರ್ಣವಾಗಿದೆ, ಏಕೆಂದರೆ ಏಜೆಂಟ್ ಒಂದು ಕಾರ್ಯಾಚರಣಾ ವ್ಯವಸ್ಥೆಯನ್ನು ಪ್ರತಿನಿಧಿಸಿದರೆ, ಹೊಸ ಅಪ್ಲಿಕೇಶನ್ ಬಂದಾಗಲೆಲ್ಲಾ ಅದನ್ನು ಮಾರ್ಪಡಿಸುವುದು ಅಸಮಂಜಸ ಅಥವಾ ಅಸಾಧ್ಯವಾಗಿರುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಎರಡನೇ ನಿರ್ಬಂಧವು ನ್ಯಾಯಸಮ್ಮತವಲ್ಲ ಎಂದು ಪರ್ನಾಸ್ ವಾದಿಸುತ್ತಾರೆಃ ಪಾಟೀಲ್ ವರದಿ ಮಾಡಿದ ಮಿತಿಗಳು ಅವನ ಆದಿಮಾಂದ್ಯಗಳ ಮಿತಿಗಳಾಗಿವೆ, ಆದರೆ ಅವು ಡಿಜ್ಕ್ಸ್ಟ್ರಾ ವಿವರಿಸಿದ ಆದಿಮಾಂದ್ಯಗಳ ಮಿತಿಗಳಲ್ಲ. ಆದಾಗ್ಯೂ, ಅಂತಹ ತನಿಖೆಯು [ಡಿಜ್ಕ್ಸ್ಟ್ರಾ ಪ್ರಿಮಿಟಿವ್ಗಳ] ಕೃತಕ ನಿರ್ಬಂಧಗಳ ಅಡಿಯಲ್ಲಿ ಈ ಪ್ರಿಮಿಟಿವ್ಗಳ ಶಕ್ತಿಯನ್ನು ತನಿಖೆ ಮಾಡದಿರುವುದು ಮುಖ್ಯವಾಗಿದೆ. ಕೃತಕ ಎಂದರೆ ಪ್ರಾಯೋಗಿಕ ಪರಿಗಣನೆಗಳಿಂದ ಸಮರ್ಥಿಸಲಾಗದ ನಿರ್ಬಂಧಗಳು. ಈ ಲೇಖಕರ ಅಭಿಪ್ರಾಯದಲ್ಲಿ, ಷರತ್ತುಬದ್ಧ ಅಥವಾ ಸೆಮಾಫೋರ್ ಸರಣಿಗಳನ್ನು ನಿಷೇಧಿಸುವ ನಿರ್ಬಂಧಗಳು ಕೃತಕವಾಗಿವೆ. ಡೈನಿಂಗ್ ಫಿಲಾಸಫರ್ಸ್ ಪ್ರಾಬ್ಲೆಮ್ ರೀಡರ್ಸ್-ರೈಟರ್ಸ್ ಪ್ರಾಬ್ಲೆಮ್ ಸ್ಲೀಪಿಂಗ್ ಬಾರ್ಬರ್ಸ್ ಪ್ರಾಬ್ಲೆಮ್ ರೆಫರೆನ್ಸಸ್ ಪ್ಯಾರಾಡಾಕ್ಸ್ಸ್ ಕಾನ್ಕುರೆನ್ಸಿ (ಕಂಪ್ಯೂಟರ್ ಸೈನ್ಸ್) ಉದಾಹರಣೆಗೆ ಸೂಡೊಕೋಡ್ ಹೊಂದಿರುವ ಲೇಖನಗಳನ್ನು ಸಹ ನೋಡಿ.