Computational algorithms used in power systems engineering and simulation are often based on large matrices, mainly of sparse character. There are many various sparse matrix notation formats. However, they are designed for reading simplicity and efficiency, while complicating matrix data generation and update code. This paper reviews most common sparse matrix notation formats, highlighting their common features and shortcomings. It also presents new sparse matrix storage format and its C++ interface, designed as universal, independent module. Its most notable features are: ease of use, efficiency, math friendliness and simplicity of usage (both in data consumer and producer code). The work has been funded from the science budget for years 2007-2010 as a research project No N511 001 32/0852 (PBU-10/RE3/2007).
PL
Algorytmy obliczeniowe stosowane w obliczeniach dotyczących optymalizacji systemu energetycznego bazują najczęściej na wielkich macierzach, często o rzadkim zapisie. Znanych jest wiele różnorodnych sposobów zapisu macierzy rzadkiej w pamięci komputera. Większość z nich została jednak stworzona z myślą o szybkości odczytywania elementów, co komplikuje jednak kod wypełniający macierz i zmieniający jej zawartość. Publikacja zawiera przegląd najpopularniejszych formatów zapisu macierzy rzadkich w pamięci, podkreślając ich zalety oraz wady. Prezentuje także nowy sposób zapisu wraz z interfejsem w języku C++, zaprojektowanym jako uniwersalny, niezależny moduł. Jego najważniejsze cechy to: łatwość wykorzystania, efektywność, dostosowanie do zapisu matematycznego oraz prostota struktur danych. Interfejs został stworzony w ramach grantu N511 001 32/0852 (PBU-10/RE3/2007) na lata 2007-2010.
2
Dostęp do pełnego tekstu na zewnętrznej witrynie WWW
Język C++ nie jest przystosowany do realizacji operacji wektorowych. O ile zatem ze względu na swoją wydajność stanowi on doskonałe narzędzie implementacji złożonych algorytmów obliczeniowych, wygoda zapisu operacji matematycznych pozostawia dużo do życzenia. Poniższy artykuł prezentuje część biblioteki klas podstawowych, umożliwiającą obiektowy zapis operacji na wektorach. Biblioteka została stworzona w ramach projektu badawczego N511 001 32/0852.
EN
The C++ language is not suitable for performing algebraic operations on vectors. While its performance makes it a perfect tool for implementation of complex computational algorithms, coding these algorithms may be a daunting task. The paper presents an object-oriented library implementing vector abstraction. The work was funded from the science budget as the research project No N511 001 32/0852.
3
Dostęp do pełnego tekstu na zewnętrznej witrynie WWW
Badanie ruchu układów złożonych z wielu członów poruszających się względem siebie i otoczenia, jest zadaniem trudnym do rozwiązania. Do analizy tego problemu wykorzystywane są różne algorytmy komputerowe. Jednym z takich algorytmów jest metoda układów wieloczłonowych, która jest ogólnie przyjętym terminem dla metod modelowania, analizy i syntezy układów rzeczywistych. Poniższy artykuł omawia procedurę tworzenia pakietu symulacyjnego dla systemu CAD, opartego o formalizm układów wieloczłonowych oraz interfejs API tego systemu. Zamieszczone zostały również wyniki symulacji przeprowadzonych za pomocą tego pakietu.
EN
Motion study of systems consist of many bodies moving relative to each other and environment, is a hard to solve task. Many different computer algorithms are used to analyze such problem. One of these algorithms is multibody systems method, which is generally accepted term for modeling, analysis and synthesis methods of real systems. This article discusses procedure of creating of simulation package for CAD system, based on multibody systems formulation and CAD system API interface. Article also consists results of simulation carried out with this package.
4
Dostęp do pełnego tekstu na zewnętrznej witrynie WWW
Język C++ nie wspiera bezpośrednio realizacji operacji macierzowych na macierzach pełnych (implementacja każdej operacji wymaga zapisu bloku pętli) w ogóle też nie obsługuje technik rzadkiego zapisu macierzy. Skutkuje to niepotrzebnym powielaniem tych samych fragmentów kodu i koniecznością optymalizowania każdego z nich z osobna. Nieuniknione jest też pogorszenie czytelności kodu, spowodowane zastąpieniem czystego zapisu algebraicznego fragmentami kodu realizującego te operacje. Aby zlikwidować ten problem i przyspieszyć tworzenie oprogramowania optymalizującego rozpływ mocy w systemie elektroenergetycznym (intensywnie wykorzystującego operacje macierzowe), stworzono bibliotekę klas języka C++, standaryzującą zapis operacji algebraicznych na macierzach w tym języku. Biblioteka została stworzona w ramach projektu badawczego N511 001 32/0852.
EN
The C++ language does not directly support matrix algebra (implementing every operation requires open-coding a loop); it also does not support sparse matrix techniques. The end effect are code duplication and the necessity of optimising each independent code block separately. One also cannot avoid code readability degradation, caused by replacing a clean algebraic form with C++ code snippets. To solve this problem and improve code creation time (especially in case of the OPF-problem solving software, being developed as a part of a research project), a C++ class library was created. The library consists of classes implementing basic algebraic operations on simple and sparse matrices. The work was funded from the science budget as the research project No N511 001 32/0852.
5
Dostęp do pełnego tekstu na zewnętrznej witrynie WWW
Język C++ nie wspiera bezpośrednio realizacji operacji macierzowych na macierzach pełnych (implementacja każdej operacji wymaga zapisu bloku pętli); w ogóle też nie obsługuje technik rzadkiego zapisu macierzy. Skutkuje to niepotrzebnym powielaniem tych samych fragmentów kodu i koniecznością optymalizowania każdego z nich z osobna. Nieuniknione jest też pogorszenie czytelności kodu, spowodowane zastąpieniem czystego zapisu algebraicznego fragmentami kodu realizującego te operacje. Aby zlikwidować ten problem i przyspieszyć tworzenie oprogramowania optymalizującego rozpływ mocy w systemie elektroenergetycznym (intensywnie wykorzystującego operacje macierzowe), stworzono bibliotekę klas języka C++, standaryzującą zapis operacji algebraicznych na macierzach w tym języku. Biblioteka została stworzona w ramach projektu badawczego N511 001 32/0852.
EN
The C++ language does not directly support matrix algebra (implementing every operation requires open-coding a loop); it also does not support sparse matrix techniques. The end effect are code duplication and the necessity of optimising each independent code block separately. One cannot also avoid code readability degradation, caused by replacing a clean algebraic form with C++ code snippets. To solve this problem and improve code creation time (especially in case of the OPF-problem solving software, being developed as a part of a research project), a C++ class library was created. The library consists of classes implementing basic algebraic operations on simple and sparse matrices. The work was funded from the science budget as the research project No N511 001 32/0852.
6
Dostęp do pełnego tekstu na zewnętrznej witrynie WWW
Algorytm klasteryzacji metodą k-średnich to jeden z najpopularniejszych sposobów służących do klasyfikacji danych przy użyciu metod sztucznej inteligencji. Otrzymane klastry mogą dalej posłużyć do budowy np. modeli neuronowych z wykorzystaniem dzwonów Gaussa (sieci RBF) czy rozmytych modeli Takagi-Sugeno. Niniejszy artykuł przedstawia implementację tego algorytmu języku C++. Można tu znaleźć opis klasy, która może później posłużyć jako biblioteka do dowolnego programu napisanego w tym języku
EN
K-means clustering algorithm is one of the most popular ways for data classification using artificial intelligence methods. Obtained clusters can be further used e.g. to build RBF networks or Takagi-Sugeno fuzzy models. This paper contains the implementation of this algorithm in C++ programming language. You can find there the description of the class, which can serve as a library in different programs written in C++.
7
Dostęp do pełnego tekstu na zewnętrznej witrynie WWW
Given a graph H we define p(H) to be the minimum order of a graph G such that every proper vertex coloring of G contains a rainbow induced subgraph isomorphic to H. We give upper and lower bounds for p(H), compute the exact value for some classes of graphs, and consider an interesting combinatorial problem connected with computation of (H) for paths. A part of this research has been guided by a computer search and, accordingly, some computational results are presented. A special motivation comes from research in on-line coloring.
8
Dostęp do pełnego tekstu na zewnętrznej witrynie WWW
W pracy przedstawiony został moduł oprogramowania napisany w Builder C++ monitorujący stan pracy ładowarki poprzez port COM.
EN
The software written in Builder C++ that monitors the process of processor impulse charger in the article are presented. In the paper protocol, interface, components used are presented.
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.