دادههای ورودی در گمز
این پست زیرمجموعه دوره آموزش رایگان نرمافزار گمز میباشد، که به دادههای ورودی در گمز میپردازد. در صورتی که تمایل دارید کل دوره را مشاهده کنید، از این لینک استفاده کنید.
هر مدل ریاضی دادههایی به عنوان ورودی مساله از ما میخواهد، بنابراین گمز هم به عنوان نرمافزاری که مدل ریاضی حل میکنه از این قاعده مستثنی نیست. برای همین تصمیم گرفتم در یک پست مجزا این مبحث را بررسی کنم. در ضمن اگه حال و حوصله خوندن متن ندارید، میتونید به جای خوندن متن، از ویدیو آخر این پست استفاده کنید.
پیشنیاز این آموزش، مطالعه پستهای آموزش نرمافزار گمز و مجموعهها در گمز میباشد.
اسکالرها در گمز
اسکالرها برای تعریف یک عدد ثابت در گمز به کار میروند و وابسته به مجموعه خاصی نیستند. فرض کنید قراره عدد پی و یک ثابت دیگر به نام f با مقدار 45 را در گمز تعریف کنیم، کد مورد نیاز به صورت زیر باید باشه:
scalars
pi adad pi /3.14/
f /45/
;
برای تعریف اسکالر یا عدد ثابت از عبارت scalar یا scalars استفاده میکنیم، در خط بعدی نام اسکالر خودمان را مینویسیم و بعد از نام اسکالر میتوانیم یک عبارت توصیفی بنویسیم (در اینجا نام اسکالر من pi و عبارت توصیفی adad pi هست که اختیاریه). و در پایان بین دو علامت اسلش (/)، مقدار اسکالر را قرار میدهیم. اگه باز هم اسکالری برای تعریف داشتیم، مجازیم که آن را در خط بعدی تعریف کنیم. در پایان هم علامت ; میگذاریم.
همین کد را میتوانیم به شکل زیر هم در گمز وارد کنیم و از نظر کاربرد فرقی با کد بالا نداره:
scalar pi adad pi /3.14/;
scalar f /45/;
پارامترها در گمز
پارامترها کلیترین حالت ورود داده در گمز هستند، این نوع داده به مجموعه وابسته هست، یعنی برای ایجاد یک پارامتر لازم است مجموعه داشته باشید. (اگه با مجموعهها در گمز آشنایی ندارید از این پست استفاده کنید). پارامترها تا دادههایی با 20 بعد را پشتیبانی میکنند. فرض کنید پارامتر یک بعدی به نام s داریم که مقادیرش به شکل زیره:
برای تعریف این داده به صورت پارامتر در گمز، اول یک مجموعه به نام i تعریف کردم و بعدش خود پارامتر را به شکل زیر در گمز کدنویسی کردم:
sets
i /1*4/
;
parameters
s(i) /1 50, 2 60, 3 70, 4 40/
;
برای تعریف پارامتر از عبارت parameter یا parameters استفاده میکنیم. بعد از این عبارت نام پارامتر و در داخل پرانتز نام مجموعه یا مجموعههای مربوطه را مینویسیم (اگه پارامتر شما به بیشتر از یک مجموعه وابسته است، داخل پرانتز، بین نام مجموعهها علامت , بگذارید). در داخل دو علامت / ابتدا عضو مجموعه را بنویسید و با یک فاصله، مقدار متناظر آن عضو را تایپ کنید و بعدش یک , تایپ کنید تا بتونید مقدار بعدی را وارد کنید و به همین ترتیب تا پایان داده ادامه دهید. قواعد مربوط به عبارت توصیفی، ; و تعریف پارامتر دیگر در خط بعدی دقیقا مانند اسکالرها هست.
توجه کنید اگر برای عضوی از مجموعه، مقدار متناظری را وارد نکنید، گمز مقدار آن عضو را صفر در نظر میگیره.
فرض کنید، دادهای دو بعدی به شکل پایین داریم که قراره به صورت پارامتر تعریف بشه:
اگه نام مجموعه مرتبط با سطرها را i و مجموعه مرتبط با ستونها را j در نظر بگیرم، در نتیجه کد گمز من برای وارد کردن این داده به صورت پارامتر به شکل زیر میشه:
sets
i /1*4/
j /1,2/
;
parameters
s(i , j) /1.1 50, 1.2 10, 2.1 60, 2.2 20, 3.1 70, 3.2 30, 4.1 40 , 4.4 40/
;
جدولها در گمز
جدولها هم مثل پارامترها دادههایی تا 20 بعد را پشتیبانی میکنند ولی معمولا برای دادههای دو بعدی استفاده میشوند. فرض کنید قراره داده قبلی را به صورت جدول در گمز تعریف میکنیم:
sets
i /1*4/
j /1,2/
;
table s(i , j)
1 2
1 50 10
2 60 20
3 70 30
4 40 40
;
اگه آموزش را تا اینجا خوب دنبال کرده باشید، متوجه میشید که کد کاملا مشخصه و نیاز به توضیح نداره. تنها توضیحی که لازمه بدم اینه که مقدار مربوط به هر سطر و ستون را دقیقا در جای مناسب، مثل مثال وارد کنید.
در اینجا هم اگر برای یک عضو از جدول مقداری وارد نکنید یا به عبارت دیگه، فضای مربوط به اون مقدار را خالی بگذارید، گمز اون مقدار را صفر در نظر میگیره.
ویدیو آموزش دادههای ورودی در گمز
همونطور که ابتدای پست گفتم، اگه حال و حوصله خوندن متن ندارید، از ویدیو زیر استفاده کنید. در این ویدیو هر چیزی که تا اینجا توضیح دادم، بعلاوه چند نکته اضافهتر (مثل تعریف پارامتر یا جدول برای مجموعههای با تعداد اعضای خیلی زیاد) را خواهید دید:
منابع تکمیلی در رابطه با دادههای ورودی در گمز
اگه نیاز دارید که بیشتر از این در رابطه با دادههای ورودی در گمز اطلاعات کسب کنید، به شما توصیه میکنم از این لینک که مربوط به وبسایت گمز هست، استفاده کنید.