Datoteka:Critical graph sample.svg
Izvor: Hrvatska internetska enciklopedija
Skoči na:orijentacija, traži
Veličina ovog PNG prikaza ove SVG datoteke: 600 × 600 piksela. Ostale razlučivosti: 240 × 240 piksela | 480 × 480 piksela | 768 × 768 piksela | 1.024 × 1.024 piksela | 2.048 × 2.048 piksela.
Vidi sliku u punoj veličini (SVG datoteka, nominalno 600 × 600 piksela, veličina datoteke: 17 KB)
Ova je datoteka sa stranica Zajedničkog poslužitelja Zaklade Wikimedije i smiju je rabiti drugi projekti. Opis s njezine stranice s opisom datoteke prikazan je ispod. |
Sadržaj
Sažetak
OpisCritical graph sample.svg |
English: Example of Vertex Critical Graph: on the left-top the original vc08-chi06 with chromatic number=6, next all the N-1 subgraphs with chromatic number= 5 |
Datum | |
Izvor | Vlastito djelo postavljača |
Autor | Claudio Rocchini |
Thanks
Many thanks to Gordon Royles [1] for the graph example.
Source Code
Dirty C++ generating code:
/* (C)2013 Claudio Rocchini CC-BY 3.0 */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <vector>
#include <algorithm>
const double PI = 3.1415926535897932384626433832795;
typedef std::pair<int,int> edge;
int greedy_color( int N, const std::vector<edge> & edges, std::vector<int> & colors ) {
std::vector< std::vector<int> > stars(N);
std::vector<edge>::const_iterator ii;
for(ii=edges.begin();ii!=edges.end();++ii) {
stars[(*ii).first ].push_back( (*ii).second );
stars[(*ii).second].push_back( (*ii).first );
}
colors.resize(N);
for(int nc=2;;++nc) {
std::fill(colors.begin(),colors.end(),-1); colors[0] = 0;
int p = 1;
for(;;) {
if(++colors[p]==nc) {
colors[p] = -1;
if(--p<1) break; else continue;
}
std::vector<int>::const_iterator jj;
for(jj=stars[p].begin();jj!=stars[p].end();++jj)
if(colors[*jj]==colors[p]) break;
if(jj==stars[p].end()) if(++p==N) break;
}
if(p==N) return nc;
}
}
int main() {
const int S = 600;
const int rgb[][3] = {
{255,8,8},{8,255,8},{8,8,255},{255,255,8},{255,8,255},{255,255,255}
};
/* Than's to for this graph:
http://school.maths.uwa.edu.au/~gordon/remote/graphs/ */
const int N = 8;
const int pe[N] = {0,2,4,1,3,5,6,7};
const int gr[N][7]= {
{2,3,5,6,7,-1,-1}, {3,4,5,6,7,-1,-1}, {0,4,5,6,7,-1,-1},
{0,1,5,6,7,-1,-1}, {1,2,5,6,7,-1,-1},
{0,1,2,3,4,6,7}, {0,1,2,3,4,5,7}, {0,1,2,3,4,5,6}
};
int i,j,k;
const double R1=S/7, R2=R1*2/3, R3=8;
double x[N],y[N];
for(i=0;i<5;++i) {
x[pe[i]] = +sin(2*PI*i/5)*R1;
y[pe[i]] = -cos(2*PI*i/5)*R1;
}
for(i=0;i<3;++i) {
x[i+5] = +sin(2*PI*i/3)*R2;
y[i+5] = -cos(2*PI*i/3)*R2;
}
FILE * fo = fopen("critical.svg","w");
fprintf(fo,
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n"
"<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.0\" width=\"%d\" height=\"%d\" id=\"criticalg\">\n"
,S,S
);
for(k=-1;k<N;++k) {
double lx = S/6+((k+1)%3)*S/3; double ly = S/6+((k+1)/3)*S/3;
std::vector<edge> edges;
for(i=0;i<N;++i) if(i!=k)
for(j=0;j<7;++j)
if(gr[i][j]>i && gr[i][j]!=k)
edges.push_back( edge(i,gr[i][j]) );
std::vector<int> colors;
int nc = greedy_color(N,edges,colors);
printf("colors = %d\n",nc);
fprintf(fo,"<g style=\"stroke:#000000;stroke-width:1.5;fill:none\">\n");
for(i=0;i<int(edges.size());++i)
if(edges[i].first!=k && edges[i].second!=k)
fprintf(fo,"<line x1=\"%6.2f\" y1=\"%6.2f\" x2=\"%6.2f\" y2=\"%6.2f\"/>\n"
,lx+x[edges[i].first ],ly+y[edges[i].first]
,lx+x[edges[i].second],ly+y[edges[i].second]
);
fprintf(fo,"</g>\n");
fprintf(fo,"<g>\n");
for(i=0;i<N;++i) if(i!=k)
fprintf(fo,"<circle cx=\"%6.2f\" cy=\"%6.2f\" r=\"%g\" "
"style=\"stroke:#000000;stroke-width:1;stroke-opacity:1.0;fill:#%02X%02X%02X\"/>\n"
,lx+x[i],ly+y[i],R3
,rgb[colors[i]][0],rgb[colors[i]][1],rgb[colors[i]][2]
);
fprintf(fo,"</g>\n");
}
fprintf(fo,"</svg>\n");
fclose(fo);
return 0;
}
Licencija
Ja, nositelj autorskog prava za ovo djelo, ovime ga objavljujem pod sljedećom licencijom:
Ova datoteka je licencirana pod Creative Commons Imenovanje-Dijeli pod istim uvjetima 3.0 nelokaliziranom licencijom.
- Slobodno smijete:
- dijeliti – umnožavati, distribuirati i javnosti priopćavati djelo
- remiksirati – prerađivati djelo
- Pod sljedećim uvjetima:
- imenovanje autora – Morate pripisati odgovarajuće autorske zasluge, dati poveznicu na licenciju, te naznačiti jesu li načinjene promjene autorskog djela. Prethodno navedeno možete učiniti na svaki razuman način, ali ne na način koji bi sugerirao da Vi ili Vaše korištenje licencorova djela ima izravno licencorovo odobrenje.
- dijeli pod istim uvjetima – Ako ovo djelo izmijenite, preoblikujete ili stvarate na osnovu tog materijala, svoje doprinose morate distribuirati pod istom ili kompatibilnom licencijom kao što je i licencija originala.
Predmeti prikazani u ovoj datoteci
motiv
Određene vrijednosti bez stavke na projektu Wikipodatci
4. lipanj 2013
image/svg+xml
checksum engleski
aa4981aad5587fc1bb542568141797f21fe411ae
data size engleski
17.089 Bajt
600 točka
600 točka
Povijest datoteke
Kliknite na datum/vrijeme kako biste vidjeli datoteku kakva je tada bila.
Datum/Vrijeme | Minijatura | Dimenzije | Suradnik | Komentar | |
---|---|---|---|---|---|
sadašnja | 11:52, 4. lipnja 2013. | 600 × 600 (17 KB) | Rocchini | User created page with UploadWizard |
Poveznice
Na ovu sliku vode poveznice sa sljedećih stranica:
Metapodatci
Ova datoteka sadržava dodatne podatke koje je vjerojatno dodala digitalna kamera ili skener u procesu snimanja odnosno digitalizacije. Ako je datoteka mijenjana, podatci možda nisu u skladu sa stvarnim stanjem.
Širina | 600 |
---|---|
Visina | 600 |
Dobavljeno iz "https://enciklopedija.cc/wiki/Datoteka:Critical_graph_sample.svg"