PDA

View Full Version : سوال: درست کردن یگ گراف از روی آرایه 2 بعدی



saeidmscs
شنبه 19 دی 1388, 19:03 عصر
سلام به همه دوستان
اول اینو بگم که یه تازه کارم
دوم هم اینکه برای حل این دوتا(که قراره بگم) شاید مجموعا 20 ساعت وقت گذاشتم اما آقا نتونستم...
سوال 1-یه آرایه دو بعدی داریم(به شکل زیر) که هر ستونش نشون دهنده یه یال متشکل از دو عنصر اون ستونه.مثلا اگه تعداد رئوس ما 5 تا باشه،عناصر این گراف دو بعدی از 0 تا 4 هستند(از 0 تا تعداد رئوس -1) , و بعد اول این آرایه همیشه 2 هستشحالا من تو "کد سی شارپ"اینکه چطوری گراف متناظر رو که رئوس،یالها و همسایگی و ... گراف رو شامل باشه،بنویسم،موندم....میشه کمکم کنید؟

int[,] example=new int[2][6]
{{2,3,1,0,4,5},{0,5,2,1,3,4}}

سوال 2-من بطور کلی نمیدونم چطوری یه گراف باید تو سی شارپ پیاده سازی شه؟گراف شامل راس،یال،جهت یالها و وزن گرافهاست دیگه؟درسته؟ خیلی هم تو اینترنت گشتم.چیزی که راه دست باشه رو پیدا نکردم.اگه لطف کنید و ...:خجالت:
خیلی ممنون و متشکر

mir555
شنبه 19 دی 1388, 19:40 عصر
یک آرایه دو بعدی تعریف کن ستون اول مبدا باشه ستون دوم مقصد باشه ستون سوم وزن باشه اینجوری تمام ارتباط ها پیدا میشه حالا اگه بخوای بدونی از a به b چند تا راه داری، تمام سطر های انتخاب کن که a ستون اولش باشه b ستون دوم باشه وزنشم از ستون سوم استفاده کنی
اگر هم گراف بدون جهت باشه فرق نمی کنه a تو ستون اول باشه یا دوم باید چک کنی a تو ستون اول یا دوم باشه و b تو ستون اول یا دوم باشه

saeidmscs
شنبه 19 دی 1388, 22:27 عصر
یک آرایه دو بعدی تعریف کن ستون اول مبدا باشه ستون دوم مقصد باشه ستون سوم وزن باشه اینجوری تمام ارتباط ها پیدا میشه حالا اگه بخوای بدونی از a به b چند تا راه داری، تمام سطر های انتخاب کن که a ستون اولش باشه b ستون دوم باشه وزنشم از ستون سوم استفاده کنی
اگر هم گراف بدون جهت باشه فرق نمی کنه a تو ستون اول باشه یا دوم باید چک کنی a تو ستون اول یا دوم باشه و b تو ستون اول یا دوم باشه
کار به این سادگی نیست
قراره dfs,bfs,prim,kruska,,...روی این گراف اجرا شه
میدونید چیه؟
من تقریبا به همه ابزارهای سی شارپ آشنا هستم
اما چون کد زیاد ننوشتم،نمیدونم چطوری اینارو بنویسم
اگه فقط و فقط در حد یه راهنمایی کوچیک باشه(تا نوشتن ادامه اش دستم بیاد) ممنون میشم

FastCode
یک شنبه 20 دی 1388, 11:49 صبح
از دیتاست استفاده کن.
دو سه تا تبیل و یکی دو تا relation کارتو راه میندازه.
بهتره که dataset رو با designer VS طراحی کنی.

mir555
یک شنبه 20 دی 1388, 13:12 عصر
کار به این سادگی نیست
قراره dfs,bfs,prim,kruska,,...روی این گراف اجرا شه
میدونید چیه؟

نه فقط خودتون میدونید چیه
موفق باشین

peymannaji
یک شنبه 20 دی 1388, 13:17 عصر
از دیتاست استفاده کن.
دو سه تا تبیل و یکی دو تا relation کارتو راه میندازه.
بهتره که dataset رو با designer VS طراحی کنی.

تا اونجای که امکان داره از دیتاست استفاده نکنید . اگه لینک مقالش رو پیدا کنم میفرستم براتون . بجای دیتاست از جنریک کلاس ها استفاده کنید ...

FastCode
یک شنبه 20 دی 1388, 13:32 عصر
تا اونجای که امکان داره از دیتاست استفاده نکنید . اگه لینک مقالش رو پیدا کنم میفرستم براتون . بجای دیتاست از جنریک کلاس ها استفاده کنید ...

اگر بتونن که خیلی عالیه
چون اینطوری این آقا اولین نفریه که من میبینم که هم ریاضیش توپپه هم برنامه نویسیش:کف::کف::کف::کف:

saeidmscs
یک شنبه 20 دی 1388, 16:47 عصر
کار به این سادگی نیست
قراره dfs,bfs,prim,kruska,,...روی این گراف اجرا شه
میدونید چیه؟

نه فقط خودتون میدونید چیه
موفق باشین
آقا این "میدونید چیه" سوالی نبود که به شما برخورد.
دیدید تو محاوره مثلا میگیم "گوش کن دوست من،میدونی چیه؟..."؟

SMRAH1
دوشنبه 21 دی 1388, 12:26 عصر
سلام
از این سئوال دو تا برداشت داشتم :
1) اصلا الگوریتم جداسازی اطلاعات رو برای رسم گراف نمی دونید؟ این راه حل داره و دوستان دارن کمک می کنن.
2) شما الگوریتم رو می دونید ولی در هنگام رسم،گراف به خوبی که می خواهید در نمی آید،به عبارت دیگر رسم Graphical گراف مشکله نه تحلیل اطلاعاتش! این موضوع پیچیده تر از اونیه که شما فکرش رو بکنید (چون توی پروژه تخصیص خودم در دانشگاه مشکل داشتم و روش کار کردم، عرض میکنم) برای این منظور برنامه هایی مثل Graphviz (اگر درست نوشته باشم) موجوده به همراه کد که می تونه این کار رو بکنه (البته این نمونه به زبان Cpp است)

موفق باشید