רעיון לפרוייקט

  • פותח הנושא yhaim
  • פורסם בתאריך

yhaim

New member
רעיון לפרוייקט

אני מתכוון לכתוב פרויקט בג'אווה ע''י שימוש ב rmi. כלומר יהיו קריאות חוזרות מהשרת ללקוחות ולהיפך. השרת יהיה מחובר לבסיס נתונים. לקוחות ירשמו אצל השרת לביצוע פעולות מסוימות (יצטרפו באופן דינאמי וכד'). הבעיה שלי שאני לא יודע איזה רעיון לממש. צ'ט לא בא בחשבון משום שיש כבר פרויקטים כאלה ברשת. אשמח לקבל רעיון טוב לפרויקט כזה (אולי משחק, אבל איזה?). נ.ב הפרוייקט יכתב במסגרת לימודי ההנדסאי.
 

DadleFish

New member
רעיון

אתה יכול לעשות מערכת לחישוב מבוזר - השרת יפרסם רשימת מטלות והלקוחות שנרשמים אליו יוכלו לבצע אותן. פשוט מאוד בבסיס, אבל אפשר לסבך את זה עם כל מיני דקויות.
 

DadleFish

New member
הממממממ

יש מלא דוגמאות. פשוט תיקח בעיה מורכבת, ותפצל אותה לחלקים. למשל, קח מישור שנוצר משימוש בפונקציה בעלת שני משתנים, x ו-y. עכשיו עליך למצוא את המינימום ואת המקסימום במישור הזה, בערכים של 1000 עד 1000- ל-x ול-y. חישוב כזה, בקפיצות של 0.01 נגיד, ייקח כך וכך זמן; אבל אם תחלק את המשימה להרבה משימות קטנות ותפצל אותן בין הלקוחות, זה יהיה יותר מהיר (אולי). נגיד שתחלק את זה לטווחים של 100x100 בכל פעם, במקום 2000x2000 - יש לך 400 משימות בסה"כ. לקוח בא, מקבל משימה, ומחזיר תשובה. עכשיו סיבוכים. 1. אתה צריך למצוא את גודל המשימה המיטבי. למשל, אם לקוח מסוים מקבל ממך את המשימה ומחזיר את התשובה בזמן של 200ms (כל התקשורת), אבל לוקח לו 20ms לבצע אותה - זה לא יעיל. אם המשימה לוקחת 2 שניות, לעומת זאת, זה מתחיל להשתלם - כי אתה מבזבז 200ms אבל מרוויח מקביליות של 1800ms. 2. מה קורה אם לקוח הוא דפוק? אולי כדאי לנסות לעמת את התוצאה עם לקוחות אחרים? לשלוח משימה פעמיים ולראות מה התוצאות? 3. נדרשות סטטיסטיקות להצדקת התהליכים הללו. סה"כ מדובר בסיבוך מיותר, אולי - צריך להוכיח שזה משתלם. 4. אולי אפשר לעשות מנגנון גנרי, שמקבל אלגוריתם כלשהו ומפצל אותו בעצמו לחלקים. אבל זה למתקדמים
 

yhaim

New member
רעיון יפה, אבל

אני לא טוב בפונקציות מתמטיות.נראה לי שיהיה לי קשה לממש דבר כזה. הפרויקט גם צריך להיות יפה מבחינה גרפית. אני צריך רעיון לפרויקט מבוזר שאינו מתמטי.
 

shed

New member
--->

הנה שילוב של שני העולמות: ביזור וגרפיקה. דמיין לך איזה שהוא מלבן דו מימדי (או תיבה תלת מימדית - אם ממש תרצה לסבך). "זרוק" לתוך המלבן הזה מספר כדורים כאשר לכל אחד וקטור תנועה התחלתי. כאשר כדור מתנגש בקיר - הוא משנה כיוון. כאשר שני כדורים מתנגשים אחד בשני הם משנים כיוון בצורה חצי רנדומלית. המשימה של התוכנית היא לעקוב אחרי התנעות ולצייר על המסך את מיקום הכדורים בכל רגע. מחשב אחד יוכל להתמודד עם מספר מוגבל וסופי של כדורים. ביזור המשימה למספר מחשבים יאפשר לבצע סימולציה כזו למספר רב של כדורים. הנה שני אלגוריתמים לביזור: 1. - טרוויאלי יותר: כל מעבד ברשת אחראי למספר מסויים של כדורים עליהם הוא מבצע את החישוב, ושולח תוצאות למחשב אחד אשר תפיקדו בחיים זה רק להציג על המסך. יתרונות: פשוט לחשיבה, פשוט לתכנות. בזבזני מה מבחינת תקשורת (כולם צריכים לדעת כל הזמן איפה כל שאר הכדורים). 2. כל מחשב אחראי על שטח מסויים, בלי תלות למספר הכדורים בשטח הזה. יתרונות: כל מחשב "מדבר" רק עם ה"שכנים" שלו (מודיע על מעבר כסור משטח לשטח). חסרונות: קצת פחות טוויאלי לחשיבה. (מתוך כמאה סטודנטים בעיבוד מקבילי רק אחד בחר בפתרון כזה - והיה צריך להסביר אותו למרצה...)
 

AnynothingOrTom

New member
אויי נו למה שלא תתנו לו דוגמא פשוטה

הניחו לו עם המתמתיות והביזור שלכם!
 

shed

New member
-->

"אני צריך רעיון לפרויקט מבוזר שאינו מתמטי." - שתי הודעות מעל. אם לבצע חישוב וקטור תנועה אחרי התנגשות (בצורה גסה רק להחליף כיוון ולשמור על אותה אמפליטודה) נראה לך מתימטי מדי זאת כבר בעיה אחרת ששום קומפיילר לא יפתור.
 

AnynothingOrTom

New member
בנאדם

"אני לא טוב בפונקציות מתמטיות" כמה הודעות מעליך סיבחתם אותו הוא רצה רעיון משהו שתגידו לו במילה אחת כמו "צאט" או משפט פשוט.
 
למעלה