„Kooperatív és tanuló rendszerek” változatai közötti eltérés
(38 közbenső módosítás, amit 5 másik szerkesztő végzett, nincs mutatva) | |||
1. sor: | 1. sor: | ||
− | |||
{{Tantárgy | {{Tantárgy | ||
| név = Kooperatív és tanuló rendszerek | | név = Kooperatív és tanuló rendszerek | ||
19. sor: | 18. sor: | ||
=== Jegyzet === | === Jegyzet === | ||
− | [http://mialmanach.mit.bme.hu/neuralis/index Neurális hálózatok könyv] | + | [http://mialmanach.mit.bme.hu/neuralis/index Neurális hálózatok könyv] | [http://www.tankonyvtar.hu/hu/tartalom/tamop425/0026_neuralis_4_4/adatok.html Epub, pdf formátumok] |
=== 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. | ||
− | ==== | + | ==== 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) |
+ | {{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) | ||
+ | |||
+ | 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 | ||
+ | </source> | ||
+ | }} | ||
− | ==== | + | ===== 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 ==== |
+ | {{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]] | ||
87. 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 | + | * Kooperatív rész (Zh után) |
− | ** [[ | + | ** [[Kooperatív_és_tanuló_rendszerek_-_vizsga_ellenőrző_kérdések_-_01|Vizsgára kiadott ellenőrző kérdések kidolgozása 01]] |
− | ** [[ | + | ** [[Kooperatív_és_tanuló_rendszerek_-_vizsga_ellenőrző_kérdések_-_02|Vizsgára kiadott ellenőrző kérdések kidolgozása 02]] |
− | ** [[ | + | ** [[Kooperatív_és_tanuló_rendszerek_-_vizsga_ellenőrző_kérdések_-_03|Vizsgára kiadott ellenőrző kérdések kidolgozása 03]] |
− | ** [[ | + | ** [[Kooperatív_és_tanuló_rendszerek_-_vizsga_ellenőrző_kérdések_-_04|Vizsgára kiadott ellenőrző kérdések kidolgozása 04]] |
− | ** [[ | + | ** [[Kooperatív_és_tanuló_rendszerek_-_vizsga_ellenőrző_kérdések_-_05|Vizsgára kiadott ellenőrző kérdések kidolgozása 05]] |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ===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: | ||
121. 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 | ||
− | |||
− | |||
+ | === Vélemények === | ||
− | + | {{Lábléc_-_Autonóm_intelligens_rendszerek_szakirány}} |
A lap jelenlegi, 2016. június 10., 08:09-kori változata
Tartalomjegyzék
Jegyzet
Neurális hálózatok könyv | Epub, pdf formátumok
Zh
Korábbi zh-k:
- 2008-03-26 Zh
- 2009-04-28 Zh
- 2009-05-15 pZh
- 2009-05-25 ppZh
- 2012-04-10 Zh
- 2012-05-04 pZh
- 2014 tavasz, Zh+pZh
- 2016-03-29 ZH
- 2016-04-12 pZh (PDF) (Google Docs)
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)
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:
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.
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:
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.
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
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
Kidolgozott ellenőrző kérdések
- Tanuló rendszerek (Zh-ig)
- Kooperatív rész (Zh után)
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 |