matice([[1,1,0,0,0],[1,1,1,0,0],[0,1,1,0,0],[0,0,0,1,1],[0,0,0,1,1]],1). matice([[1,1,1],[1,1,0],[1,0,1]],2).



Podobné dokumenty
MENDELOVA UNIVERZITA V BRNĚ LDF MT MATEMATIKA VEKTORY, MATICE

MENDELOVA UNIVERZITA V BRNĚ LDF MT MATEMATIKA VEKTORY, MATICE

Základy matematiky pro FEK

Matice. Předpokládejme, že A = (a ij ) je matice typu m n: diagonálou jsou rovny nule.

Operace s maticemi

II. Úlohy na vložené cykly a podprogramy

Množinu všech matic typu m n nad tělesem T budeme označovat M m n (T ), množinu všech čtvercových matic stupně n nad T pak M n (T ).

Operace s maticemi. 19. února 2018

Úvod do lineární algebry

Lineární algebra Operace s vektory a maticemi

Čtvercové matice. Čtvercová matice je taková matice, jejíž počet řádků je roven počtu jejích sloupců

Matice. Přednáška MATEMATIKA č. 2. Jiří Neubauer. Katedra ekonometrie FEM UO Brno kancelář 69a, tel

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Kapitola 11. Vzdálenost v grafech Matice sousednosti a počty sledů

Kapitola 11: Vektory a matice:

5. Maticová algebra, typy matic, inverzní matice, determinant.

Determinant matice řádu 5 budeme počítat opakovaným použitím rozvoje determinantu podle vybraného řádku nebo sloupce. Aby byl náš výpočet

AVDAT Vektory a matice

[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.

A[a 1 ; a 2 ; a 3 ] souřadnice bodu A v kartézské soustavě souřadnic O xyz

Číselné vektory, matice, determinanty

Základy maticového počtu Matice, determinant, definitnost

Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) b)

Cílem této kapitoly je uvedení pojmu matice a jejich speciálních typů. Čtenář se seznámí se základními vlastnostmi matic a s operacemi s maticemi

Kapitola 11: Vektory a matice 1/19

Skalár- veličina určená jedním číselným údajem čas, hmotnost (porovnej životní úroveň, hospodaření firmy, naše poloha podle GPS )

Lineární algebra - I. část (vektory, matice a jejich využití)

D 11 D D n1. D 12 D D n2. D 1n D 2n... D nn

0.1 Úvod do lineární algebry

KTE / PPEL Počítačová podpora v elektrotechnice

Úvod do teorie grafů

Uspořádanou n-tici reálných čísel nazveme aritmetický vektor (vektor), ā = (a 1, a 2,..., a n ). Čísla a 1, a 2,..., a n se nazývají složky vektoru

Zdrojem většiny příkladů je sbírka úloh 1. cvičení ( ) 2. cvičení ( )

0.1 Úvod do lineární algebry

KIV/ZI Základy informatiky MS EXCEL MATICOVÉ FUNKCE A SOUHRNY

X37SGS Signály a systémy

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.

Jan Březina. 7. března 2017

1 Determinanty a inverzní matice

PROGRAMOVÁNÍ. Cílem předmětu Programování je seznámit posluchače se způsoby, jak algoritmizovat základní programátorské techniky.

[1] samoopravné kódy: terminologie, princip

Vzdálenost uzlů v neorientovaném grafu

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

15 Maticový a vektorový počet II

Lineární algebra. Matice, operace s maticemi

Lineární algebra II. Adam Liška. 9. února Zápisky z přednášek Jiřího Fialy na MFF UK, letní semestr, ak. rok 2007/2008

Lenka Zalabová. Ústav matematiky a biomatematiky, Přírodovědecká fakulta, Jihočeská univerzita. zima 2012

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

PPEL_4_cviceni_MATLAB.txt. % 4. cvičení z předmětu PPEL - MATLAB. % Lenka Šroubová, ZČU, FEL, KTE %

Operace s maticemi Sčítání matic: u matic stejného typu sečteme prvky na stejných pozicích: A+B=(a ij ) m n +(b ij ) m n =(a ij +b ij ) m n.

[1] LU rozklad A = L U

Součin matice A a čísla α definujeme jako matici αa = (d ij ) typu m n, kde d ij = αa ij pro libovolné indexy i, j.

