íì ì€í¬ëŠœížì ì€ì ì§ë¥ì í¥ë¯žë¡ìŽ êµì°šì ì í구íìžì. íì ì€í¬ëŠœížì ê°ë ¥í íì ìì€í ì íì©íì¬ ì§ëš íëì 몚ëžë§íê³ êµ¬ííë ë°©ë²ì ìì볎ìžì.
íì ì€í¬ëŠœíž ì€ì ì§ë¥: ì§ëš íë íì 구í
ê°ë¯žì ë²ê³Œ ê°ì ì¬íì 곀충ì ì§ëš íëìì ìê°ì ë°ì ì€ì ì§ë¥ì 컎íší° 곌íì ë³µì¡í 묞ì ì ëí ê°ë ¥í ì룚ì ì ì ê³µí©ëë€. ê°ë³ ììŽì ížê° í겜곌 ìíž ìì©íë ëšìì±ê³Œ ê²¬ê³ ì±ì íì©íšìŒë¡ìš ì€ì ìê³ ëŠ¬ìŠì 귞룹 ìì€ìì ì°œë°ì ìž ì§ë¥ì ë¬ì±í ì ììµëë€. ìŽ êž°ì¬ììë íì ì€í¬ëŠœížì ê°ë ¥í íì ìì€í ì ì¬ì©íì¬ ì€ì ì§ë¥ ì늬륌 구ííë ë°©ë²ì í구íì¬ ë ìì íê³ ì ì§ êŽëŠ¬ê° ì©ìŽíë©° ìŽíŽíêž° ì¬ìŽ ìœë륌 ë§ë€ ì ìëë¡ í©ëë€.
ì€ì ì§ë¥ìŽë 묎ììžê°ì?
ì€ì ì§ë¥(SI)ì ë¶ì°ë ììš ì¡°ì§ ìì€í ì ì°êµ¬íë ìžê³µ ì§ë¥ì íì ë¶ìŒì ëë€. ìŽë¬í ìì€í ì ìŒë°ì ìŒë¡ ìë¡ ë° í겜곌 ë¡ì»¬ë¡ ìíž ìì©íë ê°ëší ììŽì íž ì§ëšìŒë¡ 구ì±ë©ëë€. ìŽë¬í ììŽì íž ê°ì ìíž ìì©ì ì€ì ì§ì€ì ì ìŽ ëë ì¬ì ì ìë ê³í ììŽ ë³µì¡í ì ì íëì ì°œë°ë¡ ìŽìŽì§ëë€. ì€ì ì§ë¥ ìê³ ëŠ¬ìŠì ìŒë°ì ìž ìë ë€ì곌 ê°ìµëë€.
- ê°ë¯ž êµ°ì§ ìµì í(ACO): ê°ë¯žì ëš¹ìŽ ì°Ÿêž° íëìì ìê°ì ë°ì ACO ìê³ ëŠ¬ìŠì ìžê³µ ê°ë¯žë¥Œ ì¬ì©íì¬ íì ê³µê°ì íìíê³ ìµì ì 겜ë¡ë¥Œ ì°Ÿìµëë€.
- ì ì êµ°ì§ ìµì í(PSO): ì ëŒë ë¬Œê³ êž° ëŒì ì¬íì íëìì ìê°ì ë°ì PSO ìê³ ëŠ¬ìŠì ì ì ì§ëšì ì¬ì©íì¬ ì°ì ê³µê°ìì ìµì ì ì룚ì ì ê²ìí©ëë€.
- ìžê³µ ë² êµ°ì§(ABC): ê¿ë²ì ëš¹ìŽ ì°Ÿêž° íëìì ìê°ì ë°ì ABC ìê³ ëŠ¬ìŠì ìžê³µ ë² ì§ëšì ì¬ì©íì¬ íì ê³µê°ì íìíê³ ìµì ì ëš¹ìŽìì ì°Ÿìµëë€.
ìŽë¬í ìê³ ëŠ¬ìŠì ë¬Œë¥ ë° ì ì¡°ë¶í° ë¡ëŽ ê³µí ë° êž°ê³ íìµì ìŽë¥Žêž°ê¹ì§ ë€ìí ë¶ìŒìì ëŒì°í , ì€ìŒì€ë§ ë° ëŠ¬ìì€ í ë¹ê³Œ ê°ì ìµì í 묞ì 륌 íŽê²°íë ë° í¹í ì í©í©ëë€. ì€ì ì§ë¥ì ë¶ì°ë í¹ì±ì ì€íšì ëí ê²¬ê³ ì±ê³Œ ë³ííë í겜ì ëí ì ìì±ì ì ê³µí©ëë€.
ì íì ì€í¬ëŠœížìžê°?
ì€ì ì§ë¥ ìê³ ëŠ¬ìŠì ë€ìí íë¡ê·žëë° ìžìŽë¡ 구íë ì ìì§ë§, íì ì€í¬ëŠœížë ì¬ë¬ ê°ì§ ìŽì ì ì ê³µí©ëë€.
- ì ì íì ê²ì¬: íì ì€í¬ëŠœížì ì ì íì ê²ì¬ë ê°ë° íë¡ìžì€ ìŽêž°ì ì€ë¥ë¥Œ ì¡ì ë°íì ë²ê·žì ìíì ì€ì¬ì€ëë€. ìŽë ììŽì ížì í겜 ê°ì ë³µì¡í ìíž ìì©ì ë€ë£° ë í¹í ì€ìí©ëë€.
- ìœë ê°ë ì± ë° ì ì§ êŽëЬì±: íì ì€í¬ëŠœížì íì ìì€í 곌 ê°ì²Ž ì§í¥ êž°ë¥ì ìœë륌 ë ìœêž° ìœê³ ì ì§ êŽëЬíêž° ìœê² ë§ë€ìŽ ëê·ëªš ì€ì ì§ë¥ íë¡ì ížì íìì ì ëë€.
- íì¥ì±: íì ì€í¬ëŠœížë ìë°ì€í¬ëŠœížë¡ 컎íìŒëë¯ë¡ ì¹ ëžëŒì°ì , Node.js ë° ìë²ëŠ¬ì€ íë«íŒì í¬íší 몚ë ìë°ì€í¬ëŠœíž í겜ìì ì€ì ì§ë¥ ìê³ ëŠ¬ìŠì ì€íí ì ììµëë€.
- íì ê°ì : íì ì€í¬ëŠœížì ê°ë ¥í íì ê²ì¬ë ëª íí ê³ìœê³Œ ìží°íìŽì€ë¥Œ ì ê³µíì¬ ê°ë°ì ê°ì íì ì ìŽì§í©ëë€. ìŽë ë³µì¡í ì€ì ì§ë¥ íë¡ì ížë¥Œ ì§ííë íìê² í¹í ì ì©í©ëë€.
íì ì€í¬ëŠœížì êž°ë¥ì íì©í멎 ë ê²¬ê³ íê³ íì¥ ê°ë¥íë©° ì ì§ êŽëЬíêž° ì¬ìŽ ì€ì ì§ë¥ ìì€í ì 구ì¶í ì ììµëë€.
íì ì€í¬ëŠœížë¡ ì€ì ì§ë¥ ììŽì íž ëªšëžë§íêž°
뚌ì ì€ì ì§ë¥ ììŽì ížì ëí Ʞ볞 ìží°íìŽì€ë¥Œ ì ìíŽ ë³Žê² ìµëë€.
interface Agent {
id: string;
position: { x: number; y: number; };
update(environment: Environment): void;
}
ìŽ ìží°íìŽì€ë 몚ë ììŽì ížê° ê°ì žìŒ í Ʞ볞 ìì±ê³Œ ë©ìë륌 ì ìí©ëë€.
id: ììŽì ížì ê³ ì ìë³ìì ëë€.position: í겜 ëŽ ììŽì ížì íì¬ ìì¹ì ëë€.update(environment: Environment): íì¬ í겜ì ë°ëŒ ììŽì ížì ìí륌 ì ë°ìŽížíë ë©ìëì ëë€.
ìŽì í겜ì ëí ìží°íìŽì€ë¥Œ ì ìíŽ ë³Žê² ìµëë€.
interface Environment {
width: number;
height: number;
getNeighbors(agent: Agent, radius: number): Agent[];
}
ìŽ ìží°íìŽì€ë í겜ì ìì±ê³Œ ë©ìë륌 ì ìí©ëë€.
width: í겜ì ëë¹ì ëë€.height: í겜ì ëìŽì ëë€.getNeighbors(agent: Agent, radius: number): ì§ì ë ë°ê²œ ëŽì ìŽì ììŽì íž ëª©ë¡ì ë°ííë ë©ìëì ëë€.
ê°ëší PSO ìê³ ëŠ¬ìŠ êµ¬í
íì ì€í¬ëŠœížë¡ ì ì êµ°ì§ ìµì í(PSO) ìê³ ëŠ¬ìŠì ëšìíë ë²ì ì 구ííŽ ë³Žê² ìµëë€. ìŽ ìì ë íì ì€í¬ëŠœíž íì ì ì¬ì©íì¬ ì ì íë곌 ìíž ìì©ì 몚ëžë§íë ë°©ë²ì 볎ì¬ì€ëë€.
ì ì íì ì ì
뚌ì ì ìì ëí ìží°íìŽì€ë¥Œ ì ìí©ëë€.
interface Particle extends Agent {
velocity: { x: number; y: number; };
personalBestPosition: { x: number; y: number; };
personalBestFitness: number;
}
ìŽ ìží°íìŽì€ë Agent ìží°íìŽì€ë¥Œ íì¥íê³ ë€ì ìì±ì ì¶ê°í©ëë€.
velocity: ì ìì íì¬ ìëì ëë€.personalBestPosition: ì ìì ì§êžê¹ì§ ê°ì¥ ì¢ì ìì¹ì ëë€.personalBestFitness: ì ìì ê°ì¥ ì¢ì ìì¹ììì íŒížëì€ ê°ì ëë€.
íŒížëì€ íšì ì ì
íŒížëì€ íšìë ì ì ìì¹ì íì§ì íê°í©ëë€. ê°ëšíê² íêž° ìíŽ ëìì (ì: ìì )ìŒë¡ë¶í°ì 거늬륌 ë°ííë ê°ëší íšì륌 ì¬ì©í©ëë€.
function fitness(position: { x: number; y: number; }): number {
return Math.sqrt(position.x * position.x + position.y * position.y);
}
ì ì ì ë°ìŽíž ë¡ì§ 구í
update ë©ìëë PSO ìê³ ëŠ¬ìŠì ë°ëŒ ì
ìì ìì¹ì ìë륌 ì
ë°ìŽíží©ëë€.
class ParticleImpl implements Particle {
id: string;
position: { x: number; y: number; };
velocity: { x: number; y: number; };
personalBestPosition: { x: number; y: number; };
personalBestFitness: number;
constructor(id: string, position: { x: number; y: number; }) {
this.id = id;
this.position = position;
this.velocity = { x: 0, y: 0 };
this.personalBestPosition = { ...position };
this.personalBestFitness = fitness(position);
}
update(environment: Environment, globalBestPosition: { x: number; y: number; }): void {
const inertiaWeight = 0.7;
const cognitiveCoefficient = 1.4;
const socialCoefficient = 1.4;
// Update velocity
this.velocity.x = (inertiaWeight * this.velocity.x) +
(cognitiveCoefficient * Math.random() * (this.personalBestPosition.x - this.position.x)) +
(socialCoefficient * Math.random() * (globalBestPosition.x - this.position.x));
this.velocity.y = (inertiaWeight * this.velocity.y) +
(cognitiveCoefficient * Math.random() * (this.personalBestPosition.y - this.position.y)) +
(socialCoefficient * Math.random() * (globalBestPosition.y - this.position.y));
// Update position
this.position.x += this.velocity.x;
this.position.y += this.velocity.y;
// Update personal best
const currentFitness = fitness(this.position);
if (currentFitness < this.personalBestFitness) {
this.personalBestFitness = currentFitness;
this.personalBestPosition = { ...this.position };
}
}
}
ìŽ ìœëë PSO ìê³ ëŠ¬ìŠì íµì¬ ë¡ì§ì 구íí©ëë€. ìëë êŽì±, ì ìì ê°ìž ìµê³ ìì¹ ë° ì ì ìµê³ ìì¹ë¥Œ êž°ë°ìŒë¡ ì ë°ìŽížë©ëë€. ê·žë° ë€ì ì ìë륌 êž°ë°ìŒë¡ ìì¹ê° ì ë°ìŽížë©ëë€. ë§ì§ë§ìŒë¡ íì¬ ìì¹ê° ë ëì ê²œì° ê°ìž ìµê³ ìì¹ê° ì ë°ìŽížë©ëë€.
í겜 구í
ìŽì ê°ëší í겜ì ë§ë€ìŽ ë³Žê² ìµëë€.
class EnvironmentImpl implements Environment {
width: number;
height: number;
particles: Particle[];
constructor(width: number, height: number, particles: Particle[]) {
this.width = width;
this.height = height;
this.particles = particles;
}
getNeighbors(agent: Agent, radius: number): Agent[] {
const neighbors: Agent[] = [];
for (const otherAgent of this.particles) {
if (otherAgent !== agent) {
const distance = Math.sqrt(
Math.pow(otherAgent.position.x - agent.position.x, 2) +
Math.pow(otherAgent.position.y - agent.position.y, 2)
);
if (distance <= radius) {
neighbors.push(otherAgent);
}
}
}
return neighbors;
}
}
ìŽ í겜ì ì ì륌 ì¶ì íê³ í¹ì ë°ê²œ ëŽì ìŽìì ì°Ÿë ë©ìë륌 ì ê³µí©ëë€. ë ë³µì¡í ìë늬ì€ììë íê²œìŽ ì¥ì 묌, 늬ìì€ ëë êž°í êŽë š êž°ë¥ì 몚ëžë§í ìë ììµëë€.
ì뮬ë ìŽì ì€í
ë§ì§ë§ìŒë¡ ì뮬ë ìŽì ì ë§ë€ê³ PSO ìê³ ëŠ¬ìŠì ì€ííŽ ë³Žê² ìµëë€.
function runSimulation(numParticles: number, iterations: number): void {
const particles: Particle[] = [];
for (let i = 0; i < numParticles; i++) {
const position = { x: Math.random() * 100, y: Math.random() * 100 };
particles.push(new ParticleImpl(i.toString(), position));
}
const environment = new EnvironmentImpl(100, 100, particles);
let globalBestPosition = particles[0].personalBestPosition;
let globalBestFitness = particles[0].personalBestFitness;
for (const particle of particles) {
if (particle.personalBestFitness < globalBestFitness) {
globalBestFitness = particle.personalBestFitness;
globalBestPosition = particle.personalBestPosition;
}
}
for (let i = 0; i < iterations; i++) {
for (const particle of particles) {
particle.update(environment, globalBestPosition);
if (particle.personalBestFitness < globalBestFitness) {
globalBestFitness = particle.personalBestFitness;
globalBestPosition = particle.personalBestPosition;
}
}
console.log(`Iteration ${i + 1}: Global Best Fitness = ${globalBestFitness}`);
}
}
runSimulation(50, 100);
ìŽ ìœëë 묎ìì ìì¹ë¡ ì ì ìžížë¥Œ ìŽêž°ííê³ , í겜ì ìì±íê³ , ì§ì ë íìë§íŒ PSO ìê³ ëŠ¬ìŠì ì€íí©ëë€. ëí ê° ë°ë³µ í ì ì ìµì íŒížëì€ë¥Œ ì¶ì íê³ ì¶ë ¥í©ëë€.
í¥ìë ìì ì±ê³Œ ëª íì±ì ìí íì ì€í¬ëŠœíž íì ìì€í íì©
íì ì€í¬ëŠœížì íì ìì€í ì ì€ì ì§ë¥ 구íì ìì ì±ê³Œ ëª íì±ì ëì± í¥ììí€ë ë° íì©ë ì ììµëë€. ì륌 ë€ìŽ, ë€ìí ì íì ììŽì íž, í겜 ë° ìíž ìì©ì ëí í¹ì íì ì ì ìí ì ììµëë€.
ììŽì íž íì ì í ì ì
ì 묞ì ìž íëì ê°ì§ ë€ìí ì íì ììŽì ížê° ìë ìë늬ì€ë¥Œ ìê°íŽ ë³Žê² ìµëë€. ìží°íìŽì€ë íŽëì€ë¥Œ ì¬ì©íì¬ ìŽë¬í ììŽì ížì ëí íì ì íì ì ìí ì ììµëë€.
interface ExplorerAgent extends Agent {
explore(): void;
}
interface ExploiterAgent extends Agent {
exploit(resource: Resource): void;
}
ìŽë¬í íì ì íì ììŽì ížê° ì¬ë°ë¥ž íë곌 ìì±ì ê°ëë¡ ë³Žì¥íë ë° ì¬ì©ë ì ììµëë€. ìŽë ê² í멎 ì€ë¥ë¥Œ ë°©ì§íê³ ìœë륌 ë ìŽíŽíêž° ìœê² ë§ë€ ì ììµëë€.
íì ê°ë ì¬ì©
íì ê°ëë í¹ì ë²ì ëŽìì ë³ìì íì ì ì¢í ì ìëë¡ í©ëë€. ìŽë ì ëìš ëë ì íì ìì±ìŽ ìë ìží°íìŽì€ë¥Œ ë€ë£° ë ì ì©í©ëë€. ì륌 ë€ìŽ:
function isExplorerAgent(agent: Agent): agent is ExplorerAgent {
return 'explore' in agent && typeof (agent as any).explore === 'function';
}
function processAgent(agent: Agent): void {
if (isExplorerAgent(agent)) {
agent.explore();
}
}
isExplorerAgent íšìë ììŽì ížê° ExplorerAgentìžì§ íìžíë íì
ê°ëì
ëë€. ê·žë ë€ë©Ž íì
ì€í¬ëŠœížë if ëžë¡ ëŽì agent ë³ìê° ExplorerAgent íì
ìì ìê³ explore ë©ìë륌 ìì íê² ížì¶í ì ììµëë€.
ì¬ì¬ì© ê°ë¥í êµ¬ì± ììì ëí ì ë€ëŠ
ì ë€ëŠì ì¬ì©í멎 ë€ë¥ž ì íì ë°ìŽí°ì íšê» ìëí ì ìë ì¬ì¬ì© ê°ë¥í êµ¬ì± ìì륌 ë§ë€ ì ììµëë€. ìŽë ë€ìí ì íì ììŽì íž ëë í겜ìì ìëíŽìŒ íë ìê³ ëŠ¬ìŠì í¹í ì ì©í©ëë€. ì륌 ë€ìŽ:
interface Swarm {
agents: T[];
runIteration(environment: Environment): void;
}
ìŽ ìží°íìŽì€ë Agent ìží°íìŽì€ë¥Œ íì¥íë 몚ë ì íì ììŽì ížë¥Œ í¬íší ì ìë ì ë€ëŠ ì€ìì ì ìí©ëë€. ìŽë¥Œ íµíŽ ë€ìí ì íì ììŽì ížì íšê» ì¬ì©í ì ìë ì ë€ëŠ ì€ì 구íì ë§ë€ ì ììµëë€.
ì€ì ì§ë¥ì ìí ê³ êž íì ì€í¬ëŠœíž êž°ë²
Ʞ볞 íì ì ì ìžìë íì ì€í¬ëŠœížë ì€ì ì§ë¥ 구íì ëì± í¥ììí¬ ì ìë ê³ êž êž°ë¥ì ì ê³µí©ëë€.
ë§€íë íì
ë§€íë íì ì ì¬ì©í멎 Ʞ졎 íì ì ìì±ì ë³íí ì ììµëë€. ìŽë Ʞ졎 íì ì êž°ë°í ì íì ì ë§ëë ë° ì ì©í©ëë€. ì륌 ë€ìŽ ìží°íìŽì€ì ìœêž° ì ì© ë²ì ì ë§ëë ê²ì ëë€.
type Readonly = {
readonly [K in keyof T]: T[K];
};
interface Position {
x: number;
y: number;
}
type ReadonlyPosition = Readonly;
ìŽ ìì ìì ReadonlyPositionì Position곌 ëìŒí ìì±ì ê°ì§ë§ 몚ë ìì±ìŽ ìœêž° ì ì©ìž ì íì
ì
ëë€.
ì¡°ê±Žë¶ íì
ì¡°ê±Žë¶ íì ì ì¬ì©í멎 조걎ì ë°ëŒ ë¬ëŒì§ë íì ì ì ìí ì ììµëë€. ìŽë ë€ë¥ž ë³ìì íì ì ë°ëŒ ë 구첎ì ìž íì ì ë§ëë ë° ì ì©í©ëë€. ì륌 ë€ìŽ:
type AgentType = T extends ExplorerAgent ? 'explorer' : 'exploiter';
ìŽ íì
ì ììŽì ížê° ExplorerAgentìžì§ ì¬ë¶ì ë°ëŒ 'explorer' ëë 'exploiter'ë¡ íìžëë íì
ë³ì¹ AgentTypeì ì ìí©ëë€.
êµì°š ë° ì ëìš íì
êµì°š íì ì ì¬ë¬ íì ì ëšìŒ íì ìŒë¡ ê²°í©í ì ìëë¡ í©ëë€. ì ëìš íì ì ì¬ë¬ íì ì€ íëê° ë ì ìë íì ì ì ìí ì ìëë¡ í©ëë€. ìŽë¬í êž°ë¥ì ì¬ì©íì¬ ë ë³µì¡íê³ ì ì°í íì ì ì륌 ë§ë€ ì ììµëë€.
ì€ì©ì ìž ìì© ë° êžë¡ë² ìì
ì€ì ì§ë¥ì ë€ìí ì°ì ë° ì§ìì ê±žì³ êŽë²ìí ì€ì©ì ìž ìì© ë¶ìŒë¥Œ ê°ì§ê³ ììµëë€.
- ë¡ëŽ ê³µí (êžë¡ë²): ì€ì ë¡ëŽ ê³µíì ê³µíµ ëª©í륌 ë¬ì±íêž° ìíŽ íë ¥íë ë¡ëŽ ê·žë£¹ì ì ìŽíë ë° ì€ì ì§ë¥ ìê³ ëŠ¬ìŠì ì¬ì©í©ëë€. ìë¡ë ìì ë° êµ¬ì¡° ìì , í겜 몚ëí°ë§ ë° ìžíëŒ ê²ì¬ê° ììµëë€. ì륌 ë€ìŽ ìŒë³ž ì°êµ¬ìë€ì ì¬ë ì§ìì ìí ììš ìì€í ê°ë°ì ì€ì ë¡ëŽ ê³µíì ì¬ì©íê³ ììŒë©°, ì ëœ íì ì ë° ëì ì ëí ìì© ë¶ìŒë¥Œ íìíê³ ììµëë€.
- ë¬Œë¥ ë° ìŽì¡ (ë¶ë¯ž, ì ëœ): ì€ì ì§ë¥ì 겜ë¡ë¥Œ ìµì ííê³ , ë°°ì¡ì ììœíê³ , êµíµ íëŠì êŽëЬíë ë° ì¬ì©í ì ììµëë€. UPS ë° FedExì ê°ì íì¬ë ì ì¬í ìê³ ëŠ¬ìŠì ì¬ì©íì¬ ë°°ì¡ ê²œë¡ë¥Œ ìµì ííì¬ ì°ë£ ìë¹ë¥Œ ì€ìŽê³ íšìšì±ì í¥ììíµëë€. ì ëœììë ì¬ë¬ ëììì íŒì¡ì ì€ìŽê³ 공Ʞ ì§ì ê°ì íêž° ìíŽ ì€ì êž°ë° êµíµ êŽëЬ ìì€í ì ì€ííê³ ììµëë€.
- ì ì¡° (ììì): ì€ì ì§ë¥ì ì ì¡° ê³µì¥ì ìì° ê³µì ì ìµì ííê³ , ìì ì ììœíê³ , 늬ìì€ë¥Œ í ë¹íë ë° ì¬ì©í ì ììµëë€. ì€êµê³Œ íêµì ë§ì ê³µì¥ì ì€ì ì늬륌 êž°ë°ìŒë¡ íë ìŒë¶ë¥Œ í¬íší AI êž°ë° ìì€í ì ì¬ì©íì¬ ìŽìì ê°ìííê³ ìì°ì±ì í¥ììíµëë€.
- êžìµ (êžë¡ë²): ìê³ ëŠ¬ìŠ ížë ìŽë© ìì€í ì ììµì± ìë ê±°ë êž°í륌 ìë³íê³ ê±°ë륌 ìëìŒë¡ ì€ííêž° ìíŽ ì€ì ì§ë¥ êž°ì ì ì¬ì©í©ëë€. ì ìžê³ì ë§ì í€ì§ íë ë° í¬ì ìíì ìíì êŽëЬíê³ ììµì ì°œì¶íêž° ìíŽ ì êµí ìê³ ëŠ¬ìŠì íì©í©ëë€.
- ìë£ (êžë¡ë²): ì€ì ì§ë¥ì ë³ì ìí¬íë¡ë¥Œ ìµì ííê³ , ììœì êŽëЬíê³ , ìë£ ìì€ì 늬ìì€ë¥Œ í ë¹íë ë° ì¬ì©í ì ììµëë€. ì°êµ¬ìë€ì ì ìœ ê°ë° ë° ê°ìž ë§ì¶€í ìíì ìí ì€ì ìê³ ëŠ¬ìŠ ì¬ì©ë í구íê³ ììµëë€.
- ë°ìŽí° ë§ìŽë (êžë¡ë²): íŽë¬ì€í°ë§ ë° íŒì² ì íì ëê·ëªš ë°ìŽí° ìžížìì íšíŽì ì°Ÿêž° ìíŽ ì€ì ìê³ ëŠ¬ìŠì íì©í ì ììµëë€.
곌ì ë° í¥í ë°©í¥
ì€ì ì§ë¥ì ë§ì ìŽì ì ì ê³µíì§ë§ íŽê²°íŽìŒ í ëª ê°ì§ 곌ì ë ììµëë€.
- íì¥ì±: ìŒë¶ ì€ì ì§ë¥ ìê³ ëŠ¬ìŠì ë§€ì° í° ë¬žì ì ëíŽ ì íì¥ëì§ ìì ì ììµëë€. ë íì¥ ê°ë¥í ìê³ ëŠ¬ìŠ ê°ë°ì íë°í ì°êµ¬ ë¶ìŒì ëë€.
- ë§€ê°ë³ì íë: ì€ì ì§ë¥ ìê³ ëŠ¬ìŠì ì¢ ì¢ ìµì ì ì±ë¥ì ë¬ì±íêž° ìíŽ íëíŽìŒ íë ëª ê°ì§ ë§€ê°ë³ì륌 ê°ìµëë€. ì¬ë°ë¥ž ë§€ê°ë³ì ì€ì ì ì°Ÿë ê²ì ìŽë €ìž ì ììµëë€.
- ìë Ž: ìŒë¶ ì€ì ì§ë¥ ìê³ ëŠ¬ìŠì ìµì ìŽ ìë ì룚ì ìŒë¡ ìë Ží ì ììµëë€. ì ì ìµì ì ì°Ÿì ê°ë¥ì±ìŽ ë ëì ìê³ ëŠ¬ìŠì ê°ë°íë ê²ìŽ ì€ìí 목íì ëë€.
- ìŽë¡ ì ìŽíŽ: ì€ì ì§ë¥ ìê³ ëŠ¬ìŠì ëì곌 ì±ë¥ì ë ì ììž¡íêž° ìíŽìë ì€ì ì§ë¥ ìê³ ëŠ¬ìŠì ëí ë ê¹ì ìŽë¡ ì ìŽíŽê° íìí©ëë€.
í¥í ì°êµ¬ ë°©í¥ìë íìŽëžëЬë ì€ì ì§ë¥ ìê³ ëŠ¬ìŠ ê°ë°, ì€ì ì§ë¥ì íìµ ë©ì»€ëìŠ íµí©, ìë¡ê³ ë ì€ë¥Žë 묞ì ëë©ìžì ì€ì ì§ë¥ ì ì©ìŽ í¬íšë©ëë€. êžë¡ë² ìì€í ì ë³µì¡ì±ìŽ ìŠê°íšì ë°ëŒ ì€ì êž°ë° ì룚ì ì ëí ìì²ë êž°íê° ì°œì¶ë©ëë€.
ê²°ë¡
íì ì€í¬ëŠœížë ì€ì ì§ë¥ ìê³ ëŠ¬ìŠì 구ííë ê°ë ¥íê³ íšê³Œì ìž íë«íŒì ì ê³µí©ëë€. íì ì€í¬ëŠœížì ê°ë ¥í íì ìì€í ì íì©íì¬ ë ê²¬ê³ íê³ íì¥ ê°ë¥íë©° ì ì§ êŽëЬíêž° ì¬ìŽ ì€ì ì§ë¥ ìì€í ì ë§ë€ ì ììµëë€. ì€ì ì§ë¥ ì늬ì íì ì€í¬ëŠœížì íì ìì ì± ì¡°í©ì íµíŽ ê°ë°ìë ë í° íì 곌 ëª íì±ì ê°ì§ê³ ë³µì¡í ì§ëš íëì 몚ëžë§íê³ êµ¬íí ì ììµëë€. ì€ì ì§ë¥ìŽ ê³ì ë°ì íê³ ìë¡ìŽ ìì© ë¶ìŒë¥Œ ì°ŸìŒë©Žì ìŽë¬í ì§ë¥í ìì€í ì 구ì¶íë ë° ììŽ íì ì€í¬ëŠœížì ìí ì ëì± ì€ìíŽì§ ê²ì ëë€.