„Kooperatív és tanuló rendszerek” változatai közötti eltérés

A VIK Wikiből
Ugrás a navigációhoz Ugrás a kereséshez
 
(29 közbenső módosítás, amit 5 másik szerkesztő végzett, nincs mutatva)
1. sor: 1. sor:
{{FejlesztesAlatt}}
 
 
{{Tantárgy
 
{{Tantárgy
 
| név = Kooperatív és tanuló rendszerek
 
| név = Kooperatív és tanuló rendszerek
23. sor: 22. sor:
 
=== Zh ===
 
=== Zh ===
  
* [https://docs.google.com/document/d/1PByXtigZcVXgSMi2WC6VwmaUYReHy6DX8k_TdG7Os3M/edit 2014 tavasz]
+
Korábbi zh-k:
 +
* [[Kooperatív_és_tanuló_rendszerek_-_zh_2008_03_26|2008-03-26 Zh]]
 +
* [[Kooperatív_és_tanuló_rendszerek_-_zh_2009_04_28|2009-04-28 Zh]]
 +
* [[Kooperatív_és_tanuló_rendszerek_-_pzh_2009-05-15|2009-05-15 pZh]]
 +
* [[Kooperatív_és_tanuló_rendszerek_-_ppzh_2009-05-25|2009-05-25 ppZh]]
 +
* [[Kooperatív_és_tanuló_rendszerek_-_zh_2012-04-10|2012-04-10 Zh]]
 +
* [[Kooperatív_és_tanuló_rendszerek_-_pzh_2012_05_04|2012-05-04 pZh]]
 +
* [https://docs.google.com/document/d/1PByXtigZcVXgSMi2WC6VwmaUYReHy6DX8k_TdG7Os3M/edit 2014 tavasz, Zh+pZh]
 +
* [https://docs.google.com/document/d/1OVVSV8QYu9Ux-G9qkBsu-9dTW1IwJygzDoYQN-XnaXs/edit?usp=sharing 2016-03-29 ZH]
 +
* [[Media:Kooperatív_és_tanuló_rendszerek_-_pzh_2016_04_12.pdf|2016-04-12 pZh (PDF)]] [https://docs.google.com/document/d/1SPJbxOgo3ltb9GhJrHXJpd5tAElnGQoZDuwO5lFDDwg/edit (Google Docs)]
  
 
=== Házi feladat ===
 
=== Házi feladat ===
29. sor: 37. sor:
 
A [http://www.mit.bme.hu/oktatas/targyak/vimia357/feladat házi feladatok] verseny szerű házik, amik végül egymás ellen versenyeznek. A győztesek plusz pontokat szerezhetnek a vizsgákra.
 
A [http://www.mit.bme.hu/oktatas/targyak/vimia357/feladat házi feladatok] verseny szerű házik, amik végül egymás ellen versenyeznek. A győztesek plusz pontokat szerezhetnek a vizsgákra.
  
==== Első házi ====
+
==== 2014. tavaszi házik megoldásai ====
  
==== Második házi ====
+
Ezek a kódok jó eséllyel az idei feladatot már nem oldják meg, de kiindulási alapként hasznosak lehetnek.
  
==== Harmadik házi ====
+
===== 2014. tavaszi első házi =====
  
==== Negyedik házi ====
+
Megoldható egy minimális MLP-vel (előtte a megfelelő .mat fájlt be kell tölteni a workspace-be)
 +
{{Rejtett
 +
|mutatott=Tanítás
 +
|szöveg=
 +
<source lang="matlab">
 +
tx = x';
 +
ty = y';
 +
net = newff(tx,ty,100);
 +
net = train(net,tx,ty);
 +
save('net', 'net')
 +
</source>
 +
}}
 +
 
 +
Majd ezután a ''player_i_fight.m'' tartalma:
 +
{{Rejtett
 +
|mutatott=player_i_fight.m
 +
|szöveg=
 +
<source lang="matlab">
 +
function y = player_i_fight(x)
 +
load net;
 +
y = sim(net,x');
 +
return
 +
</source>
 +
}}
 +
 
 +
===== 2014. tavaszi második házi =====
 +
 
 +
Ezt a házit is meg lehet még oldani MLP-vel, de itt már érdemes szétszedni tanító és ellenőrző pontokra.
 +
{{Rejtett
 +
|mutatott=Tanítás
 +
|szöveg=
 +
<source lang="matlab">
 +
td = d';
 +
txy = xy';
 +
index = randperm(size(xy,1));
 +
traincount = round(length(index)*0.8);
 +
trainP = xy(index(1:traincount),:);
 +
trainT = d(index(1:traincount),:);
 +
testP = xy(index(traincount+1:end),:);
 +
testT = d(index(traincount+1:end),:);
 +
net = newff(txy,td,49);
 +
net = train(net,txy,td);
 +
save('food', 'net');
 +
</source>
 +
}}
 +
 
 +
Ezután a ''player_i_eat.m'' megint nagyon egyszerűen néz ki:
 +
{{Rejtett
 +
|mutatott=player_i_eat.m
 +
|szöveg=
 +
<source lang="matlab">
 +
function y = player_i_eat(x)
 +
load food.mat;
 +
y = (sim(net,x')>0)*2-1;
 +
return
 +
</source>
 +
}}
 +
 
 +
===== 2014. tavaszi harmadik házi =====
 +
 
 +
A harmadik házinak már bonyolultabb a paraméterezése, hosszabb a megírandó fájl. A megoldáshoz SVM-et használtam, ezért fel kell mellé tölteni a toolboxból az ''svmval'', ''svmreg'' és ''svmkernel'' fájlokat.
 +
 
 +
{{Rejtett
 +
|mutatott=Tanítás
 +
|szöveg=
 +
<source lang="matlab">
 +
train_x=x(1:2000);
 +
test_x=x(1901:2000);
 +
 
 +
tw = 4;
 +
oszlopok = tw + 1;
 +
 
 +
tr_sorok = length(train_x) - tw;
 +
train_samples = zeros(tr_sorok, oszlopok);
 +
for i = 1 : tw + 1
 +
    train_samples(:, i) = train_x(i : size(train_samples ,1) + i - 1);
 +
end;
 +
 
 +
te_sorok = length(test_x) - tw;
 +
test_samples = zeros(te_sorok, oszlopok);
 +
for i = 1 : tw + 1
 +
    test_samples(:, i) = test_x(i : size(test_samples ,1) + i - 1);
 +
end;
 +
 
 +
% Paraméterek beállítása.
 +
C = 10;
 +
lambda = 1e-6;
 +
epsilon = 0.01;
 +
kerneloption = 0.1;
 +
kernel = 'poly';
 +
verbose = 0;
 +
 
 +
[xsup,ysup,w,w0] = ...
 +
svmreg(train_samples(1:tr_sorok, 1:oszlopok-1),train_samples(1:tr_sorok, oszlopok), ...
 +
C, epsilon, kernel, kerneloption, lambda, verbose);
 +
% Szimuláció.
 +
ki = svmval(train_samples(:, 1 : oszlopok - 1), xsup, w, w0, kernel, kerneloption);
 +
 
 +
plot(train_x(tw + 1 : end), 'b');
 +
hold on;
 +
plot(ki, 'r');
 +
hold off;
 +
 
 +
mse = mean((train_x(tw+1:end) - ki).^2)
 +
 
 +
%csinálok egy struktúrát a mentéshez
 +
param.xsup = xsup;
 +
param.w = w;
 +
param.w0 = w0;
 +
param.kernel = kernel;
 +
param.kerneloption = kerneloption;
 +
 
 +
save pred_svm param;
 +
</source>
 +
}}
 +
 
 +
A feltöltendő ''player_i_step.m'' is hasonlóan hosszabb lesz
 +
{{Rejtett
 +
|mutatott=player_i_step.m
 +
|szöveg=
 +
<source lang="matlab">
 +
function  [from_x,from_y,to_x,to_y,messages_out] = ...
 +
    player_i_step(field, player_color, food_arr_x, food_arr_y, ...
 +
    food_arr_min, food_arr_max, messages_in, player_name_to_color, round_i, step_i)
  
Itt az első hármat kell egybe leadni, dokumentációval kiegészítve
+
    load('pred_svm.mat');
  
=== Vizsga ===
+
players = fieldnames(player_name_to_color);
 +
for my_index = 1 : length(players)
 +
    if (player_name_to_color.(players{my_index}) == player_color)
 +
        break;
 +
    end
 +
end
 +
 
 +
senders = fieldnames(messages_in);
 +
for sender_i = 1 : length(senders)
 +
    fprintf('I''m %s and got message from %s:\n', ...
 +
            players{my_index}, senders{sender_i});
 +
    messages_from_i = messages_in.(senders{sender_i});
 +
    for msg_i = 1 : length(messages_from_i)
 +
        disp(messages_from_i{msg_i});
 +
    end
 +
end
 +
 
 +
messages_out = struct();
 +
 
 +
 
 +
x_t = food_arr_x(:,1);
 +
x_x = food_arr_x(:,2);
 +
 
 +
y_t = food_arr_y(:,1);
 +
y_x = food_arr_y(:,2);
 +
 
 +
 
 +
[player_x,player_y]= find([field(:,:,1)==player_color]);
 +
 
 +
field_x = size(field,1);
 +
field_y = size(field,2);
 +
 
 +
FROM_i = randperm(size(player_x,1));
 +
 
 +
from_x = player_x(FROM_i(1));
 +
from_y = player_y(FROM_i(1));
  
* [[Kooperatív_és_tanuló_rendszerek_-_vizsga_2008-05-26|2008-05-26]]
+
%a paraméterek az svm-hez meg a futtatsához
* [[Kooperatív_és_tanuló_rendszerek_-_vizsga_2008-06-02|2008-06-02]]
+
xsup = param.xsup;
* [[Kooperatív_és_tanuló_rendszerek_-_vizsga_2008-06-09|2008-06-09]]
+
w = param.w;
* [[Kooperatív_és_tanuló_rendszerek_-_vizsga_2008-06-16|2008-06-16]]
+
w0 = param.w0;
* [[Kooperatív_és_tanuló_rendszerek_-_vizsga_2009-06-02|2009-06-02]]
+
kernel = param.kernel;
* [[Kooperatív_és_tanuló_rendszerek_-_vizsga_2012-05-29|2012-05-29]]
+
kerneloption = param.kerneloption;
 +
tw = 4;
 +
pred = zeros(5, 2);
  
=== Vélemények ===
+
%megjósoljuk az x-eket
 +
for i = 1:1:5
 +
    start = i-tw;
 +
    pred(i,1) = svmval([x_x(end+start:end); pred(1:i-1,1)]', xsup, w, w0, kernel, kerneloption);
 +
end
  
 +
%megjósoljuk az y-okat
 +
for i = 1:1:5
 +
    start = i-tw;
 +
    pred(i,2) = svmval([y_x(end+start:end); pred(1:i-1,2)]', xsup, w, w0, kernel, kerneloption);
 +
end
  
{{Lábléc_-_Autonóm_intelligens_rendszerek_szakirány}}
+
TO_X = pred(5,1);
----
+
TO_Y = pred(5,2);
 +
if (TO_X > food_arr_max)
 +
    TO_X = food_arr_max;
 +
end;
 +
if (TO_X < food_arr_min)
 +
    TO_X = food_arr_min;
 +
end;
 +
if (TO_Y > food_arr_max)
 +
    TO_Y = food_arr_max;
 +
end;
 +
if (TO_Y < food_arr_min)
 +
    TO_Y = food_arr_min;
 +
end;
  
== Másik régi oldal ==
+
%az 1 és 100 közé normáláshoz
{{GlobalTemplate|Infoszak|KooperativRendszerek}}
+
if (TO_X == food_arr_max)
 +
    TO_X = ceil((((TO_X-food_arr_min)/(food_arr_max-food_arr_min))*field_x));
 +
else
 +
    TO_X = ceil((((TO_X-food_arr_min)/(food_arr_max-food_arr_min))*field_x)+0.01);
 +
end;
 +
if (TO_Y == food_arr_max)
 +
    TO_Y = ceil((((TO_Y-food_arr_min)/(food_arr_max-food_arr_min))*field_y));
 +
else
 +
    TO_Y = ceil((((TO_Y-food_arr_min)/(food_arr_max-food_arr_min))*field_y)+0.01);
 +
end;
  
===Kooperatív és tanuló rendszerek===
+
%ha foglalt a mező amire lépni akar akkor a pálya bleseje felé lép
 +
kozep = ceil(field_x/2);
 +
while (field(TO_X,TO_Y,1) ~= 0)
 +
    TO_X = TO_X+(kozep-TO_X);
 +
end;
  
'''A tárgy ötéves képzéses elődei:''' [[KoopRsz]] [[TanHib]] - néhány hasznos jegyzet, kidolgozás
+
to_x = TO_X;
 +
to_y = TO_Y;
 +
return
 +
</source>
 +
}}
  
====Tananyag====
+
===== Negyedik házi =====
  
* [[KooperativRendszerekJegyzet2009|2009-es órai jegyzet by Ricsy]]
+
Itt az első hármat kell egybe leadni, dokumentációval kiegészítve, illetve a minimális megoldáshoz a ''player_i-place.m'' fájlt hozzá kell másolni a random megoldásból.
  
====ZH, vizsga====
+
Mivel a harmadik háziban nem volt szabad ugyanoda lépni, mint ahol más van, itt pedig harcolni kell a többiekkel, ki kell venni azt a pár sort a feltöltésből
  
* [[KooperativRendszerekZH2008mar26|ZH 2008. március 26. - Kooperatív Rendszerek]]
+
=== Vizsga ===
* [[KooperativRendszerekZH2009apr28|ZH 2009. április 28. - Tanulás]] <-- Megoldás majdnem kész
 
* [[KooperativRendszerekZH2009maj15|pZH 2009. május 15. - Tanulás]] <-- Írjon megoldást aki tud plz
 
* [[KooperativRendszerekZH2009maj25|ppZH 2009. május 25. - Tanulás]] <-- Írjon megoldást aki tud plz
 
* [[KooperativRendszerekZH2012apr10|ZH 2012. április 10. - Tanulás]] <-- Töltsétek ki majd megtekintés után, ahol biztos lett az eredmény
 
* [[KooperativRendszerekZH2012maj04|pót ZH 2012. május 4. - Tanulás]]
 
  
* Összes ZH kérdés összegyűjtve többségéhez válasszal. Ha tudod javítsd, és írjátok bele a ZH kérdéseket. Azért van darabolva, hogy könnyebb legyen a szerkesztése.
+
==== Régebbi  vizsgasorok ====
 +
{{Rejtett
 +
|mutatott=Régi, kevésbé releváns vizsgák
 +
|szöveg=
 +
* [[Kooperatív_és_tanuló_rendszerek_-_vizsga_2008-05-26|2008-05-26]]
 +
* [[Kooperatív_és_tanuló_rendszerek_-_vizsga_2008-06-02|2008-06-02]]
 +
* [[Kooperatív_és_tanuló_rendszerek_-_vizsga_2008-06-09|2008-06-09]]
 +
* [[Kooperatív_és_tanuló_rendszerek_-_vizsga_2008-06-16|2008-06-16]]
 +
* [[Kooperatív_és_tanuló_rendszerek_-_vizsga_2009-05-25|2009-05-25]]
 +
* [[Kooperatív_és_tanuló_rendszerek_-_vizsga_2009-06-02|2009-06-02]]
 +
}}
 +
 
 +
* [[Kooperatív_és_tanuló_rendszerek_-_vizsga_2012-05-29|2012-05-29]]
 +
* [[Media:KTR_Vizsga_2012_06_12.pdf|2012-06-12]]
 +
* [[Media:KTR_Vizsga_2014_05_27.pdf|2014-05-27]]
 +
* [[Media:KTR_Vizsga_2014_06_03.pdf|2014-06-03]]
 +
* [[Media:KTR_vizsga_2016_06_07.pdf|2016-06-07]]
 +
 
 +
==== Kidolgozott ellenőrző kérdések ====
 +
* Tanuló rendszerek (Zh-ig)
 
** [[KoopKerdesekZHOssz01|Kooperatív Tanuló Rendszerek Összes kérdés ZH 01]]
 
** [[KoopKerdesekZHOssz01|Kooperatív Tanuló Rendszerek Összes kérdés ZH 01]]
 
** [[KoopKerdesekZHOssz02|Kooperatív Tanuló Rendszerek Összes kérdés ZH 02]]
 
** [[KoopKerdesekZHOssz02|Kooperatív Tanuló Rendszerek Összes kérdés ZH 02]]
80. sor: 300. sor:
 
** [[KoopKerdesekZHOssz04|Kooperatív Tanuló Rendszerek Összes kérdés ZH 04]]
 
** [[KoopKerdesekZHOssz04|Kooperatív Tanuló Rendszerek Összes kérdés ZH 04]]
 
** [[KoopKerdesekZHOssz05|Kooperatív Tanuló Rendszerek Összes kérdés ZH 05]]
 
** [[KoopKerdesekZHOssz05|Kooperatív Tanuló Rendszerek Összes kérdés ZH 05]]
* Kooperatív rész ellenőrző kérdések kidolgozása (2012 tavasz, Fülöp Levi)
+
* Kooperatív rész (Zh után)
** [[KoopVizsgaEllenorzoKerdesekKidolgozas01|Vizsgára kiadott ellenőrző kérdések kidolgozása 01]]
+
** [[Kooperatív_és_tanuló_rendszerek_-_vizsga_ellenőrző_kérdések_-_01|Vizsgára kiadott ellenőrző kérdések kidolgozása 01]]
** [[KoopVizsgaEllenorzoKerdesekKidolgozas02|Vizsgára kiadott ellenőrző kérdések kidolgozása 02]]
+
** [[Kooperatív_és_tanuló_rendszerek_-_vizsga_ellenőrző_kérdések_-_02|Vizsgára kiadott ellenőrző kérdések kidolgozása 02]]
** [[KoopVizsgaEllenorzoKerdesekKidolgozas03|Vizsgára kiadott ellenőrző kérdések kidolgozása 03]]
+
** [[Kooperatív_és_tanuló_rendszerek_-_vizsga_ellenőrző_kérdések_-_03|Vizsgára kiadott ellenőrző kérdések kidolgozása 03]]
** [[KoopVizsgaEllenorzoKerdesekKidolgozas04|Vizsgára kiadott ellenőrző kérdések kidolgozása 04]]
+
** [[Kooperatív_és_tanuló_rendszerek_-_vizsga_ellenőrző_kérdések_-_04|Vizsgára kiadott ellenőrző kérdések kidolgozása 04]]
** [[KoopVizsgaEllenorzoKerdesekKidolgozas05|Vizsgára kiadott ellenőrző kérdések kidolgozása 05]]
+
** [[Kooperatív_és_tanuló_rendszerek_-_vizsga_ellenőrző_kérdések_-_05|Vizsgára kiadott ellenőrző kérdések kidolgozása 05]]
 
 
 
 
* [[KooperativRendszerekVizsga2008jun02|Vizsga 2008. június 2.]]
 
* [[KooperativRendszerekVizsga2008jun16|Vizsga 2008. június 16.]]
 
* [[KooperativRendszerekVizsga2009maj25|Vizsga 2009. május 25.]] <-- Írjon megoldást aki tud plz
 
* [[KooperativRendszerekVizsga2009jun02|Vizsga 2009. június 2.]]
 
* [[KooperativRendszerekVizsga2012maj29|Vizsga 2012. május 29.]]
 
* Vizsga 2009. június 02.: <br />
 
{{InLineImageLink|Infoszak|KooperativRendszerek|vizsga20090602.jpg}}
 
 
 
-- [[KisGergelyG|G]] - 2009.03.01.
 
-- [[PalfalviJozsef|afro]] - 2009.06.02.
 
  
====Könyv====
+
===Tippek===
 
 
 
 
====Tippek====
 
 
A tárgy nem éppen a legkönnyebb a szakirányon és ezt a zh statisztikából is lehet látni. <br/>
 
A tárgy nem éppen a legkönnyebb a szakirányon és ezt a zh statisztikából is lehet látni. <br/>
 
Tippek a teljesítéshez:
 
Tippek a teljesítéshez:
114. sor: 319. sor:
 
* ha kritériumfüggvényes feladatmegoldást kérnek, akkor nem elég az hogy így és így csinálnám meg hanem neki kell állni bizony deriválni
 
* ha kritériumfüggvényes feladatmegoldást kérnek, akkor nem elég az hogy így és így csinálnám meg hanem neki kell állni bizony deriválni
  
== Hasznos lehet ==
 
[[KoopRszVizsgaKerdesek]]
 
  
 +
=== Vélemények ===
  
  
[[Category:Infoszak]]
+
{{Lábléc_-_Autonóm_intelligens_rendszerek_szakirány}}

A lap jelenlegi, 2016. június 10., 08:09-kori változata

Kooperatív és tanuló rendszerek
Tárgykód
VIMIA357
Általános infók
Szak
info szak
Kredit
4
Ajánlott félév
6
Keresztfélév
nincs
Tanszék
MIT
Követelmények
Labor
3 alkalom (nincs jelenlét)
NagyZH
1 db
Házi feladat
4 db
Vizsga
írásbeli
Elérhetőségek


Jegyzet

Neurális hálózatok könyv | Epub, pdf formátumok

Zh

Korábbi zh-k:

Házi feladat

A házi feladatok verseny szerű házik, amik végül egymás ellen versenyeznek. A győztesek plusz pontokat szerezhetnek a vizsgákra.

2014. tavaszi házik megoldásai

Ezek a kódok jó eséllyel az idei feladatot már nem oldják meg, de kiindulási alapként hasznosak lehetnek.

2014. tavaszi első házi

Megoldható egy minimális MLP-vel (előtte a megfelelő .mat fájlt be kell tölteni a workspace-be)

Tanítás
tx = x';
ty = y';
net = newff(tx,ty,100);
net = train(net,tx,ty);
save('net', 'net')

Majd ezután a player_i_fight.m tartalma:

player_i_fight.m
function y = player_i_fight(x)
load net;
y = sim(net,x');
return
2014. tavaszi második házi

Ezt a házit is meg lehet még oldani MLP-vel, de itt már érdemes szétszedni tanító és ellenőrző pontokra.

Tanítás
td = d';
txy = xy';
index = randperm(size(xy,1));
traincount = round(length(index)*0.8);
trainP = xy(index(1:traincount),:);
trainT = d(index(1:traincount),:);
testP = xy(index(traincount+1:end),:);
testT = d(index(traincount+1:end),:);
net = newff(txy,td,49);
net = train(net,txy,td);
save('food', 'net');

Ezután a player_i_eat.m megint nagyon egyszerűen néz ki:

player_i_eat.m
function y = player_i_eat(x)
load food.mat;
y = (sim(net,x')>0)*2-1;
return
2014. tavaszi harmadik házi

A harmadik házinak már bonyolultabb a paraméterezése, hosszabb a megírandó fájl. A megoldáshoz SVM-et használtam, ezért fel kell mellé tölteni a toolboxból az svmval, svmreg és svmkernel fájlokat.

Tanítás
train_x=x(1:2000);
test_x=x(1901:2000);

tw = 4;
oszlopok = tw + 1;

tr_sorok = length(train_x) - tw;
train_samples = zeros(tr_sorok, oszlopok);
for i = 1 : tw + 1
    train_samples(:, i) = train_x(i : size(train_samples ,1) + i - 1);
end;

te_sorok = length(test_x) - tw;
test_samples = zeros(te_sorok, oszlopok);
for i = 1 : tw + 1
    test_samples(:, i) = test_x(i : size(test_samples ,1) + i - 1);
end;

% Paraméterek beállítása.
C = 10;
lambda = 1e-6;
epsilon = 0.01;
kerneloption = 0.1;
kernel = 'poly';
verbose = 0;

[xsup,ysup,w,w0] = ...
svmreg(train_samples(1:tr_sorok, 1:oszlopok-1),train_samples(1:tr_sorok, oszlopok), ...
C, epsilon, kernel, kerneloption, lambda, verbose);
% Szimuláció.
ki = svmval(train_samples(:, 1 : oszlopok - 1), xsup, w, w0, kernel, kerneloption);

plot(train_x(tw + 1 : end), 'b');
hold on;
plot(ki, 'r');
hold off;

mse = mean((train_x(tw+1:end) - ki).^2)

%csinálok egy struktúrát a mentéshez
param.xsup = xsup;
param.w = w;
param.w0 = w0;
param.kernel = kernel;
param.kerneloption = kerneloption;

save pred_svm param;

A feltöltendő player_i_step.m is hasonlóan hosszabb lesz

player_i_step.m
function  [from_x,from_y,to_x,to_y,messages_out] = ...
    player_i_step(field, player_color, food_arr_x, food_arr_y, ...
    food_arr_min, food_arr_max, messages_in, player_name_to_color, round_i, step_i)

    load('pred_svm.mat');

players = fieldnames(player_name_to_color);
for my_index = 1 : length(players)
    if (player_name_to_color.(players{my_index}) == player_color)
        break;
    end
end

senders = fieldnames(messages_in);
for sender_i = 1 : length(senders)
    fprintf('I''m %s and got message from %s:\n', ...
            players{my_index}, senders{sender_i});
    messages_from_i = messages_in.(senders{sender_i});
    for msg_i = 1 : length(messages_from_i)
        disp(messages_from_i{msg_i});
    end
end

messages_out = struct();


x_t = food_arr_x(:,1);
x_x = food_arr_x(:,2);

y_t = food_arr_y(:,1);
y_x = food_arr_y(:,2);


[player_x,player_y]= find([field(:,:,1)==player_color]);

field_x = size(field,1);
field_y = size(field,2);

FROM_i = randperm(size(player_x,1));

from_x = player_x(FROM_i(1));
from_y = player_y(FROM_i(1));

%a paraméterek az svm-hez meg a futtatsához
xsup = param.xsup;
w = param.w;
w0 = param.w0;
kernel = param.kernel;
kerneloption = param.kerneloption;
tw = 4;
pred = zeros(5, 2);

%megjósoljuk az x-eket
for i = 1:1:5
    start = i-tw;
    pred(i,1) = svmval([x_x(end+start:end); pred(1:i-1,1)]', xsup, w, w0, kernel, kerneloption);
end

%megjósoljuk az y-okat
for i = 1:1:5
    start = i-tw;
    pred(i,2) = svmval([y_x(end+start:end); pred(1:i-1,2)]', xsup, w, w0, kernel, kerneloption);
end

TO_X = pred(5,1);
TO_Y = pred(5,2);
if (TO_X > food_arr_max) 
    TO_X = food_arr_max; 
end;
if (TO_X < food_arr_min) 
    TO_X = food_arr_min; 
end;
if (TO_Y > food_arr_max) 
    TO_Y = food_arr_max; 
end;
if (TO_Y < food_arr_min) 
    TO_Y = food_arr_min; 
end;

%az 1 és 100 közé normáláshoz
if (TO_X == food_arr_max)
    TO_X = ceil((((TO_X-food_arr_min)/(food_arr_max-food_arr_min))*field_x));
else
    TO_X = ceil((((TO_X-food_arr_min)/(food_arr_max-food_arr_min))*field_x)+0.01);
end;
if (TO_Y == food_arr_max)
    TO_Y = ceil((((TO_Y-food_arr_min)/(food_arr_max-food_arr_min))*field_y));
else
    TO_Y = ceil((((TO_Y-food_arr_min)/(food_arr_max-food_arr_min))*field_y)+0.01);
end;

%ha foglalt a mező amire lépni akar akkor a pálya bleseje felé lép
kozep = ceil(field_x/2);
while (field(TO_X,TO_Y,1) ~= 0)
    TO_X = TO_X+(kozep-TO_X);
end;

to_x = TO_X;
to_y = TO_Y;
return
Negyedik házi

Itt az első hármat kell egybe leadni, dokumentációval kiegészítve, illetve a minimális megoldáshoz a player_i-place.m fájlt hozzá kell másolni a random megoldásból.

Mivel a harmadik háziban nem volt szabad ugyanoda lépni, mint ahol más van, itt pedig harcolni kell a többiekkel, ki kell venni azt a pár sort a feltöltésből

Vizsga

Régebbi vizsgasorok

Régi, kevésbé releváns vizsgák

Kidolgozott ellenőrző kérdések

Tippek

A tárgy nem éppen a legkönnyebb a szakirányon és ezt a zh statisztikából is lehet látni.
Tippek a teljesítéshez:

  • bejárni órákra (jó az elején komolyan venni a dolgokat, zh-ra annál kevesebbet kell készülni)
  • időben nekiállni készülni rá
  • könyvet megtanulni: elég száraz, ahogy le vannak írva a dolgok, de ha szépen kihámozod belőle a lényeget, ami így sem kevés, akkor vagy jó, annál többet nem kérdeznek
  • MLP-t oda-vissza megérteni (tanár úr mondta, hogy régen szóbeli is volt és aki ezt nem tudta annak már repült is a karó )
  • zh-ra és vizsgára is jellemző, hogy van "mentőkérdés", ez az amit nagyjából biztos hogy behúzol, de ez kevés lesz egy ketteshez is
  • tipikus kevésbé trükkösebb feladatok: svm, rbf, cmac, mlp, fir szűrős
  • advanced vagy trükkös feladat általában: oja hálós, pca (ezek zh előtti 1-2 hétben lesznek leadva)
  • ha kritériumfüggvényes feladatmegoldást kérnek, akkor nem elég az hogy így és így csinálnám meg hanem neki kell állni bizony deriválni


Vélemények

Közös tárgyak
Autonóm rendszerek
Intelligens rendszerek