Úvod do informatiky. Miroslav Kolařík

Vybrané kapitoly z matematiky

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Příklad elektrický obvod se stejnosměrným zdrojem napětí

Vektory a matice. Petr Hasil. Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF)

Jarníkův algoritmus. Obsah. Popis

B A B A B A B A A B A B B

maticeteorie 1. Matice A je typu 2 4, matice B je typu 4 3. Jakých rozměrů musí být matice X, aby se dala provést

Algoritmus pro generování normálních magických čtverců

1 Projekce a projektory

Semestrální projekt. Předmět: Programování v jazyce C. Zadání: Operace s maticemi. Uživatelský manuál. ver. 1.0

Vektorový prostor. d) Ke každému prvku u V n existuje tzv. opačný prvek u, pro který platí, že u + u = o (vektor u nazýváme opačný vektor k vektoru u)

Příklady k druhému testu - Matlab

Hammingovy kódy. dekódování H.kódů. konstrukce. šifrování. Fanova rovina charakteristický vektor. princip generující a prověrková matice

Predispozice pro výuku IKT (2015/2016)

2. Matice, soustavy lineárních rovnic

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.

2. RBF neuronové sítě

Učební texty k státní bakalářské zkoušce Matematika Vlastní čísla a vlastní hodnoty. študenti MFF 15. augusta 2008

Matematika B101MA1, B101MA2

Drsná matematika I 5. přednáška Vektory a matice

1. Matice a maticové operace. 1. Matice a maticové operace p. 1/35

rozumíme obdélníkovou tabulku

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

a + b + c = 2 b + c = 1 a b = a 1 2a 1 + a a 3 + a 5 + 2a 2 + a 2 + a

VEKTORY. Obrázek 1: Jediný vektor. Souřadnice vektoru jsou jeho průměty do souřadných os x a y u dvojrozměrného vektoru, AB = B A

PPEL_3_cviceni_MATLAB.txt. % zadat 6 hodnot mezi cisly 2 a 8 % linspace (pocatek, konec, pocet bodu)

Matematika I Ètvercové matice - determinanty

Matematika NÁRODNÍ SROVNÁVACÍ ZKOUŠKY DUBNA 2017

P 1 = P 1 1 = P 1, P 1 2 =

Determinant. Definice determinantu. Permutace. Permutace, vlastnosti. Definice: Necht A = (a i,j ) R n,n je čtvercová matice.

while cyklus s podmínkou na začátku cyklus bez udání počtu opakování while podmínka příkazy; příkazy; příkazy; end; % další pokračování programu

Determinanty. Obsah. Aplikovaná matematika I. Pierre Simon de Laplace. Definice determinantu. Laplaceův rozvoj Vlastnosti determinantu.

m n. Matice typu m n má

1 Linearní prostory nad komplexními čísly

Semestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016

Soustava m lineárních rovnic o n neznámých je systém

Stručný návod k programu Octave

Regresní a korelační analýza

1 Vektorové prostory.

Úvod do lineární algebry

Eukleidovský prostor a KSS Eukleidovský prostor je bodový prostor, ve kterém je definována vzdálenost dvou bodů (metrika)

Transkript:

