اغلق هذه النافذة  أنت غير مسجل بشبكة ابن الخليج; للتسجيل اضغط هنا; للمساعده وشرح طريقة التسجيل اضغط هنا

شبكة ابن الخليج

Sitemap | Archive | Tag Could
معهد مطور - ينتهي الإعلان بتاريخ 16\10\2008
التسجيلالبحثمشاركات اليوماجعل جميع المنتديات مقروءةالأرشيف

منتديات نظرة حب - ينتهي الاعلان بتاريخ 6\11\2008جديد برامج وأخبار الالعابالرَّقائق دعوة لترقيق القلوب - ينتهي الاعلان بتاريخ 6\11\2008
كل مايخص المرأة والمجتمعاجمل واروع الصورنغمات إنتظار الشادي - ينتهي الاعلان بتاريخ 6\11\2008

المصفوفة المتناثرة Sparse Matrix

مناقشة موضوع المصفوفة المتناثرة Sparse Matrix في دروس لغات البرمجة; المصفوفة المتناثرة أو مصفوفة الأصفارSparse Matrix : لو ألقينا نظرة على المصفوفة التالية التي تحوي 6 صفوف و6 أعمدة وتتكون من : 6x 6 = 36 عنصر : سيتضح لنا من الوهلة الأولى أن أكثر عناصر هذه المصفوفة عبار ...

العودة شبكة ابن الخليج> منتديات تعليمية> دروس لغات البرمجة

رد
 
LinkBackأدوات الموضوعطرق مشاهدة الموضوع
قديم 05-28-2006, 12:56 مساءً   #1 (permalink)
اسرة ابن الخليج
 
الصورة الرمزية الهوى ماهو كلام
 
تاريخ التسجيل: Jul 2005
الدولة: *K S A*
المشاركات: 4,844
معدل تقييم المستوى: 655الهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيط
إرسال رسالة عبر مراسل ICQ إلى الهوى ماهو كلامإرسال رسالة عبر مراسل MSN إلى الهوى ماهو كلامإرسال رسالة عبر مراسل Skype إلى الهوى ماهو كلام
المصفوفة المتناثرة Sparse Matrix


المصفوفة المتناثرة أو مصفوفة الأصفارSparse Matrix :

لو ألقينا نظرة على المصفوفة التالية التي تحوي 6 صفوف و6 أعمدة وتتكون من : 6x 6 = 36 عنصر :
 دروس علمية   دروس علمية   دروس فيجوال سي ++  المصفوفة المتناثرة Sparse Matrix  ذكاء اصطناعي   دروس سي++   دروس COBOL   دروس باسكال   دروس لاب فيو

سيتضح لنا من الوهلة الأولى أن أكثر عناصر هذه المصفوفة عبارة عن " أصفار " ؛ تسمى المصفوفة التي أكثر عناصرها أصفار بـمصفوفة الأصفار أو المصفوفة المتناثرة " Sparse Matrix" . ومن الصعب علينا تحديد ما إذا كانت المصفوفة عبارة عن Sparse Matrix أو لا .. ولكن يتضح لنا ذلك عن طريق النظر؛ ففي المصفوفة السابقة يوجد فقط 8 عناصر لا تساوي الصفر من أصل 36 عنصر، بينما البقية كلها أصفار .
نعالج الـ Sparse Matrix بالتكنيك الذي سنشرحه في درسنا لتوفير المساحة في الذاكرة حيث نستطيع تخزين العناصر الغير مساوية للصفر فيها فقط ؛ وذلك من خلال استخدام مصفوفة وحيدة لكل عنصر من عناصرها يوجد 3 صفات هي : الصف والعمود والقيمة الخاصة به؛ ويتم ذلك عن طريق استخدامنا لـClass كالتالي :
package Sparse_Matrix;

public class SM extends Object {
private int row , col , val ;

//-----------<< SM constructor >>------------------------

public SM (int row1 ,int col1 ,int val1 ) {
setrow(row1) ;
setcol(col1) ;
setval(val1) ;
}

//-----------<< Method to perform row >>-----------------
public int setrow( int row1 ){
return row = row1 ;
}
//-----------<< Method to perform column >>--------------
public int setcol( int col1 ){ return col = col1 ;
}
//-----------<< Method to perform value >>---------------
public int setval( int val1 ){
return val = val1 ;
}
//-----------<< Method to Print >>-----------------------
public String Print() {
return ( row +"t"+ col +"t"+ val +"n") ;
}
}

ولكن يجب أن نراعي هنا أن ترتيب العناصر في هذه المصفوفة الوحيدة سيكون تابع لأحد هذه الصفات وهو الصف " row " و لابد من أن يكون تصاعدياً ..
إذن .. يتضح لدينا أن تعريف الـ Sparse Matrix كما هو موجود في قاموسنا كالتالي :
مصفوفة ذات بعد واحد تحوي الكثير من العناصر المتشابهة ، والتي غالباً ما تساوي صفر، لكل عنصر فيها ثلاث صفات : الصف ، العمود ، والقيمة التي تسند إليه .
* Sparse_Matrix : a set of triples < row , col , value > , where row & column are integers & from a unique combination , & value comes from the set item .
* Sparse_Matrix Create(max_row , max_col) ::= return a Sparse_Matrix that can hold up to max_item = max_row X max_col ,& whose maximum row size is max_row , & whose maximum column size is max_col.
ومن هنا نستطيع إعادة رسم الـ [Sparse Matrixكما في الشكل التالي :
 programming language tutorial   ذكاء اصطناعي   ذكاء اصطناعي  المصفوفة المتناثرة Sparse Matrix  دروس برمجة   دروس Java   دروس بيسك    دروس Delphi
حيث أن a[0].row تحتوي عدد الأسطر الكلي للمصفوفة الأصلية ( في هذا المثال = 6 ) , كذلك a[0].col فهي تحوي عدد الأعمدة الكلي للمصفوفة الأصلية ( في هذا المثال = 6 ) , وأيضاً a[0].value عدد العناصر الغير مساوية للصفر فقط ( في هذا المثال = 8 ) .
ولكي نعرف رقم الصف لأي عنصر ننظر لـ Field row , وبالمثل إذا أردنا أن نعرف رقم العمود فننظر لـ Field col وستكون قيمة هذا العنصر مخزنة في Field value . والثلاثي < row , col , value > سيكون مرتب في المصفوفة على حسب الصفوف " تصاعدياً " كما ذكرنا سابقاً ..
ولكن كيف نستطيع كتابة شيفرة لإنشاء هذه المصفوفة بلغة الجافا ؟ هذا ما سنعرفه ان شاء الله خلال الأسطر التالية :

1) في البداية نقوم بعمل ملف ونسمّيه: Sparse_Matrix مثلاً كما اعتمدنا في هذا المثال.
2) ثم نقوم بعمل كلاس نسميّه SM ونخزّنه في الملف السابق الذكر بعد أن نعمل فيه package Sparse_Matrix ونكتب في هذا الكلاس الكود السابق.
3) ثم نقوم بعمل Application ونضع فيه إستدعاء للكلاس السابق أي : import Sparse_Matrix.SM .. ونكتب فيه شيفرة لمعالجة المصفوفة المتناثرة بالتسلسل التالي:
  • سنفترض في مثالنا الحالي أن المصفوفة مكوّنة من 3 صفوف و3 أعمدة ..
  • وبعد ذلك نسمح للمستخدم بإدخال العناصر كمصفوفة عادية شريطة أن تكون أكثرها مساوية للصفر ونطبع المصفوفة بالطريقة التقليدية العادية.
  • ثم نقوم بإنشاء الـ Sparse Matrix]؛ نخزّن في البداية عدد الصفوف الكلي وعدد الأعمدة الكلي في كل من a[0].row و a[0].col .. ثم نضع عداداً = 1 كفهرس لكي نبدأ التخزين ..
  • نقوم بعمل Loop يمّر على كل عناصر المصفوفة العادية ويسأل ما إذا كان هذا العنصر مساوياً للصفر أما لا ؟
    إذا اتضح أن العنصر لا يساوي الصفر .. نقوم بتخزين رقم الصف الموجود فيه هذا العنصر وكذلك رقم العمود ثم نخزّن قيمة العنصر باستخدام العداد الذي جعلنا قيمته =1 كفهرس لأول عنصر يقابلنا غير مساوي للصفر .. ثم نزيد قيمة العداد بواحد لكي يفهرس العنصر المخزن الجديد .. وهكذا إلى أن ننتهي من جميع عناصر المصفوفة الأصلية .
  • الآن قمنا بتخزين جميع القيم الغير مساوية للصفر في الـSparse Matrix ولكن يتبقى Field واحد لم نخزّن به شئ .. أتعلمون ما هو ؟
    إنه الـ Field الخاص بعدد العناصر الغير مساوية للصفر في المصفوفة الأصلية (a[0].val ) .. ونستطيع معرفة عدد العناصر الغير مساوية للصفر من خلال العداد الذي فهرس العناصر ..
    ولكن نلاحظ هنا أن هذا العداد داخل Loop عندما انتهى التخزين قد زادت قيمته بواحد على عدد العناصر الغير مساوية للصفر؛ فيجب علينا أن نقوم بانقاص قيمته بمقدار واحد ثم نخزنها في a[0].val ...
  • الآن نستطيع نقوم بطباعة المصفوفة المتناثرة الناتجة لدينا.
وأليك الشيفرة كاملة:





import Sparse_Matrix.SM;
import javax.swing.*;

public class Sparse_MatrixO {
public static void main (String args[])
{
int Matrix [][] ;
int i , j , q ,count = 1 ;
SM SparseMatrix ;
SparseMatrix= new SM(0,0,0);
String x,output="";
output+="The Normal Matrix :n";
JTextArea outputarea = new JTextArea(10,20);
Matrix = new int[3][3];
//-----------<< To Read & Print Normal Matrix >>-------------------
for(i=0 ; i<3 ; i++){
for(j=0 ; j<3 ; j++){
x=JOptionPane.showInputDialog("plz. Enter the value of element n");
q = Integer.parseInt(x) ;
Matrix[i][j] = q ;
output += Matrix[i][j] +"t" ;
if ( Matrix[i][j] != 0 ) count++ ;
} // end of j Loop
output += "n" ;
} // end of i Loop
//-----------<< To Make & Print Sparse_Matrix >>-------------------

output +="n The Sparce_Matrix :nrowtcoltvaluen--------------------------------------------------n" ;
SparseMatrix.setcol(3);
SparseMatrix.setrow(3);
SparseMatrix.setval(count-1);
output += SparseMatrix.Print() ;
for(i=0 ; i<3 ; i++){
for(j=0 ; j<3 ; j++){
if ( Matrix[i][j] != 0 ) {
SparseMatrix.setcol(j);
SparseMatrix.setrow(i);
SparseMatrix.setval(Matrix[i][j]);
output += SparseMatrix.Print() ;
} // end of if
} // end of j Loop
} // end of i Loop

outputarea.setText(output);
JOptionPane.showMessageDialog(null,outputarea,"Sparse_Matrix", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}


طبعاً، في برنامجنا المتواضع أدخلنا العناصر عنصراً عنصراً، وهي طريقة غير عملية بتاتاً مع التطبيقات الكبيرة، حيث أننا في التطبيقات الكبيرة نخزن المصفوفة في ملف ونقوم بقراءة عناصرها منه.

وهكذا .. نكون قد وفرنا الذاكرة لدينا عند استخدام مثل هذه المصفوفات في حل المشكلات الكبيرة ..





من مواضيع الهوى ماهو كلام في المنتدى

الهوى ماهو كلام غير متواجد حالياً   رد مع اقتباس
قديم 10-22-2006, 03:46 مساءً   #2 (permalink)
اسرة ابن الخليج
 
الصورة الرمزية مبحرفى ذكرياتي
 
تاريخ التسجيل: Jun 2006
الدولة: ذكرياتي
المشاركات: 1,946
معدل تقييم المستوى: 1564مبحرفى ذكرياتي نشيطمبحرفى ذكرياتي نشيطمبحرفى ذكرياتي نشيطمبحرفى ذكرياتي نشيطمبحرفى ذكرياتي نشيطمبحرفى ذكرياتي نشيطمبحرفى ذكرياتي نشيطمبحرفى ذكرياتي نشيطمبحرفى ذكرياتي نشيطمبحرفى ذكرياتي نشيطمبحرفى ذكرياتي نشيط
مشاركة: المصفوفة المتناثرة Sparse Matrix

مشكور أخوي ويعطيك العافية وجزاك الله خيرا ...





من مواضيع مبحرفى ذكرياتي في المنتدى
__________________
مبحرفى ذكرياتي
مبحرفى ذكرياتي غير متواجد حالياً   رد مع اقتباس
رد

العبارات الدلالية
المتناثرة, المصفوفة, matrix, sparse



الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
طرق مشاهدة الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG]متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة

المواضيع المتشابهه
الموضوعكاتب الموضوعالمنتدىمشاركاتآخر مشاركة
البحث الثنائي (1) Binary Searchالهوى ماهو كلامدروس لغات البرمجة110-22-2006 03:46 مساءً


منتديات شبكة ابن الخليج

ثقافة فارسية أبو القاسم الشابي خواطر كتب عربيه موسوعة اللغة العربية الدروس البرازيلي دراجات هوائية الدوري الأسبانيالدوري الإيطاليالدوري البرتغالي TechArt مواضيع غريبة العاب و مسابقات ثقافية اكسسوارات ازياء المحجبات عمليات جراحية قشرة الشعر مكياج حلويات مغربية مسبح اكسسوارات برامج تحرير الذاكره برامج ادارة برامج الوصول للملفات برامج اخراج طلبات المساعدة وتبادل الخبرات افضل عشر ممثلات افلام عربية افلام اجنبية مجانية تحميل مسلسلات افلام انمي العاب فله العاب للكمبيوتر للتحميل مجانية العاب اكس بوكس حيل لكل قرية ترافيان رسوم صور الطيور كاميرات رقمية وتقنية صور Nokia 6600 رسائل شوق اكسسوارات دروس في المصطلحات دروس 3D Studio Max دروس محترفة دروس ايميج ريدي Adobe ImageReadyدروس افتر افكت Adobe After Effect شرح Adobe Premiere دروس الاشكال Blender تحميل 3D Studio Max دروس سويش متوسطة دروس PERL دروس اكسل دروس BeOS يونكس وندوز WINDOWS دروس #C اكسسوارات vb364 vb3.6.7 قسم ستايلات vBulletinمجلة المنتديات mkPortalقسم ستايلات مجلة المنتديات mkPortal Stylesسكربتات وادوات تطوير المواقعمشاكل وحلول الـ مواقع اشهار مواقع فوتوشوبCinema 4Dخامات فوتوشوبفرش فوتوشوباكشن فوتوشوباشكال فوتوشوبمنتديات اماراتيةدليل مواقعاكتشف شخصيتكاخبارموسوعة الأطفالبوربوينتtorrentاختصار الروابطPageRankتوقيع لاميلكصانع القليترGlitter


الساعة تعتمد على توقيت جرينتش +3. الساعة الآن 01:13 صباحاً.
Search Engine Optimization by vBSEO 3.1.0

Valid XHTML 1.0 Transitional Valid CSS!Powered by vBulletin® Version 3.7.1,
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd
Feeds:   XML   JS   RSS   RSS Feed