% Zápočtový program % souvislost grafu % popis algoritmu a postupu % Program využívá algoritmu na násobení matic sousednosti A. % Příslušná mocnina n matice A určuje z kterých do kterých % vrcholů se lze dostat po cestě délky nejvýše n. Matice na % nultou je jednotková matice, jenom z vrcholu do toho samého % se lze dostat po cestě délky nula. První mocnina je samotná % matice A, nenulové prvky jsou pravě mezi vrcholy, kde je % hrana. Výhodnější, co se týče početní náročnosti, nahrazovat % nenulové prvky jedničkami, je to tak jednodušší. A pokud je % graf na N vrcholech a příslušnou matici sousednosti umocním % na N-tou, potom v matici, co vznikne, budou jedničky právě % tam, kde existuje z vrcholu do vrcholu cesta nejvýše N. % Kdyby tam bylo místo [x,y], kde bude nula, pak se z vrcholu % x do vrcholu y nelze dostat cestou menší rovnou N. Protože % je to graf na N vrcholech, nemůže tam existovat nejkratší % cesta mezi libovolnými dvěma vrcholy větší než N. Proto mezi % vrcholy x a y není cesta žádná, leží v různých komponentách % souvislosti. Umocním matici A na N-tou a pak každý řádek % umocněné matice M značí jednu komponentu souvislosti, kde % jedničky jsou na místech, které indexuji vrcholy patřící do % právě jedné komponenty souvislosti. % Kvůli ušetření počtu násobení dvou matic, nebudu násobit % maticí sousednosti A, ale začnu matici A na druhou a to celé % na druhou a tak dále až narazím na mocninu dvojky, která je % větší než požadované N. To ale vůbec nevadí. Pokud % neexistuje cesta délky N a menší, tak nemůže existovat ani % cesta delší. % Matice M je řádu N x N a počet komponent souvislosti % nemusí být zdaleka N, každá z komponent je uvedena tolikrát % kolik vrcholů je v ní obsaženo. Proto po umocnění matice se % na ní začnu dívat místo seznam řádků, ale jako seznam % komponent souvislosti a vyházím všechny duplicity. A % spočítám kolik prvků má upravené pole a právě toto číslo je % počet komponent grafu G. % Graf se zadává ve formě seznamu hran, nebo také jako % matice souvislosti. Ze seznamu hran vytvořím matici % sousednosti a pak následuje již mocnění. Seznam hran se % předělává do matice takto: 1. vytvoří se matice N x N ze % samých nul. 2. přidá se diagonála, vznikne jednotková matice % 3. bere se 1 hrana {a,b} a přidá se jednička do matice na % místo [a,b] a [b,a]. % VSTUPNI DATA matice([[1,1,0,0,0],[1,1,1,0,0],[0,1,1,0,0],[0,0,0,1,1],[0,0,0,1,1]],1). matice([[1,1,1],[1,1,0],[1,0,1]],2). 1

seznamhran([[1,2],[3,2],[4,5]],5). seznamhran([[1,3],[4,3],[2,7],[6,5]],7). seznamhran([[1,8],[8,2],[2,3],[3,1],[4,5]],8). kompzeseznamu(s,n,k,p):- seznamhran(s,n), vytvormatici(s,n,v), nantou2(v,w), setrid(w,k), velikostpole(k,p). kompzmatice(v,k,p):- matice(v,_), nantou2(v,w), setrid(w,k), velikostpole(k,p). % prehozeni reprezentace matice ze seznamu radek na seznam sloupcu % matice je implicitne seznam radku, pokud je myslena jako seznam sloupcu, % je to uvedeno; je to transponovani (slo by take pouzit), ale je mysleno % jako stejna matice s jinou reprezentaci % prehod(+co,-kam). prehod([[] _],[]). prehod(m,[p D]):- ubersloupec(m,p,m2), prehod(m2,d). % z matice vznikne jako jeden vyst. parametr jeji prvni sloupec a druhy zbytek matice % ubersloupec(+matice,-radka,-matice bez sloupce) ubersloupec([],[],[]). ubersloupec([[x K] M], [X S], [K M2]):- ubersloupec(m, S, M2). % spocita kvadrat matice % matkvadrat2(+matice,-kvadrat). matkvadrat2(m,v):- prehod(m,mm), matkvadrat(mm,m,v). % spocita druhou mocninu dane matice % matkvadrat(+puvodni M(seznam sloupcu),+m,-m na druhou). matkvadrat(_,[],[]). matkvadrat(m,[pr Dr],[Ra Da]):- matradek(m,pr,ra), matkvadrat(m,dr,da),!. % nasobeni matice s vektorem, vznika vektor % matradek(+matice(seznam sloupcu),+radek,-radek) matradek([],_,[]). matradek([p D],Rvs,[R1 Rd]):- snasobradky2(p,rvs,r1), matradek(d,rvs,rd). % vypocita skalarni soucin dvou vektoru zadanych ve forme seznamu % snasobradky(+seznam,+seznam,-vysledek). snasobradky([],[],0). snasobradky([x S1],[Y S2],V):- snasobradky(s1,s2,v1), V is V1 + S. % pro prehledbost pri nasobeni matic pro potrebu souvislostia nesouvislosti % budu hodnoty nulove nechavat a hodnoty nenulove konvertovat na jednicky 2

snasobradky2([],[],0). snasobradky2([x S1],[Y S2],V):- snasobradky2(s1,s2,v1), Vv is V1 + S, Vv > 0, V is 1. snasobradky2([x S1],[Y S2],V):- snasobradky2(s1,s2,v1), V is V1 + S. % algorytmus nam v matici vyhodi jednotlive komponenty souvislosti, % potrebuju, aby kazda byla zobrazena pouze jednou. % setrid(+matice,-seznam komponent) setrid([],[]). setrid([p D],[P Da]):- vypustvsechny(p,d,dl), setrid(dl,da). % vypusti vsechny vyskyty ze seznamu % vypustvsechny(+co, +zceho, -covznikne). vypustvsechny(x,[x D],Da):-vypustvsechny(X,D,Da),!. vypustvsechny(x,[y D],[Y Da]):-vypustvsechny(X,D,Da). vypustvsechny(_,[],[]). % vynasobi matici na n-tou, kde n je nejmensi vetsi mocnina dvojky % nantou(+matice,-maticenantou,+pocet aktualni,+pocet konecny). nantou(m,n,a,p):- matkvadrat2(m,nta), A =< P, Aa is 2 * A, nantou(nta,n,aa,p). nantou(n,n,a,p):- A > P. % volani pro potrebny pocet parametru nantou2(m,n):- velikost(m,p), nantou(m,n,1,p). % spocita velikost matice, pro matici sousednousti je to i pocet vrcholu % velikost(+matice,-pocet prvku prvniho prvku) velikost([[_ D] _],P):- velikost([d _],P1), P is P1+1. velikost([[] _],0). % spocita velikost pole, pro matici sousednosti umocnenou na cislo vetsi % nez n, je toto cislo i pocet komponent souvislosti grafu % velikostpole(+pole,-pocet prvku). velikostpole([],0). velikostpole([_ S],V):- velikostpole(s,v1), V is V1 +1. % vytvori matici n krat n slozenou ze samych nul % nulova(+rozmer,+kolik jeste radek,-matice). nulova(_,0,[]). nulova(n,k,[h T]):- nuluj(n,h), Kk is K - 1, nulova(n,kk,t),!. 3

% volani pro potrebny pocet argumentu % nulova2(+rozmer,-matice). nulova2(n,m):-nulova(n,n,m). % vytvori vektor ze samych nul % nuluj(+rozmer,-matice). nuluj(0,[]). nuluj(n,[0 D]):- N1 is N-1, nuluj(n1,d),!. % prida do matice jednicky namisto hran grafu, aby vznikla matice % sousednosti % pridej(+seznam,+matice,-matice). pridej([],m,m). pridej([[p,d] T],M,N):- pridejbod([p,d],m,m1), pridejbod([d,p],m1,m2), pridej(t,m2,n). % prida do matice prave jednu hranu % pridejbod(+bod,+matice,-matice). pridejbod([1,b],[r D],[Rv D]):-vlozdoradky(R,B,Rv). pridejbod([a,b],[j M],[J N]):- Aa is A - 1, pridejbod([aa,b],m,n). % vlozi do vektoru na zadanou pozici jednicku % vlozdoradky(+radka,+pozice,-vystupni radka). vlozdoradky([_ D],1,[1 D]). vlozdoradky([a D],B,[A Da]):- Bb is B -1, vlozdoradky(d,bb,da). % prida jednicky na diagonalu % pridejdia(+matice,+rozmer,-matice). pridejdia(n,0,n). pridejdia(m,p,n):- pridejbod([p,p],m,mm), Pp is P - 1, pridejdia(mm,pp,n). % vytvori ze seznamu hran matici souvislosti % vytvormatici(+seznam,+rozmer,-matice). vytvormatici(s,n,m):- nulova2(n,m1), pridejdia(m1,n,m2), pridej(s,m2,m). Přehled závislosti procedur na sobě kompzeseznamu 4

vytvormatici velikostpole setrid seznamhran nantou2 nulova2 pridejdia pridej vypustvsechny velikost nantou nulova pridejbod matkvadrat2 nuluj vlozdoradky prehod matkvadrat ubersloupec matradek snasobradky2